﻿// sorts a json object by a field name
// eg: var newBids = item.Bids.sort(sort_by('BidId', false));
var sort_by = function (field, reverse, primer) {
    reverse = (reverse) ? -1 : 1;

    return function (a, b) {
        a = a[field];
        b = b[field];

        if (typeof (primer) != 'undefined') {
            a = primer(a);
            b = primer(b);
        }

        if (a < b) return reverse * -1;
        if (a > b) return reverse * 1;
        return 0;
    }
}

function indexByVal(value, ary) {
    for (var x = 0; x < ary.length; x++) {
        if (ary[x] == value)
            return x;
    }
    return -1;
}

function href(context) {
    return $(context).attr('href');
}

function id(context) {
    return $(context).attr('id');
}

function log(m) {
    console.log(m);
}

function getParameterByNameFromUrl(name, url) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if (results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}

function getParameterByNameFromHashUrl(name, url) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?#]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(url);
    if (results == null)
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}
