i am creating a shooting game on canvas, i have a projectile object - when a user clicks a new instance of this object is made. and the method to move the projectile is called - projectiles[i].move();

I have added the instances to an array so i can count through it each time to keep each instance moving. however it seems when the method for one instance is called twice that projectiles speed is increased. how can i stop this from happening. here is the code

Code JavaScript:
function fire(){ //trigger projectile object and create new
	window.onmousedown = function(e){
		trigger = true;
		if(e.offsetX){
			mouseX = e.offsetX;
			mouseY = e.offsetY;
		}else 
		if(e.layerX){
			mouseX = e.layerX;
			mouseY = e.layerY;
		}	
		projectiles[pC] = new projectile((top_canvas.width/2) + main_x, (top_canvas.height/2) + main_y, mouseX - main_x - (top_canvas.width/2), mouseY - main_y - (top_canvas.height/2), turn);	
		pC++;
		zero = 0;
 
	}
	if(trigger == true){
		for(i = 0; i<pC; i++){
 
				projectiles[i].move();
		}	
	}
}
 
//construct bullet object
function projectile(x,y, mx, my, turn){
	this.x_speed = 1;
	this.y_speed = 1;
	this.x = x;
	this.y = y;
	this.turn = turn;
 
	ctx_2.fillStyle = "#000";
	this.move = move;
	function move(){
		ctx_2.save();
			ctx_2.clearRect(0,0,top_canvas.width,top_canvas.height);
			ctx_2.translate(this.x, this.y);			
			ctx_2.rotate(this.turn - 1.570796325);
			ctx_2.fillRect(-25, zero+=this.y_speed, 50, 50);
		ctx_2.restore();
		document.getElementById("info").innerHTML = "pc:" + pC + " i:" + i + " yspeed:" + this.y_speed;
	}
}

sorry if i am not clear enough, i will try and explain more if needed

Thanks!