func: function buyForHackerGold(uint hkgValue) onlyBeforeEnd 
                                               returns (bool success) {
      
        
        if (msg.sender != virtualExchangeAddress) throw;
        
        
        
        address sender = tx.origin;
        uint tokensQty = hkgValue * hkgPrice;
  
        
        votingRights[sender] +=tokensQty;
        preferedQtySold += tokensQty;
        collectedHKG += hkgValue;
  
        
        transferFrom(this, 
                     virtualExchangeAddress, tokensQty);
        transfer(sender, tokensQty);        
              
        
        BuyForHKGTransaction(sender, preferedQtySold, totalSupplyVar, hkgPrice, tokensQty);
          
        return true;
      }