Core.Product_Class=function(){this.ProductCode="";this.Result;this.Name="";this.Loaded=false};if(IsTypeDefined){Core.Product_Class.registerClass("Core.Product_Class")}Core.ProductManager_Class=function(){this.ProductCollection=new Array();this.VariantCollection=new Array();this.Action=0;this.parentControlID=null;this.UseConfirmBubble=false;this.ConfirmBubbleID="ProductConfirmFavorite_Bubble";this.AddProduct=function(c){var b=false;if(this.ProductCollection!=null){for(var a=0;a<this.ProductCollection.length;a++){if(this.ProductCollection[a].ProductCode==c.ProductCode){this.ProductCollection[a]=c;b=true;break}}if(b==false){this.ProductCollection[this.ProductCollection.length]=c}}};this.GetProduct=function(a){for(var b=0;b<this.ProductCollection.length;b++){if(this.ProductCollection[b].ProductCode==a){return this.ProductCollection[b]}}};this.LoadProduct=function(a){_ProductBubble_Class.LockCoordinates();_ProductBubble_Class.HideShades();_WebServiceAPI.LoadProduct(a,true,this.OnRequestComplete)};this.LoadProductAndDiag=function(e,a,c,f,d,b){_ProductBubble_Class.LockCoordinates();_ProductBubble_Class.HideShades();_WebServiceAPI.LoadProductWithDiagnosisInformation(e,a,c,f,d,(typeof(b)=="undefined")?"":b,this.OnRequestComplete)};this.LoadProductThumbnailsWithDiag=function(f,d,a,g,c,h,i,b,e){this.Action=0;if(h==null){if(typeof(e)=="undefined"||e==""){this.LoadProduct(c)}else{this.LoadProductFilterVariants(c,e)}}else{this.LoadProductAndDiag(g,c,h,i,b,e)}};this.LoadProductThumbnails=function(b,d,c,a){this.LoadProductThumbnailsWithDiag(b,d,c,null,a,null,null,AJAX_DEFAULT_RETAILER,"")};this.LoadSkinCareProduct=function(a,b){this.Action=1;this.parentControlID=b;this.LoadProduct(a)};this.LoadMakeupProduct=function(a,b){this.Action=2;this.parentControlID=b;this.LoadProduct(a)};this.LoadMakeupProductFilterVariants=function(a,c,b){this.Action=2;this.parentControlID=c;this.LoadProductFilterVariants(a,b)};this.LoadSkinCareFilterVariants=function(a,c,b){this.Action=1;this.parentControlID=c;this.LoadProductFilterVariants(a,b)};this.LoadProductFilterVariants=function(a,b){_ProductBubble_Class.LockCoordinates();_ProductBubble_Class.HideShades();_WebServiceAPI.LoadProductWithFilteredVariants(a,b,this.OnRequestComplete)};this.OnRequestComplete=function(a){DoDefault();if(a!=null){var b=new Core.Product_Class();b.ProductCode=a.SKU;b.Result=a;b.Loaded=true;_ProductManager.DoBranching(b);try{if(AJAX_IsIE6()){var c=$get(_ProductBubble_Class.Bubble_ImageID);DD_belatedPNG.fixPng(c)}}catch(d){}}};this.DoBranching=function(a){_ProductBubble_Class.IsMakeupProduct=true;switch(this.Action){case 0:_ProductBubble_Class.Code=a.ProductCode;_ProductBubble_Class.PopUp=_CoreModalPopUp;_ProductBubble_Class.DisplayShadeTable(a);break;case 1:_ProductBubble_Class.IsMakeupProduct=false;_ProductBubble_Class.Code=a.ProductCode;_ProductBubble_Class.LoadProductRequestComplete(a.Result);break;case 2:_ProductBubble_Class.IsMakeupProduct=true;_ProductBubble_Class.Code=a.ProductCode;_ProductBubble_Class.LoadProductRequestComplete(a.Result);break;default:_ProductBubble_Class.Code=a.ProductCode;_ProductBubble_Class.DisplayShadeTable(a);break}};this.AddVariant=function(a){var c=false;if(this.VariantCollection!=null){for(var b=0;b<this.VariantCollection.length;b++){if(this.VariantCollection[b].ProductCode==a.ProductCode){this.VariantCollection[b]=a;c=true;break}}if(c==false){this.VariantCollection[this.VariantCollection.length]=a}}};this.GetVariant=function(a){for(var b=0;b<this.VariantCollection.length;b++){if(this.VariantCollection[b].ProductCode==a){return this.VariantCollection[b]}}};this.LoadVariant=function(a){if(ENABLE_VARIANT_CACHING){var b=this.GetVariant(a);if((b==null)||(typeof(b)=="undefined")||(b.Loaded=false)){b=new Core.Product_Class();b.ProductCode=a;this.AddVariant(b);_WebServiceAPI.LoadProduct(a,false,this.VariantOnRequestComplete)}else{this.DoVariantBranching(b)}}else{_WebServiceAPI.LoadProduct(a,false,this.VariantOnRequestComplete)}};this.VariantOnRequestComplete=function(a){DoDefault();if(a!=null){if(ENABLE_VARIANT_CACHING){var b=_ProductManager.GetVariant(a.SKU);b.Result=a;b.Loaded=true;_ProductManager.AddVariant(b);_ProductManager.DoVariantBranching(b)}else{var b=new Core.Product_Class();b.ProductCode=a.SKU;b.Result=a;_ProductManager.DoVariantBranching(b)}}};this.DoVariantBranching=function(a){_VariantBubble_Class.parentControlID=this.parentControlID;_VariantBubble_Class.Code=a.ProductCode;_VariantBubble_Class.PopulateData(a.Result)};this.LoadMakeupVariant=function(a,b){this.Action=0;this.parentControlID=b;this.LoadVariant(a)};this.AddProductToFavorites=function(b,c,a){_WebServiceAPI.AddToFavorites(CurrentCustomerID,this.ConvertTypeToInteger(b),c,a,this.AddProductToFavoritesOnComplete)};this.AddProductToFavoritesOnComplete=function(a){if(a!=null){if(a==true){var b=null;var d=null;var c=null;if(_QuickShop_Class.FromProductBubble!=true){b=$get(VAR_FAVORITE_CONFIRM_ID);d=$get(VAR_PRODUCT_INFO_ID);c=VAR_FAVORITE_CONFIRM_MESSAGE;_CoreModalPopUp._PopupControlID="ProductConfirmFavorite_Bubble";_CoreModalPopUp.ShowModal()}else{if(_ProductManager.UseConfirmBubble==true){_CoreModalPopUp._PopupControlID=_ProductManager.ConfirmBubbleID;_CoreModalPopUp.ShowModal();_ProductManager.UseConfirmBubble=false}else{d=$get(PRD_PRODUCT_INFO_ID);b=$get(PRD_FAVORITE_CONFIRM_ID);c=PRD_FAVORITE_CONFIRM_MESSAGE}}if(b!=null){b.style.display="block";b.innerHTML=c}if(d!=null){d.style.display="none"}}else{alert("Your request failed to complete. Please try again.")}}};this.ConvertTypeToInteger=function(a){switch(a){case"Product":return 0;break;case"Variant":return 0;break;default:return 0;break}}};if(IsTypeDefined){Core.ProductManager_Class.registerClass("Core.ProductManager_Class")}var _ProductManager=new Core.ProductManager_Class();