(function($) {

	$.fn.ydekForms = function(options) {
		
		$.fn.ydekForms.defaults = {
			onSuccess: function(){},
			onError: function(){},
			errorBackgroundColor: '#ffc',
			defaultBackgroundColor: '#fff'
		};
			
		var o = $.extend({}, $.fn.ydekForms.defaults, options);
	
		return this.each(function() {
			var form = $(this);
			var inputs = $(this).find('input[type=text], textarea');
			var DEFAULT_KEY = 'default';
			
			//console.log(inputs);
			
			inputs.each(function(i, input){
				input = $(input).data(DEFAULT_KEY, $(input).val());
				
				input.focus(function()
				{
					if($(this).val() != '' && $(this).val() == $(this).data(DEFAULT_KEY)) {
						$(this).val('');
						$(this).css({'background-color' : o.defaultBackgroundColor});
					}
				})
				.blur(function()
				{
					if($(this).val() == '') {
						$(this).val($(this).data(DEFAULT_KEY));
					}
				});
				
			});
			
			form.submit(function(e)
			{
				e.preventDefault();
				var isSafe = true;
                
				// validating message
				inputs.each(function(j, field) {
					
					if($(field).attr('rel').match(/\bemail\b/))
					{
						if ( !$(field).val().match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) 
						{
							$(field).css({'background-color' : o.errorBackgroundColor});
							isSafe = false;
						}
					}
					else if($(field).attr('rel').match(/\brequired\b/))
					{
						if ( $(field).val().length < 1 || $(field).val() == $(field).data(DEFAULT_KEY)) 
						{
							$(field).css({'background-color' : o.errorBackgroundColor});
							isSafe = false;
						}
					}
				});
				
				isSafe ? o.onSuccess(form) : o.onError(form) ;
			}); // END ON FORM.SUBMIT
			
		});
	}
})(jQuery);