
/*
 * removes white space from an inputted string
 */
function clearAllWhiteSpace(str) {
	return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}


/*
 * toggle background input field color when field is in error. 
 */
function toggleErrorBackGroundColor(elementId, error) {
	(error || error != null) ? elementId.style.backgroundColor = "#FFAFAF" : elementId.style.backgroundColor = "#FFF";
}


/*
 * validate email by regex
 */
function emailValidator(str) {
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (str.match(emailRegEx)) {
		return true;
	} else {
		return false;
	}
}


/**
 * This function receives a form id and clears all text / password 
 * and textarea inputs.
 *  
 * Typically this will be called once a submitted form is complete 
 * and a new input form screen is required.
 * 
 * @param form id
 * @return n/a
 * 
 * Author: Tommy 2008-NOV-08
 */
function clearFormInputs(formAreaId) {
	
	var fieldArea = document.getElementById(formAreaId);
	
	var inputs = fieldArea.getElementsByTagName('input');
	var inputsLen = inputs.length;
	
	var tAreas = fieldArea.getElementsByTagName('textarea');
	var tAreasLen = tAreas.length;

	// Now Hijack the form elements
	for ( i=0;i<inputsLen;i++ ) {
		if ( inputs[i].getAttribute('type') == 'text' || inputs[i].getAttribute('type') == 'password' ) {
			inputs[i].value = '';
		}
	}
	for ( j=0;j<tAreasLen;j++ ) {
		tAreas[j].value = '';
	}

}


/**
 * Usage Instructions:
 *
 * <form name="myForm">
 *	<input type="radio" name="anyName" value="anyValue" checked="checked">Radio1<br/>
 *	<input type="radio" name="anyName" value="anyValue">Radio2<br/>
 *  <input type="text" name="anyName" value="anyValue">
 *  <input type="hidden" name="anyName" value="anyValue">
 *  <input type="submit" class="button" value="submit" onclick="myJavaScriptMethod(this.form)">
 * </form>
 *
 * The above onclick method will receive the complete form object and then will call the
 * method getFormValues() passing the form object. The getFormValues() method will return 
 * a built string of parameters which can be used in the ajax posting parms. 
 *
 * @param html-form
 * @return blank if no parms are found else a string ready to be posted.
 *
 * Author: Tommy 2008-OCT-27
 */
function getFormValues(fobj) {
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";

	for(var i = 0;i < fobj.elements.length;i++) {
		switch(fobj.elements[i].type) {
			case "text":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "textarea":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;
				
			case "select-one":
				str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
				break;
				
			case "hidden":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "password":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "radio":
				var myselectradiovalue = getCheckedValue(fobj.elements[i]);
				if (myselectradiovalue != "") {
					str += fobj.elements[i].name + "=" + myselectradiovalue + "&";
				}
				break;

			case "checkbox":
				var isChecked = fobj.elements[i].checked;
				str += fobj.elements[i].name + "=" + isChecked + "&";
				break;
				
		}
	}
	str = str.substr(0,(str.length - 1));
	return str;
}


/**
 * This function receives a radioButton object and decides whether
 * it has been selected and returns the correct value associated to 
 * the radio button which will be used for posting parameters.
 *
 * @param html-form-radio-button
 * @return blank if not selected else the value associated to the radio button to be posted.
 * 
 * Author: Tommy 2008-OCT-27
 */
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

