//12/10/03
//Fix for BUG 781
//Description: The form for Advanced Search was not being submitted if the template was toolbarside or toolbarbottom.
//Solution: Submit the form after checking the database list.

function QuickSearchCheckAndAdjust(index) {

	if (index != 0) {
		document.quicksearchform.quickstring.value = '';
		document.quicksearchform.quickstring.disabled = true;
	} 
	else {
		document.quicksearchform.quickstring.disabled = false;
	}
}

function NewCheckAndAdjust(parentmenu,value,checkbox,level) {
	//Used to rebuild page when dynamic categories are used

    checkbox.checked=(parentmenu.selectedIndex != 0);
    var chosenText = parentmenu[value].text;
    var chosenValue = parentmenu[value].value;
  
    var url = mburl + "\&do=advancedsearch\&classbox" + level + "=1\&classval" + level + "=" + chosenValue + "\&classtext" + level + "=" + chosenText;
    
    if (level == 2 || level == 3 || level == 4) {
		//var classbox1 = '1';
		var classtext1 = document.searchform.elements[33].options[document.searchform.elements[33].options.selectedIndex].text;
		var classval1 = document.searchform.elements[33].options[document.searchform.elements[33].options.selectedIndex].value;
		url = url + "\&classbox1=1\&classval1=" + classval1 + "\&classtext1=" + classtext1;  
    }
    
    if (level == 3 || level == 4) {
		//var classbox1 = '1';
		var classtext2 = document.searchform.elements[37].options[document.searchform.elements[37].options.selectedIndex].text;
		var classval2 = document.searchform.elements[37].options[document.searchform.elements[37].options.selectedIndex].value;
		url = url + "\&classbox2=1\&classval2=" + classval2 + "\&classtext2=" + classtext2;   
    }

    if (level == 4) {
		//var classbox1 = '1';
		var classtext3 = document.searchform.elements[41].options[document.searchform.elements[41].options.selectedIndex].text;
		var classval3 = document.searchform.elements[41].options[document.searchform.elements[41].options.selectedIndex].value;
		url = url + "\&classbox3=1\&classval3=" + classval3 + "\&classtext3=" + classtext3;  
    }

    if (document.searchform.elements[1].checked == true) {
		var lineBox1 = 'yes';
		var lineField1 = document.searchform.elements[2].options[document.searchform.elements[2].options.selectedIndex].text;
		var lineAction1 = document.searchform.elements[3].options[document.searchform.elements[3].options.selectedIndex].text;
		var lineText1 = document.searchform.elements[4].value;
		var lineBool1 = document.searchform.elements[5].options[document.searchform.elements[5].options.selectedIndex].text;
		if(document.searchform.elements[6].checked == true) {
			var lineCase1 = 'yes';
		}
		url = url + "\&lineBox1=" + lineBox1 + "\&lineField1=" + lineField1 + "\&lineAction1=" + lineAction1;
		url = url + "\&lineText1=" + lineText1 + "\&lineBool1=" + lineBool1 + "\&lineCase1=" + lineCase1;
    }

    if (document.searchform.elements[7].checked == true) {
		var lineBox2 = 'yes';
		var lineField2 = document.searchform.elements[8].options[document.searchform.elements[8].options.selectedIndex].text;
		var lineAction2 = document.searchform.elements[9].options[document.searchform.elements[9].options.selectedIndex].text;
		var lineText2 = document.searchform.elements[10].value;
		var lineBool2 = document.searchform.elements[11].options[document.searchform.elements[11].options.selectedIndex].text;
		if(document.searchform.elements[12].checked == true) {
			var lineCase2 = 'yes';
		}
		url = url + "\&lineBox2=" + lineBox2 + "\&lineField2=" + lineField2 + "\&lineAction2=" + lineAction2;
		url = url + "\&lineText2=" + lineText2 + "\&lineBool2=" + lineBool2 + "\&lineCase2=" + lineCase2;
    }

    if (document.searchform.elements[13].checked == true) {
		var lineBox3 = 'yes';
		var lineField3 = document.searchform.elements[14].options[document.searchform.elements[14].options.selectedIndex].text;
		var lineAction3 = document.searchform.elements[15].options[document.searchform.elements[15].options.selectedIndex].text;
		var lineText3 = document.searchform.elements[16].value;
		var lineBool3 = document.searchform.elements[17].options[document.searchform.elements[17].options.selectedIndex].text;
		if(document.searchform.elements[18].checked == true) {
			var lineCase3 = 'yes';
		}
		url = url + "\&lineBox3=" + lineBox3 + "\&lineField3=" + lineField3 + "\&lineAction3=" + lineAction3;
		url = url + "\&lineText3=" + lineText3 + "\&lineBool3=" + lineBool3 + "\&lineCase3=" + lineCase3;
    }

    if (document.searchform.elements[19].checked == true) {
		var lineBox4 = 'yes';
		var lineField4 = document.searchform.elements[20].options[document.searchform.elements[20].options.selectedIndex].text;
		var lineAction4 = document.searchform.elements[21].options[document.searchform.elements[21].options.selectedIndex].text;
		var lineText4 = document.searchform.elements[22].value;
		var lineBool4 = document.searchform.elements[23].options[document.searchform.elements[23].options.selectedIndex].text;
		if(document.searchform.elements[24].checked == true) {
			var lineCase4 = 'yes';
		}
		url = url + "\&lineBox4=" + lineBox4 + "\&lineField4=" + lineField4 + "\&lineAction4=" + lineAction4;
		url = url + "\&lineText4=" + lineText4 + "\&lineBool4=" + lineBool4 + "\&lineCase4=" + lineCase4;
    }

    if (document.searchform.elements[25].checked == true) {
		var lineBox5 = 'yes';
		var lineField5 = document.searchform.elements[26].options[document.searchform.elements[26].options.selectedIndex].text;
		var lineAction5 = document.searchform.elements[27].options[document.searchform.elements[27].options.selectedIndex].text;
		var lineText5 = document.searchform.elements[28].value;
		var lineBool5 = document.searchform.elements[29].options[document.searchform.elements[29].options.selectedIndex].text;
		if(document.searchform.elements[30].checked == true) {
			var lineCase5 = 'yes';
		}
		url = url + "\&lineBox5=" + lineBox5 + "\&lineField5=" + lineField5 + "\&lineAction5=" + lineAction5;
		url = url + "\&lineText5=" + lineText5 + "\&lineBool5=" + lineBool5 + "\&lineCase5=" + lineCase5;
    }

    if (parentmenu.value != "") {
        window.location = url;
    }
}


function CheckAndAdjust (box,field,action){
	// Only used for Advanced Search.  It checks the little box to enable
	// the search criterion, and adjusts the action menu to list only
	// those actions suited to the chosen field.  I.E., numeric or
	// string searching operators.


	// first, check the enabling box
    box.checked=(field.selectedIndex != 0);

	// examine field to see if we're dealing with a string
	// or numeric field value

    var i = field.options.selectedIndex;
    var value = field.options[field.options.selectedIndex].value;

    if (value == "ID"
	|| value == "RESOLN"
	|| value == "HEIGHT"
	|| value == "WIDTH"
	|| value == "FILESIZE"
	|| value == "SCREENRES"
	|| value == "PRINTRES"
	|| value == "PROOFCNT"
	|| value == "FINALCNT"
	|| value == "TOUCHCNT"
	|| value == "BITS_PIXEL"
	|| value == "LOG_DATE"
	|| value == "LOG_TIME"
	|| value == "TOUCHDATE"
	|| value == "LSTPRNTON"
	|| value == "C_DATE"
	|| value == "M_DATE"
	|| value == "D_DATE"
	|| value == "NUMPLANES") {
        SetActionMenu("number",action);
    } 
    else if (value == "COMMENT") {
		SetActionMenu("memo",action);
    } 
    else {
        if (value == "INUSE"
	    || value == "LOCKED"
	    || value == "PRINTVF"
	    || value == "HASRGBVF"
        || value == "AUTOJOB"		
	    || value == "SCHEDULED") {
			SetActionMenu("boolean",action);
        } else {
			// default case
   			SetActionMenu("string",action);
		}
    }
}

function SetActionMenu(type,actionfield) {
// subfunction for the above.  Called only for advanced search.
// sets the menu to the appropriate options, once the type
// (string or number) has been determined

    actionfield.options.length = 0;  // clear old options

    actionfield.options[0] = new Option(" ","0",true);

    if (type == "number") {
		actionfield.options[1] = new Option("is equal to","is equal to",false);
		actionfield.options[2] = new Option("is greater than","is greater than",false);
		actionfield.options[3] = new Option("is less than","is less than",false);
		actionfield.options[4] = new Option("is greater than or equal to","is greater than or equal to",false)
		actionfield.options[5] = new Option("is less than or equal to","is less than or equal to",false);
    } 
    else if (type == "memo") {
			actionfield.options[1] = new Option("starts with","starts with",false);
			actionfield.options[2] = new Option("contains","contains",false);
    }
    else {
		if (type == "boolean") {
			actionfield.options[1] = new Option("is true","is true",false);
			actionfield.options[2] = new Option("is false","is false",false);
		} else {
			// default case of string type
			actionfield.options[1] = new Option("is","is",false);
			actionfield.options[2] = new Option("is not","is not",false);
			actionfield.options[3] = new Option("starts with","starts with",false);
			actionfield.options[4] = new Option("contains","contains",false);
			actionfield.options[5] = new Option("is blank","is blank",false);
			actionfield.options[6] = new Option("is not blank","is not blank",false);
		}
    }
}


function Family (parent,parentid,children,level) {
	// This object holds the name and id of the parent, and the array of its
	// children.  Also holds level of parent.  Simple.

	this.parent = parent;
	this.parentid = parentid;
	this.children = children;
	this.level = level;

}

function adjust (parentmenu,value,level,checkbox) {

    treeSubjects();

    var chosenText = parentmenu[value].text;
    var chosenValue = parentmenu[value].value;

	checkbox.checked = (value != 0);

	// blank out old stuff.  all menus after the just-adjusted menu
	// should be blank.

    if (done == "advancedsearch") {
		for (q = 0; q <= document.searchform.elements.length; q++) {
			if (document.searchform.elements[q] == parentmenu) {
				if (level < 5) {
					kidmenu = document.searchform.elements[q+4];
					blankmenu(kidmenu);
					kidcheckbox = document.searchform.elements[q+1];
					kidcheckbox.checked = 0;
				}
				if (level < 4) {
					baby = document.searchform.elements[q+8];
					blankmenu(baby);
					babycheckbox = document.searchform.elements[q+5];
					babycheckbox.checked = 0;
				}
				if (level < 3) {
					baby = document.searchform.elements[q+12];
					blankmenu(baby);
					babycheckbox = document.searchform.elements[q+9];
					babycheckbox.checked = 0;
				}
				if (level < 2) {
					baby = document.searchform.elements[q+16];
					blankmenu(baby);	
					babycheckbox = document.searchform.elements[q+13];
					babycheckbox.checked = 0;
				}
				break;
			}
		}
    } else {
		for (q = 0; q <= document.searchform.elements.length; q++) {
			if (document.searchform.elements[q] == parentmenu) {
				if (level < 5) {
					kidmenu = document.searchform.elements[q+3];
					blankmenu(kidmenu);
					kidcheckbox = document.searchform.elements[q+1];
					kidcheckbox.checked = 0;
				}
				if (level < 4) {
					baby = document.searchform.elements[q+6];
					blankmenu(baby);
					babycheckbox = document.searchform.elements[q+4];
					babycheckbox.checked = 0;
				}
				if (level < 3) {
					baby = document.searchform.elements[q+9];
					blankmenu(baby);
					babycheckbox = document.searchform.elements[q+7];
					babycheckbox.checked = 0;
				}
				if (level < 2) {
					baby = document.searchform.elements[q+12];
					blankmenu(baby);	
					babycheckbox = document.searchform.elements[q+10];
					babycheckbox.checked = 0;
				}
				 break;
			}
		}
    }

	// Now our task is to find the children associated with the parent
	// chosenValue and chosenText

    var len = families.length;

    for (x = 0; x < len; x++) {
		if (families[x].parent == chosenText
	    && families[x].parentid == chosenValue
	    && families[x].level == level) {
			var kids = families[x].children.length;
			var kiddies = new Array;
			kiddies = families[x].children;
			// Woohoo, we found some child options 
			with (kidmenu) {
				// sort the kids out by name
				// put in the first (blank) option
				options[0] = new Option(blankstring,"0",true);
                // reset to options in children
                for (var i=0; i < kids;i++) {
                    options[options.length]=kiddies[i];
				}
				// To start, first (blank) option is selected
				options[0].selected=true;
			}
			//break;	
		}
	}


    // now must recreate this object, since they are
    // used up as accessed.  Go figure.
//    families[x] = null;
//    families[x] = new Family(chosenText,chosenValue,kiddies,level);


//   // Check if IE or Netscape
//   if (navigator.appName == "Netscape") {
//     history.go(0);  // Need to refresh the screen to select redraw
//   }



}


function blankmenu (blankee) {

    with (blankee) {
    	// blank out old options
		options.length = 0;
		// first option is blank, no matter what
		options[0] = new Option(blankstring, "0", "1", "1");
    }

}

function NameSort (a,b) {

    if (a.text < b.text) {
        return -1;
    }
    if (a.text > b.text) {
        return 1;
    }
    return 0;


}

function PrepareSelectedTexts(mode) 
{
    var searchmenus = new Array;
    var hiddens = new Array;

    if (catsearch == 1) {
		if (document.searchform.class1_string) {
			searchmenus[searchmenus.length] = document.searchform.class1_string;
		}
		if (document.searchform.class2_string) {
			searchmenus[searchmenus.length] = document.searchform.class2_string;
		}
		if (document.searchform.class3_string) {
			searchmenus[searchmenus.length] = document.searchform.class3_string;
		}
		if (document.searchform.class4_string) {
			searchmenus[searchmenus.length] = document.searchform.class4_string;
		}
		if (document.searchform.class5_string) {
			searchmenus[searchmenus.length] = document.searchform.class5_string;   
		}

		if (document.searchform.class1_search) {
			hiddens[hiddens.length] = document.searchform.class1_search;
		} 
		if (document.searchform.class2_search) {
			hiddens[hiddens.length] = document.searchform.class2_search;
		}
		if (document.searchform.class3_search) {
			hiddens[hiddens.length] = document.searchform.class3_search;
		}
		if (document.searchform.class4_search) {
			hiddens[hiddens.length] = document.searchform.class4_search;
		}
		if (document.searchform.class5_search) {
			hiddens[hiddens.length] = document.searchform.class5_search;
		}
    }
    else {
		searchmenus[searchmenus.length] = document.searchform.c6_string;
		searchmenus[searchmenus.length] = document.searchform.c7_string;
		searchmenus[searchmenus.length] = document.searchform.c8_string;
		searchmenus[searchmenus.length] = document.searchform.c9_string;
		searchmenus[searchmenus.length] = document.searchform.c10_string;

		hiddens[hiddens.length] = document.searchform.class1_search;
		hiddens[hiddens.length] = document.searchform.class2_search;
		hiddens[hiddens.length] = document.searchform.class3_search;
		hiddens[hiddens.length] = document.searchform.class4_search;
		hiddens[hiddens.length] = document.searchform.class5_search;
    }
    

    for (i = 0; i < searchmenus.length; i++) {
		menu = searchmenus[i];
		if (menu.options[menu.selectedIndex].text == blankstring) {
            // do nothing; it's just the sizer string
        } else {
            hiddens[i].value = menu.options[menu.selectedIndex].text;
        }
    }
    
    var searchfields= new Array;
    searchfields[searchfields.length] = document.searchform.c1_realfield;
    searchfields[searchfields.length] = document.searchform.c2_realfield;
    searchfields[searchfields.length] = document.searchform.c3_realfield;
    searchfields[searchfields.length] = document.searchform.c4_realfield;
    searchfields[searchfields.length] = document.searchform.c5_realfield;

    var searchstrings= new Array;
    searchstrings[searchstrings.length] = document.searchform.c1_string;
    searchstrings[searchstrings.length] = document.searchform.c2_string;
    searchstrings[searchstrings.length] = document.searchform.c3_string;
    searchstrings[searchstrings.length] = document.searchform.c4_string;
    searchstrings[searchstrings.length] = document.searchform.c5_string;

    var err = 0;

    for (i = 0; i < searchfields.length; i++) 
    {
		field = searchfields[i];
		string = searchstrings[i];

		//if input is a date value
		if (field.options[field.selectedIndex].value == "LOG_DATE"
			|| field.options[field.selectedIndex].value == "TOUCHDATE" 
			|| field.options[field.selectedIndex].value == "LSTPRNTON") {
			var date = string.value;
			var label = field.options[field.selectedIndex].text;

			if (date.length != 10) err=1
			mon = date.substring(0, 2)// month
			delimit1 = date.substring(2, 3)// '/'
			day = date.substring(3, 5)// day
			delimit2 = date.substring(5, 6)// '/'
			year = date.substring(6, 10)// year

			var num_date = year + mon + day;

			//basic error checking
			if (mon<1 || mon>12) err = 1
			if (delimit1 != '/') err = 1
			if (day<1 || day>31) err = 1
			if (delimit2 != '/') err = 1
			if (year<0 || year>9999) err = 1
			
			//advanced error checking

			// months with 30 days
			if (mon==4 || mon==6 || mon==9 || mon==11){
				if (day==31) err=1
			}

			// february, leap year
			if (mon==2){
				// feb
				var g=parseInt(year/4)
				if (isNaN(g)) {
					err=1
				}

				if (day>29) err=1
				if (day==29 && ((year/4)!=parseInt(year/4))) err=1
			}

			if (err==1){
				alert(label + ' must be in the form: mm/dd/yyyy');
				if (mode == 'text') {
					return false;
				}
			}
		} 
		else if (field.options[field.selectedIndex].value == "ID"
			|| field.options[field.selectedIndex].value == "RESOLN" 
			|| field.options[field.selectedIndex].value == "HEIGHT" 
			|| field.options[field.selectedIndex].value == "WIDTH" 
			|| field.options[field.selectedIndex].value == "FILESIZE" 
			|| field.options[field.selectedIndex].value == "SCREENRES" 
			|| field.options[field.selectedIndex].value == "PRINTRES" 
			|| field.options[field.selectedIndex].value == "PROOFCNT" 
			|| field.options[field.selectedIndex].value == "FINALCNT" 
			|| field.options[field.selectedIndex].value == "TOUCHCNT" 
			|| field.options[field.selectedIndex].value == "BITS_PIXEL" 
			|| field.options[field.selectedIndex].value == "NUMPLANES") 
			{

			var numval = string.value;
			var label = field.options[field.selectedIndex].text;

			if (isNaN(numval)) 
			{
				alert(label + ' must be a numeric value');
				if (mode == 'text') 
				{
					return false;
				}
				err = 1;
			}
		} 
		else 
		{
			 // not a date or a number, do nothing
		}
    }

    if (err == 0) 
    {
		var OKToProceed = CheckDBs();
		if (!OKToProceed)
		{
			if (mode == "text")
			{
				return false;
			}
		}
		else
		{
			if (mode == "icon")
			{
				document.forms[0].submit();
			}
		}
    }
}

function CheckSimpleText(mode) 
{
    var searchfields = new Array;
    var searchstrings = new Array;
    var searchlabels = new Array;

    if (document.searchform.c1_field) {
		if (document.searchform.c1_field.checked) {
		searchfields[searchfields.length] = document.searchform.c1_realfield;
		searchstrings[searchstrings.length] = document.searchform.c1_string;
		searchlabels[searchlabels.length] = document.searchform.c1_label;
		}
    }

    if (document.searchform.c2_field) {
		if (document.searchform.c2_field.checked) {
		searchfields[searchfields.length] = document.searchform.c2_realfield;
		searchstrings[searchstrings.length] = document.searchform.c2_string;
		searchlabels[searchlabels.length] = document.searchform.c2_label;
		}
    }
    if (document.searchform.c3_field) {
		if (document.searchform.c3_field.checked) {
		searchfields[searchfields.length] = document.searchform.c3_realfield;
		searchstrings[searchstrings.length] = document.searchform.c3_string;
		searchlabels[searchlabels.length] = document.searchform.c3_label;
		}
    }
    if (document.searchform.c4_field) {
		if (document.searchform.c4_field.checked) {
		searchfields[searchfields.length] = document.searchform.c4_realfield;
		searchstrings[searchstrings.length] = document.searchform.c4_string;
		searchlabels[searchlabels.length] = document.searchform.c4_label;
		}
    }
    if (document.searchform.c5_field) {
		if (document.searchform.c5_field.checked) {
		searchfields[searchfields.length] = document.searchform.c5_realfield;
		searchstrings[searchstrings.length] = document.searchform.c5_string;
		searchlabels[searchlabels.length] = document.searchform.c5_label;
		}
    }
    if (document.searchform.c6_field) {
		if (document.searchform.c6_field.checked) {
		searchfields[searchfields.length] = document.searchform.c6_realfield;
		searchstrings[searchstrings.length] = document.searchform.c6_string;
		searchlabels[searchlabels.length] = document.searchform.c6_label;
		}
    }
    if (document.searchform.c7_field) {
		if (document.searchform.c7_field.checked) {
		searchfields[searchfields.length] = document.searchform.c7_realfield;
		searchstrings[searchstrings.length] = document.searchform.c7_string;
		searchlabels[searchlabels.length] = document.searchform.c7_label;
		}
    }
    if (document.searchform.c8_field) {
		if (document.searchform.c8_field.checked) {
		searchfields[searchfields.length] = document.searchform.c8_realfield;
		searchstrings[searchstrings.length] = document.searchform.c8_string;
		searchlabels[searchlabels.length] = document.searchform.c8_label;
		}
    }


    var err = 0;

    for (i = 0; i < searchfields.length; i++) {

		//if input is a date value
		if (searchfields[i].value == "LOG_DATE"
		|| searchfields[i].value == "TOUCHDATE" 
        || searchfields[i].value == "LSTPRNTON") {

			var date = searchstrings[i].value;
			var label = searchlabels[i].value;

			if (date.length != 10) err=1
			mon = date.substring(0, 2)// month
			delimit1 = date.substring(2, 3)// '/'
			day = date.substring(3, 5)// day
			delimit2 = date.substring(5, 6)// '/'
			year = date.substring(6, 10)// year

			var num_date = year + mon + day;

			//basic error checking
			if (mon<1 || mon>12) err = 1
			if (delimit1 != '/') err = 1
			if (day<1 || day>31) err = 1
			if (delimit2 != '/') err = 1
			if (year<0 || year>9999) err = 1
			
			//advanced error checking

			// months with 30 days
			if (mon==4 || mon==6 || mon==9 || mon==11){
				if (day==31) err=1
			}

			// february, leap year
			if (mon==2){
				// feb
				var g=parseInt(year/4)
				if (isNaN(g)) {
					err=1
				}

				if (day>29) err=1
				if (day==29 && ((year/4)!=parseInt(year/4))) err=1
			}

			if (err==1){
				alert(label + ' must be in the form: mm/dd/yyyy');
				if (mode == 'text') {
					return false;
				}
			}
		} else if (searchfields[i].value == "ID"
		|| searchfields[i].value == "RESOLN" 
		|| searchfields[i].value == "HEIGHT" 
		|| searchfields[i].value == "WIDTH" 
		|| searchfields[i].value == "FILESIZE" 
		|| searchfields[i].value == "SCREENRES" 
		|| searchfields[i].value == "PRINTRES" 
		|| searchfields[i].value == "PROOFCNT" 
		|| searchfields[i].value == "FINALCNT" 
		|| searchfields[i].value == "TOUCHCNT" 
		|| searchfields[i].value == "BITS_PIXEL" 
        || searchfields[i].value == "NUMPLANES") {

			var numval = searchstrings[i].value;
			var label = searchlabels[i].value;

			if (isNaN(numval)) {
				alert(label + ' must be a numeric value');
				if (mode == 'text') {
					return false;
				} 
				err = 1;
			}
		 } else {
			// not a date, do nothing
		}
    }

    
    if (err == 0) 
    {
		var OKToProceed = CheckDBs();
		if (!OKToProceed)
		{
			if (mode == "text")
			{
				return false;
			}
		}
		else
		{
			if (mode == "icon")
			{
				document.forms[0].submit();
			}
		}
    }
}

function CheckDBs()
{
    var count = 0;
	var DatabaseArray = new Array;
	for (n = 0; n < userdbsframe.document.userdbs.elements.length; n++) 
	{
		if (userdbsframe.document.userdbs.elements[n].type == "checkbox")
		{
			if (userdbsframe.document.userdbs.elements[n].checked == true) 
			{
				DatabaseArray[count] = userdbsframe.document.userdbs.elements[n].name;
				count = count + 1;
			}
		}
	}
	
    if (count > 0) 
    {       
		var DatabaseString = "";
		var LastItem = DatabaseArray.length - 1;
		for (i = 0; i < DatabaseArray.length; i++)
		{
			if (i == LastItem)
			{
				DatabaseString = DatabaseString + DatabaseArray[i];
			}
			else
			{
				DatabaseString = DatabaseString + DatabaseArray[i] + "::::";
			}
		}
		
		document.forms[0].dbpathlist.value = DatabaseString;
		return true;
	}
    else 
    {
        alert('You must select at least one database to search.');
        return false;
    }
}


function SubmitJJSearch (mode) {
//alert(mode);

//Checks if format for date is valid

    searchvalue= new Array;
    searchvalue[searchvalue.length] = document.jjsearchform.c1_realfield;
    searchvalue[searchvalue.length] = document.jjsearchform.c2_realfield;
    searchvalue[searchvalue.length] = document.jjsearchform.c3_realfield;
    searchvalue[searchvalue.length] = document.jjsearchform.c4_realfield;


    searchstring= new Array;
    searchstring[searchstring.length] = document.jjsearchform.c1_string;
    searchstring[searchstring.length] = document.jjsearchform.c2_string;
    searchstring[searchstring.length] = document.jjsearchform.c3_string;
    searchstring[searchstring.length] = document.jjsearchform.c4_string;

	var err = 0;

    for (i = 0; i < searchvalue.length; i++) {
		menu = searchvalue[i];
		values = searchstring[i];
		//if input is a date value
		if (menu.options[menu.selectedIndex].value == "M_DATE"
			|| menu.options[menu.selectedIndex].value == "D_DATE" 
			|| menu.options[menu.selectedIndex].value == "C_DATE") {
			var date = values.value;
			var type = menu.options[menu.selectedIndex].text;

			if (date.length != 10) err=1
			mon = date.substring(0, 2)// month
			delimit1 = date.substring(2, 3)// '/'
			day = date.substring(3, 5)// day
			delimit2 = date.substring(5, 6)// '/'
			year = date.substring(6, 10)// year

			var num_date = year + mon + day;

			//basic error checking
			if (mon<1 || mon>12) err = 1
			if (delimit1 != '/') err = 1
			if (day<1 || day>31) err = 1
			if (delimit2 != '/') err = 1
			if (year<0 || year>9999) err = 1
		
			//advanced error checking

			// months with 30 days
			if (mon==4 || mon==6 || mon==9 || mon==11){
				if (day==31) err=1
			}

			// february, leap year
			if (mon==2){
				// feb
				var g=parseInt(year/4)
				if (isNaN(g)) {
					err=1
				}

				if (day>29) err=1
				if (day==29 && ((year/4)!=parseInt(year/4))) err=1
			}

			if (err==1){
				alert(type + ' must be in the form: mm/dd/yyyy');
				if (mode == 'text') {
					return false;
				}
			}
		}
    }
    
    if (err == 0) {
		document.jjsearchform.submit();
    }
   
}


function NumtoName (form){

    // we are using the numeric ids as values; now we have to convert
    // those values into their names in order to search on them back
    // on the server 
    

//    savers = new Array;  // hidden save the clobbered values	
//    savers[savers.length] = document.searchform.save1.value;
//    savers[savers.length] = document.searchform.save2.value;
//    savers[savers.length] = document.searchform.save3.value;
//    savers[savers.length] = document.searchform.save4.value;
//    savers[savers.length] = document.searchform.save5.value;

    searchmenus = new Array;
    if (done == "advancedsearch") {
//	var h = 28;
//	var j = 4;
        searchmenus[searchmenus.length] = document.searchform.c6_string;
        searchmenus[searchmenus.length] = document.searchform.c7_string;
        searchmenus[searchmenus.length] = document.searchform.c8_string;
        searchmenus[searchmenus.length] = document.searchform.c9_string;
        searchmenus[searchmenus.length] = document.searchform.c10_string;
    } else {
//	var h = 12;
//	var j = 3;
	searchmenus[searchmenus.length] = document.searchform.class1_string
	searchmenus[searchmenus.length] = document.searchform.class2_string
	searchmenus[searchmenus.length] = document.searchform.class3_string
	searchmenus[searchmenus.length] = document.searchform.class4_string
	searchmenus[searchmenus.length] = document.searchform.class5_string   
     }

    for (var i = 0; i < searchmenus.length; i++) {
        if (searchmenus[i].selectedIndex >= 0) {
//	    savers[i] = searchmenus[i].options[searchmenus[i].selectedIndex].value;  // keep this value safe for later use
//	alert("savers is holding " + savers[i]);
   	    searchmenus[i].options[searchmenus[i].selectedIndex].value = searchmenus[i].options[searchmenus[i].options.selectedIndex].text;
        }
    }

//    var cat = 1;
//    for (var i = h; i < document.searchform.elements.length; i = i + j) {
//	if (cat > 5) {
//	break;
//	} else {	
//	cat++;
//	}
//	if (document.searchform.elements[i].options.selectedIndex >= 0) {
//	    if (document.searchform.elements[i].options[document.searchform.elements[i].options.selectedIndex].defaultSelected == 1) {
//	           // this is unchanged; so its children are unchanged as well
//	           break;
//	    } else {	
//alert(document.searchform.elements[i].options[document.searchform.elements[i].options.selectedIndex].value + " to " + document.searchform.elements[i].options[document.searchform.elements[i].options.selectedIndex].text);
//		// if the (blank) default isn't the selected one
//   	           document.searchform.elements[i].options[document.searchform.elements[i].options.selectedIndex].value = document.searchform.elements[i].options[document.searchform.elements[i].options.selectedIndex].text;
//                // and we keep going
//	    }
//        } 
//    }

}

function RestoreValues () {
alert("RestoreValues called");
    treeSubjects();

    searchmenus = new Array;

    if (done == "advancedsearch") {
        searchmenus[searchmenus.length] = document.searchform.c6_string;
        searchmenus[searchmenus.length] = document.searchform.c7_string;
        searchmenus[searchmenus.length] = document.searchform.c8_string;
        searchmenus[searchmenus.length] = document.searchform.c9_string;
        searchmenus[searchmenus.length] = document.searchform.c10_string;
    } else {
        searchmenus[searchmenus.length] = document.searchform.class1_string
        searchmenus[searchmenus.length] = document.searchform.class2_string
        searchmenus[searchmenus.length] = document.searchform.class3_string
        searchmenus[searchmenus.length] = document.searchform.class4_string
        searchmenus[searchmenus.length] = document.searchform.class5_string   
    }

    savers = new Array;  // hidden save the clobbered values	
    savers[savers.length] = document.searchform.save1.value;
    savers[savers.length] = document.searchform.save2.value;
    savers[savers.length] = document.searchform.save3.value;
    savers[savers.length] = document.searchform.save4.value;
    savers[savers.length] = document.searchform.save5.value;

    for (i = 0; i < searchmenus.length; i++) {
alert("savers val is " + savers[i]);
        if (savers[i] > 0) {
            searchmenus[i].options[searchmenus[i].selectedIndex].value = savers[i];
	alert("setting val to " + savers[i]);
        }
    }

//    for (i = 0; i < searchmenus.length; i++) {
//	opts = searchmenus[i].options;
//	s = opts.selectedIndex;
//        kids = new Array; // will placehold potential children
//            for (x = 0; x < families.length; x++) {
//	        if (families[x].parent == opts[s].value
//	            && families[x].level == (i + 1)) {
//	        opts[s].value = families[x].parentid;
//                kids = families[x].children;
//	        break;
//            }
//       }
//
//    }



}


