function Buy(uint8 ID, string Quote, string Name) public payable NoContract {
        require(ID < MaxItems);
        require(!EditMode);
        
        
        uint256 price = GetPrice(Market[ID].PriceID);
        require(msg.value >= price);
        
        if (block.timestamp > Timer){
            if (Timer != 0){ 
                Withdraw("GameInit", "Admin");
                return;
            }
        }
        
        
        if (msg.value > price){
            msg.sender.transfer(msg.value-price);
        }
        
        uint256 PayTax = (price * Tax)/10000;
        feesend.transfer(PayTax);
        uint256 Left = (price-PayTax);
        
        
        if (Market[ID].PriceID!=0){
            
            uint256 pay = (Left*PreviousPayout)/10000;
            TotalPot = TotalPot + (Left-pay);
           
            Market[ID].Holder.transfer(pay);
        }
        else{
            TotalPot = TotalPot + Left;
        }
        
        
        Timer = block.timestamp + GetTime(Market[ID].PriceID);
        
        JackpotWinner = msg.sender;


        
        
        emit ItemBought(RoundNumber,ID,  price,  Market[ID].Holder, msg.sender, Timer,  TotalPot,  Quote, Name);
        
        DrawAddr(); 
        
        
        Market[ID].PriceID++;
        
        Market[ID].Holder=msg.sender;
    }