/* AUTO-GENERATED FILE - DO NOT EDIT.
@title:  browseApplicationManagersOptimized.js
@date: auto-generated
@author: Andrew Southwick
@desc: File is auto-generated from multiple source files 
consolidate product page reporting view managers
*/

reportingService.controller.appManagers.searchAppManager = new reportingService.controller.AbstractReportAppManager();

Object.extend(
	reportingService.controller.appManagers.searchAppManager, {
		reportName:null,	
		constructors:{
			Filter:{},
			Keyword:{},
			PersistKeyword:{}	
		},
		objFilter:null, 
		objKeyword:null, 
		objPersistKeyword:null, 
		
		initializeVariables:function() {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			searchAppManager.objFilter = new searchAppManager.constructors.Filter();
			searchAppManager.objKeyword = new searchAppManager.constructors.Keyword();
			searchAppManager.objPersistKeyword = new searchAppManager.constructors.PersistKeyword("",false);			
		},
		getCurrentBusinessIdCookie:function () {
			var _strCurrentBusinessId = "";
			var _strCurrentBusinessIdCookie = getCookieVar("omniSession","strCurrentBusinessId");
			if (_strCurrentBusinessIdCookie && (_strCurrentBusinessIdCookie != "")){ 
				_strCurrentBusinessId = _strCurrentBusinessIdCookie;
			}
			return _strCurrentBusinessId;
		},
		setCurrentBusinessIdCookie:function (bool) {
			var commonModel = reportingService.controller.viewManagers.commonViewManager.model;
			if (bool) {
				if (commonModel.commonCurrentBusinessId && (commonModel.commonCurrentBusinessId != "")) {
					setCookieVar("omniSession","strCurrentBusinessId",commonModel.commonCurrentBusinessId);
				}
			} else {
				setCookieVar("omniSession","strCurrentBusinessId","");
			}
		},
		getRefinementsFixedOrderCookie:function () {
			var _strSelectedRefine = "";
			var _strSelectedRefineCookie = getCookieVar("omniSession","strRefinementsFixedOrder");
			if (_strSelectedRefineCookie && (_strSelectedRefineCookie != "")) _strSelectedRefine = _strSelectedRefineCookie;
			return _strSelectedRefine;
		},
		setRefinementsFixedOrderCookie:function (bool) {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			if (bool) {
				setCookieVar("omniSession","strRefinementsFixedOrder",objSearch.strSelectedRefinementsFixedOrder);
				searchAppManager.setCurrentBusinessIdCookie(true);
			} else {
				setCookieVar("omniSession","strRefinementsFixedOrder","");
				searchAppManager.setCurrentBusinessIdCookie(false);
			}
		},
		getIsSortBySelectedCookie:function () {
			var _strIsSortBySelected = false;
			var _strIsSortBySelectedCookie = getCookieVar("omniSession","strIsSortBySelected");
			if (_strIsSortBySelectedCookie && (_strIsSortBySelectedCookie == "true")) _strIsSortBySelected = true;
			return _strIsSortBySelected;
		},
		setIsSortBySelectedCookie:function (bool) {
			if (bool) {
				setCookieVar("omniSession","strIsSortBySelected","true");
			} else {
				setCookieVar("omniSession","strIsSortBySelected","false");
			}
		},
		getSortByDescCookie:function () {
			var _strSortByDesc = "";
			var _strSortByDescCookie = getCookieVar("omniSession","strSortByDesc");
			if (_strSortByDescCookie && (_strSortByDescCookie != "")) _strSortByDesc = _strSortByDescCookie;
			return _strSortByDesc;
		},
		setSortByDescCookie:function (bool) {
			if (bool) {
				setCookieVar("omniSession","strSortByDesc",objSearch.strSortByDesc);
			} else {
				setCookieVar("omniSession","strSortByDesc","");
			}
		},
		setRefinement:function (objRefinement, isRefine) { 
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			var _name = objRefinement.name;
			var _value = objRefinement.displayValue;
			var _isRefine = (isRefine ? "refine" : "unrefine");
			var _selectedRefinementsFixedOrder = objSearch.strSelectedRefinementsFixedOrder;
		
			searchAppManager.objFilter.strName = _name;
			searchAppManager.objFilter.strValue = _value;
			searchAppManager.objFilter.strFilterMode = _isRefine;
			searchAppManager.setRefinementCount("reset");
			if (!isRefine) {
				
				_name = "";
				_value  = "";
			}
		
			setCookieVar("omniSession","strSearchFilterName",_name);
			setCookieVar("omniSession","strSearchFilterValue",_value);
			setCookieVar("omniSession","strSearchFilterMode",_isRefine);
			setCookieVar("omniSession","strRefinementEngagedPage",searchAppManager.strTmpRefinementEngagedPage);
		},
		getRefinementCount:function () {
			var _count = 0;
			var _refinementCount = getCookieVar("omniSession","intRefinementCount");
			if(_refinementCount && _refinementCount != "") _count = _refinementCount;
			return _count;
		},
		setRefinementCount:function (reset) {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			var _currCount = searchAppManager.getRefinementCount();
				if (reset) {
					_currCount = 0;
				} else {
					_currCount = parseInt(_currCount) + 1;
			}
			setCookieVar("omniSession","intRefinementCount",_currCount);
		},
		setSearchProcessorFilterValues:function () {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			var _obj = searchAppManager.objFilter;
			if(!_obj.strName) _obj.strName = getCookieVar("omniSession","strSearchFilterName");
			if(!_obj.strValue) _obj.strValue = getCookieVar("omniSession","strSearchFilterValue");
			if(!_obj.strFilterMode) _obj.strFilterMode = getCookieVar("omniSession","strSearchFilterMode");
			if(!_obj.strRefinementEngagedPage) _obj.strRefinementEngagedPage = getCookieVar("omniSession","strRefinementEngagedPage");
		},
		setCatSearchDisplayType:function () {
			var categorySearchViewManager = reportingService.controller.viewManagers.categorySearchViewManager;
			categorySearchViewManager.reportName = "categorySearch";
		},
		setSiteSearchDisplayType:function () {
			var siteSearchViewManager = reportingService.controller.viewManagers.siteSearchViewManager;
			siteSearchViewManager.reportName = "siteSearch";
		},
		strTmpRefinementEngagedPage:"",
		setRefinementEngagedPage:function (refinementEngagedPage) {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			searchAppManager.strTmpRefinementEngagedPage = refinementEngagedPage;
		},
		
		setKeyword:function (strSearchedKeyword,strSearchedDivision,strPageName) {
			var commonModel = reportingService.controller.viewManagers.commonViewManager.model;
			setCookieVar("omniSession","strSearchedKeyword",strSearchedKeyword);
			setCookieVar("omniSession","strPersistSearchedKeyword",strSearchedKeyword);
			setCookieVar("omniSession","strSearchedDivision",strSearchedDivision);
			setCookieVar("omniSession","strPageNameOfKeywordSearch",strPageName);
			setCookieVar("omniSession","strPathOfKeywordSearch", commonModel.commonCurrentPath.replace("/",""));
		},
		setSearchProcessorKeywordValues:function () {
			var _obj = reportingService.controller.appManagers.searchAppManager.objKeyword;
			if(!_obj.strValue) {
				_obj.strValue = getCookieVar("omniSession","strSearchedKeyword");
				_obj.strDivision = getCookieVar("omniSession","strSearchedDivision");
				_obj.strPageName = getCookieVar("omniSession","strPageNameOfKeywordSearch");
				_obj.strPath = getCookieVar("omniSession","strPathOfKeywordSearch");
			}
			setCookieVar("omniSession","strSearchedKeyword","");
			setCookieVar("omniSession","strSearchedDivision","");
			setCookieVar("omniSession","strPageNameOfKeywordSearch","");
			setCookieVar("omniSession","strPathOfKeywordSearch","");
		},
		getSiteSearchActive:function () {
			if (getCookieVar("omniSession","isSiteSearchActive") == "true") {
				return true;
			} else {
				return false;
			}
		},
		setSiteSearchActive:function (bool) {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			if (bool) {
				setCookieVar("omniSession","isSiteSearchActive", bool);
			} else {
				setCookieVar("omniSession","isSiteSearchActive", "");
				setCookieVar("omniSession","strPersistSearchedKeyword", "");
			}
			if (window['objSearch'] != undefined) {
				if (objSearch.strOrigSearchText != "") {
					if (searchAppManager.objPersistKeyword.strValue == "") {
						searchAppManager.objPersistKeyword.strValue = objSearch.strOrigSearchText;
						setCookieVar("omniSession","strPersistSearchedKeyword",searchAppManager.objPersistKeyword.strValue);
						
					}
				} else {
					searchAppManager.objPersistKeyword.strValue = getCookieVar("omniSession","strPersistSearchedKeyword");
				}
			}
		},
		getSiteSearchActiveKeyword:function(reportName) {
			var searchAppManager = reportingService.controller.appManagers.searchAppManager;
			var userSearchText = getQuerystringParam("userSearchText",true);	/* TD 15372 */
			var _keyword = "";
			if (searchAppManager.getSiteSearchActive() == true 
				&& searchAppManager.objPersistKeyword.strValue != "" 
				&& searchAppManager.objPersistKeyword.strValue != undefined 
				&& searchAppManager.objPersistKeyword.strValue != "undefined") {
				_keyword = searchAppManager.objPersistKeyword.strValue;			
			} 
			/* TD 15372: to catch scenario when search is done & goes directly to a product page (bypassing search results page) */
			else if (reportName == "product" && userSearchText != "") {				
				searchAppManager.setSiteSearchActive(true);
				_keyword = searchAppManager.objPersistKeyword.strValue;	
			} 
			else { 
				_keyword = "no keyword";
			}
			if (searchAppManager.isDebugEnabled) {
				alert("_keyword = " + _keyword);
			}
			return _keyword;
		}
	}
);



reportingService.controller.appManagers.searchAppManager.constructors.Filter = Class.create();
reportingService.controller.appManagers.searchAppManager.constructors.Filter.prototype = {
	initialize:function() {
		
	},
	strName:null,
	strValue:null,
	strFilterMode:null,
	strRefinementEngagedPage:null
}
reportingService.controller.appManagers.searchAppManager.constructors.Keyword = Class.create();
reportingService.controller.appManagers.searchAppManager.constructors.Keyword.prototype = {
	initialize:function() {
		
	},
	strValue:null, 
	strDivision:null,
	strPageName:null,
	strPath:null,
	intNumberOfResults:null
}
reportingService.controller.appManagers.searchAppManager.constructors.PersistKeyword = Class.create();
reportingService.controller.appManagers.searchAppManager.constructors.PersistKeyword.prototype = {
	initialize:function(value) {
		this.strValue = value;
		if (getCookieVar("omniSession","strPersistSearchedKeyword") != "") {
			this.strValue = getCookieVar("omniSession","strPersistSearchedKeyword");
		}
	}
}

reportingService.controller.appManagers.searchAppManager.initializeVariables();


reportingService.controller.appManagers.shopBySizeAppManager = new reportingService.controller.AbstractReportAppManager();

Object.extend(
	reportingService.controller.appManagers.shopBySizeAppManager, {
		
		isFilterEngaged: false,
		isActive: false,
		strHierarchy: null,
		strHierarchyInCookie: getCookieVar("omniSession","strSBSHierarchy"),
		intUserSelectionsCount: 0,
		strSizeCategorySelections: null,
		strSizeCategoryNameList: null,
		strNonSBSProductMessage: "non-SBS",
		strSBSStatus:null,
		arraySBSOmniSelections: [],
		
		constructors:{
			SBSOmniSelections:{}	
		},
		/*
		objSBSOmniSelections: null,
		
		initializeVariables:function() {
			var shopBySizeAppManager = reportingService.controller.appManagers.shopBySizeAppManager;
			shopBySizeAppManager.objSBSOmniSelections = new shopBySizeAppManager.constructors.SBSOmniSelections();
			shopBySizeAppManager.objSBSOmniSelections.strSizeCategoryName = (!strSizeCategoryName ? "" : strSizeCategoryName);
			shopBySizeAppManager.objSBSOmniSelections.strSizeDimension1BaseSizeName = (!strSizeDimension1BaseSizeName ? "" : strSizeDimension1BaseSizeName);
			shopBySizeAppManager.objSBSOmniSelections.strSizeDimension2BaseSizeName = (!strSizeDimension2BaseSizeName ? "" : strSizeDimension2BaseSizeName);			
		},
		* */
		
		setSBSHierarchyInCookie: function (strValue) {
			var shopBySizeAppManager = reportingService.controller.appManagers.shopBySizeAppManager;
			setCookieVar("omniSession","strSBSHierarchy",strValue);
			shopBySizeAppManager.strHierarchyInCookie = strValue;
		},
		
		setShopBySize: function (reportName) {
		
			var commonViewManager = reportingService.controller.viewManagers.commonViewManager;
			var shopBySizeAppManager = reportingService.controller.appManagers.shopBySizeAppManager;
			
			
			shopBySizeAppManager.strHierarchy = "SBS:" + commonViewManager.model.getHierarchy1();
			
			if (reportName == "quicklook") {
			
				if (shopBySizeAppManager.isFilterEngaged) {
					
					shopBySizeAppManager.strSBSStatus = shopBySizeAppManager.strHierarchy;
				} else {
					
					
					shopBySizeAppManager.strSBSStatus = shopBySizeAppManager.strNonSBSProductMessage;
				}
			}
			
			if (reportName != "quicklook") {
			
				if (window["objSBS"]) {
					shopBySizeAppManager.isActive = objSBS.isActive;
					shopBySizeAppManager.isFilterEngaged = objSBS.isFilterEngaged;
					if (!shopBySizeAppManager.isFilterEngaged) {
						
						
						shopBySizeAppManager.setSBSHierarchyInCookie("");
					}
				} 
				else {
					
					if (reportName == "product") {
					
						
						
						var strMatchHierarchy = "";
						var strProductPageHierarchy = "";
						var strProductPageMatchHierarchy = "";
						
						if (shopBySizeAppManager.strHierarchyInCookie.length < shopBySizeAppManager.strHierarchy.length) {
							
							strMatchHierarchy = shopBySizeAppManager.strHierarchyInCookie;
							strProductPageHierarchy = shopBySizeAppManager.strHierarchy;
							strProductPageMatchHierarchy = strProductPageHierarchy.substring(0, strMatchHierarchy.length);
						}
						
						if ((shopBySizeAppManager.strHierarchyInCookie == shopBySizeAppManager.strHierarchy) || ((strMatchHierarchy != "") && (strMatchHierarchy == strProductPageMatchHierarchy))) {
							
							shopBySizeAppManager.strSBSStatus = shopBySizeAppManager.strHierarchyInCookie;
							
							shopBySizeAppManager.setSBSHierarchyInCookie("");
						} else {
							
							
							shopBySizeAppManager.strSBSStatus = shopBySizeAppManager.strNonSBSProductMessage;
						} 
					}
					if (reportName == "outfit") {
					
						
						
						shopBySizeAppManager.strSBSStatus = shopBySizeAppManager.strNonSBSProductMessage;
					}
				}
				if (shopBySizeAppManager.isFilterEngaged) {
					
					
					
					shopBySizeAppManager.setSBSHierarchyInCookie(shopBySizeAppManager.strHierarchy);
					
					shopBySizeAppManager.intUserSelectionsCount = 0;
					
					
					for (var prop in objSBS.objSmartDropDowns.objUserSelections.arraySizeCategories) {
						if (objSBS.objSmartDropDowns.objUserSelections.arraySizeCategories.hasOwnProperty(prop)) {
							shopBySizeAppManager.intUserSelectionsCount++;
							var objSizeSelection = objSBS.objSmartDropDowns.objUserSelections.arraySizeCategories[prop];
							var arrayTmpUserSelection = prop.split(",");
							var strSizeCategoryId = arrayTmpUserSelection[0];
							var strSizeDimensionId = arrayTmpUserSelection[1];
							
							var strSizeCategoryName = (commonViewManager.model.commonChannelName + " " + objSBS.objSmartDropDowns.arraySizeCategories[strSizeCategoryId].strSizeCategoryName).toLowerCase();
							var strBaseSizeId = objSizeSelection.strBaseSizeId;
							var strBaseSizeName = "";
							switch (strSizeDimensionId) {
								case "1":
									strBaseSizeName = objSBS.objSmartDropDowns.arraySizeCategories[strSizeCategoryId].objSizeDimension.arrayBaseSizes[strBaseSizeId].strBaseSizeName;
									break;
								case "2":
									if (objSBS.objSmartDropDowns.arraySizeCategories[strSizeCategoryId]) {
										if (objSBS.objSmartDropDowns.arraySizeCategories[strSizeCategoryId].objSizeDimension.arraySizeDimensionChildBaseSizes[strBaseSizeId]) {
											strBaseSizeName = objSBS.objSmartDropDowns.arraySizeCategories[strSizeCategoryId].objSizeDimension.arraySizeDimensionChildBaseSizes[strBaseSizeId].strBaseSizeName;
										}
									}
									break;
							}
							var strSelectionObject = "" + eval("shopBySizeAppManager.arraySBSOmniSelections[" + strSizeCategoryId + "]");
							if (strSelectionObject.indexOf("Object") != -1) {
								switch (strSizeDimensionId) {
									case "1":
										shopBySizeAppManager.arraySBSOmniSelections[strSizeCategoryId].strSizeDimension1BaseSizeName = strBaseSizeName;
										break;
									case "2":
										shopBySizeAppManager.arraySBSOmniSelections[strSizeCategoryId].strSizeDimension2BaseSizeName = strBaseSizeName;			
										break;
								}
							} else {
								switch (strSizeDimensionId) {
									case "1":
										
										shopBySizeAppManager.arraySBSOmniSelections[strSizeCategoryId] = new shopBySizeAppManager.constructors.SBSOmniSelections(strSizeCategoryName, strBaseSizeName);
										break;
									case "2":
										
										shopBySizeAppManager.arraySBSOmniSelections[strSizeCategoryId] = new shopBySizeAppManager.constructors.SBSOmniSelections(strSizeCategoryName, null, strBaseSizeName);				
										break;
								}
							}
							
							shopBySizeAppManager.strSizeCategorySelections = "";
							shopBySizeAppManager.strSizeCategoryNameList = "";
							
							for (var prop in shopBySizeAppManager.arraySBSOmniSelections) {
                				if (shopBySizeAppManager.arraySBSOmniSelections.hasOwnProperty(prop)) {
									var objSBSOmniSelection = shopBySizeAppManager.arraySBSOmniSelections[prop];
									if ((objSBSOmniSelection.strSizeDimension1BaseSizeName != "") && (objSBSOmniSelection.strSizeDimension2BaseSizeName != "")) {
										var strSizeCategorySelection = objSBSOmniSelection.strSizeCategoryName + ":" + objSBSOmniSelection.strSizeDimension1BaseSizeName + "--" + objSBSOmniSelection.strSizeDimension2BaseSizeName;
									}
									else if ((objSBSOmniSelection.strSizeDimension1BaseSizeName == "") && (objSBSOmniSelection.strSizeDimension2BaseSizeName != "")) {
										var strSizeCategorySelection = objSBSOmniSelection.strSizeCategoryName + ":" + "not selected" + "--" + objSBSOmniSelection.strSizeDimension2BaseSizeName;
									}
									else if ((objSBSOmniSelection.strSizeDimension1BaseSizeName != "") && (objSBSOmniSelection.strSizeDimension2BaseSizeName == "")) {
										var strSizeCategorySelection = objSBSOmniSelection.strSizeCategoryName + ":" + objSBSOmniSelection.strSizeDimension1BaseSizeName;
									}
									
									
									var strSizeCategoryName = objSBSOmniSelection.strSizeCategoryName;
									if (shopBySizeAppManager.strSizeCategorySelections == "") {
										shopBySizeAppManager.strSizeCategorySelections = strSizeCategorySelection;
										shopBySizeAppManager.strSizeCategoryNameList = strSizeCategoryName;
									}
									else {
										shopBySizeAppManager.strSizeCategorySelections = shopBySizeAppManager.strSizeCategorySelections + "," + strSizeCategorySelection;
										shopBySizeAppManager.strSizeCategoryNameList = shopBySizeAppManager.strSizeCategoryNameList + "," + strSizeCategoryName;
									}
								}
							}							
							/* TODO:
							1) NEED TO SORT OBJECTS IN ARRAY BE CATEGORY NAME PROPERTY TO BE CONSISTENT IN REPORTING.
							2) PROCESS ALL PROPS.
							*/
						}
					}
				}
			}
		}
	}
);


reportingService.controller.appManagers.shopBySizeAppManager.constructors.SBSOmniSelections = Class.create();
reportingService.controller.appManagers.shopBySizeAppManager.constructors.SBSOmniSelections.prototype = {
	initialize:function(strSizeCategoryName, strSizeDimension1BaseSizeName,strSizeDimension2BaseSizeName) {
			this.strSizeCategoryName = (!strSizeCategoryName ? "" : strSizeCategoryName);
			this.strSizeDimension1BaseSizeName = (!strSizeDimension1BaseSizeName ? "" : strSizeDimension1BaseSizeName);
			this.strSizeDimension2BaseSizeName = (!strSizeDimension2BaseSizeName ? "" : strSizeDimension2BaseSizeName);	
	}
	
	
	
}


reportingService.controller.viewManagers.quicklookViewManager = new reportingService.controller.AbstractReportViewManager();

Object.extend(
	reportingService.controller.viewManagers.quicklookViewManager, {
		reportName:reportingService.constants.viewTypes.QUICKLOOK_VIEW,
		isWaitReport:true,
		isWaitComplete:false,
		model:Object.extend(gidLib.clone(reportingService.controller.viewManagers.commonViewManager.model),{
            reportName:reportingService.constants.viewTypes.QUICKLOOK_VIEW,
            quicklookPageName:null,
			productId:null,
			productStyleName:null,
			productColorName:null,
			referringStyle:null,
			originalSProducts:null,
			originalSEvent:null,
			brandCode:null,
			productBrandCode:null,
			productBrandAbbr:null,
			clickThroughProdIdPath:null,
			referringStyleId:null,
			searchSelectedRefinementsFixedOrder:null,
			searchSortByDesc:null
        }),
		controller:{
            setReportModel:function() {
                var model = reportingService.controller.viewManagers.quicklookViewManager.model;
                var searchAppManager = reportingService.controller.appManagers.searchAppManager;
                var shopBySizeAppManager = reportingService.controller.appManagers.shopBySizeAppManager;
				var commonModel = reportingService.controller.viewManagers.commonViewManager.model;
				var product = quickLook.objP;
				var brandCode = product.brandCode;
				var productId = product.strProductId;
				var styleName = product.strProductStyleName;
				var brandSite = gidLib.reporting.getBrandSite(brandCode);
                var hierarchy = model.getHierarchy1();
                var productReviewsStatus = this.getProductReviewStatus();
                shopBySizeAppManager.setShopBySize(reportingService.controller.viewManagers.quicklookViewManager.reportName);

                Object.extend(model,{
                	commonHierarchy:hierarchy,
                    originalSProducts: s.products,
                    originalSEvent: s.events,
                    productColorName: quickLook.objV.arrayVariantStyleColors[quickLook.selectedColor].strColorCodeId,
                    productBrandCode: brandCode,
                    productId: product.strProductId,
                    productStyleName: styleName,
                    productBrandAbbr: (brandSite ? brandSite.brandAbbr : ""),
                    quicklookPageName: hierarchy + ':quicklook:' + styleName + commonModel.commonVariantStyle,
                    referringStyleId: model.getReferringStyleId(),
                    clickThroughProdIdPath: model.getClickThroughProdIdPath(productId),
                    searchSelectedRefinementsFixedOrder: model.getSearchSelectedRefinementsFixedOrder(),
                    searchSortByDesc: model.getSearchSortByDesc(),
                    products: commonModel.getSProductsFromBag(productId, model.reportName),
                    hierarchyProduct: hierarchy + commonModel.commonVariantStyle + '|' + productId,
                    sbsStatus: shopBySizeAppManager.strSBSStatus,
                    keyword: searchAppManager.getSiteSearchActiveKeyword(model.reportName),
                    events: 'prodView, event8',
                    xlink: crossLink.getOmniValue(),
                    productReviewsStatus:productReviewsStatus
                });

                
			},
			setReportTransmissionVars:function() {
				var model = reportingService.controller.viewManagers.quicklookViewManager.model;
                s.hier1 = model.commonHierarchy + model.commonVariantStyle;
                s.pageName = model.quicklookPageName + model.commonVariantStyle;
				s.prevStyle = model.referringStyleId;
				s.prop1 = model.productColorName;
				s.eVar4 = model.commonBrandPrefix; 
				s.eVar12 = s.prop33 = model.reportName;
				s.eVar19 = model.searchSelectedRefinementsFixedOrder;
				s.eVar20 = model.keyword;
				s.eVar23 = model.searchSortByDesc;
				s.eVar31 = model.clickThroughProdIdPath;
	            s.eVar39 = model.hierarchyProduct;
				s.products = model.products;
				s.events = model.events;
				
				s.eVar15 = model.sbsStatus;
                s.eVar44 = model.xlink;
                s.eVar47 = model.productReviewsStatus;
                /**
                 * set to empty for no visibility requirement
                 */
				s.campaign = '';
				s.prop11 = '';
				s.eVar1 = '';
				s.eVar2 = ''; 
				s.eVar10 = '';
				s.eVar11 = '';
				s.eVar16 = ''; 
				s.eVar18 = '';
            },
			getReportRequest:function() {
				var reportingManager = reportingService.controller.reportingManager;
				var viewManager = reportingService.controller.viewManagers.quicklookViewManager;
				viewManager.isWaitComplete = true;
				reportingManager.getReportingRequest(viewManager);
			},
			setCleanUp:function() {
				
				var viewManager = reportingService.controller.viewManagers.quicklookViewManager;
				viewManager.isWaitComplete = viewManager.isReadyForTransmission = false;
				
				
				var model = reportingService.controller.viewManagers.quicklookViewManager.model;
                model.hierarchy = model.commonHierarchy;               
                s.products = model.originalSProducts;
				s.events = model.originalSEvent;
                s.prop1 = "";
                s.eVar31 = "";
			},
			/**
			 * getProductReviewStatus returns the product review status. for QL this is always "no_rating"
			 */
			getProductReviewStatus : function() {
				return "NA";
			}
		}	
	}
);

reportingService.controller.viewManagers.altViewsViewManager = new reportingService.controller.AbstractReportViewManager();

Object.extend(
	reportingService.controller.viewManagers.altViewsViewManager, {
		reportName:reportingService.constants.viewTypes.ALT_VIEWS_VIEW,
		isWaitReport:true,
		isWaitComplete:false,
		model: Object.extend(gidLib.clone(reportingService.controller.viewManagers.commonViewManager.model), {
            productId: '',
            pageName: '',
            products: ''
        }),
		controller:{
            setReportModel:function() {
                var altViewsModel = reportingService.controller.viewManagers.altViewsViewManager.model;                
                var brandAbbr = (window['viewLarger'] != undefined) ? reportingService.controller.viewManagers.viewLargerViewManager.model.commonProductBrandAbbr : altViewsModel.commonProductBrandAbbr;
            	var app = this.app;
 
                Object.extend(altViewsModel, {
                	origPageName: altViewsModel.commonCurrentPageName,
                	originalHier1: s.hier1,
                    pageName: altViewsModel.getShortPageName() + ':alt view',
                    events: app.isFromViewLargerPopup ? 'event20' : "event23",
                    products: [brandAbbr, this.app.objP.strProductId, null, null, app.isFromViewLargerPopup ? 'event20=1' : "event23=1"].join(';') + ';',
                    pageType: app.isFromViewLargerPopup ? 'alt view view larger' : 'alt view prod detail',    
                    altView: app.isFromViewLargerPopup ? 'alt view view larger' : '',
                    altViewNano: app.isFromViewLargerPopup ? '': 'alt view nano'
                });
                if (window['objSBS'] && window['objSBS'].isFilterEngaged) {
               		var shopBySizeAppManager = reportingService.controller.appManagers.shopBySizeAppManager;
	            	shopBySizeAppManager.setShopBySize();
	                altViewsModel.strHierarchy = shopBySizeAppManager.strHierarchy;
	                altViewsModel.strSizeCategorySelections = shopBySizeAppManager.strSizeCategorySelections;
	                altViewsModel.strSizeCategoryNameList = shopBySizeAppManager.strSizeCategoryNameList;
                }
                else {
                	altViewsModel.strHierarchy = altViewsModel.strSizeCategorySelections = altViewsModel.strSizeCategoryNameList = '';
                }
            },
			setReportTransmissionVars:function() {
                var altViewsModel = reportingService.controller.viewManagers.altViewsViewManager.model;
                s.pageName = altViewsModel.pageName;
                s.hier1 = altViewsModel.pageName;
                s.eVar29 = altViewsModel.altView;
                s.eVar33 = altViewsModel.altViewNano;
				s.prop2 = altViewsModel.strSizeCategoryNameList;
				s.prop3 = altViewsModel.strHierarchy;
				s.prop4 = altViewsModel.strSizeCategorySelections;
				s.prop5 = altViewsModel.strSizeCategoryNameList;            
                s.prop33 = altViewsModel.pageType;
                s.events= altViewsModel.events;
                s.products = altViewsModel.products;
                /**
                 * set to empty for no visibility requirement
                 */
				s.prop11 = '';
                s.eVar4 = '';
                s.eVar12 = '';
                s.eVar15 = '';
                s.eVar19 = '';
                s.eVar20 = '';
                s.eVar23 = '';
                s.eVar30 = '';
                s.eVar31 = '';
                s.eVar39 = '';
            },
            getReportRequest:function(app) {
				var reportingManager = reportingService.controller.reportingManager;
				var viewManager = reportingService.controller.viewManagers.altViewsViewManager;
				viewManager.isWaitComplete = true;
                viewManager.controller.app = app;
                reportingManager.getReportingRequest(viewManager);
			},
			setCleanUp:function() {
				
                var altViewsModel = reportingService.controller.viewManagers.altViewsViewManager.model;
                s.pageName = altViewsModel.origPageName;
                s.prop2 = '';
                s.prop3 = '';
                s.prop4 = '';
                s.prop5 = '';
                s.eVar33 = '';
                s.hier1 = altViewsModel.originalHier1;
			}
        }
	}
);
