Disable/enable script and animation when you move your mouse cursor

Hello everyone. I have 2 scripts(Orbit, enable_disable_script) and an animation attached to my main camera and my camera is orbiting around an object. I am trying to make a script(enable_disable_script) that would disable another script(Orbit) in the same object when mouse cursor moves and at the same time play the animation, and when the cursor stops moving - enable_disable_script would start counting time, Orbit script would re-enable itself and an animation would stop. Here is my script so far.

#pragma strict

var script : Transform;
 
function Start() {
animation.Play();
 script.GetComponent(Orbit).enabled = false;
}

function Update() {
    if(Input.GetAxis("Mouse X")||Input.GetAxis("Mouse Y")){
    //Code for action on mouse moving x
    script.GetComponent(Orbit).enabled = true;
    animation.Stop();
    print("Mouse moved x or y");
      Wait();
    }
}

function Wait() {
yield WaitForSeconds(2);
animation.Play();
script.GetComponent(Orbit).enabled = false;
}

I have 2 problems. The first one is that I want the script to start counting time only when I stop moving the cursor, but I can’t understand how to do that. The second one is that when I orbit around an object with my main camera fast then the Orbit script and animation enables/disables randomly, not after 2 seconds. I hope you undersand what I said. Thank you for help.

Put your Wait() function under else statement like so:

function Update() {
    if(Input.GetAxis("Mouse X")||Input.GetAxis("Mouse Y")){
    //Code for action on mouse moving x
    script.GetComponent(Orbit).enabled = true;
    animation.Stop();
    print("Mouse moved x or y");
    }else{
     Wait();
    }
}

I think it might fix both problems.