 // Pause = delay between transitions
 // Steps = number of steps
 // R, G, B = Full-on RGB values
-void grow_color(int pause, int steps, byte R, byte G, byte B) { 
-
-  int tmpR, tmpG, tmpB;         // Temp values
-  
-  // Fade up
-  for (int s=1; s<=steps; s++) {
-    tmpR = (R * s) / steps;     // Multiply first to avoid truncation errors  
-    tmpG = (G * s) / steps;
-    tmpB = (B * s) / steps;
-    
-    for (int i=0; i<numEyePix; i++) {
-      right_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
-      left_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
-    }
-    right_eye_strip.show();
-    left_eye_strip.show();
-    delay(pause);
-  }    
-
-  // Fade down
-  for (int s=steps; s>0; s--) {
-    tmpR = (R * s) / steps;     // Multiply first to avoid truncation errors  
-    tmpG = (G * s) / steps;
-    tmpB = (B * s) / steps;
-    
-    for (int i=0; i<numEyePix; i++) {
-      right_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
-      left_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
-    }
-    
-    right_eye_strip.show();
-    left_eye_strip.show();
-    delay(pause);
-  }    
-
-  delay(pause * 10);
-}
-
+

States heart_state = NORMAL;


// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:

  
}

void heartRainbowCycle() {

  uint16_t i, j;
  //uint8_t wait = 1;
  heartColorIndex++;
  
  if( heartColorIndex > 256 ){
     heartColorIndex = 0;
  }
  
  j = heartColorIndex;

  for(i=0; i< heart_strip.numPixels(); i++) {
    heart_strip.setPixelColor(i, Wheel(((i * 256 / heart_strip.numPixels()) + j) & 255));
  }
  
  heart_strip.show();
  //delay(wait);
  
}



void heartChaseRainbow() {
  
  uint8_t wait = 50;
   
  heartColorIndex++;
  if( heartColorIndex > 256 ){
     heartColorIndex = 0;
  }
  
  int j = heartColorIndex;
  
  for (int q=0; q < 3; q++) {
      for (int i=0; i < heart_strip.numPixels(); i=i+3) {
        heart_strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
      }
      heart_strip.show();
         
      delay(wait);
         
      for (int i=0; i < heart_strip.numPixels(); i=i+3) {
          heart_strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
  }
 
}




void sleep() {

  int pause = 80;
  int steps = 50;

  int tmpR, tmpG, tmpB;         // Temp values


  for (int s=steps; s>=0; s--) {
    tmpR = (255 * s) / steps;     // Multiply first to avoid truncation errors  
    tmpG = (255 * s) / steps;
    tmpB = (0 * s) / steps;
    
    for (int i=0; i<numEyePix; i++) {
      right_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
      left_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
    }
    right_eye_strip.show();
    left_eye_strip.show();
    delay(pause);
  }   

  for (int i=0; i<numHeartPix; i++) {
      heart_strip.setPixelColor(i,0,0,0);
  }

  heart_strip.show();
  heart_state = SLEEPING;
    
}

void wakeup(){

  int pause = 80;
  int steps = 50;

  int tmpR, tmpG, tmpB;         // Temp values


  for (int s=1; s<=steps; s++) {
    tmpR = (255 * s) / steps;     // Multiply first to avoid truncation errors  
    tmpG = (255 * s) / steps;
    tmpB = (0 * s) / steps;
    
    for (int i=0; i<numEyePix; i++) {
      right_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
      left_eye_strip.setPixelColor(i,tmpR,tmpG,tmpB);
    }
    right_eye_strip.show();
    left_eye_strip.show();
    delay(pause);
  }          
}


// Helper Functions

void setFixColor(uint32_t c, uint8_t wait) {

  for(uint16_t i=0; i<right_eye_strip.numPixels(); i++) {
      right_eye_strip.setPixelColor(i, c);
      left_eye_strip.setPixelColor(i, c);
      //strip.setBrightness(bright_level);
      //strip2.setBrightness(bright_level);
      right_eye_strip.show();
      left_eye_strip.show();
      delay(wait);
  }
}

