﻿var MANDATORY_MESSAGE = " - obligatoriu";
var INCORRECT_MESSAGE = " - incorect";
var MINIM_MESSAGE = " - minim 5 caractere";

/************************** REGISTER *******************************/
var bValidDate = true;
var birthDate = '';

function Register()
{	
	var valid = true;
	var registerArr = [];

	//open <register> node
	registerArr.push('<register ');

	//email
	var email = $('#register_email').val();
	if (email == '')		//empty field
	{
		$('#span_email').addClass("error");
		$('#span_email label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (!TestEmail(email))		//incorrect email
	{
		$('#span_email').addClass("error");
		$('#span_email label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_email').removeClass("error");
		$('#span_email label small').text('');
		registerArr.push('e="' + encodeXml(email) + '" ');
		valid = valid && true;
	}

	//password
	var password = $('#register_password').val();
	if (password == '')		//empty field
	{
		$('#span_password').addClass("error");
		$('#span_password label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (password.length < 5)		//password length
	{
		$('#span_password').addClass("error");
		$('#span_password label small').text(MINIM_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_password').removeClass("error");
		$('#span_password label small').text('');
//>>>	registerArr.push('pass="' + encodeXml(password) + '" ');
		registerArr.push('pass="' + top['aes'].U(password) + '" ');
		valid = valid && true;
	}

	//confirm password
	var confirm_password = $('#register_confirm_password').val();
	if (confirm_password == '')		//empty field
	{
		$('#span_confirm_password').addClass("error");
		$('#span_confirm_password label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (confirm_password != password)	//incorrect confirm
	{
		$('#span_confirm_password').addClass("error");
		$('#span_confirm_password label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_confirm_password').removeClass("error");
		$('#span_confirm_password label small').text('');
//>>>	registerArr.push('cpass="' + encodeXml(confirm_password) + '" ');
		registerArr.push('cpass="' + top['aes'].U(confirm_password) + '" ');
		valid = valid && true;
	}

	//first name
	var firstName = $('#register_first_name').val();
	if (firstName == '')		//empty field
	{
		$('#span_first_name').addClass("error");
		$('#span_first_name label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_first_name').removeClass("error");
		$('#span_first_name label small').text('');
		registerArr.push('fn="' + encodeXml(firstName) + '" ');
		valid = valid && true;
	}

	//last name
	var lastName = $('#register_last_name').val();
	if (lastName == '')		//empty field
	{
		$('#span_last_name').addClass("error");
		$('#span_last_name label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_last_name').removeClass("error");
		$('#span_last_name label small').text('');
		registerArr.push('ln="' + encodeXml(lastName) + '" ');
		valid = valid && true;
	}

	//sex
	if ($('#register_feminin').attr('checked'))
		registerArr.push('sex="F" ');
	else
		registerArr.push('sex="M" ');

	//birthdate  
	if (!bValidDate)		//bValidDate was previously set by VaidateDate if any date other than 01.01.1900 was selected
	{
		$('#span_birthdate').addClass("error");
		$('#span_birthdate label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		if (birthDate == '')	//user left the date 01.01.1900 - onchange wasn't fired
		{
			var dateArr = [];

			option = $('#birth_year option:selected');
			dateArr.push(option.val());

			option = $('#birth_month option:selected');
			dateArr.push(option.val());

			var option = $('#birth_day option:selected');
			dateArr.push(option.val());

			birthDate = dateArr.join('-');
		}

		$('#span_birthdate').removeClass("error");
		$('#span_birthdate label small').text('');
		registerArr.push('bd="' + birthDate + '" ');
		valid = valid && true;
	}

	//phone
	var phone = $('#register_phone').val().replace(/[^0-9]/gi, '');
	$('#register_phone').val(phone);

	if (phone == '')		//empty field
	{
		$('#span_phone').addClass("error");
		$('#span_phone label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (phone.length < 10)		//empty field
	{
		$('#span_phone').addClass("error");
		$('#span_phone label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_phone').removeClass("error");
		$('#span_phone label small').text('');
		registerArr.push('ph="' + encodeXml(phone) + '" ');
		valid = valid && true;
	}

	//confirmation code
	var confirmationCode = $('#confirmation_code').val();
	if (confirmationCode == '')		//empty field
	{
		$('#span_confirmation_code').addClass("error").addClass("errorCaptcha");
		//$('#span_confirmation_code label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_confirmation_code').removeClass("error errorCaptcha");
		$('#span_confirmation_code label small').text('');
		valid = valid && true;
		registerArr.push('cc="' + encodeXml(confirmationCode) + '" ');
	}

	//terms & conditions
	if ($('#register_terms').attr('checked'))
	{
		$('#span_terms').removeClass("error");
		$('#span_terms label small').text('');
		registerArr.push('tc="1" ');
		valid = valid && true;
	}
	else
	{
		$('#span_terms').addClass("error");
		//$('#span_terms label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}

	//newsletter subscription
	if ($('#register_newsletter').attr('checked'))
		registerArr.push('n="1" ');
	//SMS subscription
	if ($('#register_sms').attr('checked'))
		registerArr.push('s="1"');

	//close <register> node
	registerArr.push(' />');

	if (valid)
		$pusher.Call('REGISTER', registerArr.join(''));
}

function OnRegisterComplete(status, message)
{
	var status_span = $('#register_message');
	if (status)	//register success		
	{
		status_span.html('');
		status_span.css('color', '');
		
		//show register success box
		$("#navUser .boxRegisterDone").html(message);		
		$("#navUser .boxLogin, #navUser .boxForgotPass, #navUser .boxRegister").css("display", "none");
		$("#navUser .boxRegisterDone").css("display", "block");
		$("#navUser .boxRegisterDone").delay(5000, function()
		{
			$(this).fadeOut();
			$("#navUser .linkRegister").removeClass("activ");
			ClearRegisterForm();	//firefox doesn't clear form after reload
			top.location.reload();
		});
				
	}
	else					//register error
	{
		status_span.html(message);
		status_span.css('color', 'Red');		
	}
}

//not used
function ClearRegisterForm()
{
	$('#register_email').val('');
	$('#register_password').val('');
	$('#register_confirm_password').val('');
	$('#register_first_name').val('');
	$('#register_last_name').val('');
	
	$('#register_masculin').checkBox('changeCheckStatus', true);
	
	$('#birth_day').selectmenu('value', 0);
	$('#birth_month').selectmenu('value', 0);
	$('#birth_year').selectmenu('value', 80);
			
	$('#register_phone').val('');
	$('#confirmation_code').val('');
		
	$('#register_terms').checkBox('changeCheckStatus', false);	
	$('#register_newsletter').checkBox('changeCheckStatus', false);
	$('#register_sms').checkBox('changeCheckStatus', false);
}

function OnValidateDateComplete(status)
{
	if (status)
		bValidDate = true;
	else
		bValidDate = false;
}

function ValidateDate()
{
	var dateArr = [];

	option = $('#birth_year option:selected');
	dateArr.push(option.val());

	option = $('#birth_month option:selected');
	dateArr.push(option.val());

	var option = $('#birth_day option:selected');
	dateArr.push(option.val());

	birthDate = dateArr.join('-');

	$pusher.Call('DOB', birthDate);
}

function ValidateCaptcha()
{
	$pusher.Call('CAPTCHA', $('#confirmation_code').val());
}

function RegisterEnterSubmit(e)
{
	var keycode;

	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;

	if (keycode == 13)
	{
		Register();
		return false;
	}
	else
		return true;
}

/**************************** LOGIN ************************/
function Login()
{
	var valid = true;
	var loginArr = [];

	//open <register> node
	loginArr.push('<login ');

	//email
	var email = $('#login_email').val();
	if (email == '')		//empty field
	{
		$('#span_login_email').addClass("error");
		$('#span_login_email label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (!TestEmail(email))		//incorrect email
	{
		$('#span_login_email').addClass("error");
		$('#span_login_email label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_login_email').removeClass("error");
		$('#span_login_email label small').text('');
		loginArr.push('e="' + encodeXml(email) + '" ');
		valid = valid && true;
	}

	//password
	var password = $('#login_password').val();
	if (password == '')		//empty field
	{
		$('#span_login_password').addClass("error");
		$('#span_login_password label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_login_password').removeClass("error");
		$('#span_login_password label small').text('');
//>>>	loginArr.push('pass="' + encodeXml(password) + '" ');
		loginArr.push('pass="' + top['aes'].U(password) + '" ');
		valid = valid && true;
	} 

	if ($('#login_remember').attr('checked'))
		loginArr.push('r="1" ');

	//close <login> node
	loginArr.push(' />');

	if (valid)
		$pusher.Call('LOGIN', loginArr.join(''));
	else
		return false;
}

function OnLoginComplete(status, message, name, sold, currency)
{
	if (status)
	{
		$('#navUser').css('display', 'none');
		$('#navUserLogged').css('display', 'inline');
		$('#user_name').text('Bine ai venit, ' + name + '!');
		$('#user_points').html('Ai in cont <span id="contact_sold">' + sold + ' ' + currency + '</span>');
		//DisplayNotification('Pentru a respecta politica studiourilor internationale, incepand din data de 27 martie 2010 vei putea vedea filmele de pe Muvix.ro numai de pe doua calculatoare. Pentru detalii click <a href="/static/faq.aspx">aici</a>.');
	}
	else
	{
		var status_span = $('#login_message');
		status_span.html(message);
		status_span.css('color', 'Red');
	}
}

function LoginEnterSubmit(e)
{
	var keycode;

	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;

	if (keycode == 13)
	{
		Login();
		return false;
	}
	else
		return true;
}


/**************************** FORGOT PASSWORD **********************/
function ForgotPassword()
{
	var valid = true;
	var forgotPassArr = [];

	//open <forgot_password> node
	forgotPassArr.push('<forgot_password ');

	//email
	var email = $('#forgot_email').val();
	if (email == '')		//empty field
	{
		$('#span_forgot_email').addClass("error");
		$('#span_forgot_email label small').text(MANDATORY_MESSAGE);
		valid = valid && false;
	}
	else if (!TestEmail(email))		//incorrect email
	{
		$('#span_forgot_email').addClass("error");
		$('#span_forgot_email label small').text(INCORRECT_MESSAGE);
		valid = valid && false;
	}
	else
	{
		$('#span_forgot_email').removeClass("error");
		$('#span_forgot_email label small').text('');
		forgotPassArr.push('e="' + encodeXml(email) + '" ');
		valid = valid && true;
	}

	//close <forgot_password> node
	forgotPassArr.push(' />');

	if (valid)
		$pusher.Call('FP', forgotPassArr.join(''));
	else
		return false;
}

function OnForgotPasswordComplete(status, message)
{
	if (status)	//register success		
	{
		//message
		$("#navUser .boxForgotPasswordDone").html(message);

		//box
		$("#navUser .boxLogin, #navUser .boxForgotPass, #navUser .boxRegister").css("display", "none");
		$("#navUser .boxForgotPasswordDone").css("display", "block");
		$("#navUser .boxForgotPasswordDone").delay(5000, function()
		{
			$(this).fadeOut();
			$("#navUser .linkLogin").removeClass("activ");
		});
	}
	else					//forgot password error
	{
		var status_span = $('#forgot_password_message');
		status_span.html(message);
		status_span.css('color', 'Red');
	}
}

function ForgotPasswordEnterSubmit(e)
{
	var keycode;

	if (window.event)
		keycode = window.event.keyCode;
	else if (e)
		keycode = e.which;

	if (keycode == 13)
	{
		ForgotPassword();
		return false;
	}
	else
		return true;
}

function RebuildCaptcha(id)
{
	$pusher.Call('CAPTCHA_REBUILD', id);
}
function OnRebuildCaptcha(cID)
{
	var src = $('#' + cID).attr('src');
	var new_src = src.substr(0, src.indexOf('cacheBuster')) + 'cacheBuster=' + parseInt(Math.random() * Math.pow(10, 17));
	$('#' + cID).attr('src', new_src);
	$('#confirmation_code').select();
}