/*
DL rewritten this minging fucking script for redesign - 13/070/2006
*/



var minNumSearchChars=3;
var charsBeforeWildcard=2;
//from home page
var quickSearch=0;
//basic person search
var basicSearch=1;
//person search with place keywords
var expandedSearch=2;
//person search with locale
var expandedLocaleSearch=3;
//address search (two fields)
var addressSearch=4;
//address search with locale
var addressSearchWithLocale=5;
//place search
var localeSearch=6;
//insitution search
var institutionSearch=7;
// vessels
var vesselSearch=8;
//direct page
var directSearch=9;
//bmd
var bmdSearch = 10;
//1851
var c1851Search = 11;

var charge="image/icon-pound.gif";
var nocharge="image/icon-nocharge.gif";
var blank="image/charge_blank.gif";




function validateSearch () {
	alert('validateSearch');
}

function GetClassName(node) {
	sClassName = node.getAttribute('className');
	if(sClassName) {
		return sClassName
	}else{
		sClassName = node.getAttribute('class');
		return sClassName
	}
}

function unsetHiddenVars () {
	var hiddenDiv = document.getElementById('placeoptions');
	if(!hiddenDiv) return;
	//is it visible?
	if(hiddenDiv.style.visibility != "visible") {
		//if not then unset all the hidden fields
		unsetAllInputFields(hiddenDiv);
	}
}


function unsetAllInputFields(node) {
	if(node.hasChildNodes()) {
		for(var i=0; i<node.childNodes.length; i++) {
			unsetAllInputFields(node.childNodes[i]);
		}
	}else{
		if((node.nodeType != 3) && (GetClassName(node) == 'field')) {
			node.value = "";
		}
	}
}

// for searche sthat have a minimum requirement of surname only
function simpleSearchValidate() {
	
	var sValidate = "";
	if (document.contents.surname) {
		if(document.contents.surname.value.length == 0) {
			sValidate = "Please enter a surname\n";
		}
	//}else{
	}
	if(sValidate != "" && sValidate.length > 0) {
		alert(sValidate);
		return false;
	}else{
		return true;
	}

}


/***************/
function validateSearchCheck () {

	var notEntered="The following must be entered:";
	var nameMissing="You must enter either Last Name or First Name";
	var ageMissing="If you enter only First Name, you must also enter Gender, Age and Where Born";
	var not="NOT cannot be used as a place keyword.";
	var NAN=" must be a number";
	var msg="";
	var newEntry=true;
	var wildcard="At least "+charsBeforeWildcard+" characters must be entered before a wildcard";
	var searchType = document.contents.searchtype;
	
	//default is that form is ok
	var correct=true;
	
	//if its not found then submit anyway
	if(!searchType) {
		//remoce this line
		//alert('script not implemented for this search type');
		return true
	}
	
	removeAllSpaces();
	unsetHiddenVars();
	
	/* quick search */
	
	if(searchType.value==quickSearch) {
		charsBeforeWildcard=document.contents.charsBeforeWildcard.value;
		
		//vars
		var lastName=document.contents.surname;
		var firstName=document.contents.first_name;
		//first name validation
		if (firstName.value.length == 0) {
			correct=false;
			msg+="You must enter a forename.\n";
		}
		//first name validation
		if (lastName.value.length == 0) {
			correct=false;
			msg+="You must enter a surname.\n";
		}

	/* person searches */
	
	}else if(searchType.value==basicSearch || searchType.value==expandedSearch || searchType.value==expandedLocaleSearch){
		
		charsBeforeWildcard=document.contents.charsBeforeWildcard.value;
		
		//vars
		var lastName=document.contents.surname;
		var firstName=document.contents.first_name;
		var age=document.contents.age;
		var birthYear=document.contents.birthYear;
		var yearRange=document.contents.yearRange;
		var ageRange=document.contents.ageRange;
		var placeOfBirth=document.contents.placeOfBirth;
		var localeKeywords=document.contents.localeKeywords;
		var fName = true;
		
		//first name validation
		if (firstName.value.length == 0) {
			fName = false;
		}
		
		//surname
		var lastName=document.contents.surname;
		var lastNameEntered = false;
		if(!isValidSearchString(lastName.value) && (lastName.value.length != 0) || (lastName.value.length == 0 && !fName ) ){
			correct=false;
			if(newEntry){
				msg+=nameMissing;
				newEntry=false;
			}
			lastName.focus();
		} else if (lastName.value.length != 0){
			lastNameEntered = true;
		}
		
		//age
		var ageEntered = false;
		if(age) {
			if(age.value.length>0){
				ageEntered = true;
				if(!isDigit(age.value)){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Age"+NAN;
					age.value="";
					age.focus();
				}
			}
			if(age.value.length>0){
				var ageVal=parseInt(age.value);
				if(ageVal>200){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="An invalid age was entered";
					age.focus();
				}
			}
			if(ageRange.value.length>0){
				if(!isDigit(ageRange.value)){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Age Range"+NAN;
					ageRange.value="";
					ageRange.focus();
				}
				if(age.value.length<=0){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Age must be entered for Age Range to be used";
					age.focus();
				}
			}
		}
		
		//birth year
		var birthYearEntered = false;
		if(birthYear) {
			if(birthYear.value.length>0) {
				birthYearEntered = true;
				var yearVal=parseInt(birthYear.value);
				if(yearVal<1750 || yearVal>1901){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Please enter a year between 1750 and 1901";
					birthYear.focus();
				}
			}
			if(yearRange.value.length>0){
				if(!isDigit(yearRange.value)){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Year Range"+NAN;
					yearRange.value="";
					yearRange.focus();
				}
				if(birthYear.value.length<=0){
					correct=false;
					if(!newEntry){
						msg+="\n\n";
					}
					newEntry=false;
					msg+="Birth Year must be entered for Year Range to be used";
					birthYear.focus();
				}
			}
		}
		//birthplace
		var placeOfBirth = document.contents.placeOfBirth;
		var placeEntered = false;
		if (placeOfBirth.value.length != 0) {
			placeEntered = true;
		}
		var gender = document.contents.sex;
		
		var genderEntered = false;
		if(gender) {
			if(gender.options[gender.options.selectedIndex].value.length != 0){
				genderEntered = true;
			}
		}		
		if (!lastNameEntered && !(fName && placeEntered && (ageEntered || birthYearEntered))) {
			correct=false;
			//which type of form (old or new)
			if (document.contents.birthYear) {
				msg += "\nIf you enter only First Name, you must also enter Birth Year and Where Born.";
			}else{
	            msg += "\n" + ageMissing;
			}
		}
	
		if(placeEntered && !genderEntered){
			correct = false;
			msg += "\nIf you enter Where Born, you must also enter Gender.";
		}
		if(localeKeywords.value.toUpperCase().indexOf('NOT ') == 0){
			if(!correct){
				msg += "\n\n";
			}
			correct = false;
			msg += not;
			localeKeywords.focus();
		}
		
		//basic page - searchType 1
		if(searchType.value==basicSearch){
			if(!isValidWildcard(lastName.value) ||
			!isValidWildcard(firstName.value) ||
			!isValidWildcard(placeOfBirth.value) ||
			!isValidWildcard(localeKeywords.value)){
				if(!correct) msg+="\n\n";
				msg+=wildcard;
				correct=false;
			}
		}
		
		//advanced 		
		if(searchType.value==expandedSearch){
			var street=document.contents.street;
			var otherName=document.contents.otherName;
			var occupation=document.contents.occupation;
			if(street.value.length>0 && localeKeywords.value.length==0){
				correct=false;
				if(!newEntry){
					msg+="\n\n";
				}
				newEntry=false;
				msg+="Place Keywords must be entered in addition to House and/or Street";
				localeKeywords.focus();
			}
			if(!isValidWildcard(lastName.value) ||
			!isValidWildcard(firstName.value) ||
			!isValidWildcard(otherName.value) ||
			!isValidWildcard(occupation.value) ||
			!isValidWildcard(placeOfBirth.value) ||
			!isValidWildcard(street.value) ||
			!isValidWildcard(localeKeywords.value)){
				if(!correct) msg+="\n\n";
				msg+=wildcard;
				correct=false;
			}
		}
		
		//advanced with locale
		if(searchType.value==expandedLocaleSearch){
			var street=document.contents.street;
			var otherName=document.contents.otherName;
			var occupation=document.contents.occupation;
			var localeKeywords=document.contents.localeKeywords;
			var adminCounty=document.contents.adminCounty;
			var civilParish=document.contents.civilParish;
			var municipalBorough=document.contents.municipalBorough;
			var municipalWard=document.contents.municipalWard;
			var town=document.contents.town;
			var ruralSanitaryDistrict=document.contents.ruralSanitaryDistrict;
			var borough=document.contents.borough;
			var ecclParish=document.contents.ecclParish;
			if(street.value.length>0 && 
			localeKeywords.value.length==0 && 
			adminCounty.value.length==0 &&
			civilParish.value.length==0 &&
			municipalBorough.value.length==0 &&
			municipalWard.value.length==0 &&
			town.value.length==0 &&
			ruralSanitaryDistrict.value.length==0 &&
			borough.value.length==0 &&
			ecclParish.value.length==0){
				correct=false;
				if(!newEntry){
					msg+="\n\n";
				}
				newEntry=false;
				msg+="Place Keywords or one of the advanced address fields must be entered in addition to House and/or Street";
				localeKeywords.focus();
			}
			if(!isValidWildcard(lastName.value) ||
			!isValidWildcard(firstName.value) ||
			!isValidWildcard(otherName.value) ||
			!isValidWildcard(occupation.value) ||
			!isValidWildcard(placeOfBirth.value) ||
			!isValidWildcard(street.value) ||
			!isValidWildcard(localeKeywords.value) ||
			!isValidWildcard(adminCounty.value) ||
			!isValidWildcard(civilParish.value) ||
			!isValidWildcard(municipalBorough.value) ||
			!isValidWildcard(municipalWard.value) ||
			!isValidWildcard(town.value) ||
			!isValidWildcard(ruralSanitaryDistrict.value) ||
			!isValidWildcard(borough.value) ||
			!isValidWildcard(ecclParish.value)){
				if(!correct) msg+="\n\n";
				msg+=wildcard;
				correct=false;
			}
		}
		
	/* institution */
	
	}else if(searchType.value==institutionSearch){
		var institutionName=document.contents.institutionName;
		var localeKeywords=document.contents.localeKeywords;
		var adminCounty=document.contents.adminCounty;
		var civilParish=document.contents.civilParish;
		var municipalBorough=document.contents.municipalBorough;
		var municipalWard=document.contents.municipalWard;
		var town=document.contents.town;
		var ruralSanitaryDistrict=document.contents.ruralSanitaryDistrict;
		var borough=document.contents.borough;
		var ecclParish=document.contents.ecclParish;
		if(!isValidSearchString(institutionName.value)){
			correct=false;
			msg+=notEntered;
			msg+="\nInstitution Name";
			institutionName.focus();
		}
		if(localeKeywords.value.toUpperCase().indexOf('NOT ') == 0){
			if(!correct){
				msg += "\n\n";
			}
			correct = false;
			msg += not;
			localeKeywords.focus();
		}
		if(!isValidWildcard(institutionName.value) ||
		!isValidWildcard(localeKeywords.value) ||
		!isValidWildcard(adminCounty.value) ||
		!isValidWildcard(civilParish.value) ||
		!isValidWildcard(municipalBorough.value) ||
		!isValidWildcard(municipalWard.value) ||
		!isValidWildcard(town.value) ||
		!isValidWildcard(ruralSanitaryDistrict.value) ||
		!isValidWildcard(borough.value) ||
		!isValidWildcard(ecclParish.value)){
			if(!correct){
				msg += "\n\n";
			}
			correct=false;
			msg+=wildcard;
		}
	}
	
	/* address */
	
	else if(searchType.value==addressSearch)
	    {
			var street=document.contents.street;
			var localeKeywords=document.contents.localeKeywords;
			
	        var streetPresent = false;
	        var localePresent = false;        
	
	        if(street.value.length == 0) 
	        {
			  streetPresent = false;
	        }
	        else
	        {
	          streetPresent = true;
	        }
	
	        if(localeKeywords.value.length == 0)
	        {
	          localePresent = false;
	        }
	        else
	        {
	          localePresent = true;
	        }
	
	        if(!streetPresent)
	        {
	          correct = false;
	          if(newEntry)
	          {
	            msg += notEntered;
	            newEntry = false;
	          }
	
	          msg += "\nHouse and/or Street";
	          street.focus();
	        }
	        
	        if(!localePresent)
	        {
	          correct = false;
	          if(newEntry)
	          {
	            msg += notEntered;
	            newEntry = false;
	          }
	
	          msg += "\nPlace Keywords";
	          localeKeywords.focus();
	
	        }
	        
	        if(correct == true)
	        {
			  prob = isValidStreet(street.value);
			  if( prob > 0)
			  {
				correct=false;
				if ( prob == 1)
				{
					msg+="\n"+wildcard + ", not including house numbers";
				}
				else
				{
					msg+="The House and/or Street field must contain a house or street name.";
				}
			
				street.focus();
			  }
	
	          var validStreet = isValidMultipleWordWildcard(street.value);
	          if(validStreet == false)
	          {
	            if(!correct)
				{
					msg += "\n\n";
				}
	            else
	            {
	       			msg += "Need to have at least two characters before each wildcard";
	            }
			               
				correct = false;
	 			street.focus();
	          }
	 		
	          if(localeKeywords.value.toUpperCase().indexOf('NOT ') == 0)
			  {
			  	if(!correct)
				{
					msg += "\n\n";
				}
			
				correct = false;
				msg += not;
				localeKeywords.focus();
			  }
			
	          if(!isValidSearchString(localeKeywords.value))
	          {
	            if(!correct)
	            {
	              msg += "\n\n";
	            } 
	
	            msg += "Place Keywords is an invalid search parameter.\n";
	            correct = false;
	          }
	
			  if(!isValidWildcard(localeKeywords.value))
			  {
				if(!correct)
				{
					msg += "\n\n";
				}
			
				correct=false;
				msg+=wildcard;
			  }
	
	          var vaildPlaceKeywords = isValidMultipleWordWildcard(localeKeywords.value);
	          if(vaildPlaceKeywords == false)
	          {
	            if(!correct)
				{
				  msg += "\n\n";
				}
	            else
	            {
	              if(validStreet == true)
	              {
		    		  msg += "Need to have at least two characters before each wildcard\n";
	              }
	            }
	
	            correct = false;
	 			localeKeywords.focus();
	          }
	       }
    }

	/* address with locale	*/
	
	else if(searchType.value==addressSearchWithLocale)
	{
		var street=document.contents.street;
    	var adminCounty=document.contents.adminCounty;
		var civilParish=document.contents.civilParish;
		var municipalBorough=document.contents.municipalBorough;
		var municipalWard=document.contents.municipalWard;
		var urbanSanitaryDistrict=document.contents.urbanSanitaryDistrict;
		var town=document.contents.town;
		var ruralSanitaryDistrict=document.contents.ruralSanitaryDistrict;
		var borough=document.contents.borough;
		var ecclParish=document.contents.ecclParish;
		var wildCardProb=false;
		
        var streetPresent = false;
        var otherPresent = false;

        if(street.value.length == 0) 
        {
		  streetPresent = false;
        }
        else
        {
          streetPresent = true;
        }

        if ((adminCounty.value.length == 0)           && 
            (civilParish.value.length == 0)           && 
            (municipalBorough.value.length == 0)      && 
            (municipalWard.value.length == 0)         &&
            (town.value.length == 0)                  && 
            (ruralSanitaryDistrict.value.length == 0) && 
            (borough.value.length == 0)               && 
            (ecclParish.value.length == 0))
        {
          otherPresent = false;
        }
        else
        {
          otherPresent = true;
        }

        if(!streetPresent || !otherPresent)
        {
          correct=false;
		  if(newEntry)
		  {
		    msg+=notEntered;
		    newEntry=false;
		  }
			
		  msg+="\nHouse/Street and at least one other field";
		  street.focus();
        }

        if(correct == true)
        {
		  prob = isValidStreet(street.value);
		  if( prob > 0)
		  {
			correct=false;
			if (prob == 1)
			{
				msg+="\n"+ wildcard + ", not including house numbers";
			}
			else
			{
				msg+="The House and/or Street field must contain a house or street name.";
  			}
		
			street.focus();
		  }

          var validStreet = isValidMultipleWordWildcard(street.value);
          if(validStreet == false)
          {
            if(!correct)
		    {
		      msg += "\n\n";
		    }
		    else
            {
              msg += "Need to have at least two characters before each wildcard";
            }
		    
            correct = false;
		    street.focus();
          }

          if(  !isValidSearchString(adminCounty.value)
            && !isValidSearchString(civilParish.value)
            && !isValidSearchString(municipalBorough.value)
            && !isValidSearchString(municipalWard.value)
            && !isValidSearchString(town.value)
            && !isValidSearchString(ruralSanitaryDistrict.value)
            && !isValidSearchString(borough.value)
            && !isValidSearchString(ecclParish.value))
            {
	          correct=false;
			  msg="\nInvalid search string";
			  street.focus();
            }		
		
		    if(!isValidMultipleWordWildcard(adminCounty.value)            ||
		       !isValidMultipleWordWildcard(civilParish.value)            ||
		       !isValidMultipleWordWildcard(municipalBorough.value)       ||
   		       !isValidMultipleWordWildcard(municipalWard.value)          ||
		       !isValidMultipleWordWildcard(town.value)                   ||
		       !isValidMultipleWordWildcard(ruralSanitaryDistrict.value)  ||
		       !isValidMultipleWordWildcard(borough.value)                ||
		       !isValidMultipleWordWildcard(ecclParish.value))
		    {
			  if(!correct)
			  {
				msg += "\n\n";
			  }
              else
              {
                if(validStreet == true)
                {
			      msg+= "Need to have at least two characters before each wildcard";
                }
              }
		
			  correct=false;
		    }
        }
	}
	
	/* place */
	
	else if(searchType.value==localeSearch){
		var regSubDistrict=document.contents.regSubDistrict;
		var regDistrict=document.contents.regDistrict;
		var localeKeywords=document.contents.localeKeywords;
		var adminCounty=document.contents.adminCounty;
		var civilParish=document.contents.civilParish;
		var municipalBorough=document.contents.municipalBorough;
		var municipalWard=document.contents.municipalWard;
		//var urbanSanitaryDistrict=document.contents.urbanSanitaryDistrict;
		var town=document.contents.town;
		var ruralSanitaryDistrict=document.contents.ruralSanitaryDistrict;
		var borough=document.contents.borough;
		var ecclParish=document.contents.ecclParish;
		
// DI - Issue 257/268/274 - made admin county mandatory
//		if (!isValidSearchString(localeKeywords.value)) {
//			correct=false;
//			msg="You must enter at least one Place Keyword";
//			localeKeywords.focus();
//		}
		
		if (!isValidSearchString(adminCounty.value)) {
			correct=false;
			msg="You must enter a value for Administrative County";
			localeKeywords.focus();
		}
		
		if(localeKeywords.value.toUpperCase().indexOf('NOT ') == 0){
			if(!correct){
				msg += "\n\n";
			}
			correct = false;
			msg += not;
			localeKeywords.focus();
		}
		if(!isValidWildcard(regDistrict.value) ||
		!isValidWildcard(regSubDistrict.value) ||
		!isValidWildcard(localeKeywords.value) ||
		!isValidWildcard(adminCounty.value) ||
		!isValidWildcard(civilParish.value) ||
		!isValidWildcard(municipalBorough.value) ||
		!isValidWildcard(municipalWard.value) ||
		!isValidWildcard(town.value) ||
		!isValidWildcard(ruralSanitaryDistrict.value) ||
		!isValidWildcard(borough.value) ||
		!isValidWildcard(ecclParish.value)){
			if(!correct) msg+="\n\n";
			msg+=wildcard;
			correct=false;
		}
	}

	/* vessel search */
	
	else if(searchType.value==vesselSearch){
		var vesselName=document.contents.vesselName;
		if(!isValidSearchString(vesselName.value)){
			msg=notEntered;
			msg+="\nVessel Name";
			correct=false;
			vesselName.focus();
		}
		if(!isValidWildcard(vesselName.value)){
			if(!correct){
				msg += "\n\n";
			}
			correct=false;
			msg+=wildcard;
			vesselName.focus();
		}
	}
	
	/* direct */
	
	else if(searchType.value==directSearch){
		var piece=document.contents.piece;
		var folio=document.contents.folio;
		var page=document.contents.page;
		if(!isDigit(piece.value)){
			correct=false;
			msg+="Piece"+NAN;
			piece.value="";
			piece.focus();
		}
		//if(piece.value.length==0 && page.value.length==0 && folio.value.length==0){
		//	if(!correct) msg+="\n\n";
		//	correct=false;
		//	msg+="Please enter some information to search for";
		//	folio.focus();
		//}
		else if(piece.value.length>0 && page.value.length>0 && folio.value.length==0){
			if(!correct) msg+="\n\n";
			correct=false;
			msg+="Folio must be entered for a page";
			folio.focus();
		}
	}
	
	/* 1851 */
	
	else if(searchType.value==c1851Search){
		msg=validateGeneralFields();
		if(msg.length > 0){
			correct=false;
		}
	}
	

	
	if(correct){
	
		/*
		do we show the scripted (full but hidden) result page 
		or just as many resords as the user wants
		*/
		if(canBrowserSupportScriptedResultSet()) {
			isScript = document.contents.isscriptable;
			if(isScript) {
				document.contents.isscriptable.value = true;
			}
		}
		showSubmitMsg();
		return true;
	}
	else{
		alert(msg.replace('_', ' '));
		//alert(document.contents.first_name.name);
		return false;
	}
}


function validateGeneralFields() {
	/*
	simple little function to check for presence of 
	fields on form and if they're present, validate them
	*/
	var sReturn = "";
	sReturn+=validateTextField(document.contents.first_name);
	sReturn+=validateTextField(document.contents.surname);
	sReturn+=validateAgeField();
	return sReturn;
}

function validateTextField(field) {
	var sReturn = "";
	if (field) {
		if(field.value.length == 0) {
			sReturn = "You must enter a "+field.name+"\n";
		}
	}
	return sReturn;
}

function validateAgeField() {

	var minYear;
	var maxYear;
	var sReturn = "";

	//is the field on the page?
	var birthYear = document.contents.year_from;
	if(birthYear) {


		if(document.contents.searchtype.value==c1851Search) {
			minYear = 1700;
			maxYear = 1851;
		}else{
			alert('search type?');
		}
		if(birthYear.value.length>0) {
			//birthYearEntered = true;
			var yearVal=parseInt(birthYear.value);
			if(yearVal<minYear || yearVal>maxYear){
				sReturn="Please enter a year between "+minYear+" and "+maxYear+"\n";
				birthYear.focus();
			}
		}
	}
	return sReturn;
}





function submitter(type, button, srch){
    if ( type == "SUBMIT"){
        document.contents.searchType.value = srch;
        document.contents.button.value = button;
        validateSearch();
    }
    else if ( type == "RESET"){
        document.contents.rType.value = srch;
        document.contents.button.value = button;
        document.contents.submit();
	}
	else if ( type == "NEXT"){
		goTo(srch);
	}
	else if ( type == "PREVIOUS"){
		goTo(srch);
	}
}
/*
function submitImage(row, imgQuery){
	box=eval("document.contents.chooser" + row );
	if(box.options[box.selectedIndex].value!="0"){
		document.contents.action=imgQuery+box.options[box.selectedIndex].value;
		document.contents.submit();
	}
	else{
		alert("That was not a valid entry");
	}
}*/

function imageSelected(context, name, value, row){
	box=eval("document.contents.pageType"+value);
	if ( box.value=="true"){
		box = eval("document.images.pictures" + row );
		box.src=charge;
	}
	else{
		box = eval("document.images.pictures" + row );
		if(value==0){
			box.src=blank;
		}
		else box.src=nocharge;
	}
}
function personImageSelected(value, imageLink, scheduleLink){
	box=eval("document.contents.pageType"+value);
	if ( box.value=="true"){
		document.images.pictures.src=charge;
	}
	else{
		document.images.pictures.src=nocharge;
	}
	if ( value == 14){
		document.contents.action = imageLink;
	}
	else if (value==15){
		document.contents.action = scheduleLink;
	}
	else document.contents.action = "";
}

function goTo(url) {
    if (document.images)
        location.replace(url);
    else
        location.href = url;
}

function canBrowserSupportScriptedResultSet() {
	if(document.getElementById) {
		return true;
	}else{
		return false;
	}
}
 
function isValidSearchString(string){
	var i;
	var cnt=0;
	var len=string.length;
	if(string.charAt(0)==' ') return false;
	for(i=0;i<len;i++){
		if(string.charAt(i)=='%'||string.charAt(i)=='*'||string.charAt(i)=='_'||string.charAt(i)=='\t'||string.charAt(i)=='?') cnt++;
	}
	if(cnt==len) return false;
	minNumSearchChars=document.contents.minNumSearchChars.value;
	if(string.length>=minNumSearchChars) return true;
	return false;
}
function isValidStreet(string){
	var i=0;
	var cnt=0;
	var len=string.length;
	// skip numbers and spaces
	while ( i < len && (IsNumeric(string.charAt(i)) ||
		string.charAt(i)==' '||string.charAt(i)=='\t')) {
		i++;
	}
	while  ( i < len && string.charAt(i)!='%'&&string.charAt(i)!='*'&&string.charAt(i)!='_'&&string.charAt(i)!='?') {
		if  ( string.charAt(i)==' '||string.charAt(i)=='\t') {
		}
		else {
			cnt++;
		}
		i++;
	}
	minNumSearchChars=document.contents.minNumSearchChars.value;
	if(cnt>=minNumSearchChars) return 0;
	if (i < len) return 1;
	return 2;
}
function isValidWildcard(string){
	charsBeforeWildcard=document.contents.charsBeforeWildcard.value;
	for(var i=0;i<string.length;i++){
		if(string.charAt(i)=='%'||string.charAt(i)=='*'||string.charAt(i)=='_'){
			if(i<charsBeforeWildcard) return false;
		}
	}
	return true;
}

function isValidMultipleWordWildcard(multipleWordString)
{
  var numberOfCharacters = multipleWordString.length;
  var charCount = 0;
  var validString = true;

  for(var count = 0; count < numberOfCharacters; count++)
  {
    if(multipleWordString.charAt(count) == ' ')
    {
      charCount = 0;
    }
    else if(multipleWordString.charAt(count) == '%' ||
       multipleWordString.charAt(count) == '_' ||
       multipleWordString.charAt(count) == '*')
    {
      if(charCount < 2)
      {
        validString = false;
        count = numberOfCharacters;
      }
    }
    else
    {
      charCount++;
    }
  }
  
  return validString;
}

function removeAllSpaces(){
	var fieldArray=document.contents.elements;
	var total = fieldArray.length;
	var cnt;
	var field;
	for(cnt=0;cnt<total;cnt++){
		field=fieldArray[cnt];
		if(typeof field.value == 'string'){
			if(isAllSpaces(field.value)){
				field.value="";
			}
		}
	}
}

function isAllSpaces(field){
	if(field.length>0){
		var allSpaces=true;
		var cnt;
		for(cnt=0;cnt<field.length;cnt++){
			if(field.charAt(cnt)!=' ' && field.charAt(cnt)!='\t') allSpaces=false;
		}
		return allSpaces;
	}
	return false;
}

