// <![CDATA[

var RegistrationForm = Class.create(
{
	initialize: function()
	{
		var lang   = $('member-form-lang');
		var f      = $('member-form');
		var s      = $('btn-member-submit');
		var f1     = $('email');
		var f2     = $('password');
		var f3     = $('confirm');
		var f4     = $('title');
		var f5     = $('firstname');
		var f6     = $('lastname');
		var f7     = $('institution');
		var f8     = $('country');
		var f9     = $('how');
		var f9bis  = $('otherhow');
		var f10    = $('institutiontype');
		var f10bis = $('otherinstitutiontype');
		var f11    = $('expertise1');
		var f12    = $('countryexpertise1');
		var f13    = $('agreement');
		var e      = new Array();
		
		if(f13.type.toLowerCase()=='hidden')
		{
			f13 = f13.next();
		}
		
		lang.observe('change', function(){
			$('form-lang').submit();
		});
		
		f9bis.disabled = true;
		f9bis.addClassName('disabled');
		f9.observe('change', function(){
			if(this.options.selectedIndex==1)
			{
				f9bis.disabled = false;
				f9bis.focus();
				f9bis.removeClassName('disabled');
			}
			else
			{
				this.options[1].value = '';
				f9bis.value           = '';
				f9bis.disabled        = true;

				f9bis.addClassName('disabled');
			}
		});
		
		f10bis.disabled = true;
		f10bis.addClassName('disabled');
		f10.observe('change', function(){
			if(this.options.selectedIndex==1)
			{
				f10bis.disabled = false;
				f10bis.focus();
				f10bis.removeClassName('disabled');
			}
			else
			{
				this.options[1].value = '';
				f10bis.value          = '';
				f10bis.disabled       = true;

				f10bis.addClassName('disabled');
			}
		});
		
		var isValidForm = function()
		{
			e = new Array();

			if(f1.value.length<1)
			{
				e.push('enter your e-mail address.');
				f1.addClassName('error');
			}
			else if(!f1.value.match(/^(([^<>()[\]\\.,;:@\"]+(\.[^<>()[\]\\.,;:@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,5}))$/))
			{
				e.push('your e-mail address format isn\'t valid.');
				f1.addClassName('error');
			}
			else
			{
				f1.removeClassName('error');
			}
			
			if(f2.value.length<1)
			{
				e.push('choose a password.');
				f2.addClassName('error');
			}
			else if(f2.value.length<6)
			
			{
				e.push('the password is too short (min 6 caracters).');
				f2.addClassName('error');
			}
			else
			{
				f2.removeClassName('error');

				if(f3.value != f2.value)
				{
					e.push('the password and its confirmation are different.');
					f3.addClassName('error');
				}
				else
				{
					f3.removeClassName('error');
				}
			}
			
			if(f4.value<1)
			{
				e.push('select your title.');
				f4.addClassName('error');
			}
			else
			{
				f4.removeClassName('error');
			}

			if(f5.value.length<1)
			{
				e.push('enter your first name.');
				f5.addClassName('error');
			}
			else
			{
				f5.removeClassName('error');
			}
			
			if(f6.value.length<1)
			{
				e.push('enter your last name.');
				f6.addClassName('error');
			}
			else
			{
				f6.removeClassName('error');
			}
			
			if(f7.value.length<1)
			{
				e.push('enter your institution name.');
				f7.addClassName('error');
			}
			else
			{
				f7.removeClassName('error');
			}
			
			if(f8.value<1)
			{
				e.push('select your country.');
				f8.addClassName('error');
			}
			else
			{
				f8.removeClassName('error');
			}
			
			if(f9.options.selectedIndex<1 || (f9.options.selectedIndex==1 && f9bis.value.length<1))
			{
				e.push('select how/from where/through whom you learn about NORRAG.');
				if(f9.options.selectedIndex<1)
				{
					f9.addClassName('error');
					f9bis.removeClassName('error');
				}
				else
				{
					f9bis.addClassName('error');
					f9.removeClassName('error');
				}
			}
			else
			{
				if(f9.options.selectedIndex>1)
				{
					f9bis.value = '';
				}
				else if(f9bis.value.length>0)
				{
					//f9.options[1].value = f9bis.value;
					f9.options.selectedIndex = 1;
				}

				f9.removeClassName('error');
				f9bis.removeClassName('error');
			}
			
			if(f10.options.selectedIndex<1 || (f10.options.selectedIndex==1 && f10bis.value.length<1))
			{
				e.push('select the type of the institution you are from.');
				if(f10.options.selectedIndex<1)
				{
					f10.addClassName('error');
					f10bis.removeClassName('error');
				}
				else
				{
					f10.removeClassName('error');
					f10bis.addClassName('error');
				}
			}
			else
			{
				if(f10.options.selectedIndex>1)
				{
					f10bis.value = '';
				}
				else
				{
					//f10.options[1].value = f10bis.value;
					f10.options.selectedIndex = 1;
				}

				f10.removeClassName('error');
				f10bis.removeClassName('error');
			}
			
			if(f11.value.length<1)
			{
				e.push('select your field(s) of expertise.');
				f11.addClassName('error');
			}
			else
			{
				f11.removeClassName('error');
			}
			
			if(f12.value.length<1)
			{
				e.push('select your country(ies) of expertise.');
				f12.addClassName('error');
			}
			else
			{
				f12.removeClassName('error');
			}

			if(false == f13.checked)
			{
				e.push('read and agree with the terms of agreement.');
				f13.addClassName('error');
			}
			else
			{
				f13.removeClassName('error');
			}
			
			if(e.length==0)
			{
				return true;
			}
			
			return false;
		};
		
		s.observe('click', function(event){
			event.stop();
			if(isValidForm())
			{
				f.submit();
			}
			else
			{
				alert('Please, consider the following:\n\n- ' + e.join('\n- '));
			}
		});
		
		f.observe('submit', function(event){
			if(!isValidForm())
			{
				event.stop();
				alert('Please, consider the following:\n\n- ' + e.join('\n- '));
			}
		});
	}
});

document.observe('dom:loaded', function(){
	new RegistrationForm();
});

// ]]>
