Behaviour.register({

	'.xcapRequired' : function(e)
	{
		e.required = true;
        if (e.type=="select-one" || e.type=="select-multiple")
        	e.exclude="-1";
	},

	'.xcapRequiredEmail' : function(e)
	{
		e.required = true;
		e.regexp = '([A-Za-z0-9._-]+@[A-Za-z0-9_-]+[.][A-Za-z0-9._-]+)';
		
		e.onblur = function()
		{
			if (this.value === '' || this.lastValue == this.value)
				return;
			
			this.lastValue = this.value;
			
			var responseText = document.getElementById('email_response_text');
			if (responseText === null)
				return;
				
			jQuery.getJSON('checkemail.jsp?user.email=' + this.value,
				function(r) 
				{
					if (!r.free) responseText.innerHTML = xcap.getText('register', 'error.email.occupied');
					else if (!r.valid) responseText.innerHTML = xcap.getText('register', 'error.email.invalid');
					else responseText.innerHTML = '';
				});
		}
	},
	
	'.xcapRequiredAlias' : function(e)
	{
		e.required = true;
		
		e.onchange = function()
		{
			this.value = this.value.toLowerCase();
		}
		
		e.onblur = function()
		{
			this.value = this.value.toLowerCase();
			
			if (this.value === '' || this.lastValue == this.value)
				return;
			
			this.lastValue = this.value;
			
			var responseText = document.getElementById('alias_response_text');
			if (responseText === null)
				return;
			
			jQuery.getJSON('checkalias.jsp?user.alias=' + this.value,
				function(r) 
				{
					if (!r.free) responseText.innerHTML = xcap.getText('register', 'error.alias.occupied');
					else if (!r.valid) responseText.innerHTML = xcap.getText('register', 'error.alias.invalid');
					else responseText.innerHTML = '';
				});
		}
	},
	

	'.xcapRegisterForm' : function(e)
    {
        e.onsubmit = function()
        {
            return jsVal.validateCompleteFormNoAlert(this, 'xcapValidationError');
        };
    },
    
    '.xcapToggleLocation' : function(e)
    {
        e.onclick = function()
        {
            if(document.getElementById('user.radio.user.city').checked == true)
            {
            	document.getElementById('user.city').disabled = false;
            	document.getElementById('user.country').disabled = true;
            }
            
            if(document.getElementById('user.radio.user.country').checked == true)
            {
            	document.getElementById('user.country').disabled = false;
            	document.getElementById('user.city').disabled = true;
            }
        };
    }
	
});




