ir rgb led

I created a code to run rgb led to fade through an ir remote. the problem is, the code is not running continuously.it breaks after a statement is completed.and second condition is not working....my code is

#include<IRremote.h>
int RECV_PIN = 12;
int r, g, b;
#define REDPIN 6
#define GREENPIN 5
#define BLUEPIN 9
#define FADESPEED 5
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
  irrecv.enableIRIn();
  pinMode(REDPIN, OUTPUT);
  pinMode(GREENPIN, OUTPUT);
  pinMode(BLUEPIN, OUTPUT);

}
void loop() {
  {
    if (irrecv.decode(&results))
    {
      unsigned int value = results.value;
      Serial.println(value); // you can ommit this line
      irrecv.resume(); // Receive the next value
      {
        if (results.value == 25094167) {
          for (r = 0; r < 256; r++) {
            analogWrite(REDPIN, r);
            delay(FADESPEED);
          }
          // fade from violet to red
          for (b = 255; b > 0; b--) {
            analogWrite(BLUEPIN, b);
            delay(FADESPEED);
          }
          // fade from red to yellow
          for (g = 0; g < 256; g++) {
            analogWrite(GREENPIN, g);
            delay(FADESPEED);
          }
          // fade from yellow to green
          for (r = 255; r > 0; r--) {
            analogWrite(REDPIN, r);
            delay(FADESPEED);
          }
          // fade from green to teal
          for (b = 0; b < 256; b++) {
            analogWrite(BLUEPIN, b);
            delay(FADESPEED);
          }
          // fade from teal to blue
          for (g = 255; g > 0; g--) {
            analogWrite(GREENPIN, g);
            delay(FADESPEED);
          }
        }
        else if (results.value == 25047247) {
          digitalWrite(REDPIN, LOW);
          digitalWrite(GREENPIN, LOW);
          digitalWrite(BLUEPIN, LOW);
        }
      }
    }
  }
}

i want to run this code continuosly in loop when button 1 is pressed in remote:

for (r = 0; r < 256; r++) {
            analogWrite(REDPIN, r);
            delay(FADESPEED);
          }
          // fade from violet to red
          for (b = 255; b > 0; b--) {
            analogWrite(BLUEPIN, b);
            delay(FADESPEED);
          }
          // fade from red to yellow
          for (g = 0; g < 256; g++) {
            analogWrite(GREENPIN, g);
            delay(FADESPEED);
          }
          // fade from yellow to green
          for (r = 255; r > 0; r--) {
            analogWrite(REDPIN, r);
            delay(FADESPEED);
          }
          // fade from green to teal
          for (b = 0; b < 256; b++) {
            analogWrite(BLUEPIN, b);
            delay(FADESPEED);
          }
          // fade from teal to blue
          for (g = 255; g > 0; g--) {
            analogWrite(GREENPIN, g);
            delay(FADESPEED);
          }

and want to break this loop when i press button 2 in remote:

else if (results.value == 25047247) {
          digitalWrite(REDPIN, LOW);
          digitalWrite(GREENPIN, LOW);
          digitalWrite(BLUEPIN, LOW);
        }

please help as quick as possible please..............

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

Please read the forum guide quick as possible then modify your post quick as possible please