function show_warnig(message, elem, errbit) {
	if(elem.next('span').length)
		elem.next('span').remove();
	if(message || errbit) {
		elem.css({
			'border-color': '#f88',
			'background-color': '#fee'
		});
		elem.after('<span class="warning_msg">'+message+'</span>');
		$('form#register_form input[type=submit]').hide();
	}
}

function monitor_registration_form() {
	$(':input.required').blur(function(){
		check_elem_errors($(this));
	});
}

function validateEmail(elementValue){      
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailPattern.test(elementValue);
}

function validatePhone(elementValue){      
	var phonePattern = /^((\+|00)+[4]+[5]+[0-9]{8}|[0-9]{8})$/;
	return phonePattern.test(elementValue);
}

function validatePasswords(p1, p2) {
	if(p1 != p2)
		return false
	return true
}

function show_submit() {
	if($(':input.checked').size()==$(':input.required').size())
		$('form#register_form input[type=submit]').show();
}

function check_elem_errors(elem) {
    if(elem.val()) {
	if(elem.attr('name')=='email' && !validateEmail(elem.val())) {
	    return show_warnig('Enter valid email address!', elem);
	}
	if(elem.attr('name')=='password2' && !validatePasswords($('input[name=password1]').val(), elem.val())) {
	    return show_warnig('Passwords mismatch!', elem);
	}
	if(elem.attr('name')=='phone' && !validatePhone(elem.val())) {
	    return show_warnig('it is not a number in DK!', elem);
	}
	
	show_warnig(null, elem);
	elem.css({
	    'border-color': 'green',
	    'background-color': 'white'
	});
	elem.addClass('checked');
	show_submit();
	
	} else {
	    return show_warnig('', elem, true);
	}
}

function check_onload_errors() {
	$(':input.required').each(function(){
		var elem = $(this);
		if(elem.val()) {
			if(elem.attr('name')=='email' && !validateEmail(elem.val())) {
				return show_warnig('Enter valid email address!', elem);
			}
			if(elem.attr('name')=='password2' && !validatePasswords($('input[name=password1]').val(), elem.val())) {
				return show_warnig('Passwords mismatch!', elem);
			}
			
			show_warnig(null, elem);
			elem.css({
				'border-color': 'green',
				'background-color': 'white'
			});
			elem.addClass('checked');
			show_submit();
			
		}
	});
}

function set_startup_opt(setbit){
	$.get(
		"/accounts/set-startup-options/"+setbit+"/",
		function(response) {
			return;
		}
	)
}

$(document).ready(function(){
	check_onload_errors();
	monitor_registration_form();
})
