<script type='text/javascript'>
<!--

(function($) {

	$.fn.charCount = function(options){
	  
		// default configuration properties
		var defaults = {	
			allowed: 140,		
			warning: 25,
			css: 'counter',
			counterElement: 'span',
			cssWarning: 'warning',
			cssExceeded: 'exceeded',
			counterText: ''
		}; 
			
		var options = $.extend(defaults, options); 
		
		function calculate(obj){
			var count = $(obj).val().length;
			var available = options.allowed - count;
			if(available <= options.warning && available >= 0){
				$(obj).next().addClass(options.cssWarning);
			} else {
				$(obj).next().removeClass(options.cssWarning);
			}
			if(available < 0){
				$(obj).next().addClass(options.cssExceeded);
			} else {
				$(obj).next().removeClass(options.cssExceeded);
			}
			$(obj).next().html(options.counterText + available);
		};
				
		this.each(function() {  			
			$(this).after('<'+ options.counterElement +' class="' + options.css + '">'+ options.counterText +'</'+ options.counterElement +'>');
			calculate(this);
			$(this).keyup(function(){calculate(this)});
			$(this).change(function(){calculate(this)});
		});
	  
	};

})(jQuery);
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 

function validateForm(theForm) {
var reason = "";
  reason += validateFname(theForm.fname);
 reason += validateLname(theForm.lname);
  reason += validateEmail(theForm.email);
  reason += validatePwd(theForm.pwd);
  reason += validatePwd2(theForm.pwd2);
  
  if (reason != "") {
    alert("Some fields need correction:\n" + reason);
    return false;
  }

  return true;
}

function validate(theForm) {
var reason = "";
  reason += validateEmail(theForm.sender_email);
 reason += validateMsg(theForm.msg);
  
  if (reason != "") {
    alert("Some fields need correction:\n" + reason);
    return false;
  }

  return true;
}

function validateMsg(fld) 
{
    var error="";
    var tfld = trim(fld.value);                           
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") 
   {
        fld.style.background = 'Yellow';
        error ="Please enter your message.\n";
    }  else {
        fld.style.background = 'White';
        }
    return error;
}

function validateFname(fld) 
{
    var error="";
    var tfld = trim(fld.value);                           
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") 
   {
        fld.style.background = 'Yellow';
        error = "Please enter your first name\n";
    }  else {
        fld.style.background = 'White';
        }
    return error;
}

function validateLname(fld) 
{
    var error="";
    var tfld = trim(fld.value);                           
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") 
   {
        fld.style.background = 'Yellow';
        error = "Please enter your last name\n";
    }  else {
        fld.style.background = 'White';
        }
    return error;
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);  
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "Please enter your email address.\n";
    } else if (!emailFilter.test(tfld)) {  
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}



function validatePwd(fld) 
{
    var error="";
    var tfld = trim(fld.value);                           
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") 
   {
        fld.style.background = 'Yellow';
        error = "Please enter your password.\n";
    }  else {
        fld.style.background = 'White';
        }
    return error;
}


function validatePwd2(fld) 
{
    var error="";
    var tfld = trim(fld.value);                           
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") 
   {
        fld.style.background = 'Yellow';
        error ="Please confirm your password.\n";
    }  else {
        fld.style.background = 'White';
        }
    return error;
}

 
//-->
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		// test to see if the hint span exists first
		if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			inputs[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			inputs[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for selects
	var selects = document.getElementsByTagName("select");
	for (var k=0; k<selects.length; k++){
		if (selects[k].parentNode.getElementsByTagName("span")[0]) {
			selects[k].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			selects[k].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
}
addLoadEvent(prepareInputsForHints);


</script>
