var d=document;
var debug=0;
var errors=false;
var frmSub;
var returnCode;
    
function fieldValidate(fObj,frmSub) {
    errTest=-1;
    switch(fObj.id) {
        case "name":
                valid=_minLength(fObj.value,1);
                if(errTest = (valid)?4:0) break;
                valid=_maxLength(fObj.value,25);
                if(errTest = (valid)?3:0) break;
                valid=_isInt(fObj.value);
                if(errTest = (valid)?1:0) break;
                valid=_isSpecialChars(fObj.value);
                if(errTest = (!valid)?5:0) break;
		break;
	case "questions":
		valid=_minLength(fObj.value,1);
                if(errTest = (valid)?4:0) break;
                valid=_maxLength(fObj.value,250);
                if(errTest = (valid)?3:0) break;
                break;
	case "email":
                valid=_isEmail(fObj.value);
                if(errTest = (!valid)?1:0) break;
		break;
	default:
		break;
    }
    if(errTest!=-1) returnCode = errMessage(fObj,errTest);
}

function _hasSingleCharacterDiff(string1,string2) {
	string1 = string1.toLowerCase();
	string2 = string2.toLowerCase();
	for(_i=0;_i<string2.length;_i++) {
		if(string1.indexOf(string2.charAt(_i))==-1) return true;
	}
	return false;
}

function _checkDate(mm,yy,nDate) {
	mDate = new Date(yy, mm, 31, 00);
	if(mDate<nDate) return 0;
	return 1;
}

function _compareStrings(str1,str2) {
	if(str1 == str2) return 1;
	return 0;
}

function _indexIsAlpha(index,str) {
	return _isAlpha(str.charAt(index));
}

function _charAtIsArg(str,chr,index) {
	if(str.charAt(index) == chr) return true;
	return false;
}

function _compareArgToCharAt(str,chr,index,compOp) {
	if(eval("str.charAt(index)" + compOp + "chr")) return 1;
	return 0;
}

function _compareSubStrings(str1,str2,sublen) {
	if(str1.substring(0,sublen) == str2.substring(0,sublen)) return 1;
	return 0;
}

function _isAlpha(str) {
	if(str.search(/([0-9])/g) == -1) return 1;
	return 0;
}

function _isInt(str) {
	if(str.search(/[^0-9]/g)>-1)return 0;
	return 1;
}

function _subStringMatch(str,start,length,substr) {
	if(str.substring(start,length) == substr) return 1;
	return 0;
}

function _minLength(str,length) {
	if(str.length<length)return 1;
	return 0;
}

function _maxLength(str,length) {
	if(str.length>length)return true;
	return 0;
}

function _isEmail(str) {
	//if (str == "") return true;
	var pattern =/.+@.+\..+/;
	if (str.match(pattern)) {
		return 1;
	} else {
		return 0;
	}
}

function _isSpecialChars(str) {
	if(str.search(/[^ .a-zA-Z\d]/) == -1) return 1;
	return 0;
}

function _editPhone(e) { 
	var CleanedString="";
	var index = 0;
	var LimitCheck;
	var InitialString = e
	LimitCheck = InitialString.length;

	while (index != LimitCheck) {
		if (isNaN(parseInt(InitialString.charAt(index)))) {
		
		}
		else {
			CleanedString = CleanedString + InitialString.charAt(index);
		}
		index = index + 1;
	}

	if (CleanedString.length == 10) {
		e = "(" + CleanedString.substring(0,3) + ") " + CleanedString.substring(3,6) + "-" + CleanedString.substring(6,10);
		return true;
	} else {
		CleanedString = InitialString;
		return false;
	}
}

function _trimString(str) {
	return str.replace(/ /g,"");
}

function errMessage(inpObj,rule) {
var errMess="";

	try {
		if((!err[inpObj.id] || !err[inpObj.id][rule]) && (rule!=0 && rule!=null)) {
			alert("There is a problem with your information. Please double check what you have entered.\n\nError " + rule + " [ " + inpObj.id + " ]");
		} else {
			if(rule==0) {
				return;
			} else {
				errMess = err[inpObj.id][rule];
				alert(errMess);
				errors=true;
			}
		}
	} catch (error) {
		if(debug)alert('error: '+error.message); 
	}
	return errors;
}

function validateFields() {
	frmElm = d.forms[0].elements;
	for(i=0;i<frmElm.length;i++) {
	if((frmElm[i].tagName == "INPUT" || frmElm[i].tagName == "TEXTAREA") && frmElm[i].type!="hidden") {
		fieldValidate(frmElm[i],1);
		if(returnCode) {
			// test returned TRUE, so dont submit
			return false;
		}
	}
	}

	//alert('submitted: ' + returnCode);
	// test returned FALSE, so submit form
	return true;
}

