AppSelect.prototype.fulfillmentOfSelect = function(data) { // 1) Remember options appSelect.rememberStateOfSelect(data); // 2) Delete options appSelect.depopulateSelect(data.selectID); // 3) Set options appSelect.populateSelect(data); } AppSelect.prototype.rememberStateOfSelect = function(data) { var indexOfCurrentlySelectedOption = $('#' + data.selectID).prop('selectedIndex'); if (indexOfCurrentlySelectedOption != -1) { data.selected = indexOfCurrentlySelectedOption; } } AppSelect.prototype.populateSelect = function(data) { if(!data.hasOwnProperty('selected')) { data.selected = 0; } if(!data.hasOwnProperty('title')) { data.title = { 'pl': data.text.pl, 'en': data.text.en }; } if(document.body.className == 'pl') { $.each(data.value, function(i, val) { if(i == data.selected) { $('#' + data.selectID).append( '<option selected title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>' ); } else { $('#' + data.selectID).append( '<option title="' + data.title.pl[i] + '" value="' + val + '">' + data.text.pl[i] + '</option>' ); } }); } else if (document.body.className == 'en') { $.each(data.value, function(i, val) { if(i == data.selected) { $('#' + data.selectID).append( '<option selected title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>' ); } else { $('#' + data.selectID).append( '<option title="' + data.title.en[i] + '" value="' + val + '">' + data.text.en[i] + '</option>' ); } }); } } AppSelect.prototype.depopulateSelect = function(id) { $('#' + id).empty(); } AppSelect.prototype.clearCheckedFields = function(id) { $('#' + id).find('input').each(function() { this.checked = false; }); } function AppSelect() {} var appSelect = new AppSelect();