SidescrollControl X and Y Axis Movement Problem

I’ve modified the SidescrollControl script provided from the Standard Assets (Mobile)to allow x axis movement and y axis movement for a 2D shooter game. However the script only allows up and down movement and right movement. I can’t seem to move it to the left of the screen only Up, Down, and Right. One of the other problem I’m having is I can do both at a time if I want to move right while moving up I have to stop first.

//////////////////////////////////////////////////////////////
// SidescrollControl.js
//
// SidescrollControl creates a 2D control scheme where the left
// pad is used to move the character, and the right pad is used
// to make the character jump.
//////////////////////////////////////////////////////////////

#pragma strict

@script RequireComponent( CharacterController )

// This script must be attached to a GameObject that has a CharacterController
var moveTouchPad : Joystick;
var jumpTouchPad : Joystick;

var forwardSpeed : float = 4;
var backwardSpeed : float = 4;
var jumpSpeed : float = 16;
var inAirMultiplier : float = 0.25;					// Limiter for ground speed while jumping

private var thisTransform : Transform;
private var character : CharacterController;
private var velocity : Vector3;						// Used for continuing momentum while in air
private var canJump = true;

function Start()
{
	// Cache component lookup at startup instead of doing this every frame		
	thisTransform = GetComponent( Transform );
	character = GetComponent( CharacterController );	

	// Move the character to the correct start position in the level, if one exists
	var spawn = GameObject.Find( "PlayerSpawn" );
	if ( spawn )
		thisTransform.position = spawn.transform.position;
}

function OnEndGame()
{
	// Disable joystick when the game ends	
	moveTouchPad.Disable();	
	jumpTouchPad.Disable();	

	// Don't allow any more control changes when the game ends
	this.enabled = false;
}

function Update()
{
	var movement = Vector3.zero;

	// Apply movement from move joystick
if ( moveTouchPad.position.y > moveTouchPad.position.x)
	{
		if (moveTouchPad.position.y > 0)
		{
			movement = Vector3.up * forwardSpeed * moveTouchPad.position.y;
		}
		else
		{
			movement = Vector3.up * backwardSpeed * moveTouchPad.position.y;
		}
	}
	else 
	{
		if (moveTouchPad.position.x > 0)
		{
			movement = Vector3.right * forwardSpeed * moveTouchPad.position.x;		
		}
		else
		{
			movement = Vector3.right * backwardSpeed * moveTouchPad.position.x;
		}
	}
		
	movement *= Time.deltaTime;
	
	// Actually move the character	
	character.Move( movement );
}

//Change:

    // Apply movement from move joystick
    if ( moveTouchPad.position.y > moveTouchPad.position.x)
    {
       if (moveTouchPad.position.y > 0)
       {
         movement = Vector3.up * forwardSpeed * moveTouchPad.position.y;
       }
       else
       {
         movement = Vector3.up * backwardSpeed * moveTouchPad.position.y;
       }
    }
    else 
    {
       if (moveTouchPad.position.x > 0)
       {
         movement = Vector3.right * forwardSpeed * moveTouchPad.position.x;     
       }
       else
       {
         movement = Vector3.right * backwardSpeed * moveTouchPad.position.x;
       }
    }

//To:

    // Apply movement from move joystick
    if (moveTouchPad.position.y > 0)
    {
        movement += Vector3.up * forwardSpeed * moveTouchPad.position.y;
    }
    else
    {
        movement += Vector3.down * backwardSpeed * moveTouchPad.position.y;
    }
    if (moveTouchPad.position.x > 0)
    {
        movement += Vector3.right * forwardSpeed * moveTouchPad.position.x;     
    }
    else
    {
        movement += Vector3.left * backwardSpeed * moveTouchPad.position.x;
    }

That should work