var weaver = {
	// validation methods
	validation : {
		clear : function(container) {
			weaver.errors = 0;
			container.find('.error').remove();
		},
		check : function(field, rule, message) {
			var id = field.attr("id") ;
			
			var myid= "#msg_" + id;
			
			if (rule(field) === false) {
				 $(myid).after('<span class="error">' + message + '</span>')
		field.focus();
		weaver.errors++;
	}
},
required : function(field) {
	return !!$(field).val();
},
email : function(field) {
	return /^[A-Z0-9._%+\-]+@[A-Z0-9.\-]+\.[A-Z]{2,6}$/i.test($(field).val());
}

	}
}

function clearForm(form) {
	// iterate over all of the inputs for the form
	// element that was passed in
	$(':input', form).each( function() {
		var type = this.type;
		var tag = this.tagName.toLowerCase(); // normalize case
			// it's ok to reset the value attr of text inputs,
			// password inputs, and textareas
			if (type == 'text' || type == 'password' || tag == 'textarea')
				this.value = "";
			// checkboxes and radios need to have their checked state cleared
			// but should *not* have their 'value' changed
			else if (type == 'checkbox' || type == 'radio')
				this.checked = false;
			// select elements need to have their 'selectedIndex' property set
			// to -1
			// (this works for both single and multiple select elements)
			else if (tag == 'select')
				this.selectedIndex = -1;
		});
};

