<script type="text/html" data-template-name="wake on lan">
    <div class="form-row">
        <label for="node-input-mac" style="width:120px;"><i class="fa fa-address-card-o"></i> MAC Address</label>
        <input type="text" id="node-input-mac" placeholder="e.g. DE:AD:BE:EF:FE:ED">
    </div>
    <div class="form-row">
        <label for="node-input-host" style="width:120px;"><i class="fa fa-globe"></i> Target Address</label>
        <input type="text" id="node-input-host" placeholder="e.g. 192.168.1.255 or 10.255.255.255">
    </div>
    <div class="form-row">
        <label for="node-input-udpport" style="width:120px;"><i class="fa fa-random"></i> Target UDP Port</label>
        <input type="number" id="node-input-udpport" placeholder="9">
    </div>
    <div class="form-row">
        <label for="node-input-numpackets" style="width:120px;"><i class="fa fa-envelope"></i> Number of Packets</label>
        <input type="number" id="node-input-numpackets" placeholder="3">
    </div>
    <div class="form-row">
        <label for="node-input-interval" style="width:120px;"><i class="fa fa-clock-o"></i> Interval Between Packets (ms)</label>
        <input type="number" id="node-input-interval" placeholder="100">
    </div>
    <div class="form-row">
        <label for="node-input-name" style="width:120px;"><i class="fa fa-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
    <div class="form-tips">Tip: leave blank if you want to use <code>msg.mac</code> or <code>msg.host</code> to dynamically set target information.</div>
</script>

<script type="text/html" data-help-name="wake on lan">
    <p>Sends a Wake-On-LAN magic packet to the mac address specified.</p>
    <p>You may instead set <code>msg.mac</code> to dynamically set the target device mac to wake up.</p>
    <p>The address of the target machine can optionally be set using <code>msg.host</code></p>
    <p>You can likewise set the destination UDP port, number of packets sent, and interval between packets using <code>msg.udpport</code>, <code>msg.numpackets</code>, <code>msg.interval</code>.</p>
    <p>Setting the target address to the broadcast address of the subnet that the target machine is attached to works best.
    For a class C address this is usually just the first three parts of the ip address followed by 255. eg 192.168.1.255.</p>
    <p>You can specify the target UDP port (default 9), number of packets sent (default 3), and interval between packets (default 100ms).</p>
</script>

<script type="text/javascript">
    RED.nodes.registerType('wake on lan',{
        category: 'network-output',
        color:"#999966",
        defaults: {
            mac: {value:""},
            host: {value:""},
            udpport: {value:9, validate:RED.validators.number()},
            numpackets: {value:3},
            interval: {value:100},
            name: {value:""}
        },
        inputs:1,
        outputs:0,
        icon: "light.png",
        align: "right",
        label: function() {
            return this.name ? this.name : (this.mac ? "WOL: "+this.mac : "Wake on Lan") ;
        },
        labelStyle: function() {
            return this.name?"node_label_italic":"";
        }
    });
</script>