function registration(el, lock, e_ck, e_ck2, test, lock2) {
	
	el = $(el);   		
	e_ck = 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);
	e_ck2 = new RegExp(/(.+)@(.+)\.(.+)/i);
	test = function(e, force, force2, check, not, mail, captcha) {	
		if($(this).attr("id") == "email_") mail = true;    	
		if($(this).attr("id") == "captcha_") captcha = true;  		
		if(mail || force) {
			if(lock != true || force2) {
	
				if(!$("#email_").val().match(e_ck2) && !force) {
					$("#email_valid").removeClass("error").removeClass("valid");
					$("#email_error").html("");
				
				}
				else if($("#email_").val().match(e_ck)) {								
					if(!force2){
							$("#email_valid").removeClass("error").addClass("valid");
							$("#email_error").html("");
						}
				}
				else {

					$("#email_valid").removeClass("valid").addClass("error");
					$("#email_error").html(window.error2);								
				}
			}
			else {
				$("#email_valid").removeClass("error").removeClass("valid");
				$("#email_error").html("");
			}
		}	
		if(captcha || force2) {
			lock = true;
			if(force2 || $("#captcha_").val().length >= 6)
			$.get('/'+LOCALE+'/user/captchaValidation', {captcha:$("#captcha_").val()}, function(data) {
				lock = false;
				if(data != "") {
					$("#captcha_valid").removeClass("valid").addClass("error");
					$("#captcha_error").html(data);	
				}
				else {
					$("#captcha_valid").removeClass("error").addClass("valid");
					$("#captcha_error").html("");
				}									
			})
			else {
				$("#captcha_valid").removeClass("error").removeClass("valid");
				$("#captcha_error").html("");
				lock = false;
			}
		}				
		
				
		if($("#name_").val().length < 1) {
			if(force2 || $("#name_").val().length != 0) {
				$("#name_valid").addClass("error").removeClass("valid");
				$("#name_error").html(window.error1);	
			}					
		}
		else {	
			$("#name_valid").addClass("valid").removeClass("error");
			$("#name_error").html("");	
		}
		
		if($("#message_").val().length < 1) {
			if(force2 || $("#message_").val().length != 0) {
				$("#message_valid").addClass("error").removeClass("valid");
				$("#message_error").html(window.error3);	
			}					
		}
		else {	
			$("#message_valid").addClass("valid").removeClass("error");
			$("#message_error").html("");	
		}
	}
	$("input, textarea", el).bind("keyup", test);
	$("#fn_, #email_, #captcha_", el).bind("blur", function(e) { test(e, true); } );
	$("input", el).bind("click", test);
	$("#submit_btn", el).bind("click", function(e) { 
		test(e, true, true);
		if($("#name_valid").hasClass("valid") &&
			$("#captcha_valid").hasClass("valid") && 
			$("#message_valid").hasClass("valid") &&
			$("#email_valid").hasClass("valid")) return true;
		else return false;
	});
	$("#field_captcha_img .under").bind('click', function(e) {
		var date = new Date();
		$('#captcha_img').attr('src',this.href + '?' + date.getTime());
		$("#captcha_").trigger('click');
		return false;
	});
	if($("#email_").val().replace(' ', '') != "") $("#email_", el).trigger("keyup");
};

$(function() {
	registration($('#contact_form'));
});

(function($){
    $('#contact_object').bind('change',function(){
		if ($(this).val() == 'other'){
		    $('#contact_object_field').css('height','105px');
		    $('#contact_object_tip').fadeIn(500);
		    $('#contact_object_tip').fadeOut(300);
		    $('#contact_object_tip').fadeIn(300);
		    $('#contact_object_tip').fadeOut(300);
		    $('#contact_object_tip').fadeIn(300);
		}
		else{
		    $('#contact_object_field').css('height','50px');
		    $('#contact_object_tip').hide();
		};
	});
})(jQuery);
