dojo.require("wc.service.common");compareProductJS={compareCounter:0,compareRowCounter:0,compareItemCatEntry:new Object(),langId:"-1",storeId:"",catalogId:"",properties:new Object(),errorMessages:new Object(),compareProductsCookie:"cmpcatgrpitems_",initialized:false,setCommonParameters:function(langId,storeId,catalogId){this.langId=langId;this.storeId=storeId;this.catalogId=catalogId;this.compareProductsCookie=this.compareProductsCookie+storeId;this.initialized=true;},setErrorMessage:function(key,value){this.errorMessages[key]=value;},getErrorMessage:function(key){var value=this.errorMessages[key];if(value==null){value="Could not get the message value for specified key "+key;}return value;},setProperty:function(name,value){this.properties[name]=value;},getProperty:function(name){return this.properties[name];},getStorageKey:function(){var storageKey="CompareItems"+this.storeId;var sessionId=this.getProperty("sessionId");var sessionCode=0;storageKey=storageKey+sessionCode;return storageKey;},load:function(key){if(key==null||typeof key=="undefined"||key==""){alert("Please provide a key");return;}return this._load(key);},save:function(key,value){if(key==null||typeof key=="undefined"||key==""){alert("Please provide a key");return;}if(value==null||typeof value=="undefined"||value==""){alert("Please provide a key value");return;}this._save(key,value);},clear:function(){if(this.compareCounter!=0){MessageHelper.hideAndClearMessage();}if(this.currentProvider=="flash"){dojo.storage.clear();}else{if(this.compareCounter>0){var storageKey=this.getStorageKey();dojo.cookie(storageKey,null);this.initializeCompare();var form=document.getElementById("CompareForm");var compare=document.getElementById("compareZone");var childNodes=compare.childNodes;for(i=0;i<childNodes.length;i++){compare.removeChild(childNodes[i]);}var div1=document.createElement("div");div1.setAttribute("id","compareDropZoneImg");div1.setAttribute("class","items");div1.innerHTML=form.clearMsg.value;var div2=document.createElement("div");div2.innerHTML="&nbsp;";div1.appendChild(div2);compare.appendChild(div1);document.getElementById("compareDropZoneImg").style.padding="5px";if(document.getElementById("compareProductPage")!=null&&document.getElementById("compareProductPage")!="undefined"){if(document.getElementById("compareProductPage").value){var url=document.CompareForm.action+"?storeId="+document.CompareForm.storeId.value+"&catalogId="+document.CompareForm.catalogId.value+"&langId="+document.CompareForm.langId.value+"&categoryId= ";document.location.href=url;}}MessageHelper.displayStatusMessage(MessageHelper.messages.COMPARE_ITEMS_CLEAR);}}},remove:function(key){if(this.currentProvider=="flash"){dojo.storage.remove(key);}else{var storageKey=this.getStorageKey();var result=this.load(storageKey);if(result!=null){this.compareItemCatEntry=result;}delete this.compareItemCatEntry[key];this.save(storageKey,this.compareItemCatEntry);this.compareProducts();}},_save:function(key,value,days,path,domain,secure,clearCurrent){if(this.currentProvider=="flash"){var self=this;var saveHandler=function(status,keyName){if(status==dojo.storage.FAILED){alert("You do not have permission to store data for this web site. Press the Configure button to grant permission.");}else{if(status==dojo.storage.SUCCESS){}}};try{dojo.storage.put(key,value,saveHandler);}catch(exp){alert(exp);}}else{value=dojo.toJson(value);dojo.cookie(key,value,days,path,domain,secure,clearCurrent);}},_load:function(key){if(this.currentProvider=="flash"){var results=dojo.storage.get(key);return results;}else{var value=dojo.cookie(key);value=dojo.fromJson(value);return value;}},initializeCompare:function(){var storageKey=this.getStorageKey();this.compareCounter=0;this.compareRowCounter=0;this.compareItemCatEntry=new Object();var result=this.load(storageKey);if(result!=null){this.compareItemCatEntry=result;}var compare=document.getElementById("compareZone");var childNodes=compare.childNodes;for(i=0;i<childNodes.length;i++){if(childNodes[i].id!="compareDropZoneImg"){compare.removeChild(childNodes[i]);}}var firstItem=true;for(catEntryIdentifier in this.compareItemCatEntry){this.compareCounter++;if(this.compareCounter<=4){var catentryAddedToCompare=document.CompareForm.catentryId[this.compareCounter-1].value=catEntryIdentifier;for(i=0;i<childNodes.length;i++){if(childNodes[i].id=="compareDropZoneImg"){compare.removeChild(childNodes[i]);}}var td1=document.createElement("td");td1.setAttribute("id","compareCatentry"+catentryAddedToCompare);var div2=document.createElement("div");div2.setAttribute("id","compareCatentryContainer"+catentryAddedToCompare);td1.appendChild(div2);div2.innerHTML=this.compareItemCatEntry[catEntryIdentifier];var node=dojo.query(":first-child",div2);if(((this.compareCounter-1)%4)==0){this.compareRowCounter++;var tr1=document.createElement("tr");tr1.setAttribute("id","compareRow"+this.compareRowCounter);}else{var tr1=document.getElementById("compareRow"+this.compareRowCounter);}tr1.appendChild(td1);if(firstItem){var div1=document.createElement("div");div1.setAttribute("id","compareDropZoneImgDiv");div1.style.width="100%";var table1=document.createElement("table");var tbody1=document.createElement("tbody");tbody1.setAttribute("id","compareItemsTable");table1.appendChild(tbody1);tbody1.appendChild(tr1);div1.appendChild(table1);compare.appendChild(div1);}else{var tbody1=document.getElementById("compareItemsTable");tbody1.appendChild(tr1);}firstItem=false;}}},Add2CompareAjax:function(catEntryIdentifier,dragImagePath,url,dragImageDescription){MessageHelper.hideAndClearMessage();var storageKey=this.getStorageKey();if(catEntryIdentifier in this.compareItemCatEntry||catEntryIdentifier==null){MessageHelper.displayErrorMessage(MessageHelper.messages.COMPARE_ITEM_EXISTS);}else{this.compareCounter++;if(this.compareCounter<=4){document.CompareForm.catentryId[this.compareCounter-1].value=catEntryIdentifier;var _id="Compare_Item_"+catEntryIdentifier;var itemHTML="	<a id='imgcatBrowse"+_id+"' href='"+url+"' >\n		<img width='40' height='40' src='"+dragImagePath+"' alt='"+dragImageDescription+"' border='0' />\n	</a>\n";itemHTML=itemHTML.replace(/\"/g,"'").replace(/\r|\n|\r\n|\n\r/g,"");this.compareItemCatEntry[catEntryIdentifier]=itemHTML;this.save(storageKey,this.compareItemCatEntry,-1);this.initializeCompare();if(document.getElementById("compareProductPage")!=null&&document.getElementById("compareProductPage")!="undefined"){if(document.getElementById("compareProductPage").value){this.compareProducts();}}MessageHelper.displayStatusMessage(MessageHelper.messages.COMPAREZONE_ADDED);}else{MessageHelper.displayErrorMessage(MessageHelper.messages.COMPATE_MAX_ITEMS);}}},compareProducts:function(){var storageKey=this.getStorageKey();var result=this.load(storageKey);if(result!=null){this.compareItemCatEntry=result;}if(document.CompareForm!=null&&document.CompareForm!="undefined"){var url="CompareProductsDisplay?storeId="+document.CompareForm.storeId.value+"&catalogId="+document.CompareForm.catalogId.value+"&langId="+document.CompareForm.langId.value+"&categoryId="+document.CompareForm.categoryId.value+"&top="+document.CompareForm.top.value;}else{var url="CompareProductsDisplay?storeId="+this.storeId+"&catalogId="+this.catalogId+"&langId="+this.langId;}for(catEntryIdentifier in this.compareItemCatEntry){url=url+"&catentryId="+catEntryIdentifier;}document.location.href=getAbsoluteURL()+url;},init:function(){dojo.subscribe("/dnd/drop",function(source,nodes,copy,target){target.deleteSelectedNodes();var productDisplayPath="";var imgPath="";var imgDescription="";if(target.parent.id=="compareZone"){var indexOfIdentifier=source.parent.id.indexOf("_",0);if(indexOfIdentifier>=0){source.parent.id=source.parent.id.substring(indexOfIdentifier+1);}if(document.getElementById("compareImgPath_"+source.parent.id)!=null&&document.getElementById("compareImgPath_"+source.parent.id)!=undefined){imgPath=document.getElementById("compareImgPath_"+source.parent.id).value;}if(document.getElementById("compareProductDetailsPath_"+source.parent.id)!=null&&document.getElementById("compareProductDetailsPath_"+source.parent.id)!=undefined){productDisplayPath=document.getElementById("compareProductDetailsPath_"+source.parent.id).value;}if(document.getElementById("compareImgDescription_"+source.parent.id)!=null&&document.getElementById("compareImgDescription_"+source.parent.id)!=undefined){imgDescription=document.getElementById("compareImgDescription_"+source.parent.id).value;}compareProductJS.Add2CompareAjax(source.parent.id,imgPath,productDisplayPath,imgDescription);}});},getCompareCookie:function(){return dojo.cookie(this.compareProductsCookie);},compareThisProduct:function(cbInfo){var arrayItems=(cbInfo.value).split("|");var vCatgroupId=arrayItems[0];var vCatentryId=arrayItems[1];if(cbInfo.checked==true){this.addtoCompare(vCatgroupId,vCatentryId,"");}else{this.removefromCompare(vCatgroupId,vCatentryId);}},removeCategory:function(catgroupId,compareUrl){if(catgroupId!=null&&catgroupId!=""){this.removefromCompare(catgroupId,null);window.location=compareUrl;}},removeProduct:function(catgroupId,catentryId,compareUrl){if(catgroupId!=null&&catgroupId!=""&&catentryId!=null&&catentryId!=""){this.removefromCompare(catgroupId,catentryId);window.location=compareUrl;}},addtoCompareProduct:function(catgroupId,productId){var entitledItemJSON;var entitledItemId="entitledItem_"+productId;if(dojo.byId(entitledItemId)!=null){entitledItemJSON=eval("("+dojo.byId(entitledItemId).innerHTML+")");categoryDisplayJS.setEntitledItems(entitledItemJSON);}var selectedItemID=categoryDisplayJS.getCatalogEntryId();this.addtoCompare(catgroupId,selectedItemID,"");},addtoCompare:function(catgroupId,catentryId,viewMode){if(!this.initialized){return;}var nCompareList=this.getCompareCookie();var nError=0;if(nCompareList==null||nCompareList==""){nCompareList=catgroupId+":"+catentryId;dojo.cookie(this.compareProductsCookie,nCompareList,{path:"/"});this.switchtoCompareNow(viewMode,catentryId);}else{if(catgroupId!=null&&catgroupId!=""&&catentryId!=null&&catentryId!=""){if(nCompareList.indexOf(catgroupId)>-1){if(catentryId!==null&&nCompareList.indexOf(catentryId)>-1){this.switchtoCompareNow(viewMode,catentryId);}else{var tempArray="";var tempTabInfo="";var index=0;var arrayTab=nCompareList.split("|");var tabCount=arrayTab.length-1;for(index=0;index<arrayTab.length;index++){if(arrayTab[index]!=""&&arrayTab[index].indexOf(catgroupId)>-1){var tabInfo=arrayTab[index].split(":");var tabCatgroupInfo=tabInfo[0];var tabCatentryInfo=tabInfo[1];if(tabCatentryInfo!=null){var tabCatentryArray=tabCatentryInfo.split("_");if(tabCatentryArray.length<4){if(catentryId!==null&&tabCatentryInfo.indexOf(catentryId)==-1){tempTabInfo=arrayTab[index]+"_"+catentryId;}else{tempTabInfo=arrayTab[index];}}else{tempTabInfo=arrayTab[index];nError=1;alert("Sorry - you can not add more than 4 products into category for compare.");}}else{tempTabInfo=tabCatgroupInfo+":"+catentryId;}}else{tempTabInfo=arrayTab[index];}tempArray+=tempTabInfo+"|";}tempArray=tempArray.substring(0,tempArray.lastIndexOf("|"));dojo.cookie(this.compareProductsCookie,tempArray,{path:"/"});if(nError==0){this.switchtoCompareNow(viewMode,catentryId);}}}else{nCompareList=nCompareList+"|"+catgroupId+":"+catentryId;dojo.cookie(this.compareProductsCookie,nCompareList,{path:"/"});this.switchtoCompareNow(viewMode,catentryId);}}}},switchtoCompareNow:function(viewMode,catentryId){if(viewMode=="list"||viewMode=="grid"){var toggleLinkId="comp"+viewMode+"_"+catentryId;checkCompareNowById(toggleLinkId);}else{if(viewMode=="quickview-main"){changeToCompareNowMain();}else{if(viewMode=="quickview-pair"){changeToCompareNowPaired();}else{changeToCompareNow();}}}},quickviewAddtoCompare:function(catgroupId,quickViewTab){if(quickViewTab=="main"){this.addtoCompare(catgroupId,window.parent.categoryDisplayJS.getQuickviewItemId(),"quickview-main");}if(quickViewTab=="paired"){this.addtoCompare(catgroupId,window.parent.categoryDisplayJS.getQuickviewPairedItemId(),"quickview-pair");}},removefromCompare:function(catgroupId,catentryId){var nCompareList=this.getCompareCookie();if(nCompareList!=null){if(catgroupId!=null&&nCompareList.indexOf(catgroupId)>-1){var tempArray="";var tempTabInfo="";var index=0;var arrayTab=nCompareList.split("|");var tabCount=arrayTab.length-1;for(index=0;index<arrayTab.length;index++){if(arrayTab[index]!=""&&arrayTab[index].indexOf(catgroupId)>-1){var tabInfo=arrayTab[index].split(":");var tabCatgroupInfo=tabInfo[0];var tabCatentryInfo=tabInfo[1];if(catgroupId==tabCatgroupInfo){if(catentryId!=null&&tabCatentryInfo!=null){var tabCatentryArray=tabCatentryInfo.split("_");if(tabCatentryInfo.indexOf(catentryId)>-1){if(tabCatentryArray.length==1){tempTabInfo="";}else{var tempItems="";for(index2=0;index2<tabCatentryArray.length;index2++){if(tabCatentryArray[index2]!=catentryId){tempItems+=tabCatentryArray[index2]+"_";}}tempItems=tempItems.substring(0,tempItems.lastIndexOf("_"));tempTabInfo=tabCatgroupInfo+":"+tempItems;}}else{tempTabInfo=arrayTab[index];}}else{tempTabInfo="";}}else{tempTabInfo=arrayTab[index];}}else{tempTabInfo=arrayTab[index];}if(tempTabInfo!=null&&tempTabInfo!=""){tempArray+=tempTabInfo+"|";}}if(tempArray!=null&&tempArray!=""){tempArray=tempArray.substring(0,tempArray.lastIndexOf("|"));dojo.cookie(this.compareProductsCookie,tempArray,{path:"/"});}else{dojo.cookie(this.compareProductsCookie,null,{path:"/",expires:-1});}}}},initializeCompareNow:function(){var compareCookieData=this.getCompareCookie();if(compareCookieData!=null&&compareCookieData!=""){var index=0;var categoryTabArray=compareCookieData.split("|");for(index=0;index<categoryTabArray.length;index++){if(categoryTabArray[index]!=""){var index1=0;var categoryArray=categoryTabArray[index].split(":");var vCategoryId=categoryArray[0];var catentryArray=categoryArray[1].split("_");for(index1=0;index1<catentryArray.length;index1++){var vCatentryId=catentryArray[index1];this.switchtoCompareNow("list",vCatentryId);this.switchtoCompareNow("grid",vCatentryId);}}}}},initializePDPCompareNow:function(productId){var compareCookieData=this.getCompareCookie();if(compareCookieData!=null&&compareCookieData!=""){var entitledItemJSON;var entitledItemId="entitledItem_"+productId;if(dojo.byId(entitledItemId)!=null){entitledItemJSON=eval("("+dojo.byId(entitledItemId).innerHTML+")");categoryDisplayJS.setEntitledItems(entitledItemJSON);for(x in categoryDisplayJS.entitledItems){var catentry_id=categoryDisplayJS.entitledItems[x].catentry_id;console.debug("Resolving for compare-now entitledItem_"+productId+" >> catEntryId:"+catentry_id);if(compareCookieData.indexOf(catentry_id)>-1){this.switchtoCompareNow("",catentry_id);}}}}},initializeQVCompareNow:function(productId,brands){var compareCookieData=this.getCompareCookie();if(compareCookieData!=null&&compareCookieData!=""){var entitledItemJSON;var entitledItemId="entitledItem_"+productId;if(dojo.byId(entitledItemId)!=null){entitledItemJSON=eval("("+dojo.byId(entitledItemId).innerHTML+")");window.parent.categoryDisplayJS.setEntitledItems(entitledItemJSON);if(brands=="whrus"){var selectedCatentryID=window.parent.categoryDisplayJS.getQuickviewItemId();if(compareCookieData.indexOf(selectedCatentryID)>-1){this.switchtoCompareNow("quickview-main",selectedCatentryID);}var selectedPairCatentryID=window.parent.categoryDisplayJS.getQuickviewPairedItemId();if(compareCookieData.indexOf(selectedPairCatentryID)>-1){this.switchtoCompareNow("quickview-pair",selectedPairCatentryID);}}else{if(brands=="mtgus"){var selectedCatentryID=window.parent.categoryDisplayJS.getCatalogEntryId();if(compareCookieData.indexOf(selectedCatentryID)>-1){this.switchtoCompareNow("",selectedCatentryID);}}}}}}};
