Why is my timer not starting after reloading a level?

I have looked around for answers, but unfortunately have found none. I have a fade-in in my menu level based on a colored plane in front the main camera. This works fine the first time I load the game to the Main Menu, but when I go back to the Main Menu from the gameplay UI, the fade never starts, but the music and buttons are functioning nonetheless. Any help would be greatly appreciated! UPDATE: I know very little about Javascript, trying to learn it a little.

#pragma strict
var timer : float = 5.0f;
function Awake(){
}

function Start () {
	renderer.material.color.a = 1;

}

function Update () {
	timer = timer - Time.deltaTime;
	if(timer > 0){
		renderer.material.color.a -= 0.1 * Time.deltaTime;
	}
	if(timer <= 0){
		timer = 0;
	}
}

Try this instead:

function Update () {
     renderer.material.color.a = Mathf.MoveTowards(renderer.material.color.a,0,Time.deltaTime * 0.1);
 }

So this was all a stupid mistake, I had set Time.timescale to 0 in the pause menu, but had not set it back to 1 after clicking main menu. I fixed it by putting Time.timescale = 1f in function start(). Thank you for your help!