/*  File: std_form.js       */
/*  By:   Jeremy Tredway    */
/*  Ver:  2008-04-02        */


/* jQuery.NobleCount v 1.0 http://tpgblog.com/noblecount/
compiled by http://yui.2clics.net/ */
(function(c){c.fn.NobleCount=function(i,h){var j;var g=false;if(typeof i=="string"){j=c.extend({},c.fn.NobleCount.settings,h);if(typeof h!="undefined"){g=((typeof h.max_chars=="number")?true:false)}return this.each(function(){var k=c(this);f(k,i,j,g)})}return this};c.fn.NobleCount.settings={on_negative:null,on_positive:null,on_update:null,max_chars:140,block_negative:false,cloak:false,in_dom:false};function f(g,m,n,h){var l=n.max_chars;var j=c(m);if(!h){var k=j.text();var i=(/^[1-9]\d*$/).test(k);if(i){l=k}}b(g,j,n,l,true);c(g).keydown(function(o){b(g,j,n,l,false);if(a(o,g,n,l)==false){return false}});c(g).keyup(function(o){b(g,j,n,l,false);if(a(o,g,n,l)==false){return false}})}function a(k,g,l,j){if(l.block_negative){var h=k.which;var i;if(typeof document.selection!="undefined"){i=(document.selection.createRange().text.length>0)}else{i=(g[0].selectionStart!=g[0].selectionEnd)}if((!((e(g,j)<1)&&(h>47||h==32||h==0||h==13)&&!k.ctrlKey&&!k.altKey&&!i))==false){return false}}return true}function e(g,h){return h-(c(g).val()).length}function b(g,i,l,j,h){var k=e(g,j);if(k<0){d(l.on_negative,l.on_positive,g,i,l,k)}else{d(l.on_positive,l.on_negative,g,i,l,k)}if(l.cloak){if(l.in_dom){i.attr("data-noblecount",k)}}else{i.text(k)}if(!h&&jQuery.isFunction(l.on_update)){l.on_update(g,i,l,k)}}function d(i,g,h,j,l,k){if(i!=null){if(typeof i=="string"){j.addClass(i)}else{if(jQuery.isFunction(i)){i(h,j,l,k)}}}if(g!=null){if(typeof g=="string"){j.removeClass(g)}}}})(jQuery);


/********************************
  the following routines require 
    jquery.js
*********************************/

function checkEmail(val) {
	var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (regex.test(val)) { return true; }
	else { return false; }
}

function checkDigit(val) {
	var regex = /^[0-9]{1,6}$/;
	if (regex.test(val)) { return true; }
	else { return false; }
}

// onload routines
$(function(){

	// form validation
	$('.std_form #submit').click(function() {
		var submit = true;
		var this_form = '#' + $(this).parents('form').attr('id');
		// reset errors
		$(this_form).find('.error').hide();
		// check for errors
		$(this_form).find('.required').each(function() {
			if ($(this).val() == '') {
				submit = false;
				$(this).next('.error').fadeIn(400);
			}
			if ($(this).attr('name') == 'email_address') {
				check_email = checkEmail($(this).val());
				if (!check_email) {
					submit = false;
					$(this).next('.error').fadeIn(400);
				}
			}
		});
		return submit;
	});

	// clear error messages upon blur
	$('.std_form .required').blur(function () {
		if ($(this).val() != '') {
			$(this).next('.error').fadeOut(400);
		}
	});

	$('#Additional').NobleCount('#Additional_Limit',{
		on_negative: 'go_red',
		max_chars: 220
	});

});

