Move the Object to Camera respective.

I am facing one problem with Input.acceleration. if i rotated the camera in y axis in runtime then my Input.acceleration work opposite direction.how can Move the Object to Camera respective.

var dir : Vector3 = Vector3.zero;
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;

#pragma strict

// Move object using accelerometer
	var speed = 10;

	
	
	function Start () {
       Screen.sleepTimeout = SleepTimeout.NeverSleep;
        
   
    }
       
       
 

	function Update () {
	
	
	
		var dir : Vector3 = Vector3.zero;

	
		      
		dir.x =/*Input.acceleration.x*5;*/ Input.GetAxis("Horizontal");//Input.acceleration.x*5;//Input.GetAxis("Horizontal");//-Input.acceleration.y;
		
		dir.z =/*Input.acceleration.y*2;*/Input.GetAxis("Vertical");//Input.acceleration.y*5;//Input.GetAxis("Vertical"); //Input.acceleration.x;
		
		// clamp acceleration vector to unit sphere
		if (dir.sqrMagnitude > 1)
			dir.Normalize();
		
		// Make it move 10 meters per second instead of 10 meters per frame...
		dir *= Time.deltaTime;
		
		// stop to cross movement
		
		    if(Mathf.Abs(dir.x) > Mathf.Abs(dir.z)) {
             dir.z = 0;
             }
         else {                  
                dir.x = 0;
               }
			
		// Move object
		transform.Translate (dir * speed);
	}