OpenGL glBlendFuncSeparate
===

I need some help with OpenGL textures masking. I have it working but need to find some other blending function parameters to work in other way. 
Now I have:

    //Background 
    ...code...
        glBlendFunc(GL_ONE, GL_ZERO);
    ...code
    
    //Mask
    ...code...
        glBlendFuncSeparate(GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ZERO);
    ...code...
    
    //Foreground
    ...code
        glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
    ...code

Now it sets foreground's opacity to 0 (fills with background texture) where mask is transparent. I need it to react to mask's colors. I mean something like setting foregrounds opacity depending on mask's color. For example if mask is black (0.0,0.0,0.0) then the opacity of that place in foreground is 0 (is filled with background), and if mask is white (1.0,1.0,1.0) then the opacity of foreground is 1 (not filled with background). It can be in reverse consequence (white = opacity 0, black = opacity 1). I just need it to work depending on color.
  
My current result's visualization bellow.
  
----------

Background:  
![enter image description here][1]

Mask:  
![enter image description here][2]

Foreground:  
![enter image description here][3]

Result:  
![enter image description here][4]


  [1]: http://i.stack.imgur.com/hJIWh.png
  [2]: http://i.stack.imgur.com/ELd1J.png
  [3]: http://i.stack.imgur.com/pMEWt.png
  [4]: http://i.stack.imgur.com/bI1Eb.png