/*
 * 
 * Common functions
 */
function validateEmail(email)
{
	var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$/;
	return regex.test(email);
	//return email.match(regex)	?	true	:	false;
}

function validateUsername(username) 
{
	var regex = /^([a-zA-Z])+([a-zA-Z0-9_\-\.])+$/; 
    return regex.test(username);
}

function validatePassword(password)
{
	var regex = /^([a-zA-Z0-9_\-*&%$#@!])+$/; 
    return regex.test(password);
}

function removeMessage(div)
{
	$('#' + div).slideUp();
}

function displayHelpPopup(div)
{
	$('#' + div).css('display', 'block');
}

function hideHelpPopup(div)
{
	$('#' + div).css('display', 'none');
}

/* Form terms fancybox window */
jQuery(document).ready(function(){	
	if(typeof jQuery.fancybox == 'function') { 
		$("a.lightbox_link").fancybox({
			'hideOnContentClick': true
		});
	}
});

function sendActivationLink()
{
	var email = $('#email').val();
	if (email.length == 0 || !validateEmail(email)) {
		$('#email').addClass('js_error')
		return false;
	} else {
		$('#email').removeClass('js_error')
	}	
	var ajax_options = {
		beforeSend: function()
		{
			$('#registration_throbber').html('<img src="/ifc/ajax-loader.gif" alt="Loading" />');
			$('#registration_button').attr('disabled', 'disabled');
		},
		complete: function()
		{
			$('#registration_throbber').html('');
			$('#registration_button').attr('disabled', '');
		},
		error: function(XMLHttpRequest, textStatus, errorThrown)
		{
			alert('There was an error durring request. Please try again later!');
		},
		success: function(html, textStatus)
		{
			$('#regsiter_box').css('display', 'none');
			$('#response_container').removeClass('display-none');
			$('#response_container').html(html);
			return false;
		},
		timeout: '100000',
		type: 'POST',
		dataType: 'HTML',
		data: 'ajax=1&email=' + email,
		url: '/register/send/'
	};
	$.ajax(ajax_options);
	return false;
}

function sendLostPassword()
{
	var email = $('#email').val();
	if (email.length == 0 || !validateEmail(email)) {
		$('#email').addClass('js_error');
		return false;
	}
	
	var ajax_options = {
		beforeSend: function()
		{
			$('#forget_password_throbber').html('<img src="/ifc/ajax-loader.gif" alt="Loading" />');
			$('#forget_password_button').attr('disabled', 'disabled');
		},
		complete: function()
		{
			$('#forget_password_throbber').html('');
			$('#forget_password_button').attr('disabled', '');
		},
		error: function(XMLHttpRequest, textStatus, errorThrown)
		{
			alert('There was an error durring request. Please try again later!');
		},
		success: function(html, textStatus)
		{
			$('#forget_password_box').css('display', 'none');
			$('#response_container').removeClass('display-none');
			$('#response_container').html(html);
			return false;
		},
		timeout: '100000',
		type: 'POST',
		dataType: 'HTML',
		data: 'ajax=1&email=' + email,
		url: '/lostpassword/send/'
	};
	$.ajax(ajax_options);
	return false;
}
/*
 * Validate input fields for login form.
 * If everything is ok return true, otherwise mark invalid fields and return false
 * NO AJAX LOGIN
 */
function checkLoginForm()
{
	var error = false;
	var email = $('#email').val();
	var password = $('#password').val();
	var remember_me = $('#remember_me').val();
	
	if (email.length == 0 || !validateEmail(email)) {
		$('#email').addClass('js_error');
		error = true;
	}else{
		$('#email').removeClass('js_error');
	}
	
	if (password.length == 0) {
		$('#password').addClass('js_error');
		error = true;
	}else{
		$('#password').removeClass('js_error');
	}
	
	if (error) {
		return false;
	}
	return true;
	/**
	 * All checkings are ok, proceed to the ajax call
	 */
	var ajax_options = {
			beforeSend: function()
			{
				$('#ajax_throbber_container').html('<img src="/ifc/ajax-loader.gif" alt="Loading" />');
				$('#submit_button').attr('disabled', 'disabled');
			},
			complete: function()
			{
				$('#ajax_throbber_container').html('');
				$('#submit_button').attr('disabled', '');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown)
			{
				alert('There was an error durring request. Please try again later!');
			},
			success: function(xml, textStatus)
			{
				var code = $(xml).find('code').text()
				var message = $(xml).find('message').text();
				var color = parseInt(code) === 12	?	'green'	:	'red'; 
				/*$('#contact_ajax_message_container').css('color', color);
				$('#contact_ajax_message_container').text(message);*/
				if (parseInt(code) === 12) {
					document.location="/";
				}else{
					$('#login_ajax_response').slideDown();
					setTimeout('removeMessage("login_ajax_response")', 3000);
				}
			},
			timeout: '100000',
			type: 'POST',
			dataType: 'XML',
			data: 	'ajax=1' + 
					'&email=' + email +
					'&password=' + password +
					'&remember_me=' + remember_me
			,
			url: '/login/submit/'
	};
	$.ajax(ajax_options);
	return false;
}

function toggleProfileImageEditor()
{
	$('#image_change_editor').slideToggle();
	return false;
}

function unlockChangePassword()
{
	if ($('#password').attr('disabled')) {
		$('#password').attr('disabled', '');
		$('#repeat_password').attr('disabled', '');
	} else {
		$('#password').attr('disabled', 'disabled');
		$('#repeat_password').attr('disabled', 'disabled');
	}
}

function checkCommentForm()
{
	var com = $('#comment').val();
	if (com.length > 4) {
		return true;
	}
	alert('Min 5 chars please!');
	return false;
}

function checkIfUseranemExists()
{
	var username = $('#username').val();
	if (username.length < 4 || username.length > 10 || !validateUsername(username)) {
		$('#username').addClass('js_error');
		return false;
	}else{
		$('#username').removeClass('js_error');
	}
	
	/**
	 * All checkings are ok, proceed to the ajax call
	 */
	var ajax_options = {
			beforeSend: function()
			{
				$('#username_throbber').css('display', 'inline');
				$('#check_username_button').css('display', 'none');
			},
			complete: function()
			{
				$('#username_throbber').css('display', 'none');
				$('#check_username_button').css('display', 'inline');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown)
			{
				alert('There was an error durring request. Please try again later!');
			},
			success: function(xml, textStatus)
			{
				var code = $(xml).find('code').text()
				var message = $(xml).find('message').text(); 
				if (parseInt(code) === 12) {
					$('#username').css('background', '#ADFF9F');
				}
				else if (parseInt(code) === 5) {
					$('#username').css('background', '#FFC4BF');
				}else{
					$('#username').css('background', '#FFC4BF');
					alert('Username already exists. Please choose another one');
				}
				return false;
			},
			timeout: '100000',
			type: 'POST',
			dataType: 'XML',
			data: 	'ajax=1' + 
					'&username=' + username,
			url: '/register/checkusername/'
	};
	$.ajax(ajax_options);
	return false;
}

function checkSignupForm()
{
	var error = false;
	
	var username = $('#username').val();
	if (username.length < 4 || username.length > 10 || !validateUsername(username)) {
		$('#username').addClass('js_error');
		error = true;
	}else{
		$('#username').removeClass('js_error');
	}
	
	var password 			= $('#password').val();
	var repeat_password		= $('#repeat_password').val();
	
	if (password.length < 5 || password.length > 10 || !validatePassword(password)) {
		$('#password').addClass('js_error');
		error = true;
	}
	else if (repeat_password.lenght == 0 || password != repeat_password) {
		$('#repeat_password').addClass('js_error');
		error = true;
	} else {
		$('#password').removeClass('js_error');
		$('#repeat_password').removeClass('js_error');
	}
	
	var sex = $("input[@name='sex']:checked").val();
	if (sex == 'M' || sex == 'F') {
		$('span.sex-error-message').css('display', 'none');
	} else {
		$('span.sex-error-message').css('display', 'inline');
		error = true;
	}
	

	if ($('#terms').attr('checked') == false) {
		$('span.terms-error-message').css('display', 'inline');
		error = true;
	} else {
		$('span.terms-error-message').css('display', 'none');
	}
	
	var secure_code = $('#secure_code').val();
	if (secure_code.length != 5) {
		$('#secure_code').addClass('js_error');
		error = true;
	} else {
		$('#secure_code').removeClass('js_error');
	}
	return !error;
}
