// JavaScript Document
var server_url = 'http://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.'); s

			return;

		}

		else if (pwd.length < 1)

		{

			alert('Password is required.');

			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('username', $("#user").attr('value'));

				$.cookie('password', $("#pwd").attr('value'));

				$.cookie('remember', 1);

			}

			else

			{

				$.cookie('username', null);

				$.cookie('password', null);

				$.cookie('remember', null);

			}

			
			// used for popup login
			//window.parent.location = 'app/index.html';
			
			window.location.href = 'app/index.html';
		}

		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');

		answer = request.val('answer');

		

		if (!user)

		{

			alert('Username is required.');

			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(data.data);
				  alert('The code that you entered was incorrect. Please try again.');  

				  $('input').attr('disabled',false);
				  return;
			  }
			  else
			  {

				  $.getJSON(server_url+'siteapi.php?jsoncallback=?',{func:"register",user:user,pwd:pwd,fname:fname,lname:lname,email:email,affiliate:affiliate},request.reisterCallback);

			  }
		  });
	},
	
	reisterCallback:function(data)
	{

		if (data.type == 'S')

		{
			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 varification 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('Fail 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'));

	}

}
