Player movement conflicting with player orientation?

Hi all, I am making a third person hack and slash game for university and i am having difficulty with scripting the movement.
I have a player look at script and a player move script. I want the game to play similarly to spiral knights in the way that the player can rotate with the mouse and move up down left right NOT on a grid. However I get the problem where the player orientation makes the ‘wasd’ controls relative to where the player is. I want the move direction to be always up down left right NOT relative to the player.

Here is my look at script:

function Update () {
	var playerPlane = new Plane(Vector3.up, transform.position);
	var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
	var hitdist = 0.0;
	
	if (playerPlane.Raycast (ray, hitdist)) {
		
		var targetPoint = ray.GetPoint(hitdist);
		
		var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
		
		transform.rotation = targetRotation;
	}
}

Here is my Movement script:

using UnityEngine;
using System.Collections;

public class SimpleMove : MonoBehaviour {
    //Variables
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F; 
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;

    void Update() {
        CharacterController controller = GetComponent<CharacterController>();
        // is the controller on the ground?
        if (controller.isGrounded) {
            //Feed moveDirection with input.
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            //Multiply it by speed.
            moveDirection *= speed;
            //Jumping
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;

        }
        //Applying gravity to the controller
        moveDirection.y -= gravity * Time.deltaTime;
        //Making the character move
        controller.Move(moveDirection * Time.deltaTime);
    }
}

I have used the third person unity tutorial script for the movement but it only works for a short while after putting the script onto my player. It soon makes the player glitch as the scripts I assume are conflicting. The player is orientated towards the mouse yet the move script is making it turn on the ‘wasd’ inputs. If someone could look at these scripts and see how to allow the player to move up down left right. My camera does not rotate, but it follows the player just like spiral knights. I need the character to move up down left right not relative to where it is facing from the mouse look script. If anyone could have a look at this I would be truly grateful, thanks for your time.

The movement is relative to the player orientation because you transform the original direction vector with TransformDirection:

        ...
        moveDirection = transform.TransformDirection(moveDirection);
        ...

Just comment out this line and the player will move following world axis (even when rotated to other directions, which may be somewhat weird)