<!--window.defaultStatus = document.titlevar strFieldValue = new String("");var bolValueChanged = new Boolean(false);function onSubmit(){	try{		if(document.forms[0].top_search.value!="" ){			return doDirectorySearch('top_search')		}		else if(document.forms[0].quick_search.value!="" ){			return doDirectorySearch( 'quick_search');		}		else			return false;	}	catch(e){		return false;	}		}//end onSubmit()function doDirectorySearch(field){	var viewpath = '/' + document.forms[ 0 ].webDBname.value + '/vwSearchAll';	 // sort order of results remains the same.	self.location = viewpath + '?SearchView&SearchOrder=1&SearchWv=False&SearchFuzzy=False&SearchThesaurus=False&Query=' + getFieldValue( field )		return false} // end doDirectorySearch()function queryChanged(){	if(bolValueChanged==true)		if(strFieldValue.length>0){			bolValueChanged = false;			return true;		}	return false;} 	// end queryChanged()function removeCookie() {	if( document.cookie.indexOf( 'SAVisitorCookie' ) == -1 ) {}	else{	document.cookie="SAVisitorCookie=hello;path=/;  expires= Fri, 02-Jan-1970 00:00:00 GMT"	window.status = 'The Organic Directory registration cookie removed.'	}if( document.cookie.indexOf( 'cartid' ) == -1 ) {}else 	{	document.cookie="cartid=hello;path=/;  expires= Fri, 02-Jan-1970 00:00:00 GMT"	window.status = 'Cart Id cookie removed.'	}}function WM_toggle(id){	if (document.all){		if(document.all[id].style.display == 'none'){			document.all[id].style.display = 'block';		} else {			document.all[id].style.display = 'none';		}		return false;	} else if (document.getElementById){		if(document.getElementById(id).style.display == 'none'){			document.getElementById(id).style.display = 'block';		} else {			document.getElementById(id).style.display = 'none';		}		return false;	}}	// end of WM_togglefunction handleKey (evt) { 	var eventID = (navigator.appName == 'Netscape')?evt.which:evt.keyCode;	if(eventID == 13 )		Enter(); }	// end of handleKeyfunction Enter(){	doSearch( );}//********************************************************************************************************// String Functions from JS Library Chap 26 example 08. (inRange Chap 28 eg 3.//********************************************************************************************************// BE WARNED - getFront & getEnd return "null" if searchStr is not found !function getFront( mainStr, searchStr ) {// getFront extracts the front part of a string prior to searchString.	foundOffset = mainStr.indexOf(searchStr)	if (foundOffset == -1) {		return null	}	return mainStr.substring(0,foundOffset) }function getEnd(mainStr,searchStr) {// getEnd extracts the back end of string after searchString	foundOffset = mainStr.indexOf(searchStr)	if (foundOffset == -1) {		return null	}	return mainStr.substring(foundOffset+searchStr.length,mainStr.length) }function insertString(mainStr,searchStr,insertStr) {// insert insertString immediately before searchString	var front = getFront(mainStr,searchStr)	var end = getEnd(mainStr,searchStr)	if (front != null && end != null) {		return front + insertStr + searchStr + end 	}	return mainStr }function deleteString(mainStr,deleteStr) {// remove deleteString from the mainStr	return replaceString(mainStr,deleteStr,"") }function replaceString(mainStr,searchStr,replaceStr) {// replace searchString in mainStr with replaceString	var tmpStr = mainStr	while ( tmpStr.indexOf( searchStr ) >= 0 ) {		var front = getFront( tmpStr,searchStr)		var end = getEnd( tmpStr,searchStr)		if (front != null && end != null) {			tmpStr = front + replaceStr + end 	}	}	return tmpStr }function inRange(inputStr, lo, hi) {// function inRange determines if inputStr is in acceptable range of hi and lo.	var num = parseInt(inputStr, 10)	if (num < lo || num > hi) {		return false	}	return true }//********************************************************************************************************// end of String Functions //********************************************************************************************************function getField( fieldName, formObj) {// Returns the field with given name from specified form, or null if the field is not found.   // Default to document.forms[0]   if ( arguments.length < 2 )      formObj = document.forms[0];      var field = formObj[ fieldName ];      // If field not found, return null, else return the field   return ( typeof field == "undefined") ? null : field;}function resolveToFieldObj( f) {// f may be either a field object or a string which is the name of a field   var field;      if ( typeof f == "string")      field = getField( f);   else      field = f;             return field;}function getFieldType( f ) {      field = resolveToFieldObj( f );      // If the type attribute is undefined then this is a multi-element field e.g. radio button/checkbox   if ( typeof field.type == "undefined")      return field[0].type;   else      return field.type;}function getFieldValue( f ) {// depending on what type the specified field is, extract and return its value.   var field = resolveToFieldObj( f );      var fieldValue;   switch ( getFieldType( field)) {   case "radio":   case "checkbox":      for ( i = 0; i < field.length; i++ ) {         if ( field[ i].checked) {            fieldValue = field[ i].value;            break;         }      }      if ( fieldValue == null)         fieldValue = "";      break;   case "select-one":   case "select-multiple":      var i = field.selectedIndex;      if ( i == -1)         fieldValue = "";      else         fieldValue = field.options[ i].text;      break;       default:      fieldValue = field.value   }    return fieldValue;}function emailCheck (emailStr) {	/* The following variable tells the rest of the function whether or not	to verify that the address ends in a two-letter country or well-known	TLD.  1 means check it, 0 means don't. */	var checkTLD=1;	/* The following is the list of known TLDs that an e-mail address must end with. */	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;	/* The following pattern is used to check if the entered e-mail address	fits the user@domain format.  It also is used to separate the username	from the domain. */	var emailPat=/^(.+)@(.+)$/;	/* The following string represents the pattern for matching all special		characters.  We don't want to allow special characters in the address. 	These characters include ( ) < > @ , ; : \ " . [ ] */	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";	/* The following string represents the range of characters allowed in a 		username or domainname.  It really states which chars aren't allowed.*/	var validChars="\[^\\s" + specialChars + "\]";	/* The following pattern applies if the "user" is a quoted string (in	which case, there are no rules about which characters are allowed	and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com	is a legal e-mail address. */	var quotedUser="(\"[^\"]*\")";	/* The following pattern applies for domains that are IP addresses,	rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal	e-mail address. NOTE: The square brackets are required. */	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;	/* The following string represents an atom (basically a series of non-special characters.) */	var atom=validChars + '+';	/* The following string represents one word in the typical username.	For example, in john.doe@somewhere.com, john and doe are words.	Basically, a word is either an atom or quoted string. */	var word="(" + atom + "|" + quotedUser + ")";	/* The following pattern describes the structure of the user */	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");	/* The following pattern describes the structure of a normal symbolic	domain, as opposed to ipDomainPat, shown above. */	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");	/* Finally, let's start trying to figure out if the supplied address is valid. */	/* Begin with the coarse pattern to simply break up user@domain into	different pieces that are easy to analyze. */	var matchArray=emailStr.match(emailPat);		if (matchArray==null) { 		/* Too many/few @'s or something; basically, this address doesn't		even fit the general mould of a valid e-mail address. */		alert("Your Email Address seems incorrect (check @ and .'s)");		return false;	}		var user=matchArray[1];	var domain=matchArray[2];	/* Start by checking that only basic ASCII characters are in the strings (0-127). */	for (i=0; i<user.length; i++) {		if (user.charCodeAt(i)>127) {			alert("Your Email Address contains invalid characters.");			return false;   		}	}		for (i=0; i<domain.length; i++) {		if (domain.charCodeAt(i)>127) {			alert("Your Email Address domain name contains invalid characters.");			return false;   		}	}		/* See if "user" is valid */	if (user.match(userPat)==null) {		/* user is not valid */		alert("Your Email Address does not seem to be valid.");		return false;	}		/* if the e-mail address is at an IP address (as opposed to a symbolic	host name) make sure the IP address is valid. */	var IPArray=domain.match(ipDomainPat);		if (IPArray!=null){ /* this is an IP address */		for (var i=1;i<=4;i++) {			if (IPArray[i]>255) {				alert("Your Email Address Destination IP address is invalid!");				return false;   			}		}				return true;	}		/* Domain is symbolic name.  Check if it's valid. */	domain = domain.toLowerCase()	var atomPat=new RegExp("^" + atom + "$");	var domArr=domain.split(".");	var len=domArr.length;		for (i=0;i<len;i++){		if (domArr[i].search(atomPat)==-1) {			alert("Your Email Address domain name does not seem to be valid.");			return false;   		}	}		/* domain name seems valid, but now make sure that it ends in a	known top-level domain (like com, edu, gov) or a two-letter word,	representing country (uk, nl), and that there's a hostname preceding 	the domain or country. */	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {		alert("Your Email Address must end in a well-known domain eg .com or a two letter country code eg .uk.");		return false;	}	/* Make sure there's a host name preceding the domain. */	if (len<2){		alert("Your Email Address must end in a well-known domain eg .com or a two letter country code eg .uk.");		return false;	}		/* If we've gotten this far, everything's valid! */	return true;	}// end of function emailCheck // end -->