Below is my first implementation of a JavaScript object using the Module Pattern. I need to add a constructor to the object, however, and for whatever reason every attempt I make hasn't worked, so I assume I'm setting the object up incorrectly and/or missing some syntax somewhere.
How would I add just a simple, parameter-less constructor to the object below?
var DisplaySettings = {
//Default display settings for each producer type
HandleAssignedView: function () {
var producerType = $('#drpProducerType :selected').text();
switch (producerType) {
case "Agency":
this.AgencyView();
this.AgencyOptions();
break;
case "Sole Proprietor":
this.NonProducerView();
this.NonAgencyOptions();
break;
default:
this.ProducerView();
break;
}
},
//Preserves database values on Edit page load
LoadAssignedView: function () {
var producerType = $('#drpProducerType :selected').text();
switch (producerType) {
case "Agency":
this.AgencyView();
break;
case "Sole Proprietor":
this.NonProducerView();
break;
default:
this.ProducerView();
break;
}
},
AgencyView: function() {
this.DisplayAgencyFields();
this.AgencyLabels();
},
ProducerView: function () {
this.DisplayProducerFields();
this.NonAgencyLabels();
},
NonProducerView: function() {
this.DisplayNonProducerFields();
this.NonAgencyLabels();
},
DisplayAgencyFields: function() {
$('.AgencyFields').show();
$('.NonProducerFields').show();
$('.NonAgencyFields').hide();
$('.ProducerFields').hide();
},
DisplayProducerFields: function () {
$('.AgencyFields').hide();
$('.NonProducerFields').hide();
$('.NonAgencyFields').hide();
$('.ProducerFields').show();
},
DisplayNonProducerFields: function() {
$('.AgencyFields').hide();
$('.NonProducerFields').show();
$('.NonAgencyFields').show();
$('.ProducerFields').show();
},
NonAgencyLabels: function() {
//Change DRM labels
$('label[for=DRMCompanyName]').text('DRM Company Name');
$('label[for=DRMCompanyId]').text('DRM Company Id');
//Replace header text
var newval = $('#HeaderText').text().replace("Agency", "Agent");
$('#HeaderText').text(newval);
//Adjust fieldset legend text
$('#AgentTypeFields').children('legend:first').text('Producer Info');
},
AgencyLabels: function() {
//Change DRM labels
$('label[for=DRMCompanyName]').text('DRM Parent Name');
$('label[for=DRMCompanyId]').text('DRM Parent Id');
//Change h2 text to 'Agency' from 'Agent'
var newval = $('#HeaderText').text().replace("Agent", "Agency");
$('#HeaderText').text(newval);
//Adjust fieldset legend text
$('#AgentTypeFields').children('legend:first').text('Agency Info');
},
AgencyOptions: function() {
$('#JIT').attr('checked', false);
},
NonAgencyOptions: function() {
$('#WelcomeLetter').attr('checked', false);
}
};