var t;

function validateField(field_name, value, event)
{
	var field_text;
	if(t != undefined)
	{
		clearTimeout(t);
	}
	// Ignore tab presses
	if(event.keyCode == 9)
	{
		return;
	}
	t = setTimeout(checkField,'200');
	
	
	function checkField()
	{
		clearTimeout(t);
		var p = {};
		p.method = 'post';
		p.onSuccess = validField;
		p.onFailure = invalidField;
		p.displayNotices = false;
		p.url = '';
		p.params = {};
		switch(field_name)
		{
			case 'reg_username':
				p.url = '/register/checkUsername';
				p.params = {username:value};
				field_text = 'username';
				break;
			case 'reg_password':
				p.url = '/register/checkPassword';
				p.params = {password:value};
				field_text = 'password';
				break;
			case 'reg_password_confirm':
				p.url = '/register/checkPassword';
				var password1 = document.getElementById('reg_password').value;
				p.params = {password:password1, confirm_password:value};
				field_text = 'password confirmation';
				break;
			case 'reg_email':
				p.url = '/register/checkEmail';
				p.params = {email:value};
				field_text = 'email';
				break;
			case 'reg_birth_day':
			case 'reg_birth_month':
			case 'reg_birth_year':
				field_name = 'reg_dob';
				var day = document.getElementById('reg_birth_day').value;
				var month = document.getElementById('reg_birth_month').value;
				var year = document.getElementById('reg_birth_year').value;
				p.url = '/register/checkDOB';
				p.params = {day:day, month:month, year:year};
				field_text = 'date of birth';
				break;
			case 'reg_t_n_c':
				p.url = '/register/checkTnc';
				p.params = {tnc:value};
				field_text = false;
				break;
		}
		new ajaxRequest(p);
	}
	
	validField = function(response)
	{
		var view_data = response.view_data;
		var msg_elem = document.getElementById(field_name +'_msg');
		var input_elem = document.getElementById(field_name);
		
		if(input_elem != null)
		{
			input_elem.className = input_elem.className.replace(/reg_error/gi, '');
			var parentElem = input_elem.parentNode;
			if(parentElem.tagName=='LABEL' || parentElem.tagName == 'DIV')
			{
				parentElem.style.backgroundImage = 'url(/images/layouts/loveme/lightboxes/valid_field.jpg)';
			}
		}
		if(msg_elem != null)
		{
			msg_elem.className = msg_elem.className.replace(/error_msg/gi, '');
			msg_elem.innerHTML = field_text != false ? 'Your '+field_text+' is valid' : '';
		}
	}
	
	invalidField = function(response)
	{
		var view_data = response.view_data;
		var msg_elem = document.getElementById(field_name +'_msg');
		var input_elem = document.getElementById(field_name);
		
		if(input_elem != null)
		{
			input_elem.className = input_elem.className + ' reg_error';
			var parentElem = input_elem.parentNode;
			if(parentElem.tagName=='LABEL' || parentElem.tagName == 'DIV')
			{
				parentElem.style.backgroundImage = 'url(/images/layouts/loveme/lightboxes/invalid_field.jpg)';
			}
		}
		if(msg_elem != null)
		{
			msg_elem.className = msg_elem.className + ' error_msg';
			msg_elem.innerHTML = response.notices.ERROR;
		}
	}
}

function changeAvatar(num, gender)
{
	document.getElementById('chosen_avatar').innerHTML = '<img src="/images/content/register/avatars/large/'+gender+'default'+num+'.jpg" alt="" />';
	document.getElementById('reg_gender').value = gender;
	document.getElementById('reg_avatar_style').value = num;
}

regSuccess = function(response)
{
	// Track the Google Adwords conversion.
	var image = new Image(1,1);
	image.src="http://www.googleadservices.com/pagead/conversion/1064128665/?label=U21wCOfWdBCZobX7Aw&amp;guid=ON&amp;script=0";
	if(typeof pageTracker != "undefined")
	{
		pageTracker._trackPageview('/register/complete');
	}
}

regFailed = function(response)
{
	var invalid_fields = response.view_data.invalid_fields
	if(invalid_fields != undefined)
	{
		for(var field_name in invalid_fields)
		{
			var msg_elem = document.getElementById(field_name +'_msg');
			var input_elem = document.getElementById(field_name);
			
			if(input_elem != null)
			{
				input_elem.className = input_elem.className + ' reg_error';
				var parentElem = input_elem.parentNode;
				if(parentElem.tagName=='LABEL' || parentElem.tagName == 'DIV')
				{
					parentElem.style.backgroundImage = 'url(/images/layouts/loveme/lightboxes/invalid_field.jpg)';
				}
			}
			if(msg_elem != null)
			{
				msg_elem.className = msg_elem.className + ' error_msg';
				msg_elem.innerHTML = invalid_fields[field_name];
			}
		}
	}
}

function reloadAvatars()
{
	var p = {};
	p.method = 'post';
	p.url = '/register/reloadAvatars';
	p.onSuccess = reloadAvatarsResponse;
	p.params = {};
	new ajaxRequest(p);
}

function reloadAvatarsResponse(response)
{
	
	var female_avatars = document.getElementById('female_avatars');
	var male_avatars = document.getElementById('male_avatars');
	
	female_avatars.innerHTML = response.elements.registration_female_avatars;
	male_avatars.innerHTML = response.elements.registration_male_avatars;
}