function articleLookupPanel(options){this.articleTypeDropDown=$(options.articleTypeDropDownSelector);this.categoryDropDown=$(options.categoryDropDownSelector);this.makeDropDown=$(options.makeDropDownSelector);this.articleTypeLookupUrl=options.articleTypeLookupUrl;this.categoryLookupUrl=options.categoryLookupUrl;this.makeLookupUrl=options.makeLookupUrl;this.fieldLookupUrl=options.fieldLookupUrl;this.searchPattern=options.searchPattern;this.articleTypeFirstOptionText="Articles by type";this.categoryFirstOptionText="Articles by category";this.makeFirstOptionText="Articles by make";this.init=function(){var panel=this;var selectedArticleType=$("option:selected",panel.articleTypeDropDown).val();var selectedCategory=$("option:selected",panel.categoryDropDown).val();var selectedMake=$("option:selected",panel.makeDropDown).val();this.articleTypeDropDown.change(function(){articleFieldChanged(panel,panel.articleTypeDropDown)});this.categoryDropDown.change(function(){articleFieldChanged(panel,panel.categoryDropDown)});this.makeDropDown.change(function(){articleFieldChanged(panel,panel.makeDropDown,true)})};return true}function articleFieldChanged(panel,control){var selection=false;var fieldValue=$("option:selected",control).val();var searchTerm=getArticleSearchTerm(panel);var url=panel.fieldLookupUrl.replace("replacesearchterm",searchTerm);$.getJSON(url,function(data){setArticleSearchFieldsRequestCallback(data,panel)})}function setArticleSearchFieldsRequestCallback(data,panel){setTimeout(function(){$.each(data,function(i,item){var controlToUpdate=null;var firstOptionText="";var selectionValue=null;switch(item.FieldName){case"articletype":controlToUpdate=panel.articleTypeDropDown;firstOptionText=panel.articleTypeFirstOptionText;selectionValue=$("option:selected",panel.articleTypeDropDown).val();break;case"category":controlToUpdate=panel.categoryDropDown;firstOptionText=panel.categoryFirstOptionText;selectionValue=$("option:selected",panel.categoryDropDown).val();break;case"make":controlToUpdate=panel.makeDropDown;firstOptionText=panel.makeFirstOptionText;selectionValue=$("option:selected",panel.makeDropDown).val();break}if(controlToUpdate!=null&&firstOptionText!=""){controlToUpdate.empty().append('<option value="">'+firstOptionText+"</option>");$.each(item.FieldValues,function(j,listitem){$("<option />").attr("value",listitem.Value.replace(/\+/g," ")).text(listitem.Display).appendTo(controlToUpdate)});if(selectionValue!=null&&selectionValue!=""){controlToUpdate.val(selectionValue)}}})},100)}function setControlDropDownLoading(control){control.empty().append('<option value="">Loading...</option>');control.attr("disabled","disabled")}function resetControlDropDown(control,firstOptionText){control.empty().append('<option value="">'+firstOptionText+"</option>")}function formatString(stringvalue){var formattedvalue="";if(stringvalue!=null){formattedvalue=stringvalue.replace(/ /g,"+")}return formattedvalue}function getArticleSearchTerm(panel){var selectedArticleType=$("option:selected",panel.articleTypeDropDown).val();var selectedCategory=$("option:selected",panel.categoryDropDown).val();var selectedMake=$("option:selected",panel.makeDropDown).val();selectedArticleType=formatString(selectedArticleType);selectedCategory=formatString(selectedCategory);selectedMake=formatString(selectedMake);var searchTerm=panel.searchPattern.replace("articleType",selectedArticleType).replace("category",selectedCategory).replace("make",selectedMake);return searchTerm};
