﻿if (typeof sbs == 'undefined' || !sbs) {
    var sbs = {};
}

sbs.register = function(nameSpace) {
    var nameArray = nameSpace.split('.');
    var i = (nameArray[0] == 'sbs') ? 1 : 0;
    var j = nameArray.length;
    var newName = sbs;

    while (i < j) {
        newName[nameArray[i]] = newName[nameArray[i]] || {};
        newName = newName[nameArray[i]];
        i++;
    }

    return newName;
};

sbs.guid = function() {
	function generateBytes() {
		var s = new Array(32);
		for (var i = 0; i < 32; i++) {
			s[i] = Math.floor(Math.random() * 0x10);
		}
		s[12] = 4;
		s[16] = s[16] & 0x3 | 0x8;
		return s;
	}
	var bytes = generateBytes();
	var str = '';
	var hexes = new Array ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
	
	this.getBytes = function() { return bytes; };
	this.toString = function() {
		if (str.length != 36) {
			str = '';
			for (var i = 0; i < 8; i++) { str += hexes[bytes[i]]; }
			str += '-';
			for (var i = 8; i < 12; i++) { str += hexes[bytes[i]]; }
			str += '-';
			for (var i = 12; i < 16; i++) { str += hexes[bytes[i]]; }
			str += '-';
			for (var i = 16; i < 20; i++) { str += hexes[bytes[i]]; }
			str += '-';
			for (var i = 20; i < 32; i++) { str += hexes[bytes[i]]; }
		}
		return str;
	};
};
