Rewind/Play animations on demand.

Hi, I am trying to get an animation to play when the spacebar is pressed then when it is pressed again I want the animation to rewind from where it is. Then if the animation had finished playing I want it rewind back to the beginning. I have written a script but when the animation has finished playing and you press the spacebar the animation jumps to the beginning instead of rewinding it. Please help! Here's my script.

var keysToggle=0;
var keyAnim=0.0;

function Update () {
    if (Input.GetKeyDown(KeyCode.Space)){
        keyAnim=(animation["KeysAnim"].time);
        if (keysToggle > 0) {
            if (animation["KeysAnim"].time < 0.1) {
                animation["KeysAnim"].time = 0;
                animation["KeysAnim"].speed = 1.0;
                animation.Play ("KeysAnim");
                keysToggle=0;
            } else {
                animation.Stop ("KeysAnim");
                animation["KeysAnim"].time = keyAnim;
                animation["KeysAnim"].speed = 1.0;
                animation.Play ("KeysAnim");
                keysToggle=0;
            }
        } else {
            if (animation["KeysAnim"].time < 1) {
                animation.Stop ("KeysAnim");
                animation["KeysAnim"].time = keyAnim;
                animation["KeysAnim"].speed = -1.0;
                animation.Play ("KeysAnim");
                keysToggle=1;
            } else {
                animation["KeysAnim"].time = 1;
                animation["KeysAnim"].speed = -1;
                animation.Play ("KeysAnim");
                keysToggle=1;
            }
        }
    }
}

Here's some stuff about animations.

Using animation.Stop causes the animation to rewind

Rewind also causes the animation to rewind

You might also want to investigate blending and cross fading