void vibration() throws ScriptException {
		if (statementLength < 2)
			subcommandExpected();
		Token token = statement[1];
		float period = 0;
		switch (token.tok) {
		case Token.on:
			period = viewer.getDefaultVibrationPeriod();
			break;
		case Token.off:
		case Token.integer:
			period = token.intValue;
			break;
		case Token.decimal:
			period = floatParameter(1);
			break;
		case Token.identifier:
			String cmd = (String) statement[1].value;
			if (cmd.equalsIgnoreCase("scale")) {
				checkLength3();
				float scale = floatParameter(2);
				if (scale < -10 || scale > 10)
					numberOutOfRange(-10f, 10f);
				viewer.setFloatProperty("vibrationScale", scale);
				return;
			}
		default:
			unrecognizedSubcommand(token.toString());
		}
		viewer.setFloatProperty("vibrationPeriod", period);
	}