mp.utility = {};

mp.utility.sanitize = function(data) {
    return $('<div/>').text(data).html();
};

mp.utility.http_build_query = function(formdata, arg_separator) {
    var key, use_val, use_key, i = 0, tmp_arr = [];

    if (!arg_separator) {
        arg_separator = '&';
    }

    for (key in formdata) {
        if (key) {
            use_val = encodeURIComponent(formdata[key].toString());
            use_key = encodeURIComponent(key);
            tmp_arr[i++] = use_key + '=' + use_val;
        }
    }

    return tmp_arr.join(arg_separator);
};

mp.utility.shorten_string = function(string, len) {
    if (!len) { len = 20; }
    if (string.length > len) {
        return string.substring(0,len) + "...";
    } else {
        return string;
    }
};

mp.utility.commaize = function(number, chunk) {
    if (!chunk) { chunk = 3; }
    var neg = (number < 0) ? true : false;
    // Cast to string
    number = Math.abs(number).toString();
    var split = number.split(".");
    // Parse main number
    number = this.strrev(split[0]);
    var i = 0;
    var commaized = [];
    while (i < number.length) {
        commaized.push(number[i]);
        if ((i+1) % chunk == 0 && (i + 1) != number.length) {
            // Add comma if necessary, but prevent adding it as the last digit
            commaized.push(",");
        }
        i++;
    }
    commaized = commaized.reverse("").join("");
    if (split[1]) {
        // Add decimals, if applicable
        commaized += "." + split[1];
    }
    if (neg) {
        commaized = "-" + commaized;
    }
    return commaized;
};

mp.utility.strrev = function(str) {
    return str.split("").reverse().join("");
};

mp.utility.floatformat = function(num, places) {
    if (typeof(num) == "number") {
        var n = num.toFixed(places);
        var intn = parseInt(n, 10);
        if ((n - intn) == 0) {
            return intn;
        } else {
            return n;
        }
    } else {
        return num;
    }

};

mp.utility.parse_domain = function(referrer) {
    var sp = referrer.split('/');
    var domain = '';
    if (sp.length >= 2) {
        domain = sp[2];
    }
    return domain;
};
