function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function isArray(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1)
		return false;
	else
		return true;
}
function formatCurrency(strValue) {
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);
	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
		dblValue.substring(dblValue.length-(4*i+3));
	if (strCents == "00") {
		strCents = "";
	} else {
		strCents = "." + strCents;
	}
	return (((blnSign)?'':'-') + '$' + dblValue + strCents);
}
function pCase(val) {
	if (/[a-z]/.test(val) && /[A-Z]/.test(val)) return val;
	newVal = val;
	newVal = '';
	val = val.split(' ');
	for(var c=0; c < val.length; c++) {
		newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,val[c].length) + ' ';
	}
	return trim(newVal);
}
function isCurrency(value) {
	value = trim(value).replace(/\$|\,/g, "")
	return (value == parseFloat(value));
}
function isValidEmail(str) {
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}
function fbvalidate () {
	document.getElementById('fbrerqmsg').style.visibility = "hidden";
	success = true;
	for(i=document.forms['fbform'].elements.length-1; i>=0; i--) {
		document.forms['fbform'].elements[i].value = document.forms['fbform'].elements[i].value.replace(/\t/g, "\+tab\+");
		document.forms['fbform'].elements[i].value = document.forms['fbform'].elements[i].value.replace(/\n|\r/g, "\+eol\+");
//			alert('[' + document.forms['fbform'].elements[i].name.toLowerCase() + ']');
		switch(document.forms['fbform'].elements[i].name.toLowerCase()) {
		case "subject":
			if (trim(document.forms['fbform'].elements[i].value) != "") {					
				document.forms['fbform'].elements[i].value = pCase(document.forms['fbform'].elements[i].value);
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className = '';
			} else {
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className = 'fbtrouble';
				focuson = document.forms['fbform'].elements[i].name;
				success = false;
			}
			break;
		case "cost of windows":
			if (isCurrency(document.forms['fbform'].elements[i].value)) {
				document.forms['fbform'].elements[i].value = formatCurrency(document.forms['fbform'].elements[i].value);
			} else {
				document.forms['fbform'].elements[i].value = '';
			}
			break;
		case "message":
			if (trim(document.forms['fbform'].elements[i].value) != "") {					
				document.forms['fbform'].elements[i].value = document.forms['fbform'].elements[i].value.charAt(0).toUpperCase() + document.forms['fbform'].elements[i].value.substr(1);
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className = '';
			} else {
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className += ' fbtrouble';
				focuson = document.forms['fbform'].elements[i].name;
				success = false;
			}
			break;
		case "name":
			if (trim(document.forms['fbform'].elements[i].value) != "") {					
				document.forms['fbform'].elements[i].value = pCase(document.forms['fbform'].elements[i].value);
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className = '';
			} else {
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className += ' fbtrouble';
				focuson = document.forms['fbform'].elements[i].name;
				success = false;
			}
			break;
		case "city":
			if (trim(document.forms['fbform'].elements[i].value) != "") {					
				document.forms['fbform'].elements[i].value = pCase(document.forms['fbform'].elements[i].value);
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className = '';
			} else {
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_')).className += ' fbtrouble';
				focuson = document.forms['fbform'].elements[i].name;
				success = false;
			}
			break;
		case "email address-":
			if (!isValidEmail(document.forms['fbform'].elements[i].value)) {				
				document.forms['fbform'].elements[i].value = '';
			}
			break;
		case "man or machine-":
			if (document.forms['fbform'].elements[i].value == captchaimg) {
				document.forms['fbform'].action = '/feedbackget.php';
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '0').className = '';
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '1').className = '';
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '2').className = '';
			} else {
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '0').className += ' fbtrouble';
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '1').className += ' fbtrouble';
				document.getElementById('fb' + document.forms['fbform'].elements[i].name.replace(/ /g, '_') + '2').className += ' fbtrouble';
				focuson = document.forms['fbform'].elements[i].name;
				success = false;
			}
			break;
		default:
			if (trim(document.forms['fbform'].elements[i].value) != "") {	
				document.forms['fbform'].elements[i].value = pCase(document.forms['fbform'].elements[i].value);
			}
			break;
		}
	}
	if (!success) {
		document.getElementById('fbrerqmsg').style.visibility = "visible";
		document.forms['fbform'].elements[focuson].focus();
	}
	return success;
}
