/*
 * Copyright (c) 2009. Sproozi.com - All rights reserved
 */

Sproozi = {};

Sproozi.namespace = function(nsString) {
    var namespaces = nsString.split('.') || [nsString];
    var nlen = namespaces.length;
    var root = window;
    var F = function() {
    };

    for (var i = 0; i < nlen; i++) {
        var ns = namespaces[i];
        if (typeof(root[ns]) === 'undefined') {
            root = root[ns] = F;
            root = root.prototype = F;
        }
        else
            root = root[ns];
    }
};

Sproozi.populate = function (obj, json) {
    for (var i in json) {
        obj[i] = json[i];
    }
};

Sproozi.extend = function(subClass, baseClass) {
    function inheritance() {
    }

    inheritance.prototype = baseClass.prototype;

    subClass.prototype = new inheritance();
    subClass.prototype.constructor = subClass;
    subClass.baseConstructor = baseClass;
    subClass.superClass = baseClass.prototype;
};

Sproozi.toString = function (object) {
    var str = "{\n";
    for (prop in this) {
        if (typeof this[prop] === 'object') {
            str += prop + " : " + Sproozi.toString(this[prop]) + "\n";
        } else if (!(typeof this[prop] === 'function')) {
            str += prop + " : " + this[prop] + "\n";
        }
    }
    return str + "\n}";
};


var querystring = {
get : function(key) {

    var querystring = location.search.substring(1, location.search.length)
    if (querystring.length == 0) return null;
    var args = querystring.split('&');
    for (var i = 0; i < args.length; i ++) {
        var pair = args[i].split('=');
        var name = unescape(pair[0]);
        if (name.toUpperCase() == key.toUpperCase()) {
            if (pair.length == 2) {
                return unescape(pair[1]);
            } else {
                return "";
            }
        }
    }
    return null;
},
    contains : function(key) {

    var querystring = location.search.substring(1, location.search.length)
    if (querystring.length == 0) return "";
    var args = querystring.split('&');
    for (var i = 0; i < args.length; i ++) {
        var pair = args[i].split('=');
        var name = unescape(pair[0]);
        if (name.toUpperCase() == key.toUpperCase()) {
            return true;
        }
    }
    return false;
}};

Number.prototype.toRadians = function() {
    return this * Math.PI / 180;
};

Number.prototype.toDegrees = function() {
    return this * 180 / Math.PI;
};