var McEvents=new Class({addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}},removeEvents:function(A){for(var B in A){this.removeEvent(B,A[B]);}}});var McAjax={nextTransId:1,createHttpRequest:function(){try{return new XMLHttpRequest();}catch(A){try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(A){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(A){return false;}}}},Request:function(C){var B=McAjax.createHttpRequest();if(!B){return null;}var D=new Array();var E=McAjax.nextTransId++;var A=this;this.getTransactionId=function(){return E;};this.getHttpRequest=function(){return B;};this.send=function(){try{B.open("GET",C,true);B.onreadystatechange=function(){if(B!=null&&B.readyState==4&&B.status>=200&&B.status<300){for(var H=0,G=D.length;H<G;H++){D[H](A);}}};B.send(C);}catch(F){return false;}return true;};this.addCallback=function(F){D.push(F);};return this;},createRequest:function(B,D,A){var C=new McAjax.Request(B);if(C==null){return null;}if(D!=null){C.addCallback(D);}if(A){C.send();}return C;}};var McItemText=new Class({options:{anNodes:null,onLoad:null},initialize:function(A){this.setOptions(A);this.itemCodes="";this.mapItemText=new Hash();this.initFromAnimationNodes(this.options.anNodes);this.fetchItemText(this.options.onLoad);},fetchItemText:function(A){this.remoteCallCompletedCallback=A;Seam.Remoting.displayLoadingMessage=Class.empty;Seam.Remoting.hideLoadingMessage=Class.empty;if(this.itemCodes!=""){Seam.Component.getInstance("itemTextService").getItemText(this.itemCodes,function(F){var C=Json.evaluate(F);for(var D=0,B=C.length;D<B;D++){var E=C[D];this.mapItemText.set(E.id,E.text);}if($defined(this.remoteCallCompletedCallback)){this.remoteCallCompletedCallback();}}.bind(this));}else{if($defined(this.remoteCallCompletedCallback)){this.remoteCallCompletedCallback();}}},getItemText:function(A){return this.mapItemText.get(A);},addItemCode:function(A){if(this.itemCodes.length>0){this.itemCodes+=",";}this.itemCodes+=A;},clearItemCodes:function(){this.itemCodes="";},hasItemCodes:function(){return(this.itemCodes!="");},initFromAnimationNodes:function(F){if(!$defined(F)){return false;}this.clearItemCodes();for(var H=0,A=F.length;H<A;H++){var D=F[H];var C=D.childNodes;for(var E=0,B=C.length;E<B;E++){var G=C[E].getAttribute("a");if(G!=null){this.addItemCode(G);}}}}});McItemText.implement(new Options);var McButtons=new Class({options:{onClick:Class.empty,onProcessNode:null},initialize:function(B,A){this.setOptions(A);this.elWrapper=$(B);this.handlers={onRequest:this.onRequest.bind(this),onResponse:this.onResponse.bind(this),onProcessNode:$pick(A.onProcessNode,this.createButton.bind(this))};},dragClasses:{"N":" north","S":" south","E":" east","W":" west"},elTouchWrapper:null,onRequest:function(){this.clearButtons();},onResponse:function(){},getKid:function(A){return A.className.substr(4);},getTid:function(A){return A.getAttribute("t");},createButtonClass:function(A){return"btn_"+A;},isTouch:function(A){return(A.charAt(1)==":"&&A.charAt(0)=="t");},isDrag:function(A){return(A.charAt(1)==":"&&A.charAt(0)=="d");},isTouchOrDrag:function(A){return(A.charAt(1)==":"&&((A.charAt(0)=="d")||(A.charAt(0)=="t")));},getNormalButtons:function(){return this.elWrapper.getChildren();},getTouchButtons:function(){return($defined(this.elTouchWrapper)?this.elTouchWrapper.getChildren():false);},showButtons:function(){this.elWrapper.style.display="block";if($defined(this.elTouchWrapper)){this.elTouchWrapper.style.display="block";}},hideButtons:function(){this.elWrapper.style.display="none";if($defined(this.elTouchWrapper)){this.elTouchWrapper.style.display="none";}},clearButtons:function(){this.elWrapper.innerHTML="<span />";if($defined(this.elTouchWrapper)){this.elTouchWrapper.innerHTML="<span />";}},createButton:function(B,D){if(B.tagName!="b"){return ;}var C=B.getAttribute("t");var A=B.getAttribute("k");D.addState(C,B);return this.createButtonFromIds(C,A,D);},createButtonFromIds:function(G,C,H){var B={"href":"#g","t":G,"events":{click:function(){this.fireEvent("onClick",[G,C]);}.bind(this)}};if(C.charAt(1)==":"){if(!$defined(this.elTouchWrapper)){this.elTouchWrapper=new Element("div",{"class":"buttons"}).inject(H.getLcd().elWrapper);}var A=C.substring(2).split(",");var F={"left":Number(A[0]),"top":Number(A[1]),"width":Number(A[2]),"height":Number(A[3])};if(C.charAt(0)=="t"){$extend(B,{"class":this.createButtonClass("touch"),"styles":F});}else{if(C.charAt(0)=="d"){var E=($defined(A[4])?A[4]:"n");var D=this.createButtonClass("drag")+this.dragClasses[E];$extend(B,{"class":D,"styles":F});}}return new Element("a",B).inject(this.elTouchWrapper);}else{$extend(B,{"class":this.createButtonClass(C)});return new Element("a",B).inject(this.elWrapper);}}});McButtons.implement(new McEvents,new Events,new Options);var McLcd=new Class({options:{autoplay:true,playLoops:true,onBegin:Class.empty,onPause:Class.empty,onFrame:Class.empty,onEnd:Class.empty},currentState:null,initialize:function(C,A,B){this.setOptions(B);this.elWrapper=$(C);this.lastSleepTime=0;this.graphRoot=(A.lastIndexOf("/")==A.length-1?A:A+"/");this.curImage=new Image();this.curImage.onload=this.curImageLoaded.bind(this);this.fnForward=function(){this.playNextFrame();}.bind(this);this.fnReverse=function(){this.playPrevFrame();}.bind(this);if(this.options.initialize){this.options.initialize.call(this);}},showState:function(A,B){if(!$defined(A)){return false;}var C=$merge(this.options,B);if(C.annotations){this.mcItemText=new McItemText({"anNodes":A.childNodes,"onLoad":function(){this.showState(A,{"autoplay":true});}.bind(this)});}else{this.autoplay=C.autoplay;this.playAnimations(A.getElementsByTagName("an"));this.currentState=A;}},initAnimation:function(B){var A=B.getAttribute("l");this.loopCount=(A==null?1:parseInt(A));this.loopIndex=0;this.fIndex=0;this.fNodes=B.childNodes;},playAnimations:function(A){if(!$defined(A)){return false;}this.fireEvent("onBegin",this);this.fNodes=null;this.elapsedTime=this.lastSleepTime=0;this.loopIndex=this.loopCount=this.anIndex=-1;this.anNodes=A;if(this.anNodes.length>0){this.anIndex=0;this.initAnimation(this.anNodes[0]);if(this.fNodes!=null&&this.fNodes.length>0){this.playCurrentFrame(true);}}},playFirstFrame:function(){this.playAnimations(this.anNodes);},playPrevFrame:function(){if(this.fIndex>0){this.fIndex--;}else{if(this.options.playLoops&&((this.loopCount==-1)||(this.loopIndex-1>=0))){this.loopIndex--;this.fIndex=this.fNodes.length-1;}else{if(this.anIndex>0){this.anIndex--;this.initAnimation(this.anNodes[this.anIndex]);this.fIndex=this.fNodes.length-1;}else{this.fireEvent("onBegin",this);return ;}}}this.playCurrentFrame(false);},playNextFrame:function(){if(this.fIndex<this.fNodes.length-1){this.fIndex++;}else{if(this.options.playLoops&&((this.loopCount==-1)||(this.loopIndex<this.loopCount-1))){this.loopIndex++;this.fIndex=0;}else{if(this.anIndex<this.anNodes.length-1){this.anIndex++;this.initAnimation(this.anNodes[this.anIndex]);}else{this.autoplay=false;this.fireEvent("onEnd",this);return ;}}}this.playCurrentFrame(true);},playLastFrame:function(){if(this.anNodes.length>=0){this.initAnimation(this.anNodes[this.anNodes.length-1]);this.fIndex=this.fNodes.length-1;this.elapsedTime=0;this.playCurrentFrame();this.lastSleepTime=0;}},playCurrentFrame:function(A){this.playforward=A;this.curFrameNode=this.fNodes[this.fIndex];this.curImage.src=this.graphRoot+this.curFrameNode.firstChild.data;},curImageLoaded:function(){this.elWrapper.setStyle("background-image","url("+this.graphRoot+this.curFrameNode.firstChild.data+")");var A=this.curFrameNode.getAttribute("s");A=Number($pick(A,0));var B=null;if(this.playforward){this.elapsedTime+=this.lastSleepTime;B=this.fnForward;}else{if(this.playforward!=undefined){this.elapsedTime-=A;B=this.fnReverse;}}this.fireEvent("onFrame",[this.curFrameNode,this]);this.lastSleepTime=A;if(this.autoplay&&B!=null){this.animationTimeout=setTimeout(B,A);}},play:function(){this.autoplay=true;this.lastSleepTime=0;this.playCurrentFrame(true);},pause:function(){this.autoplay=false;if(this.animationTimeout!=null){clearTimeout(this.animationTimeout);this.animationTimeout=null;}this.fireEvent("onPause",this);},getAnnotation:function(B){var A=B.getAttribute("a");return(A?this.mcItemText.getItemText(A):null);},hasPrevFrame:function(){return(this.fIndex>0||this.anIndex>0);},hasNextFrame:function(){return((this.fIndex<(this.fNodes.length-1))||(this.anIndex<(this.anNodes.length-1)));},getCurrentState:function(){return this.currentState;},getAnimationNode:function(){return this.anNodes[this.anIndex];},getFrameNode:function(){return this.fNodes[this.fIndex];},getElapsedTime:function(){return this.elapsedTime;},getAnimationIndex:function(){return this.anIndex;},getLoopIndex:function(){return this.loopIndex;},getFrameIndex:function(){return this.fIndex;},getFrameCount:function(){return this.fNodes.length;},getMcItemText:function(){return this.mcItemText;}});McLcd.implement(new McEvents,new Events,new Options);var McPhone=new Class({options:{fetch:["toState","buttons","timeouts"],contextRoot:null,deviceRoot:null,graphRoot:null,supportsFlip:false,preloadImages:true,closedSuffix:"_C",buttonsToUse:McButtons,buttonsOptions:{},lcdToUse:McLcd,lcdOptions:{}},params:{"toState":"ts","fromState":"fs","nextStates":"ns","buttons":"bn","endpoints":"ep","timeouts":"to"},initialize:function(D,B,C,A){this.setOptions(A);this.handlers={onClick:this.onButtonClicked.bind(this)};this.elWrapper=$(D);this.fetchOptions=this.options.fetch;this.contextRoot=$pick(this.options.contextRoot,"/cems");this.deviceRoot=$pick(this.options.deviceRoot,this.contextRoot+"/devices/"+B);this.graphRoot=$pick(this.options.graphRoot,this.deviceRoot+"/graphs")+"/";this.deviceId=B;this.tidRoot=C;this.preloadedImages=new Array();this.preloadedStates=new Array();this.cacheStates=new Array();this.cacheButtons=new Array();this.elPhone=new Element("div",{"id":"divPhone_"+B,"class":"phone"}).inject(this.elWrapper);this.elButtons=new Element("div",{"class":"buttons"}).inject(this.elPhone);this.elLcd=new Element("div",{"id":"divLcd_"+B,"class":"lcd"}).inject(this.elPhone);this.createLcd();this.createButtons();new Asset.css(this.deviceRoot+"/device.css");if(this.options.initialize){this.options.initialize.call(this);}},mode:"O",flip:function(){if(!this.options.supportsFlip){return ;}if(this.mode=="O"){this.mode="C";this.elPhone.id=this.elPhone.id+this.options.closedSuffix;}else{if(this.mode=="C"){this.mode="O";this.elPhone.id=this.elPhone.id.replace(this.options.closedSuffix,"");}}this.refresh();},isFlip:function(){return this.options.supportsFlip;},setRootTid:function(A){this.tidRoot=A;},isCurrentRootTid:function(){return this.tidRoot==this.tidCurrent;},isCurrentTid:function(A){return this.tidCurrent==A;},getCurrentTid:function(){return this.tidCurrent;},getLcd:function(){return this.mcLcd;},getMcButtons:function(){return this.mcButtons;},setFetchOptions:function(A){this.fetchOptions=A;},resetFetchOptions:function(){this.fetchOptions=this.options.fetch;},refresh:function(){this.getTransition(this.tidCurrent);},onButtonClicked:function(B,A){this.getTransition(B);},createLcd:function(A){this.mcLcd=new this.options.lcdToUse(this.elLcd,this.graphRoot,$pick(A,this.options.lcdOptions));},createButtons:function(A){var B=$merge({"onClick":this.handlers.onClick},$pick(A,this.options.buttonsOptions));return this.attachButtons(new this.options.buttonsToUse(this.elButtons,B));},attachButtons:function(A){this.mcButtonsSave=this.detachButtons();this.mcButtons=A;if($defined(A.handlers)){this.addEvents(A.handlers);}return this.mcButtonsSave;},detachButtons:function(){if(!$defined(this.mcButtons)){return null;}this.mcButtons.clearButtons();this.removeEvents(this.mcButtons.handlers);var A=this.mcButtons;this.mcButtons=null;return A;},resetButtons:function(){if($defined(this.mcButtonsSave)){return this.attachButtons(this.mcButtonsSave);}},createButton:function(A){return this.getMcButtons().createButton(A,this);},createButtonFromIds:function(B,A){return this.getMcButtons().createButtonFromIds(B,A,this);},buildUrl:function(E,D){var B=this.contextRoot+"/transition.ajax?id="+E;D=$pick(D,this.fetchOptions);for(var C=0,A=D.length;C<A;C++){B+="&"+this.params[D[C]]+"=1";}if(this.mode=="C"){B+="&cl=1";}return B;},getTransition:function(C,B){if(this.transitionTimeout!=null){clearTimeout(this.transitionTimeout);this.transitionTimeout=null;}if(this.preloadTimeout!=null){clearTimeout(this.preloadTimeout);this.preloadTimeout=null;}this.fireEvent("onRequest",this);if(C==null){C=this.tidRoot;}else{this.showState(C);}this.tidCurrent=C;var A=this.buildUrl(C,B);this.preloadedStates.splice(0);this.preloadedImages.splice(0);McAjax.createRequest(A,function(D){this.processResponse(D.getHttpRequest().responseXML);}.bind(this),true);},processResponse:function(D){if(D==null||D.firstChild==null){return ;}var B=D.firstChild.childNodes;for(var C=0,A=B.length;C<A;C++){var E=B[C];if(E.tagName=="s"){this.mcLcd.showState(E);}else{if(E.tagName=="t"){this.createTimeout(E);}else{this.fireEvent("onProcessNode",[E,this]);}}}this.fireEvent("onResponse",D);if(this.options.preloadImages){setTimeout(function(){this.preloadImages();}.bind(this),100);}},createTimeout:function(B){var A=this;var C=B.getAttribute("s");var D=B.getAttribute("t");this.addState(D,B);this.transitionTimeout=setTimeout(function(){A.getTransition(D);}.bind(this),C);},showState:function(C,B){var A=this.cacheStates[C];if($defined(A)){this.mcLcd.showState(A,B);}},addState:function(C,B){var A=B.firstChild;if($defined(A)&&A.tagName=="s"){this.preloadedStates.push({"tid":C,"sNode":A});this.cacheStates[C]=A;}},getState:function(A){return this.cacheStates[A];},preloadImages:function(){var E=this.preloadedStates.pop();if(E!=null){var F=E.sNode.getElementsByTagName("f");for(var B=0,A=F.length;B<A;B++){var D=new Image();var C=F[B];D.src=this.graphRoot+C.firstChild.data;this.preloadedImages.push(D);}}this.preloadTimeout=setTimeout(function(){this.preloadImages();}.bind(this),50);}});McPhone.implement(new McEvents,new Events,new Options);var McPhoneRecorder=new Class({options:{},currentIndex:-1,isRecording:false,initialize:function(B,A){this.setOptions(A);this.actionsUndo=new Array();this.actionsRedo=new Array();this.mcPhone=B;this.handlers={"onButtonClicked":this.onButtonClicked.bind(this),"onProcessNode":this.onProcessNode.bind(this)};this.startRecording();},startRecording:function(){if(this.isRecording){return ;}this.mcPhone.createButtons({"onClick":this.onButtonClicked.bind(this)});this.mcPhone.getMcButtons().showButtons();this.isRecording=true;},stopRecording:function(){if(!this.isRecording){return ;}this.mcPhone.resetButtons();this.mcPhone.getMcButtons().showButtons();this.isRecording=false;},onButtonClicked:function(B,A){this.actionsUndo.push({"tid":B,"kid":A});this.actionsRedo.splice(0);this.mcPhone.getTransition(B);},onProcessNode:function(){},undoAction:function(){if(this.actionsUndo.length>0){var A=this.actionsUndo.pop();this.actionsRedo.push(A);this.mcPhone.getTransition(A.tid,["fromState","buttons","timeouts"]);}},redoAction:function(){var A=this.actionsRedo.pop();if(A==null){return ;}this.actionsUndo.push(A);this.mcPhone.getTransition(A.tid,["toState","buttons","timeouts","nextStates"]);},goHome:function(){this.actionsRedo.splice(0);this.mcPhone.getTransition(null,["toState","buttons","timeouts","nextStates"]);}});McPhoneRecorder.implement(new Options);var McPhoneHelper=new Class({options:{left:200,top:200},initialize:function(C,B,A){this.setOptions(A);this.elWrapper=$(B);this.hideEffect=this.elWrapper.effect("opacity",{duration:1000,transition:Fx.Transitions.linear});this.showEffect=new Fx.Styles(this.elWrapper,{duration:2000,transition:Fx.Transitions.Back.easeOut});this.handlers={onRequest:this.onRequest.bind(this)};C.addEvents(this.handlers);},onRequest:function(A){A.removeEvents(this.handlers);this.hide();},hide:function(){if(this.elWrapper.getStyle("display")!="none"){this.hideEffect.start(1,0).chain(function(){this.elWrapper.setStyle("display","none");}.bind(this));}},show:function(){this.showEffect.start({"top":this.options.top,"left":this.options.left});}});McPhoneHelper.implement(new Options);var McDOMDocument=function(A){this.dom=($defined(A)?this.parse(A):this.parse("<xml />"));};McDOMDocument.prototype={getDocument:function(){return this.dom;},getRootNode:function(A){return($defined(A)?A:this.dom.documentElement);},getNodes:function(C,A){var B=this.getRootNode(A);if($defined(B)){return B.getElementsByTagName(C);}return null;},getSingleNode:function(D,B,A){var C=this.getNodes(D,B);if(C.length>0){return C[0];}else{if(A){return this.createElement(D,B);}}},getNodeText:function(B,A){var C=this.getSingleNode(B,A,false);return($defined(C)&&$defined(C.firstChild)?C.firstChild.data:"");},setTagText:function(B,D,A){var C=this.getSingleNode(B,A,true);this.setNodeText(C,D);},setNodeText:function(A,B){if(!$defined(A.firstChild)){A.appendChild(document.createTextNode(B));}else{A.firstChild.data=B;}},createElement:function(C,A){var B=this.getRootNode(A);return B.appendChild(document.createElement(C));},parse:function(B){if(window.ActiveXObject){var A=new ActiveXObject("Microsoft.XMLDOM");A.async=false;A.loadXML(B);return A;}else{var C=new DOMParser();return C.parseFromString(B,"text/xml");}}};var McRating=new Class({starCount:5,rateIt:Class.empty,hoverOnRated:false,options:{ipAddress:null,userRating:-1,ratingTotal:0,ratingCount:0,starUIClass:"",activeStars:0,highlightClass:"",currentRatingClass:"",avgRatingWidget:null,elAvgRatingTxt:null},initialize:function(D,B){this.setOptions(B);this.stars=new Array();this.elList=new Element("ul",{"class":this.options.starUIClass}).inject(D);this.elCurrentRating=new Element("li",{"class":this.options.currentRatingClass}).inject(this.elList);this.ipAddress=this.options.ipAddress;this.createStar(1,"Hate it!");this.createStar(2,"It's bad");this.createStar(3,"It's okay");this.createStar(4,"It's good");this.createStar(5,"Love it!");var C;if(this.options.userRating<0){C=(this.options.ratingCount==0?0:this.getRatingWidth(this.options.ratingTotal/this.options.ratingCount));}else{C=this.getRatingWidth(this.options.userRating);if(this.options.userRating>0){this.stars[this.options.userRating].addClass(this.options.highlightClass);}}if($defined(this.options.elAvgRatingTxt)&&this.options.activeStars==0){var A="(Not rated yet.)";if(this.options.ratingTotal>0){A="("+(this.options.ratingTotal/this.options.ratingCount).toFixed(2)+" by "+(this.options.ratingTotal==0?0:this.options.ratingCount)+" users.)";}this.options.elAvgRatingTxt.innerHTML=A;}this.elCurrentRating.setStyle("width",C);},createStar:function(B,C){if(this.options.activeStars==1){var A=new Element("li").inject(this.elList);this.stars[B]=new Element("a",{"class":"star-"+B,"title":C,"events":{"click":function(){this.onClick(B);}.bind(this),"mouseover":function(){this.removeHighlight();}.bind(this),"mouseout":function(){this.repaintRating(this.options.userRating);}.bind(this)}}).inject(A);}else{this.stars[B]=new Element("li",{"class":"star-"+B}).inject(this.elList);}},onClick:function(A){this.updateAvgRating(A);this.rateIt(A);},updateAvgRating:function(D){if(this.options.avgRatingWidget!=null){var B=null;var A=null;if(this.options.userRating==0){A=parseInt(this.avgRatingWidget.options.ratingTotal)==0?1:parseInt(this.avgRatingWidget.options.ratingCount)+1;B=parseInt(this.avgRatingWidget.options.ratingTotal)==0?D:parseInt(this.avgRatingWidget.options.ratingTotal)+D;}else{B=this.options.ratingTotal-this.options.userRating+D;A=this.options.ratingCount;}this.options.userRating=D;this.options.ratingTotal=B;this.options.ratingCount=A;var C=this.getRatingWidth(B/A);this.avgRatingWidget.elCurrentRating.setStyle("width",C);this.options.avgRatingWidget.options.elAvgRatingTxt.innerHTML="("+(B/A).toFixed(2)+" by "+A+" users.)";}},repaintRating:function(B){this.elCurrentRating.setStyle("width",this.getRatingWidth(B));for(var A=1;A<=this.starCount;A++){this.stars[A].removeClass(this.options.highlightClass);}if(this.options.userRating>0){this.stars[B].addClass(this.options.highlightClass);}if(this.options.reviewRating!=null){this.options.reviewRating.value=B;}if(this.loadingBar!=null){this.elWrapper.setStyle("display","block");}},getRatingWidth:function(A){return((A/this.starCount)*100)+"%";},removeHighlight:function(){if(this.options.userRating>0){this.stars[this.options.userRating].removeClass(this.options.highlightClass);}},disableLoadingMessage:function(){Seam.Remoting.displayLoadingMessage=Class.empty;Seam.Remoting.hideLoadingMessage=Class.empty;}});McRating.implement(new Options);var McDeviceRating=McRating.extend({initialize:function(D,B,C,A){this.parent(D,A);this.elWrapper=D;this.loadingBar=B;this.deviceId=C;this.ratingComponent=Seam.Component.getInstance("ratingService");this.avgRatingWidget=A.avgRatingWidget;this.disableLoadingMessage();},rateIt:function(A){this.elWrapper.setStyle("display","none");if(this.options.conversationId!=null){Seam.Remoting.getContext().setConversationId(this.options.conversationId);}this.ratingComponent.rateDevice(A,this.deviceId,this.options.ipAddress,this.repaintRating.bind(this));}});McDeviceRating.implement(new Options);var McTutorialRating=McRating.extend({initialize:function(C,B,A){this.parent(C,A);this.tutorialId=B;this.ratingComponent=Seam.Component.getInstance("ratingService");this.disableLoadingMessage();},rateIt:function(A){this.ratingComponent.rateTutorial(A,this.tutorialId,this.options.ipAddress,this.repaintRating.bind(this));}});McTutorialRating.implement(new Options);var McRenderAvgRating=McRating.extend({initialize:function(B,A){this.parent(B,A);},renderRating:function(){var A=(this.options.ratingCount==0?0:this.getRatingWidth(this.options.ratingTotal/this.options.ratingCount));this.options.avgRatingDiv.setStyle("width",A);}});McRenderAvgRating.implement(new Options);var McUserHelpfulnessRating=new Class({rateIt:Class.empty,initialize:function(A){this.setOptions(A);this.elHelpfulYesCount=null;this.elRatingDiv=null;},setHelpfulYesCountEl:function(A){this.elHelpfulYesCount=A;},repaintUserHelpfulnessCount:function(A){if(this.elHelpfulYesCount!=null){this.elHelpfulYesCount.innerHTML=A;}else{alert("Make sure you've set the elHelpfulYesCount in the rateIt function first.");}}});McUserHelpfulnessRating.implement(new Options);var McDeviceReviewHelpfulness=McUserHelpfulnessRating.extend({initialize:function(A){this.parent(A);Seam.Remoting.displayLoadingMessage=Class.empty;Seam.Remoting.hideLoadingMessage=Class.empty;this.ratingComponent=Seam.Component.getInstance("ratingService");},rateIt:function(A,C,B){this.setHelpfulYesCountEl(A);this.ratingComponent.markDeviceReviewHelpful(C,B,this.options.ipAddress,this.repaintUserHelpfulnessCount.bind(this));}});var McToolbar=new Class({options:{className:"toolbar",hasEndCaps:false,buttons:[]},initialize:function(C,A){this.setOptions(A);this.elWrapper=$(C);var B=new Element("ul");B.className=this.options.className+" clearfix";if(this.options.hasEndCaps){new Element("li",{"class":"btnEndCap btnLeft"}).inject(B);this.buttons=this.createButtons(B);new Element("li",{"class":"btnEndCap btnRight"}).inject(B);}else{this.buttons=this.createButtons(B);}B.inject(this.elWrapper);},createButtons:function(D){var F=new Array();for(var A in this.options.buttons){var B=this.options.buttons[A];if($defined(B.onclick)&&B.onclick!=Class.empty){var E="btn"+A;if($defined(B.separate)){E="separate "+E;}var C=new Element("li").inject(D);C.className=E;C.title=$defined(B.title)?B.title:A;C.onclick=B.onclick;if(window.ActiveXObject){C.onmouseover=this.onmouseover;C.onmouseout=this.onmouseout;}F[A]=C;}}return F;},onmouseover:function(){this.className+="Hover";},onmouseout:function(){this.className=this.className.replace(new RegExp("Hover\\b"),"");}});McToolbar.implement(new Events,new Options);var McVcrToolbar=McToolbar.extend({options:{autoplay:true,className:"vcrToolbar"},initialize:function(B,A){this.parent(B,A);if(this.buttons["Pause"]){this.onPauseSave=this.buttons["Pause"].onclick;this.buttons["Pause"].onclick=this.onPauseClicked.bind(this);this.buttons["Pause"].style.display="none";}if(this.buttons["Play"]){this.onPlaySave=this.buttons["Play"].onclick;this.buttons["Play"].onclick=this.onPlayClicked.bind(this);}},showPlay:function(){if(this.buttons["Play"]){this.buttons["Play"].style.display="block";}if(this.buttons["Pause"]){this.buttons["Pause"].style.display="none";}if(this.buttons["Stop"]){this.buttons["Stop"].style.display="block";}},showPause:function(){if(this.buttons["Play"]){this.buttons["Play"].style.display="none";}if(this.buttons["Pause"]){this.buttons["Pause"].style.display="block";}if(this.buttons["Stop"]){this.buttons["Stop"].style.display="block";}},onPlayClicked:function(){this.showPause();this.onPlaySave();},onPauseClicked:function(){this.showPlay();this.onPauseSave();}});var McPhoneToolbar=McToolbar.extend({options:{className:"phoneToolbar",hasEndCaps:true},initialize:function(D,C,B){var A=4;B=$merge(B,{buttons:{"Prev":{"onclick":this.onPrevClicked.bind(this),"title":"Go to the previous screen"},"Next":{"onclick":this.onNextClicked.bind(this),"title":"Go to the next screen"},"Home":{"onclick":this.onHomeClicked.bind(this),"title":"Go to the Home page for this phone"},"Show":{"onclick":this.onShowClicked.bind(this),"title":"Show all active buttons on this phone"}}});if(D.mcPhone.isFlip()){B.buttons=$merge(B.buttons,{"Flip":{"onclick":this.onFlipClicked.bind(this),"title":"Open or close this phone."}});A++;}this.options.className=(this.options.className+" btnCount_"+A);this.parent(C,B);this.mcPhoneRecorder=D;},onPrevClicked:function(){this.mcPhoneRecorder.undoAction();},onNextClicked:function(){this.mcPhoneRecorder.redoAction();},onHomeClicked:function(){this.mcPhoneRecorder.goHome();},onFlipClicked:function(){this.mcPhoneRecorder.mcPhone.flip();},onShowClicked:function(){var A=this.mcPhoneRecorder.mcPhone.getMcButtons().getNormalButtons();$each(A,function(C){var B=new Fx.Style(C,"opacity");B.start(1,0).chain(function(){B.start(0,1);}).chain(function(){B.start(1,0);}).chain(function(){B.start(0,1);});});A=this.mcPhoneRecorder.mcPhone.getMcButtons().getTouchButtons();$each(A,function(B){B.setStyle("border","solid 1px red");});}});var McBalloonWin=new Class({options:{makeDraggable:true,dragOptions:{onStart:Class.empty,onComplete:Class.empty}},initialize:function(C,B,D,A){this.setOptions(A);this.handlers={drag:{onStart:this.onDragStart.bind(this),onComplete:this.onDragStop.bind(this)}};this.elBalloonWin=$(C);this.elBalloonBody=$(B);this.elContainer=$(D);this.elBalloonWin.setStyles({"top":0,"left":0,"z-index":10000});this.elContainer.adopt(this.elBalloonWin);if(this.options.makeDraggable){this.draggable=this.elBalloonWin.makeDraggable({"onStart":this.handlers.drag.onStart,"onComplete":this.handlers.drag.onComplete});if(this.options.dragOptions.onStart!=Class.empty){this.draggable.addEvent("onStart",this.options.dragOptions.onStart);}if(this.options.dragOptions.onStop!=Class.empty){this.draggable.addEvent("onComplete",this.options.dragOptions.onComplete);}}},balloonClasses:{"NO":"balloonPlain","TR":"balloonTopRight","BR":"balloonBottomRight","BL":"balloonBottomLeft","TL":"balloonTopLeft"},currentClass:null,getPositionModifiers:function(A){switch(A){case"TR":return{"x":"right","y":"top"};case"BR":return{"x":"right","y":"bottom"};case"BL":return{"x":"left","y":"bottom"};default:return{"x":"left","y":"top"};}},getPositionStyles:function(B,E,C,A,D){switch(B){case"TR":return{"top":E,"right":C,"bottom":null,"left":null};case"BR":return{"top":null,"right":C,"bottom":A,"left":null};case"BL":return{"top":null,"right":null,"bottom":A,"left":D};default:return{"top":E,"right":null,"bottom":null,"left":D};}},getPositionInfoStyles:function(A){var E=(["TL","BL","NO"].contains(A.orient)?A.x:this.elContainer.clientWidth-A.x-this.elBalloonWin.clientWidth);var D=(["TL","TR","NO"].contains(A.orient)?A.y:this.elContainer.clientHeight-A.y-this.elBalloonWin.clientHeight);var C=this.elContainer.clientWidth-(E+this.elBalloonWin.clientWidth);var B=this.elContainer.clientHeight-(D+this.elBalloonWin.clientHeight);return this.getPositionStyles(A.orient,D,C,B,E);},getBalloonWinPositionStyles:function(B){var E=this.elBalloonWin.offsetLeft;var D=this.elBalloonWin.offsetTop;var C=this.elContainer.clientWidth-(E+this.elBalloonWin.clientWidth);var A=this.elContainer.clientHeight-(D+this.elBalloonWin.clientHeight);return this.getPositionStyles(B,D,C,A,E);},setPositionInfo:function(B,D){this.setOrientation(B.orient);var C=this.getPositionModifiers(B.orient);var A=D?this.getBalloonWinPositionStyles(B.orient,this.elBalloonWin):this.getPositionInfoStyles(B);B.x=A[C.x];B.y=A[C.y];this.elBalloonWin.setStyles(A);return B;},setClass:function(A){if($defined(this.currentClass)){this.elBalloonWin.removeClass(this.currentClass);}this.elBalloonWin.addClass(A);this.currentClass=A;},setBalloonText:function(A){this.elBalloonBody.innerHTML=A;},setOrientation:function(A){this.setClass(this.balloonClasses[A]);},show:function(){this.elBalloonWin.setStyle("display","block");},hide:function(){this.elBalloonWin.setStyle("display","none");},onDragStart:function(A){A.setStyles({"top":A.offsetTop,"right":null,"bottom":null,"left":A.offsetLeft});},onDragStop:function(A){}});McBalloonWin.implement(new Options);var McMoviePlayer=new Class({atBegin:false,atEnd:false,options:{showStop:true},initialize:function(E,C,D,B,A){this.setOptions(A);this.mcLcd=E.getLcd();this.mcBalloonWin=new McBalloonWin(D,B,E.elPhone);this.handlers={lcd:{onBegin:this.onMovieBegin.bind(this),onFrame:this.onMovieFrame.bind(this),onEnd:this.onMovieEnd.bind(this),onPause:this.onMoviePause.bind(this)}};this.mcVcrToolbar=new McVcrToolbar(C,{"buttons":{"First":{"onclick":this.onFirstFrame.bind(this)},"Previous":{"onclick":this.onPrevFrame.bind(this)},"Next":{"onclick":this.onNextFrame.bind(this)},"Last":{"onclick":this.onLastFrame.bind(this)},"Pause":{"onclick":this.onPause.bind(this),"separate":true},"Play":{"onclick":this.onPlay.bind(this)},"Stop":{"onclick":this.options.showStop?this.onStop.bind(this):Class.empty}},"contextRoot":E.contextRoot});this.mcLcd.addEvents(this.handlers.lcd);},onMovieBegin:function(){this.mcBalloonWin.setBalloonText("");if(this.mcLcd.autoplay){this.mcVcrToolbar.showPause();}this.showBalloonWin();},onMovieFrame:function(A){var B=this.mcLcd.getAnnotation(A);if(B){this.mcBalloonWin.setBalloonText(B);}},onMovieEnd:function(){this.mcVcrToolbar.showPlay();},onMoviePause:function(){this.mcVcrToolbar.showPlay();},onFirstFrame:function(){this.mcLcd.pause();this.mcLcd.playFirstFrame();},onPrevFrame:function(){this.mcLcd.pause();if(this.mcLcd.hasPrevFrame()){this.mcLcd.playPrevFrame();}},onNextFrame:function(){this.mcLcd.pause();if(this.mcLcd.hasNextFrame()){this.mcLcd.playNextFrame();}},onLastFrame:function(){this.mcLcd.pause();this.mcLcd.playLastFrame();},onPlay:function(){this.mcLcd.play();},onPause:function(){this.mcLcd.pause();},onStop:function(){this.mcLcd.pause();this.mcLcd.playFirstFrame();},showBalloonWin:function(){this.mcBalloonWin.show();},hideBalloonWin:function(){this.mcBalloonWin.hide();},playState:function(B){var C=$type(B);var A;if(C=="string"){this.mcDocument=new McDOMDocument("<s>"+B+"</s>");A=this.mcDocument.getRootNode();}else{if(C=="element"){A=B;}}if($defined(A)){this.mcLcd.showState(A,{"annotations":true});}}});McMoviePlayer.implement(new Events,new Options);var McTutorial=new Class({options:{tutorial:null,onPlayStep:Class.empty,onPlayAction:Class.empty,onPlayStart:Class.empty,onPlayEnd:Class.empty},indexStep:null,indexAction:null,tutorial:null,initialize:function(B,A){this.setOptions(A);this.handlers={onClick:this.playNextAction.bind(this),onRequest:this.onRequest.bind(this),onResponse:this.onResponse.bind(this),onProcessNode:this.onProcessNode.bind(this)};this.mcPhone=B;this.mcPhone.getLcd().options.playLoops=false;this.playTutorial();},playTutorial:function(A){this.tutorial=$pick(A,this.options.tutorial);if(!$defined(this.tutorial)){return ;}this.mcPhone.getMcButtons().clearButtons();this.mcPhone.setFetchOptions(["toState","buttons","timeouts"]);this.mcPhone.createButtons({"onProcessNode":this.handlers.onProcessNode,"onClick":this.handlers.onClick});this.mcPhone.addEvent("onRequest",this.handlers.onRequest);this.mcPhone.addEvent("onResponse",this.handlers.onResponse);},stopTutorial:function(){this.mcPhone.resetButtons();this.mcPhone.resetFetchOptions();this.tutorial=null;this.mcPhone.removeEvent("onRequest",this.handlers.onRequest);this.mcPhone.removeEvent("onResponse",this.handlers.onResponse);},firstStep:function(){this.indexStep=null;var A=this.playCurrentStep();return A;},prevStep:function(){if(!$defined(this.indexStep)){return false;}this.indexStep=(this.indexStep==0?null:this.indexStep-1);return this.playCurrentStep();},nextStep:function(){if(this.tutorial.steps.length==0){return false;}var A=this.indexStep;if(!$defined(this.indexStep)){this.indexStep=0;}else{if(this.indexStep<this.tutorial.steps.length-1){this.indexStep++;}}return(A!=this.indexStep?this.playCurrentStep():false);},lastStep:function(){if(this.indexStep>=this.tutorial.steps.length-1){return ;}this.indexStep=(this.tutorial.steps.length>0?this.tutorial.steps.length-1:null);return this.playCurrentStep();},playStep:function(A){this.indexStep=A;return this.playCurrentStep();},playCurrentStep:function(){this.setCurrentActionIndex();var A=this.getCurrentStep();var B=this.getCurrentAction();if($defined(this.indexStep)){this.playAction(A,B,"onPlayStep");}else{this.clearButtonAnimation();this.mcPhone.getTransition(this.tutorial.firstTid);this.fireEvent("onPlayStart");}return true;},getCurrentStep:function(){return($defined(this.indexStep)?this.tutorial.steps[this.indexStep]:null);},getCurrentStepIndex:function(){return this.indexStep;},getNextStep:function(){if($defined(this.indexStep)&&this.indexStep<this.tutorial.steps.length-1){return this.tutorial.steps[this.indexStep+1];}return null;},getStep:function(A){return($defined(A)&&A<this.tutorial.steps.length?this.tutorial.steps[A]:null);},getStepCount:function(){return this.tutorial.steps.length;},playAction:function(B,C,A){if($defined(C)){this.clearButtonAnimation();this.mcPhone.getTransition(C.tid);this.fireEvent(A,{"indexStep":this.indexStep,"indexAction":this.indexAction,"step":B,"action":C});}},setCurrentActionIndex:function(){if($defined(this.indexStep)){var A=this.tutorial.steps[this.indexStep];this.indexAction=(A.actions.length>0?A.actions.length-1:null);}else{this.indexAction=null;}},getCurrentAction:function(){if($defined(this.indexStep)&&$defined(this.indexAction)){return this.tutorial.steps[this.indexStep].actions[this.indexAction];}return null;},getNextAction:function(){var A=($defined(this.indexAction)?this.indexAction+1:0);var E=0;if($defined(this.indexStep)){E=($defined(this.indexAction)?this.indexStep:this.indexStep+1);}for(var C=E,B=this.tutorial.steps.length;C<B;C++){var D=this.tutorial.steps[C];if(A==D.actions.length){A=0;}else{return{"indexStep":C,"indexAction":A,"action":D.actions[A],"step":D};}}return null;},playNextAction:function(){var A=this.getNextAction();if(!$defined(A)){return ;}this.indexStep=A.indexStep;this.indexAction=A.indexAction;this.playAction(A.step,A.action,"onPlayAction");},onRequest:function(){this.currentButton=null;this.clearButtonAnimation();this.nextAction=this.getNextAction();},onResponse:function(){this.nextAction=null;this.clearButtonAnimation();this.animateButtons();},onProcessNode:function(A){if(A.tagName!="b"||$defined(this.currentButton)||!$defined(this.nextAction)){return ;}var B=this.mcPhone.getMcButtons().getTid(A);if(B==this.nextAction.action.tid){this.createButton(A);}},createButton:function(B){var A=B.getAttribute("k");this.currentButton=this.mcPhone.createButton(B);if(!this.mcPhone.getMcButtons().isTouchOrDrag(A)){this.currentImage=document.createElement("img");this.currentImage.border=0;this.currentImage.src=this.mcPhone.deviceRoot+"/"+A+"_dk.gif";this.currentButton.appendChild(this.currentImage);}else{this.currentButton.setStyle("border","solid 1px red");}},animateButtons:function(){var C=(this.currentImage==null?-1:this.currentImage.src.lastIndexOf("_"));if(C>0){var B=this.currentImage.src.substring(0,C);var A=this.currentImage.src.substring(C,C+3);A=(A=="_dk"?"_lt.gif":"_dk.gif");this.currentImage.src=B+A;try{if($defined(this.clearTimeout)){clearTimeout(this.currentTimeout);}}catch(D){}this.currentTimeout=setTimeout(function(){this.animateButtons();}.bind(this),750);}},clearButtonAnimation:function(){if($defined(this.currentTimeout)){try{clearTimeout(this.currentTimeout);}catch(A){}this.currentTimeout=null;}},getPhone:function(){return this.mcPhone;}});McTutorial.implement(new Events,new Options);var McTutorialDemo=new Class({options:{elCurrentStep:null,elInstructions:null},currentStep:null,initialize:function(E,C){this.setOptions(C);this.handlers={tutorial:{onPlayStart:this.onPlayStart.bind(this),onPlayAction:this.onPlayAction.bind(this),onPlayStep:this.onPlayStep.bind(this)}};this.mcTutorial=E;this.mcTutorial.addEvent("onPlayStart",this.handlers.tutorial.onPlayStart);this.mcTutorial.addEvent("onPlayAction",this.handlers.tutorial.onPlayAction);this.mcTutorial.addEvent("onPlayStep",this.handlers.tutorial.onPlayStep);var B=this.mcTutorial.tutorial.steps;var A=this.mcTutorial.getStepCount();for(var D=0;D<A;D++){if(!$defined(B[D].demo)){B[D].demo=new Object();}}},playFirstStep:function(){this.mcTutorial.firstStep();},playNextStep:function(){this.mcTutorial.nextStep();},playPrevStep:function(){this.mcTutorial.prevStep();},playLastStep:function(){this.mcTutorial.lastStep();},getLastStep:function(D,E){var A=this.mcTutorial.tutorial.steps;var B=A.indexOf(D);if(B==-1){return null;}for(var C=B;C>=0;C--){if($defined(A[C].demo[E])){return A[C];}}return null;},onPlayAction:function(B){var A=this.mcTutorial.getNextAction();if(!$defined(A)){this.pause();}else{if(A.step!=B.step){this.onPlayStep(B.step);}}},onPlayStep:function(D){var B=null;var C=null;var A=this.mcTutorial.getNextStep();if($defined(A)){C=A.number;B=A;}else{C=parseInt(D.step.number)+1;B=D.step;}this.setCurrentStep(B,C);},onPlayStart:function(){var A=this.mcTutorial.getStep(0);this.setCurrentStep(A,1);},setCurrentStepNum:function(A){if($defined(this.options.elCurrentStep)){this.options.elCurrentStep.innerHTML=A;}},setCurrentStepText:function(B,A){if($defined(this.options.elInstructions)){this.options.elInstructions.innerHTML=B.instructions;}},setCurrentStep:function(A,B){if(!$defined(A)){return ;}this.setCurrentStepNum(B);this.setCurrentStepText(A,B);this.currentStep=A;}});McTutorialDemo.implement(new Events,new Options);var McBalloonTutorialDemo=McTutorialDemo.extend({initialize:function(D,C,B,A){this.parent(D,A);this.handlers=$merge({drag:{onStart:this.onDragStart.bind(this),onComplete:this.onDragStop.bind(this)}},this.handlers||{});this.mcBalloonWin=new McBalloonWin(C,B,this.mcTutorial.mcPhone.elPhone,{dragOptions:this.handlers.drag});},setCurrentStep:function(A,B){if(!$defined(A)){return ;}this.parent(A,B);this.mcBalloonWin.setBalloonText(A.instructions);this.setBalloonWinProperties(A,false);},onDragStart:function(A){},onDragStop:function(A){if(!$defined(this.currentStep)){return ;}this.currentStep.demo=this.setBalloonWinProperties(this.currentStep,true);},getPositionInfo:function(D){var C=($defined(D.demo.x)?D:this.getLastStep(D,"x"));var E=($defined(D.demo.orient)?D:this.getLastStep(D,"orient"));var A=($defined(C)?C.demo.x:0);var F=($defined(C)?C.demo.y:0);var B=($defined(E)?E.demo.orient:"NO");return{orient:B,x:A,y:F};},setBalloonWinProperties:function(B,C){var A=this.getPositionInfo(B);this.mcBalloonWin.show();return this.mcBalloonWin.setPositionInfo(A,C);},setOrientation:function(A){if((!["TR","BR","BL","TL","NO"].contains(A))||(!$defined(this.currentStep))){return false;}this.currentStep.demo.orient=A;this.currentStep.demo=this.setBalloonWinProperties(this.currentStep,true);}});McTutorialDemo.implement(new Events,new Options);var McTutorialDemoPlayer=McTutorialDemo.extend({options:{sleepTime:2000,elInstructions:null,elCurrentStep:null},initialize:function(E,D,A,B){var C=new McTutorial(E,{"tutorial":D,"onPlayAction":function(F){this.onPlayAction(F);}.bind(this)});this.elWrapper=$("divDemoPlayer");this.parent(C,B);this.handlers=$merge({phone:{onRequest:this.onRequest.bind(this),onResponse:this.onResponse.bind(this),onProcessNode:this.onProcessNode.bind(this)},lcd:{onEnd:this.onLastFrame.bind(this)}},this.handlers||{});this.mcVcrToolbar=new McVcrToolbar(A,{"buttons":{"Pause":{"onclick":this.onPauseClicked.bind(this)},"Play":{"onclick":this.onPlayClicked.bind(this)},"Stop":{"onclick":this.onStopClicked.bind(this)},"First":{"onclick":this.onFirstClicked.bind(this),"separate":true},"Previous":{"onclick":this.onPrevClicked.bind(this)},"Next":{"onclick":this.onNextClicked.bind(this)},"Last":{"onclick":this.onLastClicked.bind(this)}},"contextRoot":E.contextRoot});E.addEvents(this.handlers.phone);E.getLcd().addEvents(this.handlers.lcd);this.playFirstStep();},isPlaying:false,isPaused:false,isInitial:true,pause:function(){this.isPlaying=false;this.mcTutorial.getPhone().getLcd().pause();this.mcVcrToolbar.showPlay();},setNextTimer:function(){this.clearNextTimer();this.nextTimer=setTimeout(function(){this.mcTutorial.playNextAction();}.bind(this),this.options.sleepTime);},clearNextTimer:function(){if($defined(this.nextTimer)){try{clearTimeout(this.nextTimer);}catch(A){}this.nextTimer=null;}},onRequest:function(){this.clearNextTimer();},onResponse:function(){this.clearNextTimer();},onProcessNode:function(A){},onPlayAction:function(A){this.parent(A);},onLastFrame:function(){var A=this.mcTutorial.getNextAction();if(!$defined(A)){this.options.elCurrentStep.innerHTML=this.mcTutorial.getStepCount()+1;this.options.elInstructions.innerHTML="Congratulations, you've finished watching this demo.";return ;}if(this.isPlaying){this.setNextTimer();}},onFirstClicked:function(){this.pause();this.playFirstStep();},onPrevClicked:function(){this.pause();this.playPrevStep();},onNextClicked:function(){this.pause();this.playNextStep();},onLastClicked:function(){this.pause();this.playLastStep();},onPauseClicked:function(){this.isPaused=true;this.pause();},onPlayClicked:function(){this.isPlaying=true;if(this.isPaused){this.mcTutorial.getPhone().getLcd().play();this.isPaused=false;}else{this.mcTutorial.getPhone().refresh();}},onStopClicked:function(){this.playFirstStep();this.pause();}});McTutorialDemoPlayer.implement(new Events,new Options);var McItemSelect=new Class({initialize:function(A){this.setOptions(A);},submitSelectedItems:function(){var A=this.options.phoneSelectList.getElementsByTagName("input");var C="";var D=0;for(var B=0;B<A.length;B++){if(A[B].getAttribute("type")=="checkbox"&&A[B].checked){C+=A[B].getAttribute("id")+",";D++;}}this.options.selectedItemsId.value=C;if(D<2){alert("You must select at least 2 phones to compare.");return false;}return true;}});McItemSelect.implement(new Options);var McPhone360=function(A,E,B,D){this.imageFiles=D;this.divPhone360=$(A);this.divLivePhone=$(E);this.deviceRoot=B;this.divSlider=new Element("div",{"class":"slider","align":"left","styles":{"visibility":"hidden","z-index":5,"width":"300px","margin":"auto"}}).inject(this.divPhone360);this.divImagePhone=new Element("div",{"class":"image","styles":{"display":"none"}}).inject(this.divPhone360);this.divKnob=new Element("div",{"class":"knob","styles":{"z-index":10}}).inject(this.divSlider);var C=new Element("img");this.imgTag=new Element("img").inject(this.divImagePhone);this.divImagePhone.onclick=function(){this.setLiveMode();}.bind(this);this.divPhone360.style.visibility="visible";this.divLivePhone.style.visibility="visible";if(this.imageFiles.length>0){setTimeout(function(){this.preloadImages();}.bind(this),100);}};McPhone360.prototype={imagesLoaded:0,loadedImages:new Array(),currentPos:0,in360Mode:false,onLoaded:function(){this.divSlider.style.visibility="visible";this.createSlider();},onChange:function(A){this.imgTag.src=this.imageFiles[A];this.set360Mode();},set360Mode:function(){if(!this.in360Mode){this.divLivePhone.style.visibility="hidden";this.divImagePhone.style.display="block";this.in360Mode=true;}},setLiveMode:function(){if(this.in360Mode){this.divLivePhone.style.visibility="visible";this.divImagePhone.style.display="none";this.slider.set(this.imageFiles.length/2);this.in360Mode=false;}},createSlider:function(){this.sliderFx=new Fx.Style(this.divKnob,"left",{duration:700,wait:false});this.slider=new Slider(this.divSlider,this.divKnob,{onChange:function(A){this.onChange(A);}.bind(this),onTick:function(A){this.sliderFx.custom(A);}.bind(this),steps:this.imageFiles.length-1});this.in360Mode=true;this.slider.set(this.imageFiles.length/2);this.in360Mode=false;},preloadImages:function(){for(var A=0;A<this.imageFiles.length;A++){var B=new Image();B.onload=function(){this.imagesLoaded++;if(this.imagesLoaded>=this.imageFiles.length){this.onLoaded();}}.bind(this);var C=this.deviceRoot+"/"+this.imageFiles[A];B.src=C;this.imageFiles[A]=C;this.loadedImages[A]=B;}}};