/**
 * @author Maciek
 */
jQuery.fn.simpleLiveValidate = function (conf) {
	var config = jQuery.extend({
		invalidClass:	'invalid',											
		required:		[]
	}, conf);
	var id = jQuery(this).attr('id');
	var fields = jQuery.extend({
		name: 			/^\S.*$/,											// name (at least one character)
		title: 			/^\S.*$/,											// title (at least one character)
		nick: 			/^\S.*$/,											// author (at least one character)
		message: 		/^\S.*$/,											// message (at least one character)
		comment: 		/^\S.*$/,											// comment (at least one character)
		content: 		/^\S.*$/,											// "content" (at least one character)
		description:	/^\S.*$/,											// description (at least one character)
		dimensions:		/^\d+x\d+$/,										// dimensions (DIGITxDIGIT)
		price:			/^\d+$/,											// price (at least one digit)
		phone:			/^\d+$/,											// phone (at least one digit)
		url: 			/^(http:\/\/)?(www)?([^ |\.]*?)\.([^ ]){2,5}$/,		// url
		email: 			/^.+?@.+?\..{2,4}$/									// email
	}, config.fields);
	
	var toValidate = config.required.join(',');
		
		jQuery('#' + id ).find(toValidate).each(function() {
			var t = jQuery(this);
			
			var validate = function(){
				var key = t.attr('name');
				var val = t.val();
				//alert(key + ' >< ' + val);
				if (val.match(fields[key])) {
					if (t.hasClass(config.invalidClass)) {
						t.removeClass(config.invalidClass);
					}
				}
				else {
					if (!t.hasClass(config.invalidClass)) {
						t.addClass(config.invalidClass);
					}
				}
			}
			validate();
			t.keyup(validate);
		});
		
};