EM shutter almost working. Still a few things needed...

I've kept the delays in some spots as I want it to lock on those tasks. I really don't know what to do, so I have tried this.

const int CAMERA = 0;
const int SHUTTER = 1;
const int IN = 4;

unsigned long interval = 1000;
unsigned long interval2 = 120000;
unsigned long previousMillis = 0; 

int val = 0;

void setup()
{
  pinMode(CAMERA, OUTPUT);
  pinMode(SHUTTER, OUTPUT);
  pinMode(IN, INPUT);
}

void loop()
{
  val = digitalRead(IN);
  if (val == 0)
  {

    digitalWrite(SHUTTER, LOW);
    digitalWrite(CAMERA, HIGH);
    unsigned long currentMillis = millis();
    if ((unsigned long)(currentMillis - previousMillis) >= interval2)

    digitalWrite(CAMERA, LOW);
    delay(1000);
    previousMillis = millis();

  }
  else

    val = digitalRead(IN);
  if (val == 1)
  {
    {
      digitalWrite(CAMERA, HIGH);
      digitalWrite(SHUTTER, HIGH);
      delay(100);
      digitalWrite(SHUTTER, LOW);
      digitalWrite(CAMERA, LOW);
      delay(1000);

    }
  }
}

Not really getting anywhere. >:(