how can i change this script into fully automatic firing.

hi my current raycast shoot script only shoots one bullet one click at a time. does anyone know how i can adapt this to fully automatic firing. many thanks and heres my script:

#pragma strict

var Range : float = 1000;
var Force : float = 1000;

var hitMark : GameObject;

var texta : GUITexture;
var four : Texture;
var three : Texture;
var two : Texture;
var one : Texture;
var zero : Texture;
var five : Texture;

var bullets : int = 5;
var shootSound : AudioClip;

function Start () {

}

function Update () {

if(Input.GetKeyDown(KeyCode.R)){
		
	bullets = 5;
	GameObject.Find("GUN").animation.Play("reload");

}

if(bullets == 5){ texta.guiTexture.texture = five; }

		else if(bullets == 0){ GameObject.Find("GUN").animation.Play("reload"); bullets = 5; }
		else if(bullets == 4){ texta.guiTexture.texture = four; }
		else if(bullets == 3){ texta.guiTexture.texture = three; }
		else if(bullets == 2){ texta.guiTexture.texture = two; }
		else if(bullets == 1){ texta.guiTexture.texture = one; }
	
	
	
	var hit : RaycastHit;
			
	var direction : Vector3  = transform.TransformDirection(Vector3.forward);
     
	Debug.DrawRay(transform.position , direction * Range , Color.blue);
			
		if(Input.GetMouseButtonDown(0)){
		audio.PlayOneShot(shootSound);
		bullets--;
			
			if(Physics.Raycast(transform.position , direction , hit, Range)){
			
						var hitRotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
				
						if(hit.collider.gameObject.tag == "zombie"){
			
						    //hit.rigidbody.AddForceAtPosition( direction * 100 , hit.point);
						    //hit.collider.gameObject.animation.Play("die");
						    Instantiate(hitMark);
						    hit.collider.gameObject.SendMessage("ApplyDamage", 25);

							
					    }
			
			}
		}			

}

using two variables, you can do this :

    var delay : float = 3.5;
    var currentdelay : float = 3.5;
    
    function Update () {

    if(Input.GetMouseButton(0)){
    
    if(Time.time>= currentdelay){
    
    currentdelay = Time.time+delay;
    
    firefunction () ;
    
    }

    }
    
    }

this will allow you to have a delay of 3.5 seconds. The reason why i didnt set the current variable to 0 is because it would technically fire straight away.