// JavaScript Document
var server_url = 'https://www.optimismonline.com/';
var affiliate = 'OPTIMISM';
//var server_url = '';
var request = {

	login:function ()

	{
		$("#msgbox").attr('class', 'none');

		var user = $("#user").attr("value");

		var pwd = $("#pwd").attr("value");

		if (user.length < 1)

		{
			alert('Username is required.'); 

			return;

		}

		else if (pwd.length < 1)

		{

			alert('Password is required.');

			return;

		}
		
		else if (!navigator.cookieEnabled)
		{
			alert('In order to login to your account please enable cookies in your browser or add this website to your trust list.');
			return;
		}

		$.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"login",user:user,pwd:$.md5(pwd),affiliate:affiliate},request.loginCallback);

	},


	loginCallback:function (data)

	{

		if (data.type == 'S')

		{

			$("#msgbox").attr('class', 'none');

			if ($('#remember').is(':checked')) 
			{
				//remember username and password
				$.cookie('st1', $("#user").attr('value'),{ expires: 365, path: '/', domain: 'optimismonline.com', secure: true });
				$.cookie('st2', $("#pwd").attr('value'),{ expires: 365, path: '/', domain: 'optimismonline.com', secure: true });
				$.cookie('st3', 1,{ expires: 365, path: '/', domain: 'optimismonline.com', secure: true });

			}
			else
			{
				$.cookie('st1', null);
				$.cookie('st2', null);
				$.cookie('st3', null);

			}

			window.location.href = server_url+'app/index.php';
		}

		else

		{
			if (data.data == 'MAINTENANCE')
			{
				window.location.href = 'maintenance.php';
			}
			else
			alert(data.data);

		}

		

	},
	register:function()
	{
		user		= request.val('user');
		fname		= request.val('fname');
		lname		= request.val('lname');
		email		= request.val('email');
		pwd		= request.val('pwd');
		lang	= request.val('lang');
		answer = request.val('answer');

		if (!user)
		{
			alert('Username is required.');
			return;
		} else if(user == 'demo') {
		    alert('Username "demo" is not allowed');
		    return;
		}
		else if (pwd.length > 20 || pwd.length < 6)
		{
			alert('Your password must be at least 6 and may not be more than 20 characters long');
			return ;
		}
		else if (pwd != request.val('pwd1'))
		{
			alert('The passwords you entered do not match. Please try again.');
			return;
		}
		else if (!$('#agreement').attr('checked'))
		{
			alert('Please accept the Terms of Use before proceeding');	
			return;
		}
		$('input').attr('disabled',true);
		$.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"verify_result",answer:answer},function(data)
		  {
			  if (data.type == 'F')
			  {
				  alert('The code that you entered was incorrect. Please try again.');  
				  $('input').attr('disabled',false);
				  return;
			  }
			  else
			  {
				  request.register_lang = lang;
				  $.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"register",user:user,pwd:pwd,fname:fname,lname:lname,email:email,affiliate:affiliate,lang:lang},request.reisterCallback);
			  }
		  });
	},
	
	register_lang:'en',
	
	reisterCallback:function(data)
	{
		if (data.type == 'S')
		{
			if (request.register_lang == 'en')
			window.parent.location = 'login.php';
			else if (request.register_lang == 'nl')
			window.parent.location = 'inloggen.php';
			else if (request.register_lang == 'pl')
			window.parent.location = 'logowanie.php';
			//window.parent.location = 'index.php?state=4&msg=Thank you for registering. Please login with your username and password.';
		}
		else
		{
			if (data.data == 6)
			{
				window.parent.location = 'maintenance.php';	
			}
			else
			alert(data.data);
		}
		$('input').attr('disabled',false);

	},
	
	request_email:function()
	{
		var email = request.val('email');
		if (!email)
		{
			alert('The email address you entered is not valid. Please try again.');
			return;
		}
		$('input').attr('disabled',true);
		$.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"request_pwd_reset_email",email:email,affiliate:affiliate},request.remail_callback);
	},
	remail_callback:function(json)
	{
		if (json.type == 'F')
		{
			switch (json.data)
			{
				case 1:
					alert('The email address that you entered is not registered. Please try again or contact us for assistance.');
					return;
				case 2:
					alert('Fail to make the request. Please try again.');
					return;
				
			}
		}
		else
		{
			window.parent.location = 'reset_password.php?action=2&email='+json.data;
		}
		$('input').attr('disabled',false);
	},
	change_pwd:function()
	{
		code = request.val('code');
		pwd1 = request.val('pwd1');
		pwd2 = request.val('pwd2');
		if (!code)
		{
			alert('Invalid verification code. Please request a new one.');
			return;
		}
		if (!pwd1)
		{
			alert('Please enter a password.');
			return;
		}
		if (pwd1.length<6)
		{
			alert('Your password must be at least 6 characters long.');
			return;
		}
		if (pwd1.length>20)
		{
			alert('Your password may not be more than 20 characters long.');
			return;
		}
		if (pwd1 != pwd2)
		{
			alert('The passwords entered do not match. Please try again.');
			return;
		}
		$('input').attr('disabled',true);
		
		$.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"change_pwd",newpwd:pwd1,code:code,affiliate:affiliate},request.changepwdCallback);
				
	},
	changepwdCallback:function (json)
	{
		if (json.type == 'F')
		{
			if (json.data == 11)
			{
				alert('The code that you entered is not valid. Please try again or contact us for assistance.');
				return;
			}
			alert('Failed to reset password.');
			return;
		}
		else
		{
			window.parent.location = 'index.php?state=4&msg=You have successfully reset you password.';
		}
		$('input').attr('disabled',false);
	},
	val:function(id)
	{
		return $.trim($('#'+id).attr('value'));
	}

}
