// +build !nacl

package websocket

import (
	"net"
	"net/http"
	"net/url"
	"time"

	"github.com/gorilla/websocket"
)

func Dial(protocol, address string, timeout time.Duration) (net.Conn, error) {
	var then time.Time
	if timeout > 0 {
		then = time.Now().Add(timeout)
	}
	tcp := mapWebSocketToTCP[protocol]
	conn, err := net.DialTimeout(tcp, address, timeout)
	if err != nil {
		return nil, err
	}
	conn.SetReadDeadline(then)
	u, err := url.Parse("ws://" + address)
	if err != nil {
		return nil, err
	}
	ws, _, err := websocket.NewClient(conn, u, http.Header{}, 4096, 4096)
	if err != nil {
		return nil, err
	}
	var zero time.Time
	conn.SetDeadline(zero)
	return WebsocketConn(ws), nil
}
