public void shiftRight(int row) {
		
		Color[]  color = new Color[12];
		String[] face  = {"F", "R", "B", "L"};
		
		for(int i=0;i<12;i++) {
			int face_no = (int) Math.floor(((double)i + Math.floor(((double)i)/4))+1)/4;
			int col     = i - face_no*3 + 1;
			
			String grid_space = face[face_no] + ":" + String.valueOf(row) + ":" + String.valueOf(col);
			color[i] = rubiks.getColor(grid_space);
		}
		
		for(int i=0;i<12;i++) {
			int face_no = (int) Math.floor(((double)i + Math.floor(((double)i)/4))+1)/4;
			int col     = i - face_no*3 + 1;
			
			String grid_space = face[face_no] + ":" + String.valueOf(row) + ":" + String.valueOf(col);
			if(i<3) {rubiks.setColor(grid_space, color[i+9]);}
			else    {rubiks.setColor(grid_space, color[i-3]);}
		}
		
		if(row == 1) {
			shiftRotate("U", 3);
			if(user_move) {addMove(26);}
		}
		
		if(row == 2) {
			tofront.add(4);
			String[] faces  = {"F", "R", "B", "L", "U", "D"};
			int[]    layout = getCurrentLayout();
			for(int i=0;i<6;i++) {
				rubiks.setText(faces[i]+":2:2", faces[layout[i]]);
			}
			
			if(user_move) {addMove(36);}
		}
		
		if(row == 3) {
			shiftRotate("D", 1);
			if(user_move) {addMove(30);}
		}
		
	}