Can someone translate this CS script to JS?

using UnityEngine;
using System.Collections;

public class LadderClimb : MonoBehaviour {
	
	private CharacterController controller;
	private CharacterMotor motor;
	public float speed;
	private float mspeed;
	
	void OnTriggerEnter (Collider hit)
	{
		if (hit.collider.tag == "ladder" & controller.isGrounded)
		{
			Vector3 move = new Vector3 (0, 0.5f, 0);
			transform.position += move;
		}
	}
	
	void OnTriggerExit (Collider hit)
	{
		if (hit.collider.tag == "ladder")
		{
			motor.movement.maxFallSpeed = 20;
			motor.movement.maxBackwardsSpeed = mspeed;
		}
	}
	
	void OnTriggerStay(Collider hit)
	{
		if (hit.collider.tag == "ladder")
		{
			Vector3 move = new Vector3 (0, speed*Time.deltaTime, 0);
			motor.movement.maxFallSpeed = 0;
			motor.movement.maxBackwardsSpeed = 0;
			if (Input.GetKey(KeyCode.W))
			{
				transform.position += move;
			}
			
			RaycastHit col;
			if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), 2f))
			{
				motor.movement.maxBackwardsSpeed = mspeed;
			}
			else if (Input.GetKey(KeyCode.S))
			{
				motor.movement.maxBackwardsSpeed = 0;
				transform.position -= move;
			}
			
		}
	}
	
	// Use this for initialization
	void Start () {
		motor = GetComponent<CharacterMotor>();
		controller = GetComponent<CharacterController>();
		mspeed = motor.movement.maxBackwardsSpeed;
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

Someone made this translator.