function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// general purpose form validation
function form_validate(form) {
	var thisfield;
	var errors = '';
	var count = 0;

	// required is an 
	for(field in required) {
		thisfield = eval("form." + field);
		var re = new RegExp("^[ \t\v\f\n\r]$","i"); 

		if( (thisfield.value == "") || (thisfield.value == null) || (re.test(thisfield.value)) ) {
			errors += required[field] + " is required.\n";
		}
	}

	for(field in maxselected) {
		var selectedCount = 0;
		thisfield = eval("form." + field);
		fieldname = field.toString();
		if(thisfield == null) {
			fieldname = field.toString() + "[]";
		}
		for(i = 0; i < form.elements.length; i++) {
			if(form.elements[i].name == fieldname) {
				thisfield = form.elements[i];
				switch(thisfield.type) {
					case "select-multiple":
					case "select-one":
						for(i = 0; i < thisfield.options.length; i++) {
							if(thisfield.options[i].selected == true) {
								selectedCount++;
							}
						}
						if(selectedCount > maxselected[field].value) {
							errors += "Please select up to " + maxselected[field].value + " choices for " + maxselected[field].name + "\n";
						}
						break;
					case "checkbox":
						for(i = 0; i < thisfield.options.length; i++) {
							if(thisfield.options[i].checked == true) {
								selectedCount++;
							}
						}
						if(selectedCount > maxselected[field].value) {
							errors += "Please select up to " + maxselected[field].value + " choices for " + maxselected[field].name + "\n";
						}
						break;
					default:
						break;
				}
			}
		}
	}

	for(field in minselected) {
		var selectedCount = 0;
		thisfield = eval("form." + field);
		fieldname = field.toString();
		if(thisfield == null) {
			fieldname = field.toString() + "[]";
		}
		for(i = 0; i < form.elements.length; i++) {
			if(form.elements[i].name == fieldname) {
				thisfield = form.elements[i];
				switch(thisfield.type) {
					case "select-multiple":
					case "select-one":
						for(i = 0; i < thisfield.options.length; i++) {
							if(thisfield.options[i].selected == true) {
								selectedCount++;
							}
						}
						if(selectedCount < minselected[field].value) {
							errors += "Please select at least " + minselected[field].value + " choices for " + minselected[field].name + "\n";
						}
						break;
					case "checkbox":
						for(i = 0; i < thisfield.options.length; i++) {
							if(thisfield.options[i].checked == true) {
								selectedCount++;
							}
						}
						if(selectedCount < field.value) {
							errors += "Please select at least " + minselected[field].value + " choices for " + minselected[field].name + "\n";
						}
						break;
					default:
						break;
				}
			}
		}
	}


	// regexcheck is a 2-D array of name/value pairs containing all the for elements that need RegExp checking
	// pass the complete regular expression unquoted as the value
	for(field in regexcheck) {
		var re = new RegExp(regexcheck[field].value);
		var link = eval("form." + field + ".value");
		if(!re.test(link)) {
			errors += "Please enter a valid value for " + regexcheck[field].name + ".\n";
		}
	}

	if(errors) {
		alert(errors);
		return false;
	}
	
	return true;
}

// clear the "Search" text when they click in the search field
function clearSearch(field, val) {
	if(field.value == val) {
		field.value = '';
	}
}

function isvalidemail(str) {
	var email = /^.+@.+\..+$/; 
	return email.test(str);
}

// validate the form that the supplier is contacted from
function check_supplier_form(form) {
	var errCount=0;
	var errors="Please correct the following errors:\n\n";
  if (form.name.value == '') {
  	errors+="Please include your name\n";
  	errCount++;
  }
  /*
  if(form.address.value == '') {
  	errors+="Please include your address.\n";
	errCount++;
  }
  if(form.city.value == '') {
	errors+="Please include your city.\n";
	errCount++;
  }
  if(form.zip.value == '') {
  	errors+="Please include your zipcode.\n";
	errCount++;
  }
  */
  if (form.country.value == '') {
    errors+="Please include your country\n";
	errCount++;
  }
  /*
  if(!isvalidemail(form.email.value)) {
     errors+="Please use a valid email address in the form: name@domain.com\n";
	 errCount++;
  }
  */
  if(form.email.value == ''){
  	errors+="Please include your email address.\n";
  	errCount++;
  }
  if(form.comment.value == '') {
  	errors+="Please include a comment.\n";
	errCount++;
  }
	if(errCount>0){
		alert(errors);
		return false;
	}
	return true;
}

// check the machinery and equipment quote form
function checkquote(form) {
	var errCount=0;
	var errors="Please correct the following errors:\n\n";
	
	if(form.last_name.value == '') {
		errors+="Please include your name.\n";
		errCount++;
/*		form.last_name.focus();
		return false;*/
	}
	if(form.company_name.value == '') {
		errors+="Please include your company.\n";
		errCount++;
/*		form.company_name.focus();
		return false;*/
	}
	if(!isvalidemail(form.email.value)) {
		errors+="Please include a valid email address in the form: name@domain.com\n";
		errCount++;
/*		form.email.focus();
		return false;*/
	}
	if(errCount>0){
		alert(errors);
		return false;
	}
	return true;
}

// check feedscrews contact form
function check_form(form) {
	var errCount=0;
	var errors="Please correct the following errors:\n\n";
	
  if (form.name.value == '') {
		errors+="Please include your Name.\n";
		errCount++;
  }
  if (form.company_name.value == '') {
	    errors+="Please include your  Company Name\n";
		errCount++;
  }
  /*
  if(form.address.value == '') {
  	errors+="Please include your address.\n";
  	errCount++;
  }
  if(form.city.value == '') {
  	errors+="Please include your city.\n";
	errCount++;
  }
  if(form.zip.value == '') {
  	errors+="Please include your zip/postal code.\n";
	errCount++;
  }else if(form.zip.value.length<5 || form.zip.value.length>10){
  	errors+="Please enter a valid zip/postal code.\n";
  	errCount++;
  }
  if(!isvalidemail(form.email.value)) {
     errors+="Please use a valid email address in the form: name@domain.com\n";
	 errCount++;
  }
  */
  if (form.country.value == '') {
    errors+="Please include your country.\n";
	errCount++;
  }
  if (form.email.value == '') {
    errors+="Please include your Email.\n";
	errCount++;
  }
  if(form.comment.value == '') {
  	errors+="Please include a Comment.";
	errCount++;
  }
	if(errCount>0){
		alert(errors);
		return false;
	}  
  return true;
}

// this is used in check_supplier() to make sure
// at least one checkbox is checked
var checked = 0;
function handle_cat(cat) {
	if(cat.checked) {
		checked++;
	} else {
		checked--;
	}
}

function check_supplier(form) {
  if(form.supplier.value == '') {
  	alert("You must include a company name.");
    return false;
  }
  if(form.contact_fname.value == '') {
  	alert("You must include the contact's first name.");
  	return false;
  }
  if(form.contact_lname.value == '') {
  	alert("You must include the contact's last name.");
  	return false;
  }
  if(form.address1.value == '') {
  	alert("You must include the address.");
  	return false;
  }
  if(form.city.value == '') {
  	alert("You must include the city.");
  	return false;
  }
  if(form.phone.value == '') {
  	alert("You must include the phone number.");
  	return false;
  }
  if(form.fax.value == '') {
  	alert("You must include the fax number.");
  	return false;
  }
  if(!isValidEmail(form.email.value)) {
  	alert("You must include a proper email address in the form: name@domain.com");
  	return false;
  }
  var numcats = 0;
  for(i = 0; i < form.elements.length; i++) {
  	if(form.elements[i].name == 'cid[]' && form.elements[i].checked) {
  		numcats++;
  	}
  }
  if(numcats < 1) {
  	alert("You must select at least one product/service.");
  	return false;
  }
  if(form.rid.value == '') {
  	alert("You must select a region.");
  	return false;
  } 
  
  // make sure at least one "type" is checked
  var numtypes = 0;
  for(i = 0; i < form.elements.length; i++) {
  	if(form.elements[i].name == 'types[]' && form.elements[i].checked) {
  		numtypes++;
  	}
  }
  if(numtypes < 1) {
  	alert("You must select at least one supplier type.");
  	return false;
  }
  
}

function check_supplier_frontend(form) {
  if(form.supplier.value == '') {
  	alert("You must include a company name.");
    return false;
  }
  if(form.contact_fname.value == '') {
  	alert("You must include the contact's first name.");
  	return false;
  }
  if(form.contact_lname.value == '') {
  	alert("You must include the contact's last name.");
  	return false;
  }
  if(form.address1.value == '') {
  	alert("You must include the address.");
  	return false;
  }
  if(form.city.value == '') {
  	alert("You must include the city.");
  	return false;
  }
  if(form.phone.value == '') {
  	alert("You must include the phone number.");
  	return false;
  }
//  if(form.fax.value == '') {
  //	alert("You must include the fax number.");
  //	return false;
//  }
  if(!isValidEmail(form.email.value)) {
  	alert("You must include a proper email address in the form: name@domain.com");
  	return false;
  }
  if(form.region.value =='') {
  	alert("You must include a country.");
  	return false;
  }
}

function check_confirm(form) {
  if(form.rid.value == '') {
  	alert("You must select a region.");
  	return false;
  }
}
	
	

