function toUpperCase(str)
{
    str = str.replace(/_/g,' ');
    return str.toUpperCase();
}
function fieldDisplay(name)
{
    var ename = name.charAt(0).toUpperCase() + name.substring(1, name.length);
    ename = ename.replace(/_(.)/g,toUpperCase);
    return ename;
}

function formCheck(form)
{
    var error = [];
    var required = [];
    var filter=/,/;

    if (filter.test(form.required.value))
    {
	required = form.required.value.split(',');
    }
    else
    {
        for (var i = 0; i < form.required.length; i ++)
	{
	    required.push(form.required[i].value);
	}
    }

	for (var i = 0; i < required.length; i++){
	    var rname = required[i];
	
		var obj = form.elements[required[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					error.push(rname);
				}
				if (obj.selectedIndex == 0 && obj.options[obj.selectedIndex].value == ""){
				    error.push(rname);
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					error.push(rname);
				}
				break;
			case "text":
			case "password":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					error.push(rname);
				}
				break;
			case "checkbox":
			case "radiobox":
			    var blnchecked = false;
			    if(obj.length) {
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
			    }
			    else {
				if (obj.checked) {
				    blnchecked = true;
				}
			    }
			    if (!blnchecked){
				error.push(rname);
			    }
			    break;
			default:
			}
		}
	}

    if (error.length)
    {
	var message = '';
	for (var i = 0; i < error.length; i++)
	{
		message += fieldDisplay(error[i]) + "\n";
	}
        alert('Please fill all required fields:\n \n'+message);
	return false;
    }
    return true;
}

function CountWords (this_field) {

	var char_count = this_field.value.length;
	var fullStr = this_field.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	if (fullStr.length <2) {
		word_count = 0;
	}

	return word_count;
}
