Minimal Firebase with Cookies

by dirkk0

HTML

<script src="https://cdn.firebase.com/v0/firebase.js"></script>
<div id='cDiv'></div>
<input type='text' id='cInput'>

JavaScript

function createCookie(name, value, expires, path, domain) {
    var cookie = name + "=" + escape(value) + ";";
    if (expires) {
        // If it's a date
        if (expires instanceof Date) {
            // If it isn't a valid date
            if (isNaN(expires.getTime())) expires = new Date();
        } else expires = new Date(new Date().getTime() + parseInt(expires) * 1000 * 60 * 60 * 24);
        cookie += "expires=" + expires.toGMTString() + ";";
    }
    if (path) cookie += "path=" + path + ";";
    if (domain) cookie += "domain=" + domain + ";";
    document.cookie = cookie;
}

function getCookie(name) {
    var regexp = new RegExp("(?:^" + name + "|;\\s*" + name + ")=(.*?)(?:;|$)", "g");
    var result = regexp.exec(document.cookie);
    return (result === null) ? null : result[1];
}


function deleteCookie(name, path, domain) {
    // If the cookie exists
    if (getCookie(name)) createCookie(name, "", -1, path, domain);
}

var browserId;

deleteCookie('browserId');
// console.log(getCookie('browserId'))


if (!getCookie('browserId')) {
    browserId = prompt('set your browser id');
    createCookie('browserId', browserId, 100000);
} else {
    browserId = getCookie('browserId')
}
console.log(browserId);
if (browserId) {
    var ref = new Firebase('https://pplab.firebaseio.com/test');
    // ref.push('abc');

    var onlineRef = new Firebase('https://pplab.firebaseio.com/test/devices/' + browserId + '/online');
    var connectedRef = new Firebase('https://pplab.firebaseio.com/.info/connected');
    connectedRef.on('value', function (snap) {
        if (snap.val() === true) {
            // We're connected (or reconnected)!  Set up our presence state and
            // tell the server to set a timestamp when we leave.
            onlineRef.onDisconnect().set(Firebase.ServerValue.TIMESTAMP);
            onlineRef.set(true);
        }
    });

    if (browserId == 'mac') {
        var contentRef = new...