String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
};

LLSWeb = {
	'Validation': {
		'checkTextFields': function(formId) {
			var allValid = true;
			jQuery('#' + formId + ' input').each(function() {
				var inputBox = jQuery(this);
				if (inputBox.hasClass('mandatory')) {
					if (inputBox.hasClass('email')) {
						if (!LLSWeb.Validation.testEmailAddress(inputBox.val())) {
							allValid = false;
							inputBox.addClass('formInputError');
							var label = jQuery('label[for='+inputBox.attr('id')+']');
							if (label != null) {
								label.addClass('formInputLabelError')
							}
						} else {
							inputBox.removeClass('formInputError');
							var label = jQuery('label[for='+inputBox.attr('id')+']');
							if (label != null) {
								label.removeClass('formInputLabelError')
							}
						}
					} else {
						if (inputBox.val().trim() == '' || inputBox.val().trim().indexOf('---') > 0) {
							inputBox.addClass('formInputError');
							var label = jQuery('label[for='+inputBox.attr('id')+']');
							if (label != null) {
								label.addClass('formInputLabelError')
							}
							allValid = false;
						} else {
							inputBox.removeClass('formInputError');
							var label = jQuery('label[for='+inputBox.attr('id')+']');
							if (label != null) {
								label.removeClass('formInputLabelError')
							}
						}
					}							
				}													
			});
			return allValid;
		},
		'testEmailAddress': function(emailAddress) {
			return /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/.test(emailAddress);
		},
		
		'atLeastOneCheckBox' : function(checkBoxesClass) {
			var boxesChecked = new Array();
			jQuery('.' + checkBoxesClass).each(function() {
				if (jQuery(this).attr('checked')) {
					boxesChecked.push(jQuery(this).attr('id'));
				}
			});
			return (boxesChecked.length > 0);
		}
	},
	'submitGlossarySearchForm' : function(glossaryContainerId, defaultText) {
		
		var glossaryContainerIdString = '#' + glossaryContainerId;
		var searchTermValue = jQuery(glossaryContainerIdString + ' .glossarySearchTerm').val();
		
		if (searchTermValue != '' && searchTermValue != defaultText) {
			
	  		jQuery(glossaryContainerIdString + ' .glossarySearchBody').html('<img src="/img/loading.gif" border="0" />');
			jQuery.ajax({ 
	 			type: 'post', 
	 			url: jQuery(glossaryContainerIdString + ' .glossarySearchAltAction').val(), 
	 			data: {'term': searchTermValue, '_rand': Math.random()},
	 			dataType: 'string',
	 			success: function(data) {
	 				jQuery(glossaryContainerIdString + ' .glossarySearchBody').hide();	   					
	 				jQuery(glossaryContainerIdString + ' .glossarySearchBody').html(data);
	 				jQuery(glossaryContainerIdString + ' .glossarySearchBody').show('slow');
	 				attachClicksWithinElementByClass('glossarySearchBody');
	 				//attachClicksToElementByClass('glossarySearchBody');
	 			}
			});  	
			
		}
		
		
  	},  	
	
	'submitFreeMaterialOrderForm' : function(errorMsg) {
		jQuery('#freeMaterialsOrderForm input[type=submit]').click(function() {
			var fields = LLSWeb.Validation.checkTextFields('freeMaterialsOrderForm');
			//var checkboxes = checkCheckboxes();
			if (fields /* && checkboxes */) {
				return true;
			} else {
				jQuery('#freeMaterialsOrderFormErrorMsg').html(errorMsg);
				return false;
			}
		});
	}	
}
