Moving gun to center screen and return to old position

Hello. I am making script, which should move my gun to center screen on right mouse button down, and return to old position on right mouse button up.
I tried move weapon x coordinate, but its not working correct.
This is my code:

if (Input.GetButtonDown ("Fire2") && !reloading) {
			//oldposition = gun.transform.position;
			//gun.transform.position=Camera.main.ScreenToWorldPoint(new  Vector3(Screen.width/2-minus, Screen.height/2, Camera.main.nearClipPlane));
			Vector3 temp =  gun.transform.position;
			temp.x+=ValueToMoveWeapon;
			gun.transform.position=temp;
			gun.transform.rotation.Set(0f,0f,0f,0f);
		}
		if (Input.GetKeyUp (KeyCode.Mouse1)) {
			//gun.transform.position = oldposition;
			Vector3 temp =  gun.transform.position;
			temp.x-=ValueToMoveWeapon;
			gun.transform.position=temp;
		}

This is my gun in inspector:

[23335-unity±+test.unity±+new+unity+project+1±+pc,+mac+&+linux+standalone_+2014-03-09+11.32.05.png|23335]

Please, help me making this feature!
All help would be appreciated.

Okay, here it is…

C#:

using UnityEngine;
using System.Collections;

public class GunZoomCenter : MonoBehaviour {

	public Transform gunObject;

	public Transform normalPos;
	public Transform zoomPos;

	public float zoomSpeed;

	void Update () {
		if (Input.GetButton("Fire2")){
			gunObject.transform.position = Vector3.Lerp(gunObject.transform.position, zoomPos.transform.position, zoomSpeed * Time.deltaTime);
		}
		if (!Input.GetButton("Fire2")){
			gunObject.transform.position = Vector3.Lerp(gunObject.transform.position, normalPos.transform.position, zoomSpeed * Time.deltaTime);
		}
	}
}

JavaScript:

#pragma strict
	
var gunObject : Transform;

var normalPos : Transform;
var zoomPos : Transform;

var zoomSpeed : float;

function Update () {
	if (Input.GetButton("Fire2")){
		gunObject.transform.position = Vector3.Lerp(gunObject.transform.position, zoomPos.transform.position, zoomSpeed * Time.deltaTime);
	}
	if (!Input.GetButton("Fire2")){
		gunObject.transform.position = Vector3.Lerp(gunObject.transform.position, normalPos.transform.position, zoomSpeed * Time.deltaTime);
	}
}

I’ll explain more in the comment section…