TP_Animator script won't work

i’m following 3d buzz’s tutorial on how to implament maya characters but this script has the following erors

Assets/TP Animator.cs(16,14): error CS1519: Unexpected symbol public' in class, struct, or interface member declaration Assets/TP Animator.cs(58,34): error CS1547: Keyword void’ cannot be used in this context
Assets/TP Animator.cs(58,35): error CS1525: Unexpected symbol (', expecting )‘, ,', ;’, [', or =’
Assets/TP Animator.cs(74,37): error CS1525: Unexpected symbol State' Assets/TP Animator.cs(82,44): error CS1525: Unexpected symbol case’
Assets/TP Animator.cs(103,14): error CS0116: A namespace can only contain types and namespace declarations
Assets/TP Animator.cs(137,1): error CS8025: Parsing error

and this is the script

using UnityEngine;
using System.Collections;

public class TPAnimator : MonoBehaviour
{
public enum Direction
{
Stationary, Forward, Bacward, Left, Right,
LeftForward, RightForward, LeftBackwards, RightBackward
}

public enum CharacterState
{
	Idle, Running, RunningBackward, StrafingLeft, StrafingRight, Jumping,
	Falling, Landing, Climbing, Sliding, Using, Dead, ActionLocked
public static TP_Animator Instance;

public Direction MoveDirection { get; set; }
public CharacterState State { get; set; }

void Awake () 
{
	Instance = this;
}

void Update () 
{
	DetermineCurrentState();
    ProcessCurrentState();

	Debug.Log("Current Character State: " + State.ToString());
}

public void DetermineCurrentMoveDirection()
{
	var forward = false;
	var backward = false;
	var left = false;
	var right = false;
			
	if (TP_Motor.Instance.MoveVector.z > 0)
		forward = true;
	if (TP_Motor.Instance.MoveVector.z < 0)
		backward = true;
	if (Tp_Motor.Instance.MoveVector.x > 0)
		right = true;
	if (Tp_Motor.Instance.MoveVector.x < 0)
		left = true;

	if (forward)
	{
	   if (left)
		   MoveDirection = Direction.LeftForward;
	   else if (right)

		   MoveDirection = Direction.RightForward;

void DetermineCurrentState()
{
	if (State == CharacterState.Dead)
		return;

		if (!Tp_Controller.CharacterController.isGrounded)
		{
			if (State != CharacterState.Falling &&
				State != CharacterState.Jumping &&
			    State != CharacterState.Landing)
		{
				//We Should be falling
		}
		if (State != CharacterState.Falling &&
			State != CharacterState.Jumping &&
			State != CharacterState.Landing
			State != CharacterState.Using &&
			State != CharacterState.Climbing &&
			State != CharacterState.Sliding)
		{
			switch (MoveDirection)
			{
				case Direction.Stationary:
					State = CharacterState.Idle;
				case Direction.Forward:
					State = CharacterState.Running;
				case Direction.Bacward:
					State = CharacterState.RunningBackward;
				case Direction.Left:
					State = CharacterState.StrafingLeft;
				case Direction.Right:
					State = CharacterState.StrafingRight;
				case Direction.LeftForward:
					State = CharacterState.Running;
				case Direction.RightForward:
					State = CharacterState.Running;
				case Direction.LeftBackwards:
					State = CharacterState.RunningBackward;
				case Direction.RightBackward:
					State = CharacterState.RunningBackward;
			}
		}
	}
}

void ProcessCurrentState()
{
	 switch (State)
	{
		case CharacterState.Idel:
			break;
		case CharacterState.Running:
			break;
		case CharacterState.RunningBackwards:
			break;
		case CharacterState.Idel:
			break;
		case CharacterState.StrafingLeft:
			break;
		case CharacterState.StrafingRight:
			break;
		case CharacterState.Jumping:
			break;
		case CharacterState.Falling:
			break;
		case CharacterState.Landing:
			break;
		case CharacterState.Climbing:
			break;
		case CharacterState.Sliding:
			break;
		case CharacterState.Using:
			break;
		case CharacterState.Dead:
			break;
		case CharacterState.ActionLocked:
			break;
	}
}

}

any help on whats wrong???

by the way it’s a c# script

It looks like you are missing at least 2 closing brackets ( } ) after
MoveDirection = Direction.RightForward;