/**
* form validation
* author: Dombi Géza
*/

(function ($) {

	var rx = new Array(7);
	rx['clear'] = /^[\w\d]+$/;
	rx['name'] = /^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]{4,}$/i;
	rx['number'] = /^[\d]+$/;
	rx['phone'] = /^[\d-\/\+ \(\)]{7,}$/;
	rx['text'] = /.+/i;
	rx['email'] = /^(("[\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;
	rx['url'] = /^(?:https?|s?ftp|telnet|ssh|scp):\/\/(?:(?:[\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})))(?:\:\d{1,5})?(?:\/(~[\w-_.])?)?(?:(?:\/[\w-_.]*)*)?\??(?:(?:[\w-_.]+\=[\w-_.]+&?)*)?$/i;
	
	function checkInput(inputValue, check) {
		var test = rx[check].test(inputValue);
		return test;
	}
		
    $.fn.validate = function() {
		
	$(this).each( function(){
		
		$(this).find('input:not(:radio, :checkbox),textarea').focus(function(){ 
			$(this).removeClass('error'); 
			$(this).addClass('focus');
		});
		
		$(this).find('input:not(:radio, :checkbox),textarea').blur(function(){ 
			$(this).removeClass('focus'); 
		});
		
		$(this).find('span.cr-group.required input').focus(function(){
			$(this).parent().parent().removeClass('error'); 
		});
	
		
		$(this).submit( function(){
			var r = true;
			var inputs = $(this).find('input,textarea');
			inputs.each(function(){
				if ($(this).attr('type')!='hidden'){
					if ($(this).hasClass('required') && $(this).val().replace(/^[\s]+$/,'').length==0) { $(this).addClass('error'); r = false; }
					if ($(this).val().replace(/\s/,'').length>0){
						for (var i in rx){
							if (!$(this).hasClass('false') && $(this).hasClass(i)) {
								if (!checkInput( $(this).val(), i)){ $(this).addClass('error'); r = false;  }
							}
						}
					}
				} else {
					if ($(this).hasClass('validate') && $(this).val()!='') { r = false; alert( 'Ön egy robot.' ); }
				}
			});
			
			var groups = $(this).find('span.cr-group.required');
			if (groups.length>0) {
				
				groups.each(function(){
					var s = false;
					var inputs = $(this).find('input');
					inputs.each(function(){ if ($(this).attr('checked')){ s = true; } });
					if (!s) { $(this).addClass('error'); r = s; }
				});
				
			}
		/*
			var rtes = $(this).find('iframe.rte');
			if (rtes.length>0) {
				rtes.each(function(){
					var ct = $(this).contents().text();
					var s = false;
					if (ct.length==0){ 
						$(this).closest('.rte-zone').addClass('error'); 
						$(this).closest('.rte-zone').find('.rte-toolbar').addClass('error-rte'); 
						r=s; 
					}
				});
				
			}
		*/	
			if (!r){ alert( 'Kérjük nézze át az űrlapot, mert nincs megfelelően kitöltve.\nA hibás mezőket pirossal jelöltem.'); }
			return r;
		});
	});		
	}
	
}(jQuery));