FPS animation problem!

Before I start I just want to say that I am a complete noob when it comes to scripting, I literally started a week ago…
With the script below and slight tweaking of the options I have managed to get the animations to do the following:
Show walk animation when holding W key
quikly change to an idle animation when pressing nothing
and an on the spot jump animation.

this is what I want to happen:
When walking forwards I want to be able to jump, have the animation for jumping play, then while still holding the w key when the jump animation has stoped to change back to the walk animation.

the problem is that if I’m walking and jump, the jump animation plays but when I land all animations stop…

basically I want the animations to be smooth with each other.

this is the code Im using
(javascript)
is there anyway to fix this?

    function Update(){
    if(Input.GetKey("up")){
    animation.CrossFade("walkanim2");
    }
    if(Input.GetKey("w")){
    animation.CrossFade("walkanim2");
    }
    if(Input.GetKeyDown("space"))
    {
    animation.CrossFade("jump");
    }
    if(Input.GetKeyUp("up")){
    animation.CrossFade("animstop");
    }
    if(Input.GetKeyUp("w"))
    {
    animation.CrossFade("animstop");
    }
}

Perhaps this thread could explain some things? c# - Playing two separate animations one after another upon completion - Stack Overflow