(function($){$.fn.validate = function(options)
{
	var element = this;
	
	var defaults = {
		popup: '',
		mask: '',
		dialogPopupClose: "",
		dialogPopupTitle: "",
		dialogPopupText: "",
		title: "Hibásan kitöltött form!",
		requiredMsg: "A csillaggal jelölt mezők kitöltése kötelező.",
		emailMsg: "Formailag hibás e-mail cím."
	};
	
	var popup;
	var dialogPopupClose;
	var dialogPopupTitle;
	var dialogPopupText;
	var mask;
	
	var methods = {
		init: function(options)
		{ 
			defaults = $.extend(defaults, options || {});
			popup = $(defaults.popup);
			dialogPopupClose = $(defaults.dialogPopupClose);
			dialogPopupTitle = $(defaults.dialogPopupTitle);
			dialogPopupText = $(defaults.dialogPopupText);
			mask = $(defaults.mask);
		},
		showPopup: function()
		{
			var popupX = (($(window).width() - popup.outerWidth()) / 2) + $(window).scrollLeft() - 80 + "px";
			var popupY = (($(window).height() - popup.outerHeight()) / 2) + $(window).scrollTop() + "px";
			
			popup.css("top", popupY);
			popup.css("left", popupX);
			popup.css("display", "block");
			
			var maskH = $(document).height();
			var maskW = $(window).width();
			
			mask.css({'width':maskW,'height':maskH, "opacity":.6});
			mask.css("display", "block");
			
			dialogPopupClose.click(function()
			{
				methods.closePopup();
			});
		},
		closePopup: function()
		{
			mask.fadeOut(300);
			popup.css("display", "none");
		},
		email: function(value) {
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			return pattern.test(value);
		}
	};
	
	methods.init(options);
	
	// validate form
	
	element.submit(function()
	{
		var validForm = true;
		
		$(':input', element).each(function(i)
		{
			var myClass = $(this).attr("class");
			var value = $(this).attr("value");
			var input = $(this);
			
			if(myClass == "required" || myClass == "email")
			{	
				if(value == "")
				{
					dialogPopupTitle.text(defaults.title);
					dialogPopupText.text(defaults.requiredMsg);
					methods.showPopup();
					validForm = false;
					return;
				}
			}
			
			if(myClass == "email")
			{
				if(!methods.email(value))
				{
					dialogPopupTitle.text(defaults.title);
					dialogPopupText.text(defaults.emailMsg);
					methods.showPopup();
					validForm = false;
					return;
				}
			}
		});
		
		if(validForm == true) return true; else return false;
    });
};
})(jQuery);

