﻿function parseQuery(query) {
    var Params = new Object();
    if (!query) return Params; // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) continue;
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}

function equalHeight(group) {
    tallest = 0;
    group.each(function() {
        thisHeight = $(this).height() + 5;
        if (thisHeight > tallest) {
            tallest = thisHeight;
        }
    });
    group.height(tallest);
}


$(document).ready(function() {
    jQuery.fn.alternateRowColors = function() {
        $('tbody tr:odd', this).removeClass('even').addClass('odd');
        $('tbody tr:even', this).removeClass('odd').addClass('even');
        return this;
    };

    jQuery.fn.alternateDivResultColors = function() {
        $('.result:odd', this).removeClass('even').addClass('odd');
        $('.result:even', this).removeClass('odd').addClass('even');
        return this;
    };

    jQuery.fn.alternateDivRowColors = function() {
        $('.row:odd', this).removeClass('even').addClass('odd');
        $('.row:even', this).removeClass('odd').addClass('even');
        return this;
    };


    jQuery.fn.paginateTable = function() {
        var currentPage = 0;
        var numPerPage = 10;
        var $table = $(this);
        $table.find('tbody tr').show().lt(currentPage * numPerPage).hide().end().gt((currentPage + 1) * numPerPage - 1).hide().end();
        return this;
    };


    /**
    * appendDom - Extremely flexible tool for dynamic dom creation.
    *   http://byron-adams.com/projects/jquery/appendDom
    *
    * Copyright (c) 2007 Byron Adams (http://byron-adams.com)
    * Dual licensed under the MIT (MIT-LICENSE.txt)
    * and GPL (GPL-LICENSE.txt) licenses.
    *
    */
    jQuery.fn.appendDom = function(template) {
        return this.each(function() {
            for (element in template) {
                var el = (typeof (template[element].tagName) === 'string') ?
        document.createElement(template[element].tagName) : document.createTextNode('');
                delete template[element].tagName;
                for (attrib in template[element]) {
                    switch (typeof (template[element][attrib])) {
                        case 'string':
                            if (typeof (el[attrib]) === 'string') {
                                el[attrib] = template[element][attrib];
                            } else {
                                el.setAttribute(attrib, template[element][attrib]);
                            }
                            break;
                        case 'function':
                            el[attrib] = template[element][attrib];
                            break;
                        case 'object':
                            if (attrib === 'childNodes') { $(el).appendDom(template[element][attrib]); }
                            break;
                    }
                }
                this.appendChild(el);
            }
        });
    };
});
