contract SEcoin is StandardToken, Ownable {
    string constant public name = "SE coin";
    string constant public symbol = "SE";
    uint8 constant public decimals = 18;
    bool public isLocked = true;

    function SEcoin(address SEcoinwallet) {
        totalSupply = (14*1e8)*1e18;
        balances[SEcoinwallet] = totalSupply;
    }

    modifier illegalWhenLocked() {
        require(!isLocked || msg.sender == owner);
        _;
    }

    // should be called by crowdSale when crowdSale is finished
    function unlock() onlyOwner public{
        isLocked = false;
    }

    function transfer(address _to, uint256 _value) illegalWhenLocked public returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) illegalWhenLocked public returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }
}
function unlock() onlyOwner public{
    isLocked = false;
}

// should be called by crowdSale when crowdSale is finished