function show_warnig(message, elem) {
	elem.next('span').remove();
	if(message) {
		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').live('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();
	
	}
}

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();
	var private_action = function () {
	    $('#id_company, #id_account_number, #id_department').parent().hide(150);
		$('#id_company').removeClass('required').parent().removeClass('required');
		$('form#register_form input[type=submit]').show();
	}
	var business_action = function () {
	    $('#id_company, #id_account_number, #id_department').parent().show(150);
		$('#id_company').addClass('required').parent().addClass('required');
		$('#additional_fields :input.required').each(function (i, elem) { check_elem_errors($(elem)) });
	}
	if ($('#id_is_business_0').length != 0 && $('#id_is_business_0:checked').length == 0) {
	    private_action();
	} else if ($('#id_is_business_1').length != 0 && $('#id_is_business_1:checked').length == 0) {
	    business_action();
	}
	$('#id_is_business_1').click(private_action);
	$('#id_is_business_0').click(business_action);
	$('#id_account_number').focus(function () {
	    $(this).nextAll('.help_text').slideDown('fast');
	}).blur(function() {
	    $(this).nextAll('.help_text').slideUp('fast');
	});
	//$('#business_fields :input.required').each(function (i, elem) { alert($(elem)); check_elem_errors($(elem)) });
});

