/* bshop multiselect filter handling */ function detailMultiSelect(filter) { element = '#' + filter + 'Detail'; visible = $(element).is(':visible'); if (visible) { $(element).hide(); } else { $(element).show(); } } function addValueToMultiSelect(filter, value) { values = getValuesFromMultiSelect(filter); alreadyExists = values.indexOf(value) > -1; if (!alreadyExists && value !== '') { values.push(value); addValuesToMultiSelect(filter, values); } } function removeLastFromMultiSelect(filter) { values = getValuesFromMultiSelect(filter); removeFromMultiSelect(filter, values[values.length - 1]); } function removeFromMultiSelect(filter, value) { values = getValuesFromMultiSelect(filter); values.splice(values.indexOf(value), 1); addValuesToMultiSelect(filter, values); } function addValuesToMultiSelect(filter, values) { s = values.toString(); if (values.toString().charAt(0) === ',') { s = s.substring(1); } $('#' + filter).val(s); } function getValuesFromMultiSelect(filter) { return $('#' + filter).val().split(','); } function removeValuesFromMultiSelect(filter) { values = getValuesFromMultiSelect(filter); $.each(values, function (index) { removeFromMultiSelect(filter, values[index]); }); } function addAllValuesToMultiSelect(filter) { removeValuesFromMultiSelect(filter); $('#cbo' + filter).children().each(function () { addValueToMultiSelect(filter, $(this).val()); }); } function reverseValuesFromMultiSelect(filter) { values = getValuesFromMultiSelect(filter); addValuesToMultiSelect(filter, values.reverse()); }