﻿function namespace (namespaceString) {
    var parts = namespaceString.split('.'),
        parent = window,
        currentPart = '';

    for (var i = 0, length = parts.length; i < length; i++) {
        currentPart = parts[i];
        parent[currentPart] = parent[currentPart] || {};
        parent = parent[currentPart];
    }

    return parent;
};

function parseQueryString (queryString) {
    var result = {};
    queryString.replace(
        new RegExp("([^?=&]+)(=([^&]*))?", "g"),
        function ($0, $1, $2, $3) { result[$1] = $3; }
    );
    return result;
};

function serializeToQueryString (obj) {
    var bits = [];
    for (var i in obj) {
        if (obj.hasOwnProperty(i) && (typeof obj[i] !== "function")) {
            bits.push(encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]));
        }
    }
    return bits.join("&");
}

