Ext.namespace('mdc.productselector');$(function(){var filterCriteria=[],masterFilter=[],allFilters=[],filterJourney=[],allFiltersHistory=[],selectedFilterCriteria=[];var $psCheckbox=$('input.ps-checkbox:checkbox'),$psDropdown=$('#productFamilySelectors .product-selector'),$applyButton=$(".btn-apply"),$clearButton=$('.btn-clear'),$clearAllButton='.btn-clear-all';mdc.productselector.selectedObj=[];mdc.productselector.init=function(){$psCheckbox.on('click',function(){mdc.productselector.changeButtonStatus($(this));});$psDropdown.on('shown.bs.dropdown',function(){$(this).find("i").removeClass("fa-angle-down").addClass("fa-angle-up");});$psDropdown.on('hidden.bs.dropdown',function(){filterCriteria=mdc.productselector.getAllAppliedFilters();selectedFilterCriteria=mdc.productselector.getAllSelectedFilters();if(!mdc.pages.productdetail.isSameObject(selectedFilterCriteria,masterFilter)){var sameEle=filterJourney[1]?filterJourney[1].get(0)===this:false;if(!sameEle){filterJourney.push($(this));var filterDetails=[];$(this).find('input:checkbox').each(function(){filterDetails.push({enabled:$(this).is(':enabled'),checked:$(this).is(':checked'),availability:$(this).attr('data-availability')});});if(allFiltersHistory.length>0){var hPsName=$(this).attr('data-psname');var resultH=allFiltersHistory.filter(function(item){return item['historyPSName']===hPsName})[0];if(filterJourney.length>2){filterJourney.shift();}
resultH['lastState']=filterDetails;resultH['previousPs'].push(filterJourney[0].get(0).getAttribute('data-psname'));}}
$('.product-selector').removeClass('current-applied');$psCheckbox.removeClass('current-applied');$(this).addClass('current-applied').find('.ps-checkbox').addClass('current-applied');$('.product-selector').removeClass('no-selection');$psCheckbox.removeClass('no-selection');if($(this).find('.ps-checkbox:checked').length<=0){$(this).addClass('no-selection').find('.ps-checkbox').addClass('no-selection');}
if($('input.ps-checkbox.current-applied:checkbox:enabled').length===$('input.ps-checkbox.current-applied:checkbox:enabled').not(':checked').length){mdc.productselector.applyHistory();}
masterFilter=JSON.parse(JSON.stringify(mdc.productselector.getAllSelectedFilters()));mdc.productselector.applyFilter();var psName=$(this).find(".dropdown-ps").text().split("(")[0].trim(),pfId=$('.btn-apply').attr('data-pfid'),pfName=$('.btn-apply').attr('data-pfname');analytics.digitalDataProductSelectorApplyClickEvent(psName,pfId,pfName);}
$(this).find("i").removeClass("fa-angle-up").addClass("fa-angle-down");});$applyButton.click(function(e){e.preventDefault();$('.product-selector.show > .dropdown-ps').dropdown('toggle');});$clearButton.click(function(e){e.preventDefault();var psName=$(this).attr('data-psname'),psForm=$(this).closest('form'),objIndex=filterCriteria.map(function(obj){return obj.psname;}).indexOf(psName);psForm.find('.ps-checkbox').prop('checked',false);psForm.find('.btn-apply, .btn-clear').attr('disabled','disabled');if(objIndex>-1){filterCriteria.splice(objIndex,1);}
mdc.productselector.changeClearAllButtonStates("fromClearButtonClicked");});$('body').on('click',$clearAllButton,function(e){e.preventDefault();mdc.productselector.clearAllSelector($(this));});mdc.productselector.getAllFilters($psCheckbox);mdc.productselector.getAllFilterHistory();}
mdc.productselector.applyFilter=function(){mdc.pages.productdetail.requestFilteredSkuList(mdc.productselector.getAllAppliedFilters());masterFilter=JSON.parse(JSON.stringify(mdc.productselector.getAllSelectedFilters()));mdc.productselector.removeErrorSkusFromLocalData();mdc.productselector.changeClearAllButtonStates("fromApplyButtonClick");}
mdc.productselector.clearAllSelector=function(clearBtn){filterCriteria.length=0;allFiltersHistory.length=0;$psCheckbox.prop('checked',false).prop('disabled',false);$('.product-selector .psUnavilableText').removeClass('d-block').addClass('d-none');mdc.productselector.applyFilter();$('.container-button-clearall .btn-clear-all').attr('disabled','disabled');$('.btn-apply, .btn-clear').attr('disabled','disabled');var psName=clearBtn.attr('data-psname'),pfId=clearBtn.attr('data-pfid'),pfName=clearBtn.attr('data-pfname');analytics.digitalDataProductSelectorApplyClickEvent(psName,pfId,pfName);}
mdc.productselector.getAllFilters=function($psCheckbox){var oldPsName="";$psCheckbox.each(function(key,value){var psName=$(this).attr('data-psname'),dpValue=$(this).attr('data-value'),result=mdc.productselector.getPsObjectFromArray(allFilters,'allPSName',psName);if(oldPsName!==psName){var afObj={};afObj['allPSName']=psName;afObj['allPSfilters']=[dpValue];allFilters.push(afObj)}else{result['psObj']['allPSfilters'].push(dpValue);}
oldPsName=psName;});}
mdc.productselector.getAllFilterHistory=function(){var oldPsName="";$psCheckbox.each(function(key,value){var psName=$(this).attr('data-psname');if(oldPsName!==psName){var afObj={};afObj['historyPSName']=psName;afObj['previousPs']=[]
allFiltersHistory.push(afObj)}
oldPsName=psName;});}
mdc.productselector.getAllAppliedFilters=function(){var oldPsName="";filterCriteria=[];$('input.ps-checkbox:checkbox:checked:enabled').each(function(key,value){var psName=$(this).attr('data-psname'),dpValue=$(this).attr('data-value'),result=mdc.productselector.getPsObjectFromArray(filterCriteria,'psname',psName,dpValue);if(oldPsName!==psName){var afObj={};afObj['psname']=psName;afObj['psfilters']=[dpValue];filterCriteria.push(afObj)}else{result['psObj']['psfilters'].push(dpValue);}
oldPsName=psName;});return filterCriteria;}
mdc.productselector.getAllSelectedFilters=function(){var oldPsName="";selectedFilterCriteria=[];$('input.ps-checkbox:checkbox:checked').each(function(key,value){var psName=$(this).attr('data-psname'),dpValue=$(this).attr('data-value'),result=mdc.productselector.getPsObjectFromArray(selectedFilterCriteria,'psname',psName,dpValue);if(oldPsName!==psName){var afObj={};afObj['psname']=psName;afObj['psfilters']=[dpValue];selectedFilterCriteria.push(afObj)}else{result['psObj']['psfilters'].push(dpValue);}
oldPsName=psName;});return selectedFilterCriteria;}
mdc.productselector.changeButtonStatus=function($checkBoxEl){if($checkBoxEl.closest("form").find(".ps-checkbox").is(':checked')){$checkBoxEl.closest("form").find('.btn-apply, .btn-clear').removeAttr('disabled');}else{$checkBoxEl.closest("form").find('.btn-apply, .btn-clear').attr('disabled','disabled');}}
mdc.productselector.changeClearAllButtonStates=function(args){var $appliedFilterCount;if(args==="fromApplyButtonClick"){$appliedFilterCount=$('.ps-checkbox:checked').length;if($appliedFilterCount>0){$('.container-button-clearall .btn-clear-all').removeAttr('disabled');}else{$('.container-button-clearall .btn-clear-all').attr('disabled','disabled');}}}
mdc.productselector.showAppliedFiltersCount=function(){$(".product-selector").each(function(){var $appliedFilterCount=$(this).find('.ps-checkbox:checked:enabled').length;$appliedFilterCount=$appliedFilterCount>0?' ('+$appliedFilterCount+')':'';$(this).find('.dropdown-ps > #filterCount').html($appliedFilterCount);});}
mdc.productselector.removeErrorSkusFromLocalData=function(){$('.skuRowInputCheck').each(function(){var checkBoxId='#'
+$(this).attr('id').replace('qty','Row_Checkbox');if($(this).hasClass('minQtyRedBorder')===true){var materialNumber=$(checkBoxId).attr('skunumber');var localObjIndex=-1;mdc.productselector.selectedObj.forEach(function(key,val){if(key.id===materialNumber){localObjIndex=val;}});mdc.productselector.selectedObj.splice(localObjIndex,1);$('.gritter-item-error').find('.gritter-close').click();}});}
mdc.productselector.setPsAvailabiltyStatus=function(){var $ddForm=$('input.ps-checkbox:checked').closest('form'),availableFilters=mdc.pages.productdetail.selectorDisplayNamesJSON?mdc.pages.productdetail.selectorDisplayNamesJSON['appliedProductSelectors']:[];$('.ps-checkbox').each(function(){var checkPsName=$(this).attr('data-psname');var checkPsValue=$(this).attr('data-value');var resultObj=availableFilters.filter(function(item){return item.psname===checkPsName})[0];if(resultObj){var psArray=resultObj['psfilters'];if(!$(this).hasClass('current-applied')||$(this).hasClass('no-selection')){if(psArray.indexOf(checkPsValue)>-1){$(this).closest('.filter-item').find('.psUnavilableText').removeClass('d-block').addClass('d-none');$(this).attr('data-availability','true').prop('disabled',false);}else{$(this).closest('.filter-item').find('.psUnavilableText').removeClass('d-none').addClass('d-block');$(this).attr('data-availability','false').prop('disabled',true).prop('checked',false);}}}});if($('input.ps-checkbox.current-applied:checkbox:enabled').length===$('input.ps-checkbox.current-applied:checkbox:enabled').not(':checked').length){mdc.productselector.applyHistory();}
var allSelCount=0;var $theProdSel;$('.product-selector').each(function(){if($(this).find('.ps-checkbox').length===$(this).find('.ps-checkbox:checked').length||$(this).find('.ps-checkbox').length===$(this).find('.ps-checkbox').not(':checked').length){allSelCount++;}else{$theProdSel=$(this);}});if(allSelCount===$('.product-selector').length-1){$theProdSel.find('.ps-checkbox').prop('disabled',false).attr('data-availability','true');$theProdSel.find('.psUnavilableText').removeClass('d-block').addClass('d-none');}
if(filterCriteria.length===1){$ddForm.find('.ps-checkbox').prop('disabled',false).attr('data-availability','true');$ddForm.find('.psUnavilableText').removeClass('d-block').addClass('d-none');if($ddForm.find('.ps-checkbox').not(':checked').length===0||($ddForm.find('.ps-checkbox').length===$ddForm.find('.ps-checkbox:checked').length)){$('.ps-checkbox').prop('disabled',false).attr('data-availability','true');$('.psUnavilableText').removeClass('d-block').addClass('d-none');}}
if($('input.ps-checkbox:checkbox:checked:enabled').length===0){filterCriteria.length=0;allFiltersHistory.length=0;$psCheckbox.prop('checked',false).prop('disabled',false);$('.product-selector .psUnavilableText').removeClass('d-block').addClass('d-none');}
masterFilter=JSON.parse(JSON.stringify(mdc.productselector.getAllSelectedFilters()));}
mdc.productselector.applyHistory=function(){var caPssName=$('.product-selector.current-applied').attr('data-psname');if(allFiltersHistory.length>0){var prevPs=allFiltersHistory.filter(function(item){return item['historyPSName']===caPssName})[0]['previousPs'];prevPs.reverse();var prevPsName;$.each(prevPs,function(key,value){if($('.product-selector[data-psname="'+value+'"]').find('input.ps-checkbox:checkbox:checked').length>0){prevPsName=value;if(prevPsName){var prevPsState=allFiltersHistory.filter(function(item){return item['historyPSName']===prevPsName})[0]['lastState'];$('.product-selector[data-psname="'+prevPsName+'"]').find('.psUnavilableText').each(function(i,v){if(prevPsState[i].availability==='true'){$(this).removeClass('d-block').addClass('d-none');$(this).closest('.filter-item').find('.ps-checkbox').prop('disabled',false).attr('data-availability','true');if(prevPsState[i].checked===true){$(this).closest('.filter-item').find('.ps-checkbox').prop('checked',true);}}else{$(this).removeClass('d-none').addClass('d-block');$(this).closest('.filter-item').find('.ps-checkbox').prop('disabled',true).attr('data-availability','false');if(prevPsState[i].checked===false){$(this).closest('.filter-item').find('.ps-checkbox').prop('checked',false);}}});}}});}}
mdc.productselector.getPsObjectFromArray=function(fArray,fProp,fObj,fVal){var rObj=fArray.filter(function(item){return item[fProp]===fObj})[0];if(rObj&&fVal!==undefined){var rValIndex=rObj['psfilters'].indexOf(fVal);}
return{psObj:rObj,pValIndex:rValIndex};}});