// validates main Lowcate search
function vsearch(srch) {
	var errors = '';
	var valid = true;
	
	var q = $j("#q").val();
	var s = $j("#s/OPTION:selected").val();
	if (q == '' || isBlank(q) || q == 'enter keyword(s)') { errors += 'Please enter keyword(s)\n'; }
	if (s == '' || isBlank(s)) { errors += 'Please select a category\n'; }
	if (errors.length) {
		alert(errors);
		valid = false;
	}
	return valid;
}

// finds if a string is blank (nothing but spaces)
function isBlank(v) {
	var blank = true;
	for (i = 0; i < v.length; i++) {
		if (v.charAt(i) != ' ') { blank = false; }
	}
	return blank;
}

// validate a form
function vform(frm) {
	var n =	 frm.length;	// number of inputs in the form
	var v = '';						// value of the current field
	var errors = '';			// error message to be alerted
	var reqs = 0;					// number of empty required fields
	var confs = 0;				// number of confirmed fields that dont match
	var emails = 0;				// number of invalid email addresses
	var isValid = true;		// whether or not form is valid
	
	for (i = 0; i < n; i++) {
	
		// check required fields
		if (frm[i].name.indexOf('_req') != -1) {
			// set v based on type of input
			switch (frm[i].type) {
				case 'text':
					v = frm[i].value; 
					break;
				case 'textarea':
					v = frm[i].value;
					break;
				case 'file':
					v = frm[i].value;
					break;
				case 'checkbox':
					break;
				case 'radio':
					break;
				case 'select-one':
					v = frm[i].options[frm[i].selectedIndex].value;
					break;
				default: break;
			}
			if ((v == '') || (isBlank(v))) { reqs++; }
		}
		
		// check confirmed fields
		if (frm[i].name.indexOf('_conf') != -1) {
			matchName = frm[i].name.slice(0,frm[i].name.indexOf('_conf'));
			matchNum = 0;
			// find field it should match
			for (k = 0; k < n; k++) {
				if (frm[k].name == matchName) { matchNum = k; }
			}
			if (frm[i].value != frm[matchNum].value) { confs++; }
		}
		
		// check email fields
		if (frm[i].name.indexOf('email') != -1) {
			apos = frm[i].value.indexOf('@');
			dotpos = frm[i].value.lastIndexOf('.');
			if ((apos < 1) || (dotpos - apos < 2)) { emails++; }
		}
	}
	
	// build error string
	if (reqs > 0) { errors += 'One or more required fields are blank.\n'; }
	if (confs > 0) { errors += 'One or more confirmed fields do not match.\n'; }
	if (emails > 0) { errors += 'Please enter a valid e-mail address.\n'; }
	
	// if errors, alert and dont submit
	if (errors.length > 0) {
		alert(errors);
		isValid = false;
	}
	
	return isValid;
}


		