
function ImagePreloader(){};ImagePreloader.prototype={callBack:null,images:null,totalImagesLoaded:0,totalImagesErrored:0,totalImagesAborted:0,totalImagesProcessed:0,initialise:function(imageUrls,callBack){var ref=this;ref.callBack=callBack;ref.totalImagesLoaded=0;ref.totalImagesErrored=0;ref.totalImagesAborted=0;ref.totalImagesProcessed=0;ref.images=new Array();ref.totalImagesToLoad=imageUrls.length;for(var i=0;i<imageUrls.length;i++){ref.preload(imageUrls[i]);}},preload:function(imageUrl)
{var ref=this;var imageObj=new Image;ref.images.push(imageObj);imageObj.loaded=false;imageObj.onload=function(){ref.onImageLoad(imageObj);};imageObj.errored=false;imageObj.onerror=function(){ref.onImageError(imageObj);};imageObj.aborted=false;imageObj.onabort=function(){ref.onImageAbort(imageObj);};imageObj.src=imageUrl;},onComplete:function()
{var ref=this;ref.totalImagesProcessed++;if(ref.totalImagesProcessed==ref.totalImagesToLoad){if(typeof ref.callBack=="function"){ref.callBack(ref.images,ref.totalImagesLoaded,ref.totalImagesErrored,ref.totalImagesAborted);}}},onImageLoad:function(imageObj){var ref=this;imageObj.loaded=true;ref.totalImagesLoaded++;ref.onComplete();},onImageError:function(imageObj){var ref=this;imageObj.errored=true;ref.totalImagesErrored++;ref.onComplete();},onImageAbort:function(imageObj){var ref=this;imageObj.aborted=true;ref.totalImagesAborted++;ref.onComplete();}};
function CallbackResponse(xml){this.response=jQuery("response",xml).get(0);this.skipNotificationCodes[this.skipNotificationCodes.length]=201;};CallbackResponse.prototype={skipErrorCodes:new Array(),skipNotificationCodes:new Array(),actionIsSuccess:function(){var ref=this;return jQuery("action[success=true]",ref.response).length>0;},replaceElement:function(elementId){var ref=this;if(elementId!=""){jQuery(elementId).html(jQuery("html:eq(0)",ref.response).text())}},processVariables:function(){var ref=this;jQuery("variables variable",ref.response).each(function(){eval(jQuery("name:eq(0)",this).text()+" = "+jQuery("value:eq(0)",this).text()+";");});},getNodeValue:function(nodeName,index){var ref=this;if(typeof index=="undefined"){index=0;}
return jQuery(nodeName+":eq("+index+")",ref.response).text();},getNodeAttributeValue:function(nodeName,attributeName){var ref=this;return jQuery(nodeName+":eq(0)",ref.response).attr(attributeName);},hasErrors:function(){var ref=this;return jQuery("errors message",ref.response).length>0;},getErrors:function(delimeter,additional){var ref=this;var errors="";jQuery("errors message",ref.response).each(function(){if(errors.length>0){errors+=delimeter;}
errors+="["+$(this).attr("code")+"] - "+$(this).text();if(additional&&typeof $(this).attr("additional")!="undefined")
errors+=" - "+$(this).attr("additional");});return errors;},getErrorsWrap:function(prefix,suffix,additional){var ref=this;var errors="";jQuery("errors message",ref.response).each(function(){errors+=prefix+$(this).text();if(additional&&typeof $(this).attr("additional")!="undefined")
errors+=" - "+$(this).attr("additional");errors+=suffix;});return errors;},hasNotifications:function(){var ref=this;return jQuery("notifications message",ref.response).length>0;},getNotifications:function(delimeter,additional,overrideIgnoredCodes){var ref=this;var notifications="";jQuery("notifications message",ref.response).each(function(){if(notifications.length>0){notifications+=delimeter;}
if(overrideIgnoredCodes||ref.isNotificationCodeValid($(this).attr("code"))){notifications+="- "+$(this).text();if(additional&&typeof $(this).attr("additional")!="undefined"){notifications+=" - "+$(this).attr("additional");}}});return notifications;},getNotificationsWrap:function(prefix,suffix,additional,overrideIgnoredCodes){var ref=this;var notifications="";jQuery("notifications message",ref.response).each(function(){if(overrideIgnoredCodes||ref.isNotificationCodeValid($(this).attr("code"))){notifications+=prefix+$(this).text();if(additional&&typeof $(this).attr("additional")!="undefined"){notifications+=" - "+$(this).attr("additional");}
notifications+=suffix;}});return notifications;},isNotificationCodeValid:function(code){var ref=this;var i;for(i=0;i<ref.skipNotificationCodes.length;i++){if(parseInt(code)==ref.skipNotificationCodes[i]){return false;}}
return true;}};
(function($j){Code.registerNamespace('Website.Pages');Website.Pages.ChangingRoom={settings:{zoomOptions:{},queryPaths:{yourItemsButton:'#ContentContainer .js-your-items a',previousOrdersButton:'#ContentContainer .js-prev-orders a',deleteGarmentButton:'#ContentContainer .js-delete',garmentThumbnail:'#ContentContainer .js-rail-item',yourItemsRail:'#YourItems',previousOrdersRail:'#PreviousOrders',garmentItem:'#ContentContainer .js-garment',garmentItems:'#ContentContainer js-garments',imageRequestQueryPaths:['#ContentContainer .left-mirror-image','#ContentContainer .middle-mirror-image','#ContentContainer .right-mirror-image'],firstGarmentItem:'#ContentContainer ul.js-garments li:first',firstVisitModal:'#ContentContainer a.js-first-visit-modal'},cssClasses:{yourItemsActive:'active',previousOrdersActive:'active'},eventNamespaces:{clickShowYourItems:'click.code.website.pages.changingRoom.showYourItems',clickShowPreviousOrders:'click.code.website.pages.changingRoom.showPreviousOrders',clickDeleteGarment:'click.code.website.pages.changingRoom.deleteGarment',clickGarmentImage:'click.code.website.pages.changingRoom.showGarmentImages'},exceptions:{},html:{},ajax:{changingRoomHandlerUrl:Code.resolveUrl('~/Handlers/ChangingRoomHandler.ashx'),imageRequestActions:['LoadLeftGarmentImage','LoadCentralGarmentImage','LoadRightGarmentImage']}},_activeThreads:0,onReady:function(){var self=this;self._setInitialUIState();self._bindEvents();if(Website.Core.firstTimeChangingRoom)
{$(self.settings.queryPaths.firstVisitModal).trigger('click');}},_setInitialUIState:function(){var self=this;$j(self.settings.queryPaths.previousOrdersRail).hide();if(!self._activeThreads>0){Website.Core.blockUI();}
if(!Code.Type.isNothing($j(self.settings.queryPaths.yourItemsRail))){$j(self.settings.ajax.imageRequestActions).each(function(index){self._showGarmentImages(0,index);});}},_bindEvents:function(){var self=this;$j(self.settings.queryPaths.yourItemsButton).bind(self.settings.eventNamespaces.clickShowYourItems,function(event){self._onClickShowYourItems(this,event);});$j(self.settings.queryPaths.previousOrdersButton).bind(self.settings.eventNamespaces.clickShowPreviousOrders,function(event){self._onClickShowPreviousOrders(this,event);});$j(self.settings.queryPaths.deleteGarmentButton).bind(self.settings.eventNamespaces.clickDeleteGarment,function(event){self._onClickDeleteGarment(this,event);});$j(self.settings.queryPaths.garmentThumbnail).bind(self.settings.eventNamespaces.clickGarmentImage,function(event){self._onClickGarmentImage(this,event);});self._bindModalWindows();},_bindModalWindows:function(){var self=this;$j(self.settings.queryPaths.firstVisitModal).fancybox({'hideOnContentClick':false,'frameHeight':200,'overlayOpacity':0.5});},_onClickShowYourItems:function(targetEl,event){var self=this;event.preventDefault();$j(targetEl).addClass(self.settings.cssClasses.yourItemsActive);$j(self.settings.queryPaths.previousOrdersButton).removeClass(self.settings.cssClasses.previousOrdersActive);$j(self.settings.queryPaths.previousOrdersRail).hide();$j(self.settings.queryPaths.yourItemsRail).show();},_onClickShowPreviousOrders:function(targetEl,event){var self=this;event.preventDefault();$j(targetEl).addClass(self.settings.cssClasses.previousOrdersActive);$j(self.settings.queryPaths.yourItemsButton).removeClass(self.settings.cssClasses.yourItemsActive);$j(self.settings.queryPaths.previousOrdersRail).show();$j(self.settings.queryPaths.yourItemsRail).hide();},_onClickDeleteGarment:function(targetEl,event){var self=this;event.preventDefault();var cssClass=$j(targetEl).closest(self.settings.queryPaths.garmentItem).attr('class');var garmentId=self._findClass(cssClass,/js-garment-(\d+)/);if(!self._activeThreads>0)
Website.Core.blockUI();var railItem=$j(targetEl).closest(self.settings.queryPaths.garmentThumbnail);var viewClass=self._findClass(railItem.attr('class'),/active/);if(viewClass!=0){self._toggleActiveGarment(garmentId,railItem);}
self._deleteGarment(garmentId);},_onClickGarmentImage:function(targetEl,event){var self=this;event.preventDefault();var cssClass=$j(targetEl).closest(self.settings.queryPaths.garmentItem).attr('class');var garmentId=self._findClass(cssClass,/js-garment-(\d+)/);if(!self._activeThreads>0)
Website.Core.blockUI();self._toggleActiveGarment(garmentId,targetEl);},_deleteGarment:function(garmentId,targetEl){var self=this;self._activeThreads++;$j.ajax({type:'POST',url:self.settings.ajax.changingRoomHandlerUrl+'?Action=DeleteGarment&garmentId='+garmentId,success:function(xml){var cr=new CallbackResponse(xml);if(cr.actionIsSuccess()){var garmentItem=$j(self.settings.queryPaths.garmentItem+'-'+garmentId);garmentItem.remove();if($j(self.settings.queryPaths.garmentItem).size()){var firstRailItem=$j(self.settings.queryPaths.garmentItem+':first');firstRailItem.addClass("first");}}else{console.log("Error in service response");}},complete:function(){self._activeThreads--;if(!self._activeThreads>0)
Website.Core.unblockUI();}});},_toggleActiveGarment:function(garmentId,targetEl){var self=this;self._activeThreads++;var cssClass=$j(targetEl).attr('class');var viewClass=self._findClass(cssClass,/active/);var addToView=false;if(viewClass==0){addToView=true;}
$j.ajax({type:'POST',url:self.settings.ajax.changingRoomHandlerUrl+'?Action=ToggleGarment&garmentId='+garmentId+'&add='+addToView,success:function(xml){var cr=new CallbackResponse(xml);if(cr.actionIsSuccess()){var upperGarmentId=parseInt(cr.getNodeAttributeValue("toggleGarment","upperGarmentId"));var lowerGarmentId=parseInt(cr.getNodeAttributeValue("toggleGarment","lowerGarmentId"));$j(self.settings.queryPaths.garmentItem).each(function(index,item){var garmentCssClass=$j(item).closest(self.settings.queryPaths.garmentItem).attr('class');var garmentId=parseInt(self._findClass(garmentCssClass,/js-garment-(\d+)/));$j('a',item).removeClass(self.settings.cssClasses.yourItemsActive);if(garmentId==upperGarmentId){$j('a',item).addClass(self.settings.cssClasses.yourItemsActive);}
if(garmentId==lowerGarmentId){$j('a',item).addClass(self.settings.cssClasses.yourItemsActive);}});$j(self.settings.ajax.imageRequestActions).each(function(index){self._showGarmentImages(garmentId,index);});}else{}},error:function(message){alert(message);},complete:function(){self._activeThreads--;if(!self._activeThreads>0){Website.Core.unblockUI();}}});},_showGarmentImages:function(garmentId,index){var self=this;self._activeThreads++;$j.ajax({type:'POST',url:self.settings.ajax.changingRoomHandlerUrl+'?Action='+self.settings.ajax.imageRequestActions[index]+'&garmentId='+garmentId,success:function(xml){var cr=new CallbackResponse(xml);if(cr.actionIsSuccess()){var url=cr.getNodeValue("imageUrl").toString()
if(!Code.Type.isNothing(url)&&url.length>0){self._activeThreads++;var imageLoader=new ImagePreloader();imageLoader.initialise(new Array(url),function(images,totalLoaded,totalErrored,totalAborted){self._activeThreads--;$j(self.settings.queryPaths.imageRequestQueryPaths[index]).attr('src',url).show();if(!self._activeThreads>0){Website.Core.unblockUI();}});}}else{}},complete:function(){self._activeThreads--;if(!self._activeThreads>0){Website.Core.unblockUI();}}});},_findClass:function(cssClass,stringToMatch){var self=this;if(!Code.Type.isNothing(cssClass)){var result=cssClass.match(stringToMatch);if(Code.Type.isNothing(result)){return 0;}else{return result[1];}}},_calcRailContainerW:function(itemsRail){var self=this;var railItemWidth=$j("."+self.railItem,itemsRail).width()+parseInt($j("li",itemsRail).css("margin-right"));var numRailItems=$j("."+self.railItem,itemsRail).length;$j("."+self.railItems).width(railItemWidth*numRailItems+1);$j(itemsRail).width(railItemWidth*numRailItems);},_handleRail:function(){var self=this;$j("#"+self.prevOrdersRail).hide();$j("#"+self.yourItemsRail).show();self._calcRailContainerW("#"+self.yourItemsRail);if($j.browser.msie==true&&parseInt(jQuery.browser.version)<7){$j("."+self.railItemPopUpContent).each(function(i){$j(this).prepend('<a href="#" class="close-btn">close</a>');});$j("."+self.railItem).hover(function(){$j("."+self.railItem).parent().removeClass(self.railItemHover);$j(this).parent().addClass(self.railItemHover);},function(){});$j("a.close-btn").live("click",function(e){$j("."+self.railItem).parent().removeClass(self.railItemHover);e.preventDefault();})}
$j("."+self.yourItemsTab).click(function(e){$j("a",this).addClass("active");$j("a",$j("."+self.prevOrdersTab)).removeClass("active");$j("#"+self.prevOrdersRail).hide();$j("#"+self.yourItemsRail).show();self._calcRailContainerW("#"+self.yourItemsRail);e.preventDefault();})
$j("."+self.prevOrdersTab).click(function(e){$j("a",this).addClass("active");$j("a",$j("."+self.yourItemsTab)).removeClass("active");$j("#"+self.yourItemsRail).hide();$j("#"+self.prevOrdersRail).show();self._calcRailContainerW("#"+self.prevOrdersRail);e.preventDefault();})}}
$j().ready(function(){Website.Pages.ChangingRoom.onReady();});})(jQuery);