/*-----------------------------------------------
|	JAVASCRIPT FOR FORMS
------------------------------------------------*/

// GENERAL FUNCTIONS
function getValWordCount(q) { // counts the number of words in a given form field
	if ($(q).val())
		return $(q).val().match(/\b\w+\b/g).length;
	else
		return 0;
}

// ADDITIONAL RULES FOR JQUERY.VALIDATION PLUGIN
$(document).ready(function() {
	// maximum words rule (inclusive)
	jQuery.validator.addMethod('maxWords', function(value, element, params) {
		return !$(element).val() || $(element).val().match(/\b\w+\b/g).length < params;
	}, 'Please enter {0} words or less.');
	
	// minimum words rule (inclusive)
	jQuery.validator.addMethod('minWords', function(value, element, params) {
		return !$(element).val() || $(element).val().match(/\b\w+\b/g).length >= params;
	}, 'Please enter at least {0} words.');
	
	// range of words rule (inclusive)
	jQuery.validator.addMethod('rangeWords', function(value, element, params) {
		return !$(element).val() || ($(element).val().match(/\b\w+\b/g).length >= params[0] && $(element).val().match(/\b\w+\b/g).length < params[1]);
	}, 'Please enter between {0} and {1} words.');
	
	// filetype matching
	jQuery.validator.addMethod("accept", function(value, element, param) { 
		return value.match(new RegExp("." + param + "$")); 
	}); 
});


// OPERATIONS FOR FORMS IN MAIN COLUMN
$(document).ready(function() {
	if ($("#c_main form").length) { // a form exists in the main column
		// CSS :hover implementations
		// #c_main form li:hover
		addHover($("#c_main form li"), "list-hover");
		
		// look for first element to give focus
		if ($('#c_main form .focus').length) { // found one or more elements flagged to get first focus
			$('#c_main form .focus')[0].focus(); // give the first instance focus
		}
	}
});

