﻿function formToDictionary(selector) {
    var form = new Array();
    var elements = $(selector).find('input[name]:enabled, select[name]:enabled');
    var checkBoxes = $(selector).find("[type='checkbox']");
    var other = elements.not("[type='checkbox']");
    var hidden = $(selector).find("input[type='hidden']");
    $.each(other, function(i, el) {
        form[i] = new Object();
        form[i].Key = $(el).attr("name");
        form[i].Value = $(el).val();
    });
    $.each(hidden, function(i, el) {
        var obj = new Object();
        obj.Key = $(el).attr("name");
        obj.Value = $(el).val();
        form.push(obj);
    });
    while (checkBoxes.length > 0) {
        var currentName = checkBoxes[0].name;
        var selected = checkBoxes.filter("[name='" + currentName + "']:checked");
        var index = form.length;
        var result = '';
        form[index] = new Object();
        form[index].Key = currentName;
        $.each(selected, function(i, el) {
            result += ((i > 0 ? "," : "") + el.value);
        });
        form[index].Value = result;
        checkBoxes = checkBoxes.not("[name='" + currentName + "']");
    }
    return form;
}
