contract DatumGenesisToken is StandardToken, Ownable {

  string public name = "DAT Genesis Token";           //The Token's name: e.g. Dat Genesis Tokens
  uint8 public decimals = 18;                         //Number of decimals of the smallest unit
  string public symbol = "DATG";                             //An identifier: e.g. REP
                                           
  uint256 public constant INITIAL_SUPPLY = 75000000 ether;

  // Flag that determines if the token is transferable or not.
  bool public transfersEnabled = false;

  /**
   * @dev Contructor that gives msg.sender all of existing tokens. 
   */
  function DatumGenesisToken() {
    totalSupply = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
  }


   /// @notice Enables token holders to transfer their tokens freely if true
   /// @param _transfersEnabled True if transfers are allowed in the clone
   function enableTransfers(bool _transfersEnabled) onlyOwner {
      transfersEnabled = _transfersEnabled;
   }

  function transferFromContract(address _to, uint256 _value) onlyOwner returns (bool success) {
    return super.transfer(_to, _value);
  }

  function transfer(address _to, uint256 _value) returns (bool success) {
    require(transfersEnabled);
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
    require(transfersEnabled);
    return super.transferFrom(_from, _to, _value);
  }

  function approve(address _spender, uint256 _value) returns (bool) {
      require(transfersEnabled);
      return super.approve(_spender, _value);
  }
}
/**
 * @title DatumGenesisToken
 * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. 
 * Note they can later distribute these tokens as they wish using `transfer` and other
 * `StandardToken` functions.
 */
function enableTransfers(bool _transfersEnabled) onlyOwner {
   transfersEnabled = _transfersEnabled;
}

/// @notice Enables token holders to transfer their tokens freely if true
/// @param _transfersEnabled True if transfers are allowed in the clone