public int canAdd(CardStack src) 
    {
        if(orderedPair(this.top(), src.chosen()))
            return 1;

     // If stack clicked twice on & doubleclicking set to select all
     //   ordered cards, select them    
        else if(src == this)
        {   if(doubleClickSelect && nSelected < nOrdered() && nSelected > 0)
            {   select( nOrdered() );
                return -1;
            }
        }
     // If multiple cards can be removed from source stack, look at
     //   lowest ordered card, the move up until a match found  
        else if(src.lookBelow)
        {   int nOrd = src.nOrdered();
            int startI = src.nCards() - nOrd;
            for(int srcI = startI; srcI < src.nCards(); ++srcI)
            {   if(orderedPair(top(), src.cardAt(srcI)))
                    return src.nCards() - srcI;
            }
        }
        return 0; 
    }