function synchTopBottomCtl(formName, ctlName, location) {
	rForm = eval('document.' + formName);
   var otherLocation = (location == '') ? 'bottom' : ''; 	
	src = eval('rForm.' + ctlName + location);
	dest = eval('rForm.' + ctlName + otherLocation);
	if (src && dest) {
		if(src.length > 0) {
			for (i=0; i<src.length; i++) {
      		if (src[i].type == 'checkbox' || src[i].type == 'radio') {
      			dest[i].checked = src[i].checked;
      		}
      		else {
      			dest[i].value = src[i].value;
      		}
			}
		}
		else {
   		if (src.type == 'checkbox' || src.type == 'radio') {
   			dest.checked = src.checked;
   		}
   		else {
   			dest.value = src.value;
   		}
		}
	}
}

function nameForWindow(suffix) {
   var newname = eval('document.domain') + '_' + eval('suffix');
   return newname.replace(/\./g, '_');
}   
		
function getkey(e) {
	if (window.event)
	   return window.event.keyCode;
	else if (e)
	   return e.which;
	else
	   return null;
}


// The submitSearch function must be implemented in the containing page.
function searchboxKeyPress(e, formName, location){
	if (getkey(e)==13){
		submitSearch(formName, location);
		return false;
	}
	else {
		return true;
	}
}


function isValidKeyword(keywords) {
    if (keywords.match(/[A-Z]+/g) ||
        keywords.match(/[a-z]+/g) ||
        keywords.match(/[0-9]+/g)) {
        return true;
    }
	if(keywords == "" || keywords == null)
	{
		return true;
	}
    return false;
}


function isEmpty(control) {
	var s = control.value;
	// Trim leading whitespace.
	s = s.replace(/^\s+/g, '');
	return (s.length == 0);
}


function isEmptyKeyword(keywords) {
    if (keywords.match(/^ *$/)) {
        return true;
    }
	if(keywords == "" || keywords == null)
	{
		return true;
	}
    return false;
}


function isValidAdvancedSearch(formName, location) {
    rForm = eval('document.' + formName);

    // Keywords.
    keywords = eval('rForm.keywords' + location + '.value');
    if (!isEmptyKeyword(keywords) && isValidKeyword(keywords)) {
    	return true;
    }
    
    // Date.
    if (rForm.dateDropdown && rForm.dateDropdown.selectedIndex > 0) {
    	return true;
    }

	 // Document sources.
	 if (rForm.docSource[0] && rForm.docSource[0].checked == false) {
		return true;
	 }

	 // Checkboxes.
	 if (groupIsChecked(formName, 'rol') || groupIsChecked(formName, 'geography')
	 	 || groupIsChecked(formName, 'industry') || groupIsChecked(formName, 'contentType')
	 	 || groupIsChecked(formName, 'categoryType') || groupIsChecked(formName, 'formatType')
	 	 || groupIsChecked(formName, 'topic') ) {
		return true;
	 }
	 
	 return false;
}


function setCheckboxList(formName, groupName, checked) {
   rForm = eval('document.' + formName);
	group = eval('rForm.' + groupName);
	if (group) {
		if(group.length > 0) {
			for (i=0; i<group.length; i++) {
				group[i].checked = checked;
			}
		}
		else {
			group.checked = checked;
		}
	}
}


function controlListHead(formName, groupName, headerName) {
   rForm = eval('document.' + formName);
	group = eval('rForm.' + groupName);
	header = eval('rForm.' + headerName);
	if (group && header) {
		for (i=0; i<group.length; i++) {
         if (group[i].checked) {
            header[0].checked = false;
            header[1].checked = true;
            return;
         }
     }
     header[0].checked = true;
     header[1].checked = false;
	}
}


function groupIsChecked(formName, groupName) {
   rForm = eval('document.' + formName);
	group = eval('rForm.' + groupName);
	if (group) {
		if(group.length > 0) {
			for (i=0; i<group.length; i++) {
				if (group[i].checked) {
					return true;
				}
			}
		}
		else {
			if (group.checked) {
				return true;
			}
		}
	}
   return false;
}


function resetGroup(formName, groupName) {
   rForm = eval('document.' + formName);
   setCheckboxList(formName, groupName, false);
	group = eval('rForm.' + groupName + 'Head');
	if (group && group[0]) {
		group[0].checked = true;
	}
}


function resetAdvancedSearch(formName) {
   rForm = eval('document.' + formName);
   ctl = rForm.keywords;
   if (ctl) {
   	ctl.value='';
   }

   ctl = rForm.archived;
   if (ctl) {
   	ctl.checked=false;
   }

   ctl = rForm.resultsPerPage;
	if (ctl && ctl.length > 1) {
		ctl.selectedIndex = 1;
	}

   ctl = rForm.dateDropdown;
	if (ctl) {
		ctl.selectedIndex = 0;
	}
	
   ctl = rForm.docSource;
	if (ctl && ctl.length > 0) {
		ctl[0].checked = true;
	}
	
	// Checkboxes.
	resetGroup(formName, 'termLocation');
	resetGroup(formName, 'rol');
	resetGroup(formName, 'geography');
	resetGroup(formName, 'industry');
	resetGroup(formName, 'contentType');
	resetGroup(formName, 'categoryType');
	resetGroup(formName, 'formatType');
	resetGroup(formName, 'topic');
}


function openHelp(href, windowHeight) {
	var newname = nameForWindow('parmhelp');
	newWin = window.open(href,newname,
			'width=600,height=' + windowHeight + ',resizable=yes,scrollbars=yes,toolbar=no,menubar=no');
	newWin.focus();
	return false;
}


function hideSearchInHeader() {
	if (document.getElementById && document.getElementById('searchrelatedstuff')) {
		document.getElementById('searchrelatedstuff').style.visibility = 'hidden';
	}
	else {
		if (document.layers && document.searchrelatedstuff) { 
			document.searchrelatedstuff.visibility = 'hidden';
		}
		else if (document.all.searchrelatedstuff) { // IE 4
			document.all.searchrelatedstuff.style.visibility = 'hidden';
		} 
	}
}


