/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/

/*
	This is a compiled version of Dojo, built for deployment and not for
	development. To get an editable version, please visit:

		http://dojotoolkit.org

	for documentation and information on getting the source.
*/

if(!dojo._hasResource["ag.user.LoggedInUser"]){dojo._hasResource["ag.user.LoggedInUser"]=true;dojo.provide("ag.user.LoggedInUser");(function(){ag.user.LoggedInUser.mixinSessionUserUuid=function(_1){if(LoginModule.isUserLoggedIn()){var _2={uuid:LoginModule.getSessionUserUuid()};dojo.mixin(_1,_2);}};})();}if(!dojo._hasResource["dojo.rpc.RpcService"]){dojo._hasResource["dojo.rpc.RpcService"]=true;dojo.provide("dojo.rpc.RpcService");dojo.declare("dojo.rpc.RpcService",null,{constructor:function(_3){if(_3){if((dojo.isString(_3))||(_3 instanceof dojo._Url)){if(_3 instanceof dojo._Url){var _4=_3+"";}else{_4=_3;}var _5=dojo.xhrGet({url:_4,handleAs:"json-comment-optional",sync:true});_5.addCallback(this,"processSmd");_5.addErrback(function(){throw new Error("Unable to load SMD from "+_3);});}else{if(_3.smdStr){this.processSmd(dojo.eval("("+_3.smdStr+")"));}else{if(_3.serviceUrl){this.serviceUrl=_3.serviceUrl;}this.timeout=_3.timeout||3000;if("strictArgChecks" in _3){this.strictArgChecks=_3.strictArgChecks;}this.processSmd(_3);}}}},strictArgChecks:true,serviceUrl:"",parseResults:function(_6){return _6;},errorCallback:function(_7){return function(_8){_7.errback(new Error(_8.message));};},resultCallback:function(_9){var tf=dojo.hitch(this,function(_b){if(_b.error!=null){var _c;if(typeof _b.error=="object"){_c=new Error(_b.error.message);_c.code=_b.error.code;_c.error=_b.error.error;}else{_c=new Error(_b.error);}_c.id=_b.id;_c.errorObject=_b;_9.errback(_c);}else{_9.callback(this.parseResults(_b));}});return tf;},generateMethod:function(_d,_e,_f){return dojo.hitch(this,function(){var _10=new dojo.Deferred();if((this.strictArgChecks)&&(_e!=null)&&(arguments.length!=_e.length)){throw new Error("Invalid number of parameters for remote method.");}else{this.bind(_d,dojo._toArray(arguments),_10,_f);}return _10;});},processSmd:function(_11){if(_11.methods){dojo.forEach(_11.methods,function(m){if(m&&m.name){this[m.name]=this.generateMethod(m.name,m.parameters,m.url||m.serviceUrl||m.serviceURL);if(!dojo.isFunction(this[m.name])){throw new Error("RpcService: Failed to create"+m.name+"()");}}},this);}this.serviceUrl=_11.serviceUrl||_11.serviceURL;this.required=_11.required;this.smd=_11;}});}if(!dojo._hasResource["dojo.rpc.JsonService"]){dojo._hasResource["dojo.rpc.JsonService"]=true;dojo.provide("dojo.rpc.JsonService");dojo.declare("dojo.rpc.JsonService",dojo.rpc.RpcService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(_13,_14){var _15=new dojo.Deferred();this.bind(_13,_14,_15);return _15;},bind:function(_16,_17,_18,url){var def=dojo.rawXhrPost({url:url||this.serviceUrl,postData:this.createRequest(_16,_17),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});def.addCallbacks(this.resultCallback(_18),this.errorCallback(_18));},createRequest:function(_1b,_1c){var req={"params":_1c,"method":_1b,"id":++this.lastSubmissionId};var _1e=dojo.toJson(req);return _1e;},parseResults:function(obj){if(dojo.isObject(obj)){if("result" in obj){return obj.result;}if("Result" in obj){return obj.Result;}if("ResultSet" in obj){return obj.ResultSet;}}return obj;}});}if(!dojo._hasResource["ag.services.JsonServiceFactory"]){dojo._hasResource["ag.services.JsonServiceFactory"]=true;dojo.provide("ag.services.JsonServiceFactory");dojo.declare("ag.services.JsonServiceFactory",null,{constructor:function(_20){var _21=_20.serviceUrl||""+dojo.moduleUrl("agdynamic","services");var _22=[];if(dojo.isString(_20)){_20={method:_20};}if(_20.method){_22.push({name:_20.method});}else{if(dojo.isArray(_20.methods)){_22=_20.methods;}}var _23=_20.method;delete _20.method;delete _20.methods;var _24={serviceURL:_21,methods:_22,timeout:20000};dojo.mixin(_24,_20);this.service=new dojo.rpc.JsonService(_24);if(_23){this.method=this.service[_23];}}});}if(!dojo._hasResource["ag.rating.UserGameRating"]){dojo._hasResource["ag.rating.UserGameRating"]=true;dojo.provide("ag.rating.UserGameRating");dojo.declare("ag.rating.UserGameRating",null,{constructor:function(_25){if(typeof (_25)=="number"){this.gameId=_25;}this.id="UserGameRating_"+this.gameId;this.loadCompleted=new dojo.Deferred();AgEvent.LOGIN.subscribe(bindContext(this,this.onUserLoggedIn));AgEvent.LOGOUT.subscribe(bindContext(this,this.onUserLoggedOut));this.onUserLoggedIn();},method:new ag.services.JsonServiceFactory({method:"gameRatingService.get",timeout:20000}).method,onUserLoggedIn:function(){if(LoginModule.isUserLoggedIn()){var _26={gameId:this.gameId};ag.user.LoggedInUser.mixinSessionUserUuid(_26);var _27=this.method(_26);_27.addCallback(dojo.hitch(this,function(_28){dojo.mixin(this,_28);if(0==this.loadCompleted.fired){this.loadCompleted=new dojo.Deferred();}this.loadCompleted.callback(this);}));_27.addErrback(dojo.hitch(this,function(err){this.loadCompleted.errback(err);}));}else{this.onUserLoggedOut();}},onUserLoggedOut:function(){delete this.rated;delete this.rating;delete this.loadCompleted;this.loadCompleted=new dojo.Deferred();},reflectChangedVote:function(_2a){this.rated=true;this.rating=_2a;this.loadCompleted=new dojo.Deferred();this.loadCompleted.callback(this);},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});}});}if(!dojo._hasResource["ag.widget.ads"]){dojo._hasResource["ag.widget.ads"]=true;dojo.provide("ag.widget.ads");ag.widget.ads.get_ad_iframe_src=function(url,_2d,_2e,_2f){var ord=Math.round(Math.random()*10000000000000000);var _31="<scr"+"ipt type='text/javascript' language='javascript' src='"+url+"tile="+_2d+";dcopt=ist;sz="+_2e+"x"+_2f+";ord="+ord+"?'></scr"+"ipt>";return _31;};ag.widget.ads.update_ad_iframe=function(_32,url,_34,_35,_36,_37){if(!dojo.isFF&&!dojo.isSafari){var _38=ag.widget.ads.get_ad_iframe_src(url,_34,_35,_36);self.frames[_32].document.open();self.frames[_32].document.write(_38);}else{var _39=dojo.byId(_32);var src="javascript:parent.ag.widget.ads.get_ad_iframe_src('"+url+"', "+_34+", "+_35+", "+_36+")";_39.src=src;}if(typeof (_37)!="undefined"){var _3b="ag.widget.ads.update_ad_iframe('"+_32+"','"+url+"',"+_34+","+_35+","+_36+","+_37+")";setTimeout(_3b,_37);}};}if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){var _3c=dojo.global;var _3d=dojo.doc;if(_3d.selection){return !_3d.selection.createRange().text;}else{if(_3c.getSelection){var _3e=_3c.getSelection();if(dojo.isString(_3e)){return !_3e;}else{return _3e.isCollapsed||!_3e.toString();}}}},getBookmark:function(){var _3f,_40=dojo.doc.selection;if(_40){var _41=_40.createRange();if(_40.type.toUpperCase()=="CONTROL"){_3f=_41.length?dojo._toArray(_41):null;}else{_3f=_41.getBookmark();}}else{if(window.getSelection){_40=dojo.global.getSelection();if(_40){var _41=_40.getRangeAt(0);_3f=_41.cloneRange();}}else{console.debug("No idea how to store the current selection for this browser!");}}return _3f;},moveToBookmark:function(_42){var _43=dojo.doc;if(_43.selection){var _44;if(dojo.isArray(_42)){_44=_43.body.createControlRange();dojo.forEach(_42,_44.addElement);}else{_44=_43.selection.createRange();_44.moveToBookmark(_42);}_44.select();}else{var _45=dojo.global.getSelection&&dojo.global.getSelection();if(_45&&_45.removeAllRanges){_45.removeAllRanges();_45.addRange(_42);}else{console.debug("No idea how to restore selection for this browser!");}}},getFocus:function(_46,_47){return {node:_46&&dojo.isDescendant(dijit._curFocus,_46.domNode)?dijit._prevFocus:dijit._curFocus,bookmark:!dojo.withGlobal(_47||dojo.global,dijit.isCollapsed)?dojo.withGlobal(_47||dojo.global,dijit.getBookmark):null,openedForWindow:_47};},focus:function(_48){if(!_48){return;}var _49="node" in _48?_48.node:_48,_4a=_48.bookmark,_4b=_48.openedForWindow;if(_49){var _4c=(_49.tagName.toLowerCase()=="iframe")?_49.contentWindow:_49;if(_4c&&_4c.focus){try{_4c.focus();}catch(e){}}dijit._onFocusNode(_49);}if(_4a&&dojo.withGlobal(_4b||dojo.global,dijit.isCollapsed)){if(_4b){_4b.focus();}try{dojo.withGlobal(_4b||dojo.global,moveToBookmark,null,[_4a]);}catch(e){}}},_activeStack:[],registerWin:function(_4d){if(!_4d){_4d=window;}dojo.connect(_4d.document,"onmousedown",null,function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);dijit._onTouchNode(evt.target||evt.srcElement);});var _4f=_4d.document.body||_4d.document.getElementsByTagName("body")[0];if(_4f){if(dojo.isIE){_4f.attachEvent("onactivate",function(evt){if(evt.srcElement.tagName.toLowerCase()!="body"){dijit._onFocusNode(evt.srcElement);}});_4f.attachEvent("ondeactivate",function(evt){dijit._onBlurNode(evt.srcElement);});}else{_4f.addEventListener("focus",function(evt){dijit._onFocusNode(evt.target);},true);_4f.addEventListener("blur",function(evt){dijit._onBlurNode(evt.target);},true);}}_4f=null;},_onBlurNode:function(_54){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);},100);},_onTouchNode:function(_55){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _56=[];try{while(_55){if(_55.dijitPopupParent){_55=dijit.byId(_55.dijitPopupParent).domNode;}else{if(_55.tagName&&_55.tagName.toLowerCase()=="body"){if(_55===dojo.body()){break;}_55=dojo.query("iframe").filter(function(_57){return _57.contentDocument.body===_55;})[0];}else{var id=_55.getAttribute&&_55.getAttribute("widgetId");if(id){_56.unshift(id);}_55=_55.parentNode;}}}}catch(e){}dijit._setStack(_56);},_onFocusNode:function(_59){if(_59&&_59.tagName&&_59.tagName.toLowerCase()=="body"){return;}dijit._onTouchNode(_59);if(_59==dijit._curFocus){return;}dijit._prevFocus=dijit._curFocus;dijit._curFocus=_59;dojo.publish("focusNode",[_59]);},_setStack:function(_5a){var _5b=dijit._activeStack;dijit._activeStack=_5a;for(var _5c=0;_5c<Math.min(_5b.length,_5a.length);_5c++){if(_5b[_5c]!=_5a[_5c]){break;}}for(var i=_5b.length-1;i>=_5c;i--){var _5e=dijit.byId(_5b[i]);if(_5e){_5e._focused=false;if(_5e._onBlur){_5e._onBlur();}if(_5e._setStateClass){_5e._setStateClass();}dojo.publish("widgetBlur",[_5e]);}}for(var i=_5c;i<_5a.length;i++){var _5e=dijit.byId(_5a[i]);if(_5e){_5e._focused=true;if(_5e._onFocus){_5e._onFocus();}if(_5e._setStateClass){_5e._setStateClass();}dojo.publish("widgetFocus",[_5e]);}}}});dojo.addOnLoad(dijit.registerWin);}if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};},add:function(_5f){if(this._hash[_5f.id]){throw new Error("Tried to register widget with id=="+_5f.id+" but that id is already registered");}this._hash[_5f.id]=_5f;},remove:function(id){delete this._hash[id];},forEach:function(_61){for(var id in this._hash){_61(this._hash[id]);}},filter:function(_63){var res=new dijit.WidgetSet();this.forEach(function(_65){if(_63(_65)){res.add(_65);}});return res;},byId:function(id){return this._hash[id];},byClass:function(cls){return this.filter(function(_68){return _68.declaredClass==cls;});}});dijit.registry=new dijit.WidgetSet();dijit._widgetTypeCtr={};dijit.getUniqueId=function(_69){var id;do{id=_69+"_"+(dijit._widgetTypeCtr[_69]!==undefined?++dijit._widgetTypeCtr[_69]:dijit._widgetTypeCtr[_69]=0);}while(dijit.byId(id));return id;};if(dojo.isIE){dojo.addOnUnload(function(){dijit.registry.forEach(function(_6b){_6b.destroy();});});}dijit.byId=function(id){return (dojo.isString(id))?dijit.registry.byId(id):id;};dijit.byNode=function(_6d){return dijit.registry.byId(_6d.getAttribute("widgetId"));};dijit.getEnclosingWidget=function(_6e){while(_6e){if(_6e.getAttribute&&_6e.getAttribute("widgetId")){return dijit.registry.byId(_6e.getAttribute("widgetId"));}_6e=_6e.parentNode;}return null;};dijit._tabElements={area:true,button:true,input:true,object:true,select:true,textarea:true};dijit.isTabNavigable=function(_6f){if(dojo.hasAttr(_6f,"disabled")){return false;}var _70=dojo.hasAttr(_6f,"tabindex");var _71=dojo.attr(_6f,"tabindex");if(_70&&_71>=0){return true;}var _72=_6f.nodeName.toLowerCase();if(((_72=="a"&&dojo.hasAttr(_6f,"href"))||dijit._tabElements[_72])&&(!_70||_71>=0)){return true;}return false;};dijit._getTabNavigable=function(_73){var _74,_75,_76,_77,_78,_79;dojo.query("*",_73).forEach(function(_7a){if(dijit.isTabNavigable(_7a)){var _7b=dojo.attr(_7a,"tabindex");if(!dojo.hasAttr(_7a,"tabindex")||_7b==0){if(!_74){_74=_7a;}_75=_7a;}else{if(_7b>0){if(!_76||_7b<_77){_77=_7b;_76=_7a;}if(!_78||_7b>=_79){_79=_7b;_78=_7a;}}}}});return {first:_74,last:_75,lowest:_76,highest:_78};};dijit.getFirstInTabbingOrder=function(_7c){var _7d=dijit._getTabNavigable(dojo.byId(_7c));return _7d.lowest?_7d.lowest:_7d.first;};dijit.getLastInTabbingOrder=function(_7e){var _7f=dijit._getTabNavigable(dojo.byId(_7e));return _7f.last?_7f.last:_7f.highest;};}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){var _80=dojo.global;var _81=dojo.doc;var w=0,h=0;var de=_81.documentElement;var dew=de.clientWidth,deh=de.clientHeight;if(dojo.isMozilla){var _87,_88,_89,_8a;var dbw=_81.body.clientWidth;if(dbw>dew){_87=dew;_89=dbw;}else{_89=dew;_87=dbw;}var dbh=_81.body.clientHeight;if(dbh>deh){_88=deh;_8a=dbh;}else{_8a=deh;_88=dbh;}w=(_89>_80.innerWidth)?_87:_89;h=(_8a>_80.innerHeight)?_88:_8a;}else{if(!dojo.isOpera&&_80.innerWidth){w=_80.innerWidth;h=_80.innerHeight;}else{if(dojo.isIE&&de&&deh){w=dew;h=deh;}else{if(dojo.body().clientWidth){w=dojo.body().clientWidth;h=dojo.body().clientHeight;}}}}var _8d=dojo._docScroll();return {w:w,h:h,l:_8d.x,t:_8d.y};};dijit.placeOnScreen=function(_8e,pos,_90,_91){var _92=dojo.map(_90,function(_93){return {corner:_93,pos:pos};});return dijit._place(_8e,_92);};dijit._place=function(_94,_95,_96){var _97=dijit.getViewport();if(!_94.parentNode||String(_94.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_94);}var _98=null;dojo.some(_95,function(_99){var _9a=_99.corner;var pos=_99.pos;if(_96){_96(_94,_99.aroundCorner,_9a);}var _9c=_94.style;var _9d=_9c.display;var _9e=_9c.visibility;_9c.visibility="hidden";_9c.display="";var mb=dojo.marginBox(_94);_9c.display=_9d;_9c.visibility=_9e;var _a0=(_9a.charAt(1)=="L"?pos.x:Math.max(_97.l,pos.x-mb.w)),_a1=(_9a.charAt(0)=="T"?pos.y:Math.max(_97.t,pos.y-mb.h)),_a2=(_9a.charAt(1)=="L"?Math.min(_97.l+_97.w,_a0+mb.w):pos.x),_a3=(_9a.charAt(0)=="T"?Math.min(_97.t+_97.h,_a1+mb.h):pos.y),_a4=_a2-_a0,_a5=_a3-_a1,_a6=(mb.w-_a4)+(mb.h-_a5);if(_98==null||_a6<_98.overflow){_98={corner:_9a,aroundCorner:_99.aroundCorner,x:_a0,y:_a1,w:_a4,h:_a5,overflow:_a6};}return !_a6;});_94.style.left=_98.x+"px";_94.style.top=_98.y+"px";return _98;};dijit.placeOnScreenAroundElement=function(_a7,_a8,_a9,_aa){_a8=dojo.byId(_a8);var _ab=_a8.style.display;_a8.style.display="";var _ac=_a8.offsetWidth;var _ad=_a8.offsetHeight;var _ae=dojo.coords(_a8,true);_a8.style.display=_ab;var _af=[];for(var _b0 in _a9){_af.push({aroundCorner:_b0,corner:_a9[_b0],pos:{x:_ae.x+(_b0.charAt(1)=="L"?0:_ac),y:_ae.y+(_b0.charAt(0)=="T"?0:_ad)}});}return dijit._place(_a7,_af,_aa);};}if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){if(dojo.isSafari&&!doc._parentWindow){var fix=function(win){win.document._parentWindow=win;for(var i=0;i<win.frames.length;i++){fix(win.frames[i]);}};fix(window.top);}if(dojo.isIE&&window!==document.parentWindow&&!doc._parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc._parentWindow||doc.parentWindow||doc.defaultView;};}if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup=new function(){var _b6=[],_b7=1000,_b8=1;this.open=function(_b9){var _ba=_b9.popup,_bb=_b9.orient||{"BL":"TL","TL":"BL"},_bc=_b9.around,id=(_b9.around&&_b9.around.id)?(_b9.around.id+"_dropdown"):("popup_"+_b8++);var _be=dojo.doc.createElement("div");_be.id=id;_be.className="dijitPopup";_be.style.zIndex=_b7+_b6.length;_be.style.visibility="hidden";if(_b9.parent){_be.dijitPopupParent=_b9.parent.id;}dojo.body().appendChild(_be);_ba.domNode.style.display="";_be.appendChild(_ba.domNode);var _bf=new dijit.BackgroundIframe(_be);var _c0=_bc?dijit.placeOnScreenAroundElement(_be,_bc,_bb,_ba.orient?dojo.hitch(_ba,"orient"):null):dijit.placeOnScreen(_be,_b9,_bb=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"]);_be.style.visibility="visible";var _c1=[];function getTopPopup(){for(var pi=_b6.length-1;pi>0&&_b6[pi].parent===_b6[pi-1].widget;pi--){}return _b6[pi];};_c1.push(dojo.connect(_be,"onkeypress",this,function(evt){if(evt.keyCode==dojo.keys.ESCAPE&&_b9.onCancel){_b9.onCancel();}else{if(evt.keyCode==dojo.keys.TAB){dojo.stopEvent(evt);var _c4=getTopPopup();if(_c4&&_c4.onCancel){_c4.onCancel();}}}}));if(_ba.onCancel){_c1.push(dojo.connect(_ba,"onCancel",null,_b9.onCancel));}_c1.push(dojo.connect(_ba,_ba.onExecute?"onExecute":"onChange",null,function(){var _c5=getTopPopup();if(_c5&&_c5.onExecute){_c5.onExecute();}}));_b6.push({wrapper:_be,iframe:_bf,widget:_ba,parent:_b9.parent,onExecute:_b9.onExecute,onCancel:_b9.onCancel,onClose:_b9.onClose,handlers:_c1});if(_ba.onOpen){_ba.onOpen(_c0);}return _c0;};this.close=function(_c6){while(dojo.some(_b6,function(_c7){return _c7.widget==_c6;})){var top=_b6.pop(),_c9=top.wrapper,_ca=top.iframe,_cb=top.widget,_cc=top.onClose;if(_cb.onClose){_cb.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(!_cb||!_cb.domNode){return;}dojo.style(_cb.domNode,"display","none");dojo.body().appendChild(_cb.domNode);_ca.destroy();dojo._destroyElement(_c9);if(_cc){_cc();}}};}();dijit._frames=new function(){var _cd=[];this.pop=function(){var _ce;if(_cd.length){_ce=_cd.pop();_ce.style.display="";}else{if(dojo.isIE){var _cf="<iframe src='javascript:\"\"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_ce=dojo.doc.createElement(_cf);}else{var _ce=dojo.doc.createElement("iframe");_ce.src="javascript:\"\"";_ce.className="dijitBackgroundIframe";}_ce.tabIndex=-1;dojo.body().appendChild(_ce);}return _ce;};this.push=function(_d0){_d0.style.display="";if(dojo.isIE){_d0.style.removeExpression("width");_d0.style.removeExpression("height");}_cd.push(_d0);};}();if(dojo.isIE&&dojo.isIE<7){dojo.addOnLoad(function(){var f=dijit._frames;dojo.forEach([f.pop()],f.push);});}dijit.BackgroundIframe=function(_d2){if(!_d2.id){throw new Error("no id");}if((dojo.isIE&&dojo.isIE<7)||(dojo.isFF&&dojo.isFF<3&&dojo.hasClass(dojo.body(),"dijit_a11y"))){var _d3=dijit._frames.pop();_d2.appendChild(_d3);if(dojo.isIE){_d3.style.setExpression("width","document.getElementById('"+_d2.id+"').offsetWidth");_d3.style.setExpression("height","document.getElementById('"+_d2.id+"').offsetHeight");}this.iframe=_d3;}};dojo.extend(dijit.BackgroundIframe,{destroy:function(){if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(_d4){if(dojo.isIE){if(dojo.marginBox(_d4.parentNode).h<=_d4.parentNode.scrollHeight){_d4.scrollIntoView(false);}}else{if(dojo.isMozilla){_d4.scrollIntoView(false);}else{var _d5=_d4.parentNode;var _d6=_d5.scrollTop+dojo.marginBox(_d5).h;var _d7=_d4.offsetTop+dojo.marginBox(_d4).h;if(_d6<_d7){_d5.scrollTop+=(_d7-_d6);}else{if(_d5.scrollTop>_d4.offsetTop){_d5.scrollTop-=(_d5.scrollTop-_d4.offsetTop);}}}}};}if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");(function(){var d=dojo;var ie=d.isIE;var _da=d.isOpera;var maj=Math.floor;var _dc={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_iequirks:ie&&d.isQuirks,dj_opera:_da,dj_opera8:maj(_da)==8,dj_opera9:maj(_da)==9,dj_khtml:d.isKhtml,dj_safari:d.isSafari,dj_gecko:d.isMozilla};for(var p in _dc){if(_dc[p]){var _de=dojo.doc.documentElement;if(_de.className){_de.className+=" "+p;}else{_de.className=p;}}}})();}if(!dojo._hasResource["dijit._base.bidi"]){dojo._hasResource["dijit._base.bidi"]=true;dojo.provide("dijit._base.bidi");dojo.addOnLoad(function(){if(!dojo._isBodyLtr()){dojo.addClass(dojo.body(),"dijitRtl");}});}if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=(this._currentTimeout<0)?this._initialDelay:((this._subsequentDelay>1)?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay));this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_e0,_e1,_e2,obj,_e4,_e5){if(obj!=this._obj){this.stop();this._initialDelay=_e5||500;this._subsequentDelay=_e4||0.9;this._obj=obj;this._evt=evt;this._node=_e1;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_e0,_e2);this._fireEventAndReload();}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(_e6,_e7,_e8,_e9,_ea,_eb){return [dojo.connect(_e6,"onkeypress",this,function(evt){if(evt.keyCode==_e7.keyCode&&(!_e7.charCode||_e7.charCode==evt.charCode)&&(_e7.ctrlKey===undefined||_e7.ctrlKey==evt.ctrlKey)&&(_e7.altKey===undefined||_e7.altKey==evt.ctrlKey)&&(_e7.shiftKey===undefined||_e7.shiftKey==evt.ctrlKey)){dojo.stopEvent(evt);dijit.typematic.trigger(_e7,_e8,_e6,_e9,_e7,_ea,_eb);}else{if(dijit.typematic._obj==_e7){dijit.typematic.stop();}}}),dojo.connect(_e6,"onkeyup",this,function(evt){if(dijit.typematic._obj==_e7){dijit.typematic.stop();}})];},addMouseListener:function(_ee,_ef,_f0,_f1,_f2){var dc=dojo.connect;return [dc(_ee,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_ef,_ee,_f0,_ee,_f1,_f2);}),dc(_ee,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(_ee,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(_ee,"mousemove",this,function(evt){dojo.stopEvent(evt);}),dc(_ee,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_ef,_ee,_f0,_ee,_f1,_f2);setTimeout(dijit.typematic.stop,50);}})];},addListener:function(_f9,_fa,_fb,_fc,_fd,_fe,_ff){return this.addKeyListener(_fa,_fb,_fc,_fd,_fe,_ff).concat(this.addMouseListener(_f9,_fc,_fd,_fe,_ff));}};}if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div;div=document.createElement("div");div.id="a11yTestNode";div.style.cssText="border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+dojo.moduleUrl("dojo","resources/blank.gif")+"\");";dojo.body().appendChild(div);var cs=dojo.getComputedStyle(div);if(cs){var _102=cs.backgroundImage;var _103=(cs.borderTopColor==cs.borderRightColor)||(_102!=null&&(_102=="none"||_102=="url(invalid-url:)"));dojo[_103?"addClass":"removeClass"](dojo.body(),"dijit_a11y");dojo.body().removeChild(div);}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}dojo.mixin(dijit,{hasWaiRole:function(elem){if(elem.hasAttribute){return elem.hasAttribute("role");}else{return elem.getAttribute("role")?true:false;}},getWaiRole:function(elem){var _106=elem.getAttribute("role");if(_106){var _107=_106.indexOf(":");return _107==-1?_106:_106.substring(_107+1);}else{return "";}},setWaiRole:function(elem,role){if(dojo.isFF&&dojo.isFF<3){elem.setAttribute("role","wairole:"+role);}else{elem.setAttribute("role",role);}},removeWaiRole:function(elem){elem.removeAttribute("role");},hasWaiState:function(elem,_10c){if(dojo.isFF&&dojo.isFF<3){var val=elem.hasAttributeNS("http://www.w3.org/2005/07/aaa",_10c);return val;}else{if(elem.hasAttribute){return elem.hasAttribute("aria-"+_10c);}else{return elem.getAttribute("aria-"+_10c)?true:false;}}},getWaiState:function(elem,_10f){if(dojo.isFF&&dojo.isFF<3){var val=elem.getAttributeNS("http://www.w3.org/2005/07/aaa",_10f);return val;}else{var _111=elem.getAttribute("aria-"+_10f);return _111?_111:"";}},setWaiState:function(elem,_113,_114){if(dojo.isFF&&dojo.isFF<3){elem.setAttributeNS("http://www.w3.org/2005/07/aaa","aaa:"+_113,_114);}else{elem.setAttribute("aria-"+_113,_114);}},removeWaiState:function(elem,_116){if(dojo.isFF&&dojo.isFF<3){elem.removeAttributeNS("http://www.w3.org/2005/07/aaa",_116);}else{elem.removeAttribute("aria-"+_116);}}});}if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",srcNodeRef:null,domNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},postscript:function(_117,_118){this.create(_117,_118);},create:function(_119,_11a){this.srcNodeRef=dojo.byId(_11a);this._connects=[];this._attaches=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_119){dojo.mixin(this,_119);}this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dijit.registry.add(this);this.buildRendering();if(this.domNode){for(var attr in this.attributeMap){var _11c=this[attr];if(typeof _11c!="object"&&((_11c!==""&&_11c!==false)||(_119&&_119[attr]))){this.setAttribute(attr,_11c);}}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}},postMixInProperties:function(){},buildRendering:function(){this.domNode=this.srcNodeRef||dojo.doc.createElement("div");},postCreate:function(){},startup:function(){this._started=true;},destroyRecursive:function(_11d){this.destroyDescendants();this.destroy();},destroy:function(_11e){this.uninitialize();dojo.forEach(this._connects,function(_11f){dojo.forEach(_11f,dojo.disconnect);});this.destroyRendering(_11e);dijit.registry.remove(this.id);},destroyRendering:function(_120){if(this.bgIframe){this.bgIframe.destroy();delete this.bgIframe;}if(this.domNode){dojo._destroyElement(this.domNode);delete this.domNode;}if(this.srcNodeRef){dojo._destroyElement(this.srcNodeRef);delete this.srcNodeRef;}},destroyDescendants:function(){dojo.forEach(this.getDescendants(),function(_121){_121.destroy();});},uninitialize:function(){return false;},setAttribute:function(attr,_123){var _124=this[this.attributeMap[attr]||"domNode"];this[attr]=_123;switch(attr){case "class":dojo.addClass(_124,_123);break;case "style":if(_124.style.cssText){_124.style.cssText+="; "+_123;}else{_124.style.cssText=_123;}break;default:if(/^on[A-Z]/.test(attr)){attr=attr.toLowerCase();}if(typeof _123=="function"){_123=dojo.hitch(this,_123);}dojo.attr(_124,attr,_123);}},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getDescendants:function(){var list=dojo.query("[widgetId]",this.domNode);return list.map(dijit.byNode);},nodesWithKeyClick:["input","button"],connect:function(obj,_127,_128){var _129=[];if(_127=="ondijitclick"){var w=this;if(!this.nodesWithKeyClick[obj.nodeName]){_129.push(dojo.connect(obj,"onkeydown",this,function(e){if(e.keyCode==dojo.keys.ENTER){return (dojo.isString(_128))?w[_128](e):_128.call(w,e);}else{if(e.keyCode==dojo.keys.SPACE){dojo.stopEvent(e);}}}));_129.push(dojo.connect(obj,"onkeyup",this,function(e){if(e.keyCode==dojo.keys.SPACE){return dojo.isString(_128)?w[_128](e):_128.call(w,e);}}));}_127="onclick";}_129.push(dojo.connect(obj,_127,this,_128));this._connects.push(_129);return _129;},disconnect:function(_12d){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_12d){dojo.forEach(_12d,dojo.disconnect);this._connects.splice(i,1);return;}}},isLeftToRight:function(){if(typeof this._ltr=="undefined"){this._ltr=dojo.getComputedStyle(this.domNode).direction!="rtl";}return this._ltr;},isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");}});}if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.string.pad=function(text,size,ch,end){var out=String(text);if(!ch){ch="0";}while(out.length<size){if(end){out+=ch;}else{out=ch+out;}}return out;};dojo.string.substitute=function(_134,map,_136,_137){return _134.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_138,key,_13a){var _13b=dojo.getObject(key,false,map);if(_13a){_13b=dojo.getObject(_13a,false,_137)(_13b);}if(_136){_13b=_136(_13b,key);}return _13b.toString();});};dojo.string.trim=function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};}if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateNode:null,templateString:null,templatePath:null,widgetsInTemplate:false,containerNode:null,_skipNodeCache:false,buildRendering:function(){var _13e=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_13e)){var _140=this.declaredClass,_141=this;var tstr=dojo.string.substitute(_13e,this,function(_143,key){if(key.charAt(0)=="!"){_143=_141[key.substr(1)];}if(typeof _143=="undefined"){throw new Error(_140+" template:"+key);}if(!_143){return "";}return key.charAt(0)=="!"?_143:_143.toString().replace(/"/g,"&quot;");},this);node=dijit._Templated._createNodesFromText(tstr)[0];}else{node=_13e.cloneNode(true);}this._attachTemplateNodes(node);var _145=this.srcNodeRef;if(_145&&_145.parentNode){_145.parentNode.replaceChild(node,_145);}this.domNode=node;if(this.widgetsInTemplate){var _146=dojo.parser.parse(node);this._attachTemplateNodes(_146,function(n,p){return n[p];});}this._fillContent(_145);},_fillContent:function(_149){var dest=this.containerNode;if(_149&&dest){while(_149.hasChildNodes()){dest.appendChild(_149.firstChild);}}},_attachTemplateNodes:function(_14b,_14c){_14c=_14c||function(n,p){return n.getAttribute(p);};var _14f=dojo.isArray(_14b)?_14b:(_14b.all||_14b.getElementsByTagName("*"));var x=dojo.isArray(_14b)?0:-1;for(;x<_14f.length;x++){var _151=(x==-1)?_14b:_14f[x];if(this.widgetsInTemplate&&_14c(_151,"dojoType")){continue;}var _152=_14c(_151,"dojoAttachPoint");if(_152){var _153,_154=_152.split(/\s*,\s*/);while(_153=_154.shift()){if(dojo.isArray(this[_153])){this[_153].push(_151);}else{this[_153]=_151;}}}var _155=_14c(_151,"dojoAttachEvent");if(_155){var _156,_157=_155.split(/\s*,\s*/);var trim=dojo.trim;while(_156=_157.shift()){if(_156){var _159=null;if(_156.indexOf(":")!=-1){var _15a=_156.split(":");_156=trim(_15a[0]);_159=trim(_15a[1]);}else{_156=trim(_156);}if(!_159){_159=_156;}this.connect(_151,_156,_159);}}}var role=_14c(_151,"waiRole");if(role){dijit.setWaiRole(_151,role);}var _15c=_14c(_151,"waiState");if(_15c){dojo.forEach(_15c.split(/\s*,\s*/),function(_15d){if(_15d.indexOf("-")!=-1){var pair=_15d.split("-");dijit.setWaiState(_151,pair[0],pair[1]);}});}}}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_15f,_160,_161){var _162=dijit._Templated._templateCache;var key=_160||_15f;var _164=_162[key];if(_164){return _164;}if(!_160){_160=dijit._Templated._sanitizeTemplateString(dojo._getText(_15f));}_160=dojo.string.trim(_160);if(_160.match(/\$\{([^\}]+)\}/g)||_161){return (_162[key]=_160);}else{return (_162[key]=dijit._Templated._createNodesFromText(_160)[0]);}};dijit._Templated._sanitizeTemplateString=function(_165){if(_165){_165=_165.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _166=_165.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_166){_165=_166[1];}}else{_165="";}return _165;};if(dojo.isIE){dojo.addOnUnload(function(){var _167=dijit._Templated._templateCache;for(var key in _167){var _169=_167[key];if(!isNaN(_169.nodeType)){dojo._destroyElement(_169);}delete _167[key];}});}(function(){var _16a={cell:{re:/^<t[dh][\s\r\n>]/i,pre:"<table><tbody><tr>",post:"</tr></tbody></table>"},row:{re:/^<tr[\s\r\n>]/i,pre:"<table><tbody>",post:"</tbody></table>"},section:{re:/^<(thead|tbody|tfoot)[\s\r\n>]/i,pre:"<table>",post:"</table>"}};var tn;dijit._Templated._createNodesFromText=function(text){if(!tn){tn=dojo.doc.createElement("div");tn.style.display="none";dojo.body().appendChild(tn);}var _16d="none";var _16e=text.replace(/^\s+/,"");for(var type in _16a){var map=_16a[type];if(map.re.test(_16e)){_16d=type;text=map.pre+text+map.post;break;}}tn.innerHTML=text;if(tn.normalize){tn.normalize();}var tag={cell:"tr",row:"tbody",section:"table"}[_16d];var _172=(typeof tag!="undefined")?tn.getElementsByTagName(tag)[0]:tn;var _173=[];while(_172.firstChild){_173.push(_172.removeChild(_172.firstChild));}tn.innerHTML="";return _173;};})();dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_174,_175,_176){_176=dojo.i18n.normalizeLocale(_176);var _177=_176.split("-");var _178=[_174,"nls",_175].join(".");var _179=dojo._loadedModules[_178];if(_179){var _17a;for(var i=_177.length;i>0;i--){var loc=_177.slice(0,i).join("_");if(_179[loc]){_17a=_179[loc];break;}}if(!_17a){_17a=_179.ROOT;}if(_17a){var _17d=function(){};_17d.prototype=_17a;return new _17d();}}throw new Error("Bundle not found: "+_175+" in "+_174+" , locale="+_176);};dojo.i18n.normalizeLocale=function(_17e){var _17f=_17e?_17e.toLowerCase():dojo.locale;if(_17f=="root"){_17f="ROOT";}return _17f;};dojo.i18n._requireLocalization=function(_180,_181,_182,_183){var _184=dojo.i18n.normalizeLocale(_182);var _185=[_180,"nls",_181].join(".");var _186="";if(_183){var _187=_183.split(",");for(var i=0;i<_187.length;i++){if(_184.indexOf(_187[i])==0){if(_187[i].length>_186.length){_186=_187[i];}}}if(!_186){_186="ROOT";}}var _189=_183?_186:_184;var _18a=dojo._loadedModules[_185];var _18b=null;if(_18a){if(dojo.config.localizationComplete&&_18a._built){return;}var _18c=_189.replace(/-/g,"_");var _18d=_185+"."+_18c;_18b=dojo._loadedModules[_18d];}if(!_18b){_18a=dojo["provide"](_185);var syms=dojo._getModuleSymbols(_180);var _18f=syms.concat("nls").join("/");var _190;dojo.i18n._searchLocalePath(_189,_183,function(loc){var _192=loc.replace(/-/g,"_");var _193=_185+"."+_192;var _194=false;if(!dojo._loadedModules[_193]){dojo["provide"](_193);var _195=[_18f];if(loc!="ROOT"){_195.push(loc);}_195.push(_181);var _196=_195.join("/")+".js";_194=dojo._loadPath(_196,null,function(hash){var _198=function(){};_198.prototype=_190;_18a[_192]=new _198();for(var j in hash){_18a[_192][j]=hash[j];}});}else{_194=true;}if(_194&&_18a[_192]){_190=_18a[_192];}else{_18a[_192]=_190;}if(_183){return true;}});}if(_183&&_184!=_186){_18a[_184.replace(/-/g,"_")]=_18a[_186.replace(/-/g,"_")];}};(function(){var _19a=dojo.config.extraLocale;if(_19a){if(!_19a instanceof Array){_19a=[_19a];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_19e,_19f){req(m,b,_19e,_19f);if(_19e){return;}for(var i=0;i<_19a.length;i++){req(m,b,_19a[i],_19f);}};}})();dojo.i18n._searchLocalePath=function(_1a1,down,_1a3){_1a1=dojo.i18n.normalizeLocale(_1a1);var _1a4=_1a1.split("-");var _1a5=[];for(var i=_1a4.length;i>0;i--){_1a5.push(_1a4.slice(0,i).join("-"));}_1a5.push(false);if(down){_1a5.reverse();}for(var j=_1a5.length-1;j>=0;j--){var loc=_1a5[j]||"ROOT";var stop=_1a3(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_1aa,_1ab){function preload(_1ac){_1ac=dojo.i18n.normalizeLocale(_1ac);dojo.i18n._searchLocalePath(_1ac,true,function(loc){for(var i=0;i<_1ab.length;i++){if(_1ab[i]==loc){dojo["require"](_1aa+"_"+loc);return true;}}return false;});};preload();var _1af=dojo.config.extraLocale||[];for(var i=0;i<_1af.length;i++){preload(_1af[i]);}};}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,_1b2){return str.replace(/([\.$?*!=:|{}\(\)\[\]\\\/^])/g,function(ch){if(_1b2&&_1b2.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_1b6){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_1b6);};dojo.regexp.group=function(_1b9,_1ba){return "("+(_1ba?"?:":"")+_1b9+")";};}if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.number.format=function(_1bb,_1bc){_1bc=dojo.mixin({},_1bc||{});var _1bd=dojo.i18n.normalizeLocale(_1bc.locale);var _1be=dojo.i18n.getLocalization("dojo.cldr","number",_1bd);_1bc.customs=_1be;var _1bf=_1bc.pattern||_1be[(_1bc.type||"decimal")+"Format"];if(isNaN(_1bb)){return null;}return dojo.number._applyPattern(_1bb,_1bf,_1bc);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_1c0,_1c1,_1c2){_1c2=_1c2||{};var _1c3=_1c2.customs.group;var _1c4=_1c2.customs.decimal;var _1c5=_1c1.split(";");var _1c6=_1c5[0];_1c1=_1c5[(_1c0<0)?1:0]||("-"+_1c6);if(_1c1.indexOf("%")!=-1){_1c0*=100;}else{if(_1c1.indexOf("\u2030")!=-1){_1c0*=1000;}else{if(_1c1.indexOf("\xa4")!=-1){_1c3=_1c2.customs.currencyGroup||_1c3;_1c4=_1c2.customs.currencyDecimal||_1c4;_1c1=_1c1.replace(/\u00a4{1,3}/,function(_1c7){var prop=["symbol","currency","displayName"][_1c7.length-1];return _1c2[prop]||_1c2.currency||"";});}else{if(_1c1.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _1c9=dojo.number._numberPatternRE;var _1ca=_1c6.match(_1c9);if(!_1ca){throw new Error("unable to find a number expression in pattern: "+_1c1);}return _1c1.replace(_1c9,dojo.number._formatAbsolute(_1c0,_1ca[0],{decimal:_1c4,group:_1c3,places:_1c2.places}));};dojo.number.round=function(_1cb,_1cc,_1cd){var _1ce=String(_1cb).split(".");var _1cf=(_1ce[1]&&_1ce[1].length)||0;if(_1cf>_1cc){var _1d0=Math.pow(10,_1cc);if(_1cd>0){_1d0*=10/_1cd;_1cc++;}_1cb=Math.round(_1cb*_1d0)/_1d0;_1ce=String(_1cb).split(".");_1cf=(_1ce[1]&&_1ce[1].length)||0;if(_1cf>_1cc){_1ce[1]=_1ce[1].substr(0,_1cc);_1cb=Number(_1ce.join("."));}}return _1cb;};dojo.number._formatAbsolute=function(_1d1,_1d2,_1d3){_1d3=_1d3||{};if(_1d3.places===true){_1d3.places=0;}if(_1d3.places===Infinity){_1d3.places=6;}var _1d4=_1d2.split(".");var _1d5=(_1d3.places>=0)?_1d3.places:(_1d4[1]&&_1d4[1].length)||0;if(!(_1d3.round<0)){_1d1=dojo.number.round(_1d1,_1d5,_1d3.round);}var _1d6=String(Math.abs(_1d1)).split(".");var _1d7=_1d6[1]||"";if(_1d3.places){_1d6[1]=dojo.string.pad(_1d7.substr(0,_1d3.places),_1d3.places,"0",true);}else{if(_1d4[1]&&_1d3.places!==0){var pad=_1d4[1].lastIndexOf("0")+1;if(pad>_1d7.length){_1d6[1]=dojo.string.pad(_1d7,pad,"0",true);}var _1d9=_1d4[1].length;if(_1d9<_1d7.length){_1d6[1]=_1d7.substr(0,_1d9);}}else{if(_1d6[1]){_1d6.pop();}}}var _1da=_1d4[0].replace(",","");pad=_1da.indexOf("0");if(pad!=-1){pad=_1da.length-pad;if(pad>_1d6[0].length){_1d6[0]=dojo.string.pad(_1d6[0],pad);}if(_1da.indexOf("#")==-1){_1d6[0]=_1d6[0].substr(_1d6[0].length-pad);}}var _1db=_1d4[0].lastIndexOf(",");var _1dc,_1dd;if(_1db!=-1){_1dc=_1d4[0].length-_1db-1;var _1de=_1d4[0].substr(0,_1db);_1db=_1de.lastIndexOf(",");if(_1db!=-1){_1dd=_1de.length-_1db-1;}}var _1df=[];for(var _1e0=_1d6[0];_1e0;){var off=_1e0.length-_1dc;_1df.push((off>0)?_1e0.substr(off):_1e0);_1e0=(off>0)?_1e0.slice(0,off):"";if(_1dd){_1dc=_1dd;delete _1dd;}}_1d6[0]=_1df.reverse().join(_1d3.group||",");return _1d6.join(_1d3.decimal||".");};dojo.number.regexp=function(_1e2){return dojo.number._parseInfo(_1e2).regexp;};dojo.number._parseInfo=function(_1e3){_1e3=_1e3||{};var _1e4=dojo.i18n.normalizeLocale(_1e3.locale);var _1e5=dojo.i18n.getLocalization("dojo.cldr","number",_1e4);var _1e6=_1e3.pattern||_1e5[(_1e3.type||"decimal")+"Format"];var _1e7=_1e5.group;var _1e8=_1e5.decimal;var _1e9=1;if(_1e6.indexOf("%")!=-1){_1e9/=100;}else{if(_1e6.indexOf("\u2030")!=-1){_1e9/=1000;}else{var _1ea=_1e6.indexOf("\xa4")!=-1;if(_1ea){_1e7=_1e5.currencyGroup||_1e7;_1e8=_1e5.currencyDecimal||_1e8;}}}var _1eb=_1e6.split(";");if(_1eb.length==1){_1eb.push("-"+_1eb[0]);}var re=dojo.regexp.buildGroupRE(_1eb,function(_1ed){_1ed="(?:"+dojo.regexp.escapeString(_1ed,".")+")";return _1ed.replace(dojo.number._numberPatternRE,function(_1ee){var _1ef={signed:false,separator:_1e3.strict?_1e7:[_1e7,""],fractional:_1e3.fractional,decimal:_1e8,exponent:false};var _1f0=_1ee.split(".");var _1f1=_1e3.places;if(_1f0.length==1||_1f1===0){_1ef.fractional=false;}else{if(typeof _1f1=="undefined"){_1f1=_1f0[1].lastIndexOf("0")+1;}if(_1f1&&_1e3.fractional==undefined){_1ef.fractional=true;}if(!_1e3.places&&(_1f1<_1f0[1].length)){_1f1+=","+_1f0[1].length;}_1ef.places=_1f1;}var _1f2=_1f0[0].split(",");if(_1f2.length>1){_1ef.groupSize=_1f2.pop().length;if(_1f2.length>1){_1ef.groupSize2=_1f2.pop().length;}}return "("+dojo.number._realNumberRegexp(_1ef)+")";});},true);if(_1ea){re=re.replace(/(\s*)(\u00a4{1,3})(\s*)/g,function(_1f3,_1f4,_1f5,_1f6){var prop=["symbol","currency","displayName"][_1f5.length-1];var _1f8=dojo.regexp.escapeString(_1e3[prop]||_1e3.currency||"");_1f4=_1f4?"\\s":"";_1f6=_1f6?"\\s":"";if(!_1e3.strict){if(_1f4){_1f4+="*";}if(_1f6){_1f6+="*";}return "(?:"+_1f4+_1f8+_1f6+")?";}return _1f4+_1f8+_1f6;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_1e7,decimal:_1e8,factor:_1e9};};dojo.number.parse=function(_1f9,_1fa){var info=dojo.number._parseInfo(_1fa);var _1fc=(new RegExp("^"+info.regexp+"$")).exec(_1f9);if(!_1fc){return NaN;}var _1fd=_1fc[1];if(!_1fc[1]){if(!_1fc[2]){return NaN;}_1fd=_1fc[2];info.factor*=-1;}_1fd=_1fd.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return Number(_1fd)*info.factor;};dojo.number._realNumberRegexp=function(_1fe){_1fe=_1fe||{};if(typeof _1fe.places=="undefined"){_1fe.places=Infinity;}if(typeof _1fe.decimal!="string"){_1fe.decimal=".";}if(typeof _1fe.fractional=="undefined"||/^0/.test(_1fe.places)){_1fe.fractional=[true,false];}if(typeof _1fe.exponent=="undefined"){_1fe.exponent=[true,false];}if(typeof _1fe.eSigned=="undefined"){_1fe.eSigned=[true,false];}var _1ff=dojo.number._integerRegexp(_1fe);var _200=dojo.regexp.buildGroupRE(_1fe.fractional,function(q){var re="";if(q&&(_1fe.places!==0)){re="\\"+_1fe.decimal;if(_1fe.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_1fe.places+"}";}}return re;},true);var _203=dojo.regexp.buildGroupRE(_1fe.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_1fe.eSigned})+")";}return "";});var _205=_1ff+_200;if(_200){_205="(?:(?:"+_205+")|(?:"+_200+"))";}return _205+_203;};dojo.number._integerRegexp=function(_206){_206=_206||{};if(typeof _206.signed=="undefined"){_206.signed=[true,false];}if(typeof _206.separator=="undefined"){_206.separator="";}else{if(typeof _206.groupSize=="undefined"){_206.groupSize=3;}}var _207=dojo.regexp.buildGroupRE(_206.signed,function(q){return q?"[-+]":"";},true);var _209=dojo.regexp.buildGroupRE(_206.separator,function(sep){if(!sep){return "(?:0|[1-9]\\d*)";}sep=dojo.regexp.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep=="\xa0"){sep="\\s\\xa0";}}var grp=_206.groupSize,grp2=_206.groupSize2;if(grp2){var _20d="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_20d+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_20d;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _207+_209;};}if(!dojo._hasResource["qi.util"]){dojo._hasResource["qi.util"]=true;dojo.provide("qi.util");qi.util.dateToObject=function(date){return {year:date.getFullYear(),month:date.getMonth(),day:date.getDate()};};qi.util.escapeHTML=function(_20f){var _210=function(ch){switch(ch){case "<":return "&lt;";case ">":return "&gt;";case "&":return "&amp;";case "'":return "&#39;";case "\"":return "&quot;";}return ch;};_20f=_20f||"";return String(_20f).replace(/[<>&"']/g,_210);};qi.util.getQueryStringValue=function(key){var _213=String(window.top.document.location.search);var _214=new RegExp("[?&]"+key+"=([^&]+)","i").exec(_213);var _215=null;if(_214&&2==_214.length){_215=_214[1];}return _215;};qi.util.mapValues=function(map){var key;var _218=[];for(key in map){_218.push(map[key]);}return _218;};qi.util.mapKeys=function(map){var key;var _21b=[];for(key in map){_21b.push(key);}return _21b;};qi.util.formatDate=function(date){var _21d=/(\d+)-(\d+)-(\d+)/.exec(date);var _21e;if(_21d){var year=1;var _220=2;var day=3;var _222=_21d[year].length>2?_21d[year].substring(_21d[year].length-2):_21d[year];_21e=String(Number(_21d[_220]))+"/"+dojo.string.pad(_21d[day],2,"0")+"/"+_222;}return _21e;};qi.util.trim=function(text,_224,_225){if(String(text).length>_224){text=text.substring(0,_224-_225.length)+_225;}return text;};}if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Contained",null,{getParent:function(){for(var p=this.domNode.parentNode;p;p=p.parentNode){var id=p.getAttribute&&p.getAttribute("widgetId");if(id){var _228=dijit.byId(id);return _228.isContainer?_228:null;}}return null;},_getSibling:function(_229){var node=this.domNode;do{node=node[_229+"Sibling"];}while(node&&node.nodeType!=1);if(!node){return null;}var id=node.getAttribute("widgetId");return dijit.byId(id);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");}});dojo.declare("dijit._Container",null,{isContainer:true,addChild:function(_22c,_22d){if(_22d===undefined){_22d="last";}var _22e=this.containerNode||this.domNode;if(_22d&&typeof _22d=="number"){var _22f=dojo.query("> [widgetid]",_22e);if(_22f&&_22f.length>=_22d){_22e=_22f[_22d-1];_22d="after";}}dojo.place(_22c.domNode,_22e,_22d);if(this._started&&!_22c._started){_22c.startup();}},removeChild:function(_230){var node=_230.domNode;node.parentNode.removeChild(node);},_nextElement:function(node){do{node=node.nextSibling;}while(node&&node.nodeType!=1);return node;},_firstElement:function(node){node=node.firstChild;if(node&&node.nodeType!=1){node=this._nextElement(node);}return node;},getChildren:function(){return dojo.query("> [widgetId]",this.containerNode||this.domNode).map(dijit.byNode);},hasChildren:function(){var cn=this.containerNode||this.domNode;return !!this._firstElement(cn);},_getSiblingOfChild:function(_235,dir){var node=_235.domNode;var _238=(dir>0?"nextSibling":"previousSibling");do{node=node[_238];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node?dijit.byNode(node):null;}});dojo.declare("dijit._KeyNavContainer",[dijit._Container],{_keyNavCodes:{},connectKeyNavHandlers:function(_239,_23a){var _23b=this._keyNavCodes={};var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_239,function(code){_23b[code]=prev;});dojo.forEach(_23a,function(code){_23b[code]=next;});this.connect(this.domNode,"onkeypress","_onContainerKeypress");if(dojo.isIE){this.connect(this.domNode,"onactivate","_onContainerFocus");this.connect(this.domNode,"ondeactivate","_onContainerBlur");}else{this.connect(this.domNode,"onfocus","_onContainerFocus");this.connect(this.domNode,"onblur","_onContainerBlur");}},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_setTabIndexMinusOne"));},addChild:function(_240,_241){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._setTabIndexMinusOne(_240);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusNext:function(){if(this.focusedChild&&this.focusedChild.hasNextFocalNode&&this.focusedChild.hasNextFocalNode()){this.focusedChild.focusNext();return;}var _242=this._getNextFocusableChild(this.focusedChild,1);if(_242.getFocalNodes){this.focusChild(_242,_242.getFocalNodes()[0]);}else{this.focusChild(_242);}},focusPrev:function(){if(this.focusedChild&&this.focusedChild.hasPrevFocalNode&&this.focusedChild.hasPrevFocalNode()){this.focusedChild.focusPrev();return;}var _243=this._getNextFocusableChild(this.focusedChild,-1);if(_243.getFocalNodes){var _244=_243.getFocalNodes();this.focusChild(_243,_244[_244.length-1]);}else{this.focusChild(_243);}},focusChild:function(_245,node){if(_245){if(this.focusedChild&&_245!==this.focusedChild){this._onChildBlur(this.focusedChild);}this.focusedChild=_245;if(node&&_245.focusFocalNode){_245.focusFocalNode(node);}else{_245.focus();}}},_setTabIndexMinusOne:function(_247){if(_247.getFocalNodes){dojo.forEach(_247.getFocalNodes(),function(node){node.setAttribute("tabIndex",-1);});}else{(_247.focusNode||_247.domNode).setAttribute("tabIndex",-1);}},_onContainerFocus:function(evt){this.domNode.setAttribute("tabIndex",-1);if(evt.target===this.domNode){this.focusFirstChild();}else{var _24a=dijit.getEnclosingWidget(evt.target);if(_24a&&_24a.isFocusable()){this.focusedChild=_24a;}}},_onContainerBlur:function(evt){if(this.tabIndex){this.domNode.setAttribute("tabIndex",this.tabIndex);}},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.keyCode];if(func){func();dojo.stopEvent(evt);}},_onChildBlur:function(_24e){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_24f,dir){if(_24f){_24f=this._getSiblingOfChild(_24f,dir);}var _251=this.getChildren();for(var i=0;i<_251.length;i++){if(!_24f){_24f=_251[(dir>0)?0:(_251.length-1)];}if(_24f.isFocusable()){return _24f;}_24f=this._getSiblingOfChild(_24f,dir);}}});}if(!dojo._hasResource["qi.widget.StatePatternContainer"]){dojo._hasResource["qi.widget.StatePatternContainer"]=true;dojo.provide("qi.widget.StatePatternContainer");dojo.declare("qi.widget.StatePatternContainer",dijit._Container,{shouldDestroyOldChildState:function(){return true;},_changeState:function(_253){if(this.currentWidgetDelegate){var _254=this.currentWidgetDelegate;delete this.currentWidgetDelegate;try{this.removeChild(_254);}catch(e){console.warn("Problem removing child",e);}if(this.shouldDestroyOldChildState()){try{_254.destroyRecursive();}catch(e){console.warn("Problem destroying child (maybe already destroyed)",e);}}}this.currentWidgetDelegate=_253;this.addChild(this.currentWidgetDelegate);}});}if(!dojo._hasResource["ag.widget.filters.MorePopularFilters"]){dojo._hasResource["ag.widget.filters.MorePopularFilters"]=true;dojo.provide("ag.widget.filters.MorePopularFilters");dojo.declare("ag.widget.filters.MorePopularFilters",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"more-popular-filters\">\n\t<div class=\"more-popular-filters-tc\"></div>\n\t<div class=\"more-popular-filters-title\"><span>More Popular Tags</span></div>\n\t<div class=\"more-popular-filters-content\" dojoAttachPoint=\"content\" dojoType=\"ag.widget.filters.MorePopularFiltersContent\"></div>\n\t<div class=\"more-popular-filters-bc\"></div>\n</div>\n",widgetsInTemplate:true,filterName:"",filterId:0,testDataLocation:"",_baseDataLocation:dojo.moduleUrl("agjson","recommended/forFilter/filters/"),_dataFile:"",postMixInProperties:function(){if(""===this.testDataLocation){this._dataFile=this._baseDataLocation;}else{this._dataFile=dojo.moduleUrl("agstatic",this.testDataLocation);}this._dataFile+=this.filterId;},postCreate:function(){this._loadData();},_loadData:function(){var _255=dojo.xhrGet({url:this._dataFile,handleAs:"json-comment-filtered"});_255.addCallback(this,dojo.hitch(this,function(data){this.content._showWithFilters(data);}));_255.addErrback(this,dojo.hitch(this,function(_257){this.content._showWithError();}));}});dojo.declare("ag.widget.filters.MorePopularFiltersContent",[dijit._Widget,qi.widget.StatePatternContainer],{postCreate:function(){this._showAsLoading();},_showAsLoading:function(){var _258=new ag.widget.filters.MorePopularFiltersLoading({},document.createElement("span"));this._changeState(_258);},_showWithError:function(){var _259=new ag.widget.filters.MorePopularFiltersError({},document.createElement("span"));this._changeState(_259);},_showWithFilters:function(data){var _25b=new ag.widget.filters.MorePopularFiltersLoaded({_filters:data.filters},document.createElement("span"));this._changeState(_25b);}});dojo.declare("ag.widget.filters.MorePopularFiltersLoading",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<div class='recommended-center-message'>Loading More Popular Filters...</div>\n</span>\t\n"});dojo.declare("ag.widget.filters.MorePopularFiltersError",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<div class='recommended-center-message'>Error Loading More Popular Filters</div>\n</span>\t\n"});dojo.declare("ag.widget.filters.MorePopularFiltersLoaded",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<div class=\"more-popular-filters-left\" dojoAttachPoint='leftContent'></div>\n\t<div class=\"more-popular-filters-right\" dojoAttachPoint='rightContent'></div>\n</span>\n",_filters:[],_embeddableTitle:"Embeddable",_embeddableURL:"/gotd/games_for_your_site.html",postCreate:function(){var _25c=Math.round(this._filters.length/2);for(var i=0;i<_25c;i++){var _25e=this._makeWidget(this._filters[i]);this.leftContent.appendChild(_25e.domNode);}for(var i=_25c;i<this._filters.length;i++){var _25e=this._makeWidget(this._filters[i]);this.rightContent.appendChild(_25e.domNode);}},_makeWidget:function(data){url="/filters/"+data.url;if(data.title==this._embeddableTitle){url=this._embeddableURL;}var _260=new ag.widget.filters.MorePopularFilter({id:data.id,url:url,imgSrc:"/static/images/filters/"+data.img,title:data.title},document.createElement("span"));return _260;}});dojo.declare("ag.widget.filters.MorePopularFilter",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"more-popular-filter\">\n\t<div class=\"more-popular-filter-img\"><a href=\"${url}\"><img src=\"${imgSrc}\"></img></a></div>\n\t<div class=\"more-popular-filter-title\"><a href=\"${url}\">${title}</a></div>\n</div>\n",id:0,url:"",imgSrc:"",title:""});}if(!dojo._hasResource["ag.event.EventBus"]){dojo._hasResource["ag.event.EventBus"]=true;dojo.provide("ag.event.EventBus");(function(){dojo.declare("ag.event.EventBusTopic",null,{constructor:function(_261){this.topic=_261;},publish:function(_262){if(typeof (_262)=="undefined"){_262=[];}dojo.publish(this.topic,_262);if(typeof (this.containedBy)!="undefined"){this.containedBy.publish(_262);}},subscribe:function(_263,_264){return dojo.subscribe(this.topic,_263,_264);},_addChild:function(_265){_265.containedBy=this;this[_265.topic]=_265;}});ag.event.EventBus.APPLICATION=new ag.event.EventBusTopic("APPLICATION");ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("LOGIN"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("REGISTER"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("CANCEL_LOGIN"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("LOGIN_SHOW_CAPTCHA"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("LOGOUT"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("REQUEST_SIGNUP"));ag.event.EventBus.APPLICATION._addChild(new ag.event.EventBusTopic("HIDE_POPUP"));ag.event.EventBus.UI=new ag.event.EventBusTopic("UI");ag.event.EventBus.UI._addChild(new ag.event.EventBusTopic("LOADED_FAVORITES"));ag.event.EventBus.UI._addChild(new ag.event.EventBusTopic("POSTING_REVIEW"));ag.event.EventBus.UI._addChild(new ag.event.EventBusTopic("REVIEW_SUBMITTED"));ag.event.EventBus.UI._addChild(new ag.event.EventBusTopic("REVIEW_FAILED"));ag.event.EventBus.UI._addChild(new ag.event.EventBusTopic("PUBLISHED_FAVORITES"));})();}if(!dojo._hasResource["qi.event.OneShotSubscription"]){dojo._hasResource["qi.event.OneShotSubscription"]=true;dojo.provide("qi.event.OneShotSubscription");dojo.declare("qi.event.OneShotSubscription",null,{constructor:function(_266){var _267=_266.topic;var _268=_266.callbackFunction;var _269=_266.disconnectOnlyOnTrue;if(typeof (_269)=="undefined"){_269=false;}var _26a=dojo.subscribe(_267,function(){var _26b;try{_26b=_268.apply(null,arguments);}catch(e){console.warn("callback ",_268,"threw",e,e.message,e.stack,e.filename,e.lineNumber);}if(false==_269||(true==_269&&true==_26b)){dojo.unsubscribe(_26a);}});}});}if(!dojo._hasResource["ag.widget.user.RequireLoggedIn"]){dojo._hasResource["ag.widget.user.RequireLoggedIn"]=true;dojo.provide("ag.widget.user.RequireLoggedIn");dojo.declare("ag.widget.user.RequireLoggedIn",null,{constructor:function(_26c){if(LoginModule.isUserLoggedIn()){_26c.callbackFunction();}else{LoginModule.showLogin(_26c);AgEvent.LOGIN.subscribeOnce(_26c.callbackFunction);}}});}if(!dojo._hasResource["qi.widget.Captcha"]){dojo._hasResource["qi.widget.Captcha"]=true;dojo.provide("qi.widget.Captcha");dojo.declare("qi.widget.Captcha",[dijit._Widget,dijit._Templated],{templateString:"<span>\n    <div class=\"capcha\">\n       <div id=\"recaptcha_div\"></div>\n    </div>\n</span>\n",widgetsInTemplate:true,captchaUrl:"",captchaImg:{},postMixInProperties:function(){this.captchaRandom=this._captchaPreventCache();},_captchaPreventCache:function(){return "?"+new Date().getTime();},changeCaptcha:function(){Recaptcha.reload();},getValue:function(){return Recaptcha.get_response();}});}if(!dojo._hasResource["qi.widget.validation.ValidationMessages"]){dojo._hasResource["qi.widget.validation.ValidationMessages"]=true;dojo.provide("qi.widget.validation.ValidationMessages");dojo.declare("qi.widget.validation.ValidationMessages",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span><span dojoAttachPoint='containerNode'></span></span>",addMessage:function(_26d){dojo.addClass(this.domNode,"error");if(typeof (_26d)!="undefined"){if(_26d.domNode){this.addChild(_26d);}else{this.addChild(new qi.widget.ValidationMessage({message:_26d},document.createElement("span")));}}},addValidationMessage:function(_26e){dojo.deprecated(this.declaredClass+" addValidationMessage() - use addMessage() intead");this.addMessage(_26e);},clear:function(){dojo.removeClass(this.domNode,"error");var _26f=this.getChildren();dojo.forEach(_26f,dojo.hitch(this,function(_270){this.removeChild(_270);_270.destroyRecursive();}));},clearValidationMessages:function(){dojo.deprecated(this.declaredClass+" clearValidationMessages() - use clear() intead");this.clear();}});dojo.declare("qi.widget.ValidationMessage",[dijit._Widget,dijit._Templated],{templateString:"<div class='validation-message'>${message}</div>",message:""});}if(!dojo._hasResource["ag.widget.ratings.GameRatingModel"]){dojo._hasResource["ag.widget.ratings.GameRatingModel"]=true;dojo.provide("ag.widget.ratings.GameRatingModel");dojo.declare("ag.widget.ratings.GameRatingModel",dijit._Widget,{service:new ag.services.JsonServiceFactory("gameRatingService.save").method,gameId:0,postMixInProperties:function(){this.id="GameRatingModel_"+this.gameId;this.topic=this.id;this.ratingsDataPath=dojo.moduleUrl("agjson","ratings/");this.userGameRating=new ag.rating.UserGameRating(this.gameId);this.gameRatingTotal=new ag.widget.ratings.GameRatingTotal(this.gameId,this.ratingsDataPath);var self=this;this.userGameRating.loadCompleted.addCallback(function(){if(self.userGameRating.rated){self.gameRatingTotal.loadCompleted.addCallback(function(){if(self.gameRatingTotal.totalVotes==0){self.gameRatingTotal.reflectChangedVote(false,self.userGameRating.rating);self._onModelUpdated();}});self.gameRatingTotal.loadCompleted.addErrback(function(){self.gameRatingTotal.reflectChangedVote(false,self.userGameRating.rating);self._onModelUpdated();});}});},_onModelUpdated:function(){dojo.publish(this.topic,[{eventType:"model",caller:this}]);},setRating:function(_272){dojo.publish(this.topic,[{eventType:"processing",caller:this}]);if(LoginModule.isUserLoggedIn()&&(!this.userGameRating.rated||_272!=this.userGameRating.rating)){var self=this;var _274=this.service({uuid:LoginModule.getSessionUserUuid(),gameId:this.gameId,"rating":_272});_274.addCallback(dojo.hitch(this,function(){FacebookRegisterModule.facebookPostToWall("GameRating",this.gameId,_272);var _275=this.userGameRating.rated;this.userGameRating.reflectChangedVote(_272);this.gameRatingTotal.reflectChangedVote(_275,_272);this._onModelUpdated();}));_274.addErrback(dojo.hitch(this,function(){console.warn("problem recording vote",arguments);dojo.publish(this.topic,[{eventType:"votefailed",caller:this}]);}));}else{this._onModelUpdated();}},destroy:function(){this.userGameRating.destroy();delete this.userGameRating;ag.widget.ratings.GameRatingModel.superclass.destroy.apply(this,arguments);}});ag.widget.ratings.GameRatingModel.findByGameId=function(_276){var _277=ag.widget.ratings.GameRatingModel.getByGameId(_276);if(typeof (_277)=="undefined"){var span=document.createElement("span");dojo.body().appendChild(span);_277=new ag.widget.ratings.GameRatingModel({gameId:Number(_276)},span);}return _277;};ag.widget.ratings.GameRatingModel.modelExistsForGame=function(_279){var _27a=ag.widget.ratings.GameRatingModel.getByGameId(_279);return Boolean(typeof (_27a)!="undefined");};ag.widget.ratings.GameRatingModel.getByGameId=function(_27b){var _27c="GameRatingModel_"+_27b;return dijit.byId(_27c);};dojo.declare("ag.widget.ratings.GameRatingTotal",null,{constructor:function(_27d,_27e){_27d=""+_27d;var _27f=dojo.xhrGet({url:_27e+_27d,timeout:20000,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_27f.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_27f.addErrback(dojo.hitch(this,function(err){if(/.*404.*/.test(""+err.message)){this._fillFromServer({good:0,bad:0,gameId:_27d});this.loadCompleted.callback(this);}else{this.loadCompleted.errback(err);}}));},_fillFromServer:function(_282){dojo.mixin(this,_282);this._convertPropToNumber("good");this._convertPropToNumber("bad");this.totalVotes=this.good+this.bad;if(this.isRated()){this.goodPercent=Math.round((this.good/this.totalVotes)*100);this.badPercent=100-this.goodPercent;}else{this.goodPercent=0;this.badPercent=0;}},isRated:function(){return this.totalVotes>0;},_convertPropToNumber:function(prop){if(typeof (this[prop])=="string"){this[prop]=Number(this[prop]);}},isOverallGood:function(){return this.goodPercent>=this.badPercent;},reflectChangedVote:function(_284,_285){var _286={good:this.good,bad:this.bad};if(_285){if("G"==_285){++_286.good;if(_284&&_286.bad>0){--_286.bad;}}else{if("B"==_285){_286.bad+=1;if(_284&&_286.good>0){--_286.good;}}}this._fillFromServer(_286);this.loadCompleted=new dojo.Deferred();this.loadCompleted.callback(this);}}});}if(!dojo._hasResource["ag.widget.ratings.RateItForm"]){dojo._hasResource["ag.widget.ratings.RateItForm"]=true;dojo.provide("ag.widget.ratings.RateItForm");dojo.declare("ag.widget.ratings.RateItFormContainer",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class='ag_rateitform'><span dojoAttachPoint='content'></span></div>",gameId:0,content:{},postCreate:function(){this.model=ag.widget.ratings.GameRatingModel.findByGameId(this.gameId);this.model.gameRatingTotal.loadCompleted.addCallback(this,"_onLogOut");this._subscriptions=[AgEvent.LOGOUT.subscribe(bindContext(this,this._onLogOut)),dojo.subscribe(this.model.topic,this,"_onModelMessage")];this.model.userGameRating.loadCompleted.addCallback(this,"_onLoadUserGameRating");this.model.userGameRating.loadCompleted.addErrback(dojo.hitch(this,function(){console.warn("problem getting game rating",arguments);this._showAsRateIt();}));},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});ag.widget.ratings.RateItFormContainer.superclass.destroy.apply(this,arguments);},_getUserRating:function(){return this.model.userGameRating;},_onLogOut:function(){this._showAsRateIt();this._getUserRating().loadCompleted.addCallback(this,"_onLoadUserGameRating");},_onModelMessage:function(_288){if("model"==_288.eventType){this._onLoadUserGameRating();}else{if("processing"==_288.eventType){this._changeState(new ag.widget.ratings.Processing({gameId:this.gameId},this.content));}else{if("votefailed"==_288.eventType){this._changeState(new ag.widget.ratings.ProcessingFailed({gameId:this.gameId},this.content));}else{console.warn("Received unknown message type",arguments);}}}},_onLoadUserGameRating:function(){if(this._getUserRating().rated==true){this._showAsRated();}else{this._showAsRateIt();}},_showAsRateIt:function(){this._changeState(new ag.widget.ratings.RateItForm({gameId:this.gameId},this.content));},_showAsRated:function(){this._changeState(new ag.widget.ratings.AlreadyRatedItForm({gameId:this.gameId},this.content));}});dojo.declare("ag.widget.ratings.ReviewRateItFormContainer",[ag.widget.ratings.RateItFormContainer],{templateString:"<div class='reviews-rating'><span dojoAttachPoint='content'></span></div>",_onModelMessage:function(_289){if("model"==_289.eventType){this._onLoadUserGameRating();}}});dojo.declare("ag.widget.ratings.RateItForm",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"rating-rateit\">\n\t<div class=\"rateit-title\" id=\"rate-it-anchor\">Rate It!</div>\n\t<div class=\"rateit-good\">\n\t\t<a dojoAttachEvent=\"onclick:onClickGood\" href=\"#\">\n\t\t\t<div class=\"rating-thumb-up\"></div>\n\t\t\t<div class=\"rateit-good-text\">I like it!</div>\n\t\t</a>\n\t</div>\n\t<div class=\"rateit-bad\">\n\t\t<a dojoAttachEvent=\"onclick:onClickBad\" href=\"#\">\n\t\t\t<div class=\"rating-thumb-down\"></div>\n\t\t\t<div class=\"rateit-bad-text\">I don't like it!</div>\n\t\t</a>\n\t</div>\n</div>\n",gameId:0,onClickGood:function(e){e.preventDefault();this._setRating("G");},onClickBad:function(e){e.preventDefault();this._setRating("B");},_setRating:function(_28c){new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,function(){ag.widget.ratings.GameRatingModel.findByGameId(this.gameId).setRating(_28c);}),headerMessage:"<em>You must be logged in to access this feature.</em>"});}});dojo.declare("ag.widget.ratings.AlreadyRatedItForm",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"rating-alreadyrated\">\n\t<div class=\"rated-img\"><img src=\"/static/images/rated-check.png\"/></div>\n\t<div class=\"rated-title\" id=\"rate-it-anchor\">Rated!</div>\n\t<div class=\"you-rated\">You rated it:</div>\n\t<div class=\"your-rating\" dojoAttachPoint=\"yourRating\"></div>\n\t<div class=\"change\">(<a href=\"/Change\" dojoAttachEvent=\"onclick:onChangeRating\">change</a>)</div>\n</div>\n",postMixInProperties:function(){this.model=ag.widget.ratings.GameRatingModel.findByGameId(this.gameId);},postCreate:function(){if("G"==this.model.userGameRating.rating){dojo.removeClass(this.yourRating,"rating-thumb-down");dojo.addClass(this.yourRating,"rating-thumb-up");}else{dojo.removeClass(this.yourRating,"rating-thumb-up");dojo.addClass(this.yourRating,"rating-thumb-down");}},onChangeRating:function(e){e.preventDefault();this.getParent()._showAsRateIt();}});dojo.declare("ag.widget.ratings.Processing",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"rating-failed\">\n\t<div class=\"rateit-title\">Rating it...</div>\n\t<!-- Animated progress icon -->\n\t<div class=\"rating-process\"></div>\n</div>\n"});dojo.declare("ag.widget.ratings.ProcessingFailed",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"rating-failed\">\n    <div class=\"rateit-title\">Rate it</div>\n    <!-- Animated progress icon -->\n    <div class=\"rating-sorry\">We're sorry, but we're unable to record your vote at this time.</div>\n</div>\n"});}if(!dojo._hasResource["qi.validation.Result"]){dojo._hasResource["qi.validation.Result"]=true;dojo.provide("qi.validation.Result");dojo.declare("qi.validation.Result",null,{constructor:function(){this.fields={};this.messages=[];},addFieldMessage:function(key,_28f){if(this.hasFieldMessage(key)==false){this.fields[key]=_28f;}},addMessage:function(_290){this.messages.push(_290);},hasFieldMessage:function(key){return (typeof (this.fields[key])!="undefined");},hasFieldMessages:function(){for(var key in this.fields){return true;}return false;},hasMessages:function(){return (this.messages.length>0);},isValid:function(){return (this.hasFieldMessages()==false)&&(this.hasMessages()==false);}});}if(!dojo._hasResource["qi.validation.Validator"]){dojo._hasResource["qi.validation.Validator"]=true;dojo.provide("qi.validation.Validator");dojo.declare("qi.validation.Validator",null,{constructor:function(_293){this._rules=_293.rules;},validate:function(_294){var _295=new qi.validation.Result();for(var i=0;i<this._rules.length;i++){var rule=this._rules[i];rule.validate(_294,_295);}return _295;}});}if(!dojo._hasResource["qi.validation.Regexp"]){dojo._hasResource["qi.validation.Regexp"]=true;dojo.provide("qi.validation.Regexp");dojo.declare("qi.validation.Regexp",null,{constructor:function(key,_299,_29a){this._key=key;this._message=_299;this._regexp=_29a;},validate:function(_29b,_29c){var _29d=_29b[this._key];if(this._regexp.test(_29d)==false){_29c.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["qi.validation.InverseRegexp"]){dojo._hasResource["qi.validation.InverseRegexp"]=true;dojo.provide("qi.validation.InverseRegexp");dojo.declare("qi.validation.InverseRegexp",null,{constructor:function(key,_29f,_2a0){this._key=key;this._message=_29f;this._regexp=_2a0;},validate:function(_2a1,_2a2){var _2a3=_2a1[this._key];if(this._regexp.test(_2a3)==true){_2a2.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["qi.validation.Length"]){dojo._hasResource["qi.validation.Length"]=true;dojo.provide("qi.validation.Length");dojo.declare("qi.validation.Length",null,{constructor:function(key,min,max,_2a7){this._key=key;this._min=min;this._max=max;this._message=_2a7;},validate:function(_2a8,_2a9){var _2aa=_2a8[this._key];if(_2aa==null){_2a9.addFieldMessage(this._key,this._message);}else{_2aa=_2aa.toString();if((_2aa.length<this._min)||(_2aa.length>this._max)){_2a9.addFieldMessage(this._key,this._message);}}}});}if(!dojo._hasResource["qi.widget.TopicSubscription"]){dojo._hasResource["qi.widget.TopicSubscription"]=true;dojo.provide("qi.widget.TopicSubscription");dojo.declare("qi.widget.TopicSubscription",[dijit._Widget],{constructor:function(){this._subscriptions=[];},subscribe:function(){this._subscriptions.push(dojo.subscribe.apply(dojo,arguments));},addSubscription:function(_2ab){this._subscriptions.push(_2ab);return this;},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});this.inherited("destroy",arguments);}});}if(!dojo._hasResource["qi.validation.ResultDispatcher"]){dojo._hasResource["qi.validation.ResultDispatcher"]=true;dojo.provide("qi.validation.ResultDispatcher");dojo.declare("qi.validation.ResultDispatcher",null,{constructor:function(){this.callbackMap={};this.clearCallbackMap={};this.callbacks=[];this.clearCallbacks=[];this.actionMappings=[];},getCallbackMap:function(key){if(typeof (this.callbackMap[key])=="undefined"){this.callbackMap[key]=[];}return this.callbackMap[key];},getClearCallbackMap:function(key){if(typeof (this.clearCallbackMap[key])=="undefined"){this.clearCallbackMap[key]=[];}return this.clearCallbackMap[key];},addMappedCallback:function(key,cbfn){this.getCallbackMap(key).push(cbfn);return this;},addClearMappedCallback:function(key,cbfn){this.getClearCallbackMap(key).push(cbfn);return this;},addCallback:function(cbfn){this.callbacks.push(cbfn);return this;},addClearCallback:function(cbfn){this.clearCallbacks.push(cbfn);return this;},addActionMapping:function(_2b5,_2b6){this.actionMappings[_2b5]=_2b6;},dispatch:function(_2b7){var _2b8=new qi.validation.Result();if(typeof (_2b7.fields)!="undefined"&&typeof (_2b7.messages)!="undefined"){_2b8=_2b7;}else{if(typeof (_2b7.errorObject)!="undefined"&&typeof (_2b7.errorObject.error)!="undefined"&&typeof (_2b7.errorObject.error.fields)!="undefined"&&typeof (_2b7.errorObject.error.messages)!="undefined"){_2b8.fields=_2b7.errorObject.error.fields;_2b8.messages=_2b7.errorObject.error.messages;}else{if(/bad http response code/.test(String(_2b7.message))){_2b8.messages.push("Unable to process request, please try again.");}else{console.debug("no result in response",_2b7,_2b7.message);}}}var _2b9;for(_2b9 in _2b8.fields){var _2ba;if(dojo.isString(_2b8.fields[_2b9])==false){_2ba=this.actionMappings[_2b9](_2b8.fields[_2b9]);}else{_2ba=_2b8.fields[_2b9];}var _2bb=this.getCallbackMap(_2b9);if(0==_2bb.length){console.warn("No callback to handle field message for ",_2b9," (",_2b8.fields[_2b9],")");}dojo.forEach(_2bb,function(cbfn){cbfn(_2ba);});}var _2ba;for(_2ba in _2b8.messages){dojo.forEach(this.callbacks,function(cbfn){cbfn(_2b8.messages[_2ba]);});}},clearMessages:function(){var name;for(name in this.clearCallbackMap){dojo.forEach(this.clearCallbackMap[name],function(cbfn){cbfn();});}dojo.forEach(this.clearCallbacks,function(cbfn){cbfn();});},autowire:function(_2c1){var _2c2=_2c1.containerWidget;var _2c3=_2c1.names;var _2c4=_2c1.genericCallback;var _2c5=_2c1.genericClearCallback;var map={};dojo.forEach(_2c2.getDescendants(),function(_2c7){if(!_2c7.name){return;}else{var _2c8=map[_2c7.name]||(map[_2c7.name]=[]);_2c8.push(_2c7);}});var _2c9=dojo.hitch(this,function(name){var _2cb=dojo.hitch(this,function(_2cc){var _2cd=_2c2[name+"_messages"];if(_2cd){_2cc.messagesWidget=_2cd;if(typeof (_2cc.makeValidationCallback)=="function"){this.addMappedCallback(name,_2cc.makeValidationCallback());}else{this.addMappedCallback(name,_2c4);}if(typeof (_2cc.makeClearValidationCallback)=="function"){this.addClearMappedCallback(name,_2cc.makeClearValidationCallback());}else{this.addClearMappedCallback(name,_2c5);}}else{console.debug("warning: missing messages widget "+name+"_messages");}});var _2ce=map[name];if(_2ce){dojo.forEach(_2ce,_2cb);}else{console.debug("warning: missing widget "+name);}});dojo.forEach(_2c3,_2c9);}});}if(!dojo._hasResource["qi.validation.Required"]){dojo._hasResource["qi.validation.Required"]=true;dojo.provide("qi.validation.Required");dojo.declare("qi.validation.Required",null,{constructor:function(key,_2d0){this._key=key;this._message=_2d0;},validate:function(_2d1,_2d2){var _2d3=_2d1[this._key];if((_2d3==null)||(_2d3=="")){_2d2.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["ag.widget.validation.ReviewValidationRules"]){dojo._hasResource["ag.widget.validation.ReviewValidationRules"]=true;dojo.provide("ag.widget.validation.ReviewValidationRules");dojo.declare("ag.widget.validation.ReviewValidationRules",null,{constructor:function(){this.rules=[new qi.validation.Regexp("review","Please write a review",/.*[^\s].*/),new qi.validation.Length("review",0,2000,"Your review cannot be longer than 2000 characters"),new qi.validation.InverseRegexp("review","Your review cannot be posted because it includes HTML, an email address",/.*<[^>]+>.*|.*[^\s]@[^\s].*/i),new qi.validation.Required("rating","Please rate the game first",/G|R/)];}});}if(!dojo._hasResource["ag.widget.gamereviews.Model"]){dojo._hasResource["ag.widget.gamereviews.Model"]=true;dojo.provide("ag.widget.gamereviews.Model");dojo.declare("ag.widget.gamereviews.ReadOnlyReviewsModelBase",null,{constructor:function(){this.topic=String(this.declaredClass);this._pages=[];this.displayingPage=1;},getTotalPages:function(){if(typeof (this.totalPages)=="undefined"){return 1;}return this.totalPages;},loadNextPage:function(){if(this.displayingPage<this.getTotalPages()){++this.displayingPage;this.loadPage(this.displayingPage);}},loadPreviousPage:function(){if(this.displayingPage>1){--this.displayingPage;this.loadPage(this.displayingPage);}},getPage:function(_2d4){var idx=_2d4-1;if(this._pages.length<_2d4||typeof (this._pages[idx])=="undefined"){this._pages[idx]=this._makePageModel(_2d4);if(this._pages[idx]==null||typeof (this._pages[idx])=="undefined"){throw new Error("page model problem");}}return this._pages[idx];},_makePageModel:function(_2d6){throw new Error("Subclass must override _makePageModel");},loadPage:function(_2d7,_2d8){var page=this.getPage(_2d7);page.loadCompleted.addCallback(dojo.hitch(this,function(){this.totalPages=page.totalPages;if(_2d8){this.totalPages+=_2d8;}if(1==_2d7){this._hasReviews=page.hasReviews();}dojo.publish(this.topic,[{eventType:"pageLoaded",pageNum:_2d7,page:page}]);}));page.loadCompleted.addErrback(dojo.hitch(this,function(){dojo.publish(this.topic,[{eventType:"pageLoadFailed",pageNum:_2d7}]);}));},hasReviews:function(){return this._hasReviews;}});dojo.declare("ag.widget.gamereviews.GameReviewModelPageUrl",null,{dataPath:dojo.moduleUrl("agjson"),TYPES:{home:"recentReviews/frontPage",recent:"recentReviews"},getUrlForGame:function(_2da,page){var _2da=String(_2da);return this.dataPath+"reviews/"+_2da+"?page="+page;},getUrlForType:function(type,page){return this.dataPath+this.TYPES[type]+"?page="+page;}});dojo.declare("ag.widget.gamereviews.GameReviewsModelPageBase",null,{constructor:function(page,url){var _2e0=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_2e0.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_2e0.addErrback(dojo.hitch(this,function(err){if(/.*404.*/.test(""+err.message)){dojo.mixin(this,{page:1,reviews:[],totalPages:1});this.loadCompleted.callback(this);}else{this.loadCompleted.errback(err);}}));},_fillFromServer:function(_2e3){dojo.mixin(this,_2e3);},hasReviews:function(){return typeof (this.reviews)!="undefined"&&0!=this.reviews.length;}});dojo.declare("ag.widget.gamereviews.Model",[dijit._Widget,ag.widget.gamereviews.ReadOnlyReviewsModelBase],{gameId:0,_save:new ag.services.JsonServiceFactory("gameReviewService.save").method,_delete:new ag.services.JsonServiceFactory("gameReviewService.deleteMine").method,postMixInProperties:function(){this.id="GameReviewModel_"+this.gameId;this.topic=this.id;},startup:function(){this.getPage(1);},_makePageModel:function(_2e4){return new ag.widget.gamereviews.GameReviewsModelPageBase(_2e4,new ag.widget.gamereviews.GameReviewModelPageUrl().getUrlForGame(this.gameId,_2e4));},postReview:function(data){if(LoginModule.isUserLoggedIn()){ag.user.LoggedInUser.mixinSessionUserUuid(data);data.gameId=parseInt(this.gameId);var _2e6=this._save(data);_2e6.addCallback(dojo.hitch(this,function(_2e7){FacebookRegisterModule.facebookPostToWall("GameReview",data.gameId,data.review);this.getPage(1).loadCompleted.addCallback(dojo.hitch(this,function(){this.loadPage(1);}));dojo.publish(this.topic,[{eventType:"saved",data:data,result:_2e7}]);}));_2e6.addErrback(dojo.hitch(this,function(err){dojo.publish(this.topic,[{eventType:"failure","error":err}]);}));}},deleteMyReview:function(_2e9){if(LoginModule.isUserLoggedIn()){var data={reviewId:_2e9};ag.user.LoggedInUser.mixinSessionUserUuid(data);var _2eb=this._delete(data);_2eb.addCallback(dojo.hitch(this,function(_2ec){dojo.publish(this.topic,[{eventType:"deleted",data:data}]);var page=this.getPage(this.displayingPage);page.loadCompleted.addCallback(dojo.hitch(this,function(){page.reviews=dojo.filter(page.reviews,function(elt,idx,_2f0){return Number(elt.reviewId)!=Number(_2e9);});if(page.reviews.length==0&&this.getTotalPages()!=1){if(this.displayingPage<=this.getTotalPages()){--this.totalPages;this._pages=dojo.filter(this._pages,function(elt,idx,_2f3){return elt!=page;});if(this.displayingPage>this.getTotalPages()){this.displayingPage=this.getTotalPages();}}}this.loadPage(this.displayingPage,-1);}));}));_2eb.addErrback(dojo.hitch(this,function(err){dojo.publish(this.topic,[{eventType:"failure","error":err}]);}));}else{dojo.publish(this.topic,[{eventType:"failure","error":"You must be logged in to delete a review"}]);}}});ag.widget.gamereviews.Model.findByGameId=function(_2f5){var _2f6="GameReviewModel_"+_2f5;var _2f7=dijit.byId(_2f6);if(typeof (_2f7)=="undefined"){var span=document.createElement("span");dojo.body().appendChild(span);_2f7=new ag.widget.gamereviews.Model({gameId:_2f5},span);}return _2f7;};}if(!dojo._hasResource["ag.widget.gamereviews.PostButtonContainer"]){dojo._hasResource["ag.widget.gamereviews.PostButtonContainer"]=true;dojo.provide("ag.widget.gamereviews.PostButtonContainer");dojo.declare("ag.widget.gamereviews.PostButtonContainer",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer,dijit._Contained],{templateString:"<span class='review-post-container'></span>",states:{READY:"ready",BUSY:"busy"},currentState:"",subscriptions:new qi.widget.TopicSubscription(),postCreate:function(){this.currentState=this.states.READY;this.subscriptions.addSubscription(ag.event.EventBus.UI.REVIEW_SUBMITTED.subscribe(this,this._onReviewSubmitted));this.subscriptions.addSubscription(ag.event.EventBus.UI.POSTING_REVIEW.subscribe(this,this._onPostingReview));this.subscriptions.addSubscription(ag.event.EventBus.UI.REVIEW_FAILED.subscribe(this,this._onReviewFailed));this._changeState(this._getPostButton());},_getPostButton:function(){return new ag.widget.gamereviews.PostButton({},document.createElement("span"));},_getPostingButton:function(){return new ag.widget.gamereviews.PostingButton({},document.createElement("span"));},_getPostedButton:function(){return new ag.widget.gamereviews.PostedButton({},document.createElement("span"));},_onClick:function(e){e.preventDefault();if(this.currentState==this.states.READY){this.currentState=this.states.BUSY;ag.event.EventBus.UI.POSTING_REVIEW.publish();this.getParent()._onSubmitReview(e);}},_onPostingReview:function(){this.currentState=this.states.BUSY;this._changeState(this._getPostingButton());},_onReviewSubmitted:function(){this.currentState=this.states.BUSY;this._changeState(this._getPostedButton());},_onReviewFailed:function(){this.currentState=this.states.READY;this._changeState(this._getPostButton());}});dojo.declare("ag.widget.gamereviews.PostButton",[dijit._Widget,dijit._Templated,dijit._Contained],{cssClass:"review-post",cursor:"onmouseover='this.style.cursor=\"pointer\"'",templateString:"<span class='${cssClass}'><input type='submit' name='post' value='' ${cursor} dojoAttachEvent='onclick:_onClick'></input></span>",_onClick:function(e){e.preventDefault();this.getParent()._onClick(e);}});dojo.declare("ag.widget.gamereviews.PostingButton",[ag.widget.gamereviews.PostButton],{cssClass:"review-posting",cursor:""});dojo.declare("ag.widget.gamereviews.PostedButton",[ag.widget.gamereviews.PostButton],{cssClass:"review-posted",cursor:""});dojo.declare("ag.widget.gamereviews.SubmitButtonContainer",[ag.widget.gamereviews.PostButtonContainer],{_getPostButton:function(){return new ag.widget.gamereviews.SubmitButton({},document.createElement("span"));},_getPostingButton:function(){return new ag.widget.gamereviews.SubmitButton({},document.createElement("span"));},_getPostedButton:function(){return new ag.widget.gamereviews.SubmitButton({},document.createElement("span"));}});dojo.declare("ag.widget.gamereviews.SubmitButton",[ag.widget.gamereviews.PostButton],{cssClass:"review-captcha-submit"});}if(!dojo._hasResource["ag.widget.gamereviews.CancelButtonContainer"]){dojo._hasResource["ag.widget.gamereviews.CancelButtonContainer"]=true;dojo.provide("ag.widget.gamereviews.CancelButtonContainer");dojo.declare("ag.widget.gamereviews.CancelButtonContainer",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer,dijit._Contained],{templateString:"<span class='review-cancel-container'></span>",states:{READY:"ready",BUSY:"busy"},currentState:"",subscriptions:new qi.widget.TopicSubscription(),postCreate:function(){this.currentState=this.states.READY;this._changeState(new ag.widget.gamereviews.CancelButton({},document.createElement("span")));},_onClick:function(e){e.preventDefault();this.getParent()._onCancel(e);}});dojo.declare("ag.widget.gamereviews.CancelButton",[dijit._Widget,dijit._Templated,dijit._Contained],{cssClass:"review-cancel",cursor:"onmouseover='this.style.cursor=\"pointer\"'",templateString:"<span class='${cssClass}'><input type='submit' name='cancel' value='' ${cursor} dojoAttachEvent='onclick:_onClick'></input></span>",_onClick:function(e){e.preventDefault();this.getParent()._onClick(e);}});}if(!dojo._hasResource["ag.widget.gamereviews.GameReviewCaptcha"]){dojo._hasResource["ag.widget.gamereviews.GameReviewCaptcha"]=true;dojo.provide("ag.widget.gamereviews.GameReviewCaptcha");dojo.declare("ag.widget.gamereviews.GameReviewCaptcha",[qi.widget.Captcha],{templateString:"<span>\n    <div id=\"recaptcha_div_review\"></div>\n</span>\n",postCreate:function(){$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js",function(){Recaptcha.create("6Lc_SAcAAAAAAGx9bjOU-srubELeT3EyyHR5S9sp","recaptcha_div_review",{theme:"red",callback:function(){$("#recaptcha_div_review #recaptcha_response_field").attr({dojoType:"qi.widget.ValidationTextbox",dojoAttachPoint:"recaptcha",required:"true"});Recaptcha.focus_response_field();}});});}});}if(!dojo._hasResource["ag.widget.gamereviews.GameReviewInput"]){dojo._hasResource["ag.widget.gamereviews.GameReviewInput"]=true;dojo.provide("ag.widget.gamereviews.GameReviewInput");dojo.declare("ag.widget.gamereviews.GameReviewInput",[dijit._Widget,dijit._Templated,dijit._Container],{widgetsInTemplate:true,templateString:"<div class=\"review-submit\">\n\t<div class=\"review-submit-title\">Review This Game:</div>\n\t<div dojoAttachPoint=\"inputRow\">\n\t\t<span class=\"gr-you-rated\" dojoType=\"ag.widget.ratings.ReviewRateItFormContainer\"\n\t\t\tgameId=\"${gameId}\"></span>\n\t\t<div dojoAttachPoint=\"messages\" dojoType=\"qi.widget.validation.ValidationMessages\"></div>\n\t\t<form action=\"ignored\">\n\t\t\t<textarea \n\t\t\tdojoAttachPoint=\"reviewInput\"\n\t\t\tdojoAttachEvent=\"onfocus:_onReviewInputFocus\"\n\t\t\tdojoAttachEvent=\"onblur:_onReviewInputBlur\">${hintText}</textarea>\n\t\t\t<br/>\n\t\t\t<span class=\"review-inputs\">\n\t\t\t\t<span dojoType=\"ag.widget.gamereviews.PostButtonContainer\"></span>\n\t\t\t\t<span dojoType=\"ag.widget.gamereviews.CancelButtonContainer\"></span>\n\t\t\t</span>\n\t\t</form>\n\t\t<span dojoAttachPoint=\"subscriptions\" dojoType=\"qi.widget.TopicSubscription\"></span>\n\t</div>\n\t<div class=\"review-captcha\" dojoAttachPoint=\"captchaRow\">\n\t\t<span dojoAttachPoint=\"captchaPlaceholder\"></span>\n\t\t<span\n\t\t  class=\"review-captcha-message\"\n\t\t  dojoType=\"qi.widget.validation.ValidationMessages\"\n\t\t  dojoAttachPoint=\"captcha_messages\"></span>\n\t\t<div class=\"review-captcha-heading\">\n\t\t\tContent Limit Exceeded\n\t\t</div>\n\t\t<div class=\"review-captcha-text\">\n            <div id=\"reviewCaptchaError\"></div>\n\t\t\tYou have recently posted<br />\n            several comments.\n\t\t\t<br /><br />\n\t\t\tEnter the code to continue posting.<br />\n            <span dojoType=\"ag.widget.gamereviews.SubmitButtonContainer\"></span>\n\t\t</div>\n\t</div>\n</div>\n",hintText:"Type your review here",reviewInput:{},messages:{},gameId:0,captchaVisible:false,captchaRow:{},captchaPlaceholder:{},captchaUrl:dojo.moduleUrl("agdynamic","captcha"),postedReview:false,_maxInputLength:2000,postCreate:function(){var cb=dojo.hitch(this.messages,"addMessage");this.validationResultDispatcher=new qi.validation.ResultDispatcher().addMappedCallback("rating",cb).addMappedCallback("review",cb).addMappedCallback("captcha",dojo.hitch(this,"_onCaptcha")).addCallback(cb);this.validationResultDispatcher.addActionMapping("review",dojo.hitch(this,"_reviewAction"));this.reviewModel=ag.widget.gamereviews.Model.findByGameId(this.gameId);this.subscriptions.subscribe(this.reviewModel.topic,dojo.hitch(this,"_onModelMesage"));},_validator:new qi.validation.Validator({rules:new ag.widget.validation.ReviewValidationRules().rules}),_reviewAction:function(_2fe){if(_2fe.action=="REVIEW_IS_BEING_PROCESSED"){this._hideCaptcha();}},_showCaptcha:function(){if(typeof (this.captcha)=="undefined"){this.captcha=new ag.widget.gamereviews.GameReviewCaptcha({captchaUrl:this.captchaUrl},this.captchaPlaceholder);}this.captchaVisible=true;this.captchaRow.style.display="block";},_hideCaptcha:function(){this.captchaVisible=false;this.captchaRow.style.display="none";},_onCaptcha:function(_2ff){ag.event.EventBus.UI.REVIEW_FAILED.publish();if(this.postedReview){if(this.captchaVisible){$("#reviewCaptchaError").html("Please enter the correct code.");this.captcha.changeCaptcha();}else{this._showCaptcha();}}else{this.captchaVisible=true;dojo.addClass(this.domNode,"dispnone");}},_onReviewInputFocus:function(e){if(this.hintText==this.reviewInput.value){this.reviewInput.value="";}},_onReviewInputBlur:function(e){if(/^\s*$/.test(this.reviewInput.value)){this._disableTextareaMonitorAndPaste(this.hintText);}},_onSubmitReview:function(e){e.preventDefault();this._onReviewInputFocus();this.messages.clear();this.captcha_messages.clear();this.ratingModel=ag.widget.ratings.GameRatingModel.findByGameId(this.gameId);this.subscriptions.subscribe(this.ratingModel.topic,dojo.hitch(this,"_onRatedGame"));var data={review:this.reviewInput.value,rating:this.ratingModel.userGameRating.rating};if(this.captchaVisible){data.recaptcha_response_field=$("#recaptcha_div_review #recaptcha_response_field").val();data.recaptcha_challenge_field=$("#recaptcha_div_review #recaptcha_challenge_field").val();}var _304=this._validator.validate(data);if(_304.isValid()){this.postedReview=true;this.reviewModel.postReview(data);ag.event.EventBus.UI.REVIEW_SUBMITTED.publish();}else{facebookPostReviewOnly=true;ag.event.EventBus.UI.REVIEW_FAILED.publish();this.validationResultDispatcher.dispatch(_304);}},_onModelMesage:function(msg){if(msg.eventType&&"failure"==msg.eventType){this.messages.clear();if(true==this.postedReview){this.validationResultDispatcher.dispatch(msg["error"]);}this._updateAndDisableTextarea();}else{if(msg.eventType&&"saved"==msg.eventType){this.messages.clear();this._updateAndDisableTextarea(msg.data.review);this._hideCaptcha();if(this.postedReview){dojo.removeClass(this.domNode,"dispnone");}}}},_onCancel:function(e){e.preventDefault();if(!this.reviewInput.getAttribute("disabled")){this._disableTextareaMonitorAndPaste(this.hintText);}this.messages.clear();},_updateAndDisableTextarea:function(_307){if(null!=_307){this._disableTextareaMonitorAndPaste(_307);}this.reviewInput.setAttribute("disabled","true");if(dojo.isIE){dojo.addClass(this.reviewInput,"disabled");}},_onRatedGame:function(msg){if(this.ratingModel.topic==msg.caller.topic){this.messages.clear();}},_disableTextareaMonitorAndPaste:function(_309){this.reviewInput.value=_309;}});dojo.declare("ag.widget.gamereviews.TopGameReviewInput",ag.widget.gamereviews.GameReviewInput,{_onCancel:function(e){e.preventDefault();if(!this.reviewInput.getAttribute("disabled")){this._disableTextareaMonitorAndPaste(this.hintText);}this.messages.clear();dojo.addClass(this.domNode,"dispnone");},show:function(){if(!this.captchaVisible||this.postedReview){dojo.removeClass(this.domNode,"dispnone");}}});}if(!dojo._hasResource["dojo.date"]){dojo._hasResource["dojo.date"]=true;dojo.provide("dojo.date");dojo.date.getDaysInMonth=function(_30b){var _30c=_30b.getMonth();var days=[31,28,31,30,31,30,31,31,30,31,30,31];if(_30c==1&&dojo.date.isLeapYear(_30b)){return 29;}return days[_30c];};dojo.date.isLeapYear=function(_30e){var year=_30e.getFullYear();return !(year%400)||(!(year%4)&&!!(year%100));};dojo.date.getTimezoneName=function(_310){var str=_310.toString();var tz="";var _313;var pos=str.indexOf("(");if(pos>-1){tz=str.substring(++pos,str.indexOf(")"));}else{var pat=/([A-Z\/]+) \d{4}$/;if((_313=str.match(pat))){tz=_313[1];}else{str=_310.toLocaleString();pat=/ ([A-Z\/]+)$/;if((_313=str.match(pat))){tz=_313[1];}}}return (tz=="AM"||tz=="PM")?"":tz;};dojo.date.compare=function(_316,_317,_318){_316=new Date(Number(_316));_317=new Date(Number(_317||new Date()));if(_318!=="undefined"){if(_318=="date"){_316.setHours(0,0,0,0);_317.setHours(0,0,0,0);}else{if(_318=="time"){_316.setFullYear(0,0,0);_317.setFullYear(0,0,0);}}}if(_316>_317){return 1;}if(_316<_317){return -1;}return 0;};dojo.date.add=function(date,_31a,_31b){var sum=new Date(Number(date));var _31d=false;var _31e="Date";switch(_31a){case "day":break;case "weekday":var days,_320;var mod=_31b%5;if(!mod){days=(_31b>0)?5:-5;_320=(_31b>0)?((_31b-5)/5):((_31b+5)/5);}else{days=mod;_320=parseInt(_31b/5);}var strt=date.getDay();var adj=0;if(strt==6&&_31b>0){adj=1;}else{if(strt==0&&_31b<0){adj=-1;}}var trgt=strt+days;if(trgt==0||trgt==6){adj=(_31b>0)?2:-2;}_31b=(7*_320)+days+adj;break;case "year":_31e="FullYear";_31d=true;break;case "week":_31b*=7;break;case "quarter":_31b*=3;case "month":_31d=true;_31e="Month";break;case "hour":case "minute":case "second":case "millisecond":_31e="UTC"+_31a.charAt(0).toUpperCase()+_31a.substring(1)+"s";}if(_31e){sum["set"+_31e](sum["get"+_31e]()+_31b);}if(_31d&&(sum.getDate()<date.getDate())){sum.setDate(0);}return sum;};dojo.date.difference=function(_325,_326,_327){_326=_326||new Date();_327=_327||"day";var _328=_326.getFullYear()-_325.getFullYear();var _329=1;switch(_327){case "quarter":var m1=_325.getMonth();var m2=_326.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_328*4);_329=q2-q1;break;case "weekday":var days=Math.round(dojo.date.difference(_325,_326,"day"));var _32f=parseInt(dojo.date.difference(_325,_326,"week"));var mod=days%7;if(mod==0){days=_32f*5;}else{var adj=0;var aDay=_325.getDay();var bDay=_326.getDay();_32f=parseInt(days/7);mod=days%7;var _334=new Date(_325);_334.setDate(_334.getDate()+(_32f*7));var _335=_334.getDay();if(days>0){switch(true){case aDay==6:adj=-1;break;case aDay==0:adj=0;break;case bDay==6:adj=-1;break;case bDay==0:adj=-2;break;case (_335+mod)>5:adj=-2;}}else{if(days<0){switch(true){case aDay==6:adj=0;break;case aDay==0:adj=1;break;case bDay==6:adj=2;break;case bDay==0:adj=1;break;case (_335+mod)<0:adj=2;}}}days+=adj;days-=(_32f*2);}_329=days;break;case "year":_329=_328;break;case "month":_329=(_326.getMonth()-_325.getMonth())+(_328*12);break;case "week":_329=parseInt(dojo.date.difference(_325,_326,"day")/7);break;case "day":_329/=24;case "hour":_329/=60;case "minute":_329/=60;case "second":_329/=1000;case "millisecond":_329*=_326.getTime()-_325.getTime();}return Math.round(_329);};}if(!dojo._hasResource["ag.datetime.Duration"]){dojo._hasResource["ag.datetime.Duration"]=true;dojo.provide("ag.datetime.Duration");(function(){dojo.declare("ag.datetime.Duration",null,{constructor:function(_336,end){this.start=_336;this.end=end||new Date();this._allowFuture=true;},disallowFuture:function(){this._allowFuture=false;return this;},asReadableString:function(){var _338=dojo.date.compare(this.start,this.end);var _339;var _33a=this.start;var end=this.end;if(_338<=0){_339=" ago";}else{if(!this._allowFuture){return "moments ago";}else{_339=" from now";_33a=this.end;end=this.start;}}var _33c=date_difference(_33a,end,"month");var _33d=date_difference(_33a,end,"week");var days=date_difference(_33a,end,"day");var _33f=date_difference(_33a,end,"hour");var mins=date_difference(_33a,end,"minute");if(_33c>6){return "&gt; 6 months"+_339;}var secs=date_difference(_33a,end,"second");if(_33c>=2){return ""+_33c+" months"+_339;}if(1==_33c&&days>=30){return "1 month"+_339;}if(_33d>1){return ""+_33d+" weeks"+_339;}if(1==_33d&&days>=7){return "1 week"+_339;}if(days>1){return ""+days+" days"+_339;}if(1==days&&_33f>=24){return "1 day"+_339;}if(_33f>1){return ""+_33f+" hours"+_339;}if(1==_33f&&mins>=60){return "1 hour"+_339;}if(60==mins){return "1 hour"+_339;}if(mins>1){return ""+mins+" minutes"+_339;}if(1==mins){return "1 minute"+_339;}if(secs>1){return ""+secs+" seconds"+_339;}if(1==secs){return "1 second"+_339;}return "now";}});date_difference=function(_342,_343,_344){_343=_343||new Date();_344=_344||"day";var _345=_343.getFullYear()-_342.getFullYear();var _346=1;switch(_344){case "quarter":var m1=_342.getMonth();var m2=_343.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_345*4);_346=q2-q1;break;case "weekday":var days=Math.round(date_difference(_342,_343,"day"));var _34c=parseInt(date_difference(_342,_343,"week"));var mod=days%7;if(mod==0){days=_34c*5;}else{var adj=0;var aDay=_342.getDay();var bDay=_343.getDay();_34c=parseInt(days/7);mod=days%7;var _351=new Date(_342);_351.setDate(_351.getDate()+(_34c*7));var _352=_351.getDay();if(days>0){switch(true){case aDay==6:adj=-1;break;case aDay==0:adj=0;break;case bDay==6:adj=-1;break;case bDay==0:adj=-2;break;case (_352+mod)>5:adj=-2;}}else{if(days<0){switch(true){case aDay==6:adj=0;break;case aDay==0:adj=1;break;case bDay==6:adj=2;break;case bDay==0:adj=1;break;case (_352+mod)<0:adj=2;}}}days+=adj;days-=(_34c*2);}_346=days;break;case "year":_346=_345;break;case "month":_346=(_343.getMonth()-_342.getMonth())+(_345*12);break;case "week":_346=parseInt(date_difference(_342,_343,"day")/7);break;case "day":_346/=24;case "hour":_346/=60;case "minute":_346/=60;case "second":_346/=1000;case "millisecond":_346*=_343.getTime()-_342.getTime();}return Math.floor(_346);};})();}if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.dnd._copyKey=navigator.appVersion.indexOf("Macintosh")<0?"ctrlKey":"metaKey";dojo.dnd.getCopyKeyState=function(e){return e[dojo.dnd._copyKey];};dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};}if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.dnd.getViewport=function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla){return {w:dd.clientWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&w.innerWidth){return {w:w.innerWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&dd&&dd.clientWidth){return {w:dd.clientWidth,h:dd.clientHeight};}else{if(b.clientWidth){return {w:b.clientWidth,h:b.clientHeight};}}}}return null;};dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.dnd.getViewport(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo._abs(n,true);b.l+=t.x+n.scrollLeft;b.t+=t.y+n.scrollTop;var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-b.l,ry=e.pageY-b.t,dx=0,dy=0;if(rx>0&&rx<b.w){if(rx<w){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(rx>b.w-w){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}}if(ry>0&&ry<b.h){if(ry<h){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(ry>b.h-h){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}}var _36a=n.scrollLeft,_36b=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_36a!=n.scrollLeft||_36b!=n.scrollTop){return;}}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};}if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(node,e,host){this.node=dojo.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=host,d=node.ownerDocument,_371=dojo.connect(d,"onmousemove",this,"onFirstMove");this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo,"stopEvent"),dojo.connect(d,"onselectstart",dojo,"stopEvent"),_371];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY});},onMouseUp:function(e){if(this.mouseButton==e.button){this.destroy();}},onFirstMove:function(){this.node.style.position="absolute";var m=dojo.marginBox(this.node);m.l-=this.marginBox.l;m.t-=this.marginBox.t;this.marginBox=m;this.host.onFirstMove(this);dojo.disconnect(this.events.pop());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=null;}});}if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(node,_378){this.node=dojo.byId(node);if(!_378){_378={};}this.handle=_378.handle?dojo.byId(_378.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_378.delay>0?_378.delay:0;this.skip=_378.skip;this.mover=_378.mover?_378.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_379,node){return new dojo.dnd.Moveable(node,_379);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"));this.events.push(dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{new this.mover(this.node,e,this);}dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);new this.mover(this.node,e,this);}dojo.stopEvent(e);},onMouseUp:function(e){dojo.disconnect(this.events.pop());dojo.disconnect(this.events.pop());},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onMoveStart:function(_37f){dojo.publish("/dnd/move/start",[_37f]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_380){dojo.publish("/dnd/move/stop",[_380]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_381){},onMove:function(_382,_383){this.onMoving(_382,_383);dojo.marginBox(_382.node,_383);this.onMoved(_382,_383);},onMoving:function(_384,_385){},onMoved:function(_386,_387){}});}if(!dojo._hasResource["dojo.dnd.move"]){dojo._hasResource["dojo.dnd.move"]=true;dojo.provide("dojo.dnd.move");dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,markupFactory:function(_388,node){return new dojo.dnd.move.constrainedMoveable(node,_388);},constructor:function(node,_38b){if(!_38b){_38b={};}this.constraints=_38b.constraints;this.within=_38b.within;},onFirstMove:function(_38c){var c=this.constraintBox=this.constraints.call(this,_38c),m=_38c.marginBox;c.r=c.l+c.w-(this.within?m.w:0);c.b=c.t+c.h-(this.within?m.h:0);},onMove:function(_38f,_390){var c=this.constraintBox;_390.l=_390.l<c.l?c.l:c.r<_390.l?c.r:_390.l;_390.t=_390.t<c.t?c.t:c.b<_390.t?c.b:_390.t;dojo.marginBox(_38f.node,_390);}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_392,node){return new dojo.dnd.move.boxConstrainedMoveable(node,_392);},constructor:function(node,_395){var box=_395&&_395.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_397,node){return new dojo.dnd.move.parentConstrainedMoveable(node,_397);},constructor:function(node,_39a){var area=_39a&&_39a.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.move.constrainedMover=function(fun,_3a1){var _3a2=function(node,e,_3a5){dojo.dnd.Mover.call(this,node,e,_3a5);};dojo.extend(_3a2,dojo.dnd.Mover.prototype);dojo.extend(_3a2,{onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox,c=this.constraintBox,l=m.l+e.pageX,t=m.t+e.pageY;l=l<c.l?c.l:c.r<l?c.r:l;t=t<c.t?c.t:c.b<t?c.b:t;this.host.onMove(this,{l:l,t:t});},onFirstMove:function(){dojo.dnd.Mover.prototype.onFirstMove.call(this);var c=this.constraintBox=fun.call(this),m=this.marginBox;c.r=c.l+c.w-(_3a1?m.w:0);c.b=c.t+c.h-(_3a1?m.h:0);}});return _3a2;};dojo.dnd.move.boxConstrainedMover=function(box,_3ae){return dojo.dnd.move.constrainedMover(function(){return box;},_3ae);};dojo.dnd.move.parentConstrainedMover=function(area,_3b0){var fun=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};return dojo.dnd.move.constrainedMover(fun,_3b0);};dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;}if(!dojo._hasResource["dojo.fx"]){dojo._hasResource["dojo.fx"]=true;dojo.provide("dojo.fx");dojo.provide("dojo.fx.Toggler");(function(){var _3b6={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _3b9=function(_3ba){this._index=-1;this._animations=_3ba||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;dojo.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};dojo.extend(_3b9,{_onAnimate:function(arg){this._fire("onAnimate",arg);},_onEnd:function(){dojo.disconnect(this._onAnimateCtx);dojo.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=dojo.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=dojo.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_3bd,_3be){if(!this._current){this._current=this._animations[this._index=0];}if(!_3be&&this._current.status()=="playing"){return this;}var _3bf=dojo.connect(this._current,"onBeforeBegin",this,function(){this._fire("onBeforeBegin");}),_3c0=dojo.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arg);}),_3c2=dojo.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arg);dojo.disconnect(_3bf);dojo.disconnect(_3c0);dojo.disconnect(_3c2);});if(this._onAnimateCtx){dojo.disconnect(this._onAnimateCtx);}this._onAnimateCtx=dojo.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){dojo.disconnect(this._onEndCtx);}this._onEndCtx=dojo.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=dojo.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arg);dojo.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_3c6,_3c7){this.pause();var _3c8=this.duration*_3c6;this._current=null;dojo.some(this._animations,function(a){if(a.duration<=_3c8){this._current=a;return true;}_3c8-=a.duration;return false;});if(this._current){this._current.gotoPercent(_3c8/_current.duration,_3c7);}return this;},stop:function(_3ca){if(this._current){if(_3ca){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=dojo.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arg);dojo.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){dojo.disconnect(this._onAnimateCtx);}if(this._onEndCtx){dojo.disconnect(this._onEndCtx);}}});dojo.extend(_3b9,_3b6);dojo.fx.chain=function(_3cd){return new _3b9(_3cd);};var _3ce=function(_3cf){this._animations=_3cf||[];this._connects=[];this.duration=0;dojo.forEach(_3cf,function(a){var _3d1=a.duration;if(a.delay){_3d1+=a.delay;}if(this.duration<_3d1){this.duration=_3d1;}this._connects.push(dojo.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new dojo._Animation({curve:[0,1],duration:this.duration});dojo.forEach(["onBeforeBegin","onBegin","onPlay","onAnimate","onPause","onStop"],function(evt){this._connects.push(dojo.connect(this._pseudoAnimation,evt,dojo.hitch(this,"_fire",evt)));},this);};dojo.extend(_3ce,{_doAction:function(_3d3,args){dojo.forEach(this._animations,function(a){a[_3d3].apply(a,args);});return this;},_onEnd:function(){var all=dojo.every(this._animations,function(a){return a.status()=="stopped";});if(all){this._fire("onEnd");}},play:function(_3d8,_3d9){return this._doAction("play",arguments);},pause:function(){return this._doAction("pause",arguments);},gotoPercent:function(_3da,_3db){this._pseudoAnimation[action].apply(this._pseudoAnimation,args);var ms=this.duration*_3da;dojo.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_3db);});return this;},stop:function(_3de){return this._doAction("stop",arguments);},status:function(){return this._pseudoAnimation.status();},destroy:function(){dojo.forEach(this._connects,dojo.disconnect);}});dojo.extend(_3ce,_3b6);dojo.fx.combine=function(_3df){return new _3ce(_3df);};})();dojo.declare("dojo.fx.Toggler",null,{constructor:function(args){var _t=this;dojo.mixin(_t,args);_t.node=args.node;_t._showArgs=dojo.mixin({},args);_t._showArgs.node=_t.node;_t._showArgs.duration=_t.showDuration;_t.showAnim=_t.showFunc(_t._showArgs);_t._hideArgs=dojo.mixin({},args);_t._hideArgs.node=_t.node;_t._hideArgs.duration=_t.hideDuration;_t.hideAnim=_t.hideFunc(_t._hideArgs);dojo.connect(_t.showAnim,"beforeBegin",dojo.hitch(_t.hideAnim,"stop",true));dojo.connect(_t.hideAnim,"beforeBegin",dojo.hitch(_t.showAnim,"stop",true));},node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,show:function(_3e2){return this.showAnim.play(_3e2||0);},hide:function(_3e3){return this.hideAnim.play(_3e3||0);}});dojo.fx.wipeIn=function(args){args.node=dojo.byId(args.node);var node=args.node,s=node.style;var anim=dojo.animateProperty(dojo.mixin({properties:{height:{start:function(){s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _3e8=dojo.style(node,"height");return Math.max(_3e8,1);}},end:function(){return node.scrollHeight;}}}},args));dojo.connect(anim,"onEnd",function(){s.height="auto";});return anim;};dojo.fx.wipeOut=function(args){var node=args.node=dojo.byId(args.node);var s=node.style;var anim=dojo.animateProperty(dojo.mixin({properties:{height:{end:1}}},args));dojo.connect(anim,"beforeBegin",function(){s.overflow="hidden";s.display="";});dojo.connect(anim,"onEnd",function(){s.height="auto";s.display="none";});return anim;};dojo.fx.slideTo=function(args){var node=(args.node=dojo.byId(args.node));var top=null;var left=null;var init=(function(n){return function(){var cs=dojo.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=dojo.coords(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=dojo.animateProperty(dojo.mixin({properties:{top:{end:args.top||0},left:{end:args.left||0}}},args));dojo.connect(anim,"beforeBegin",anim,init);return anim;};}if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{isLayoutContainer:true,postCreate:function(){dojo.addClass(this.domNode,"dijitContainer");},startup:function(){if(this._started){return;}if(this.getChildren){dojo.forEach(this.getChildren(),function(_3f7){_3f7.startup();});}if(!this.getParent||!this.getParent()){this.resize();this.connect(window,"onresize",function(){this.resize();});}this.inherited(arguments);},resize:function(args){var node=this.domNode;if(args){dojo.marginBox(node,args);if(args.t){node.style.top=args.t+"px";}if(args.l){node.style.left=args.l+"px";}}var mb=dojo.mixin(dojo.marginBox(node),args||{});this._contentBox=dijit.layout.marginBox2contentBox(node,mb);this.layout();},layout:function(){}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return {l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var _400=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_403,dim){_403.resize?_403.resize(dim):dojo.marginBox(_403.domNode,dim);dojo.mixin(_403,dojo.marginBox(_403.domNode));dojo.mixin(_403,dim);};dijit.layout.layoutChildren=function(_405,dim,_407){dim=dojo.mixin({},dim);dojo.addClass(_405,"dijitLayoutContainer");_407=dojo.filter(_407,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(_407,function(item){return item.layoutAlign=="client";}));dojo.forEach(_407,function(_40a){var elm=_40a.domNode,pos=_40a.layoutAlign;var _40d=elm.style;_40d.left=dim.l+"px";_40d.top=dim.t+"px";_40d.bottom=_40d.right="auto";dojo.addClass(elm,"dijitAlign"+_400(pos));if(pos=="top"||pos=="bottom"){size(_40a,{w:dim.w});dim.h-=_40a.h;if(pos=="top"){dim.t+=_40a.h;}else{_40d.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){size(_40a,{h:dim.h});dim.w-=_40a.w;if(pos=="left"){dim.l+=_40a.w;}else{_40d.left=dim.l+dim.w+"px";}}else{if(pos=="client"){size(_40a,dim);}}}});};})();}if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,"class":"dijitContentPane",postCreate:function(){this.domNode.title="";if(this.preload){this._loadCheck();}var _40e=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_40e);this.errorMessage=dojo.string.substitute(this.errorMessage,_40e);dojo.addClass(this.domNode,this["class"]);},startup:function(){if(this._started){return;}this._checkIfSingleChild();if(this._singleChild){this._singleChild.startup();}this._loadCheck();this.inherited(arguments);},_checkIfSingleChild:function(){var _40f=dojo.query(">",this.containerNode||this.domNode),_410=_40f.filter("[widgetId]");if(_40f.length==1&&_410.length==1){this.isContainer=true;this._singleChild=dijit.byNode(_410[0]);}else{delete this.isContainer;delete this._singleChild;}},refresh:function(){return this._prepareLoad(true);},setHref:function(href){this.href=href;return this._prepareLoad();},setContent:function(data){if(!this._isDownloaded){this.href="";this._onUnloadHandler();}this._setContent(data||"");this._isDownloaded=false;if(this.parseOnLoad){this._createSubWidgets();}this._checkIfSingleChild();if(this._singleChild&&this._singleChild.resize){this._singleChild.resize(this._contentBox);}this._onLoadHandler();},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;},destroy:function(){if(this._beingDestroyed){return;}this._onUnloadHandler();this._beingDestroyed=true;this.inherited("destroy",arguments);},resize:function(size){dojo.marginBox(this.domNode,size);var node=this.containerNode||this.domNode,mb=dojo.mixin(dojo.marginBox(node),size||{});this._contentBox=dijit.layout.marginBox2contentBox(node,mb);if(this._singleChild&&this._singleChild.resize){this._singleChild.resize(this._contentBox);}},_prepareLoad:function(_416){this.cancel();this.isLoaded=false;this._loadCheck(_416);},_loadCheck:function(_417){var _418=((this.open!==false)&&(this.domNode.style.display!="none"));if(this.href&&(_417||(this.preload&&!this._xhrDfd)||(this.refreshOnShow&&_418&&!this._xhrDfd)||(!this.isLoaded&&_418&&!this._xhrDfd))){this._downloadExternalContent();}},_downloadExternalContent:function(){this._onUnloadHandler();this._setContent(this.onDownloadStart.call(this));var self=this;var _41a={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_41a,this.ioArgs);}var hand=this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_41a);hand.addCallback(function(html){try{self.onDownloadEnd.call(self);self._isDownloaded=true;self.setContent.call(self,html);}catch(err){self._onError.call(self,"Content",err);}delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.cancelled){self._onError.call(self,"Download",err);}delete self._xhrDfd;return err;});},_onLoadHandler:function(){this.isLoaded=true;try{this.onLoad.call(this);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code");}},_onUnloadHandler:function(){this.isLoaded=false;this.cancel();try{this.onUnload.call(this);}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code");}},_setContent:function(cont){this.destroyDescendants();try{var node=this.containerNode||this.domNode;while(node.firstChild){dojo._destroyElement(node.firstChild);}if(typeof cont=="string"){if(this.extractContent){match=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(match){cont=match[1];}}node.innerHTML=cont;}else{if(cont.nodeType){node.appendChild(cont);}else{dojo.forEach(cont,function(n){node.appendChild(n.cloneNode(true));});}}}catch(e){var _421=this.onContentError(e);try{node.innerHTML=_421;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}}},_onError:function(type,err,_424){var _425=this["on"+type+"Error"].call(this,err);if(_424){console.error(_424,err);}else{if(_425){this._setContent.call(this,_425);}}},_createSubWidgets:function(){var _426=this.containerNode||this.domNode;try{dojo.parser.parse(_426,true);}catch(e){this._onError("Content",e,"Couldn't create widgets in "+this.id+(this.href?" from "+this.href:""));}},onLoad:function(e){},onUnload:function(e){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_429){},onDownloadError:function(_42a){return this.errorMessage;},onDownloadEnd:function(){}});}if(!dojo._hasResource["dijit.form.Form"]){dojo._hasResource["dijit.form.Form"]=true;dojo.provide("dijit.form.Form");dojo.declare("dijit.form._FormMixin",null,{setValues:function(obj){var map={};dojo.forEach(this.getDescendants(),function(_42d){if(!_42d.name){return;}var _42e=map[_42d.name]||(map[_42d.name]=[]);_42e.push(_42d);});for(var name in map){var _430=map[name],_431=dojo.getObject(name,false,obj);if(!dojo.isArray(_431)){_431=[_431];}if(typeof _430[0].checked=="boolean"){dojo.forEach(_430,function(w,i){w.setAttribute("checked",(dojo.indexOf(_431,w.value)!=-1));});}else{dojo.forEach(_430,function(w,i){w.setValue(_431[i]);});}}},getValues:function(){var obj={};dojo.forEach(this.getDescendants(),function(_437){var _438=(_437.getValue&&!_437._getValueDeprecated)?_437.getValue():_437.value;var name=_437.name;if(!name){return;}if(typeof _437.checked=="boolean"){if(/Radio/.test(_437.declaredClass)){if(_437.checked){dojo.setObject(name,_438,obj);}}else{var ary=dojo.getObject(name,false,obj);if(!ary){ary=[];dojo.setObject(name,ary,obj);}if(_437.checked){ary.push(_438);}}}else{dojo.setObject(name,_438,obj);}});return obj;},isValid:function(){return dojo.every(this.getDescendants(),function(_43b){return !_43b.isValid||_43b.isValid();});}});dojo.declare("dijit.form.Form",[dijit._Widget,dijit._Templated,dijit.form._FormMixin],{name:"",action:"",method:"",enctype:"multipart/form-data","accept-charset":"",accept:"",target:"",templateString:"<form dojoAttachPoint='containerNode' name='${name}'></form>",attributeMap:dojo.mixin(dojo.clone(dijit._Widget.prototype.attributeMap),{onSubmit:"",action:"",method:"",enctype:"","accept-charset":"",accept:"",target:""}),execute:function(_43c){},onExecute:function(){},_onSubmit:function(){if(this.execute!=dijit.form.Form.prototype.execute||this.onExecute!=dijit.form.Form.prototype.onExecute){dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}},onSubmit:function(){return this.isValid();},submit:function(){if(this.onSubmit()!==false){this.containerNode.submit();}}});}if(!dojo._hasResource["dijit.Dialog"]){dojo._hasResource["dijit.Dialog"]=true;dojo.provide("dijit.Dialog");dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper' id='${id}_wrapper'><div class='dijitDialogUnderlay ${class}' id='${id}' dojoAttachPoint='node'></div></div>",attributeMap:{},postCreate:function(){dojo.body().appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.domNode);},layout:function(){var _43d=dijit.getViewport();var is=this.node.style,os=this.domNode.style;os.top=_43d.t+"px";os.left=_43d.l+"px";is.width=_43d.w+"px";is.height=_43d.h+"px";var _440=dijit.getViewport();if(_43d.w!=_440.w){is.width=_440.w+"px";}if(_43d.h!=_440.h){is.height=_440.h+"px";}},show:function(){this.domNode.style.display="block";this.layout();if(this.bgIframe.iframe){this.bgIframe.iframe.style.display="block";}this._resizeHandler=this.connect(window,"onresize","layout");},hide:function(){this.domNode.style.display="none";if(this.bgIframe.iframe){this.bgIframe.iframe.style.display="none";}this.disconnect(this._resizeHandler);},uninitialize:function(){if(this.bgIframe){this.bgIframe.destroy();}}});dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_441){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.getValues());}});dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{templateString:null,templateString:"<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\">${title}</span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n",open:false,duration:400,_firstFocusItem:null,_lastFocusItem:null,attributeMap:dojo.mixin(dojo.clone(dijit._Widget.prototype.attributeMap),{title:"titleBar"}),postCreate:function(){dojo.body().appendChild(this.domNode);this.inherited("postCreate",arguments);this.domNode.style.display="none";this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();this.inherited("onLoad",arguments);},_setup:function(){if(this.titleBar){this._moveable=new dojo.dnd.Moveable(this.domNode,{handle:this.titleBar});}this._underlay=new dijit.DialogUnderlay({id:this.id+"_underlay","class":dojo.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")});if(!this.firstFocusItem){var _443=dijit.getFirstInTabbingOrder(this.domNode);this._firstFocusItem=_443?_443:this.domNode;_443=dijit.getLastInTabbingOrder(this.domNode);this._lastFocusItem=_443?_443:this._firstFocusItem;}var node=this.domNode;this._fadeIn=dojo.fx.combine([dojo.fadeIn({node:node,duration:this.duration}),dojo.fadeIn({node:this._underlay.domNode,duration:this.duration,onBegin:dojo.hitch(this._underlay,"show")})]);this._fadeOut=dojo.fx.combine([dojo.fadeOut({node:node,duration:this.duration,onEnd:function(){node.style.display="none";}}),dojo.fadeOut({node:this._underlay.domNode,duration:this.duration,onEnd:dojo.hitch(this._underlay,"hide")})]);},uninitialize:function(){if(this._fadeIn&&this._fadeIn.status()=="playing"){this._fadeIn.stop();}if(this._fadeOut&&this._fadeOut.status()=="playing"){this._fadeOut.stop();}if(this._underlay){this._underlay.destroy();}},_position:function(){if(dojo.hasClass(dojo.body(),"dojoMove")){return;}var _445=dijit.getViewport();var mb=dojo.marginBox(this.domNode);var _447=this.domNode.style;_447.left=Math.floor((_445.l+(_445.w-mb.w)/2))+"px";_447.top=Math.floor((_445.t+(_445.h-mb.h)/2))+"px";},_onKey:function(evt){if(evt.keyCode){var node=evt.target;var _44a=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.keyCode==dojo.keys.TAB){if(!_44a){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.keyCode==dojo.keys.TAB&&!evt.shiftKey){if(!_44a){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{while(node){if(node==this.domNode){if(evt.keyCode==dojo.keys.ESCAPE){this.hide();}else{return;}}node=node.parentNode;}if(evt.keyCode!=dojo.keys.TAB){dojo.stopEvent(evt);}else{if(!dojo.isOpera){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOut.status()=="playing"){this._fadeOut.stop();}this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout"));this._modalconnects.push(dojo.connect(document.documentElement,"onkeypress",this,"_onKey"));dojo.style(this.domNode,"opacity",0);this.domNode.style.display="block";this.open=true;this._loadCheck();this._position();this._fadeIn.play();this._savedFocus=dijit.getFocus(this);setTimeout(dojo.hitch(this,function(){dijit.focus(this._firstFocusItem);}),50);},hide:function(){if(!this._alreadyInitialized){return;}if(this._fadeIn.status()=="playing"){this._fadeIn.stop();}this._fadeOut.play();if(this._scrollConnected){this._scrollConnected=false;}dojo.forEach(this._modalconnects,dojo.disconnect);this._modalconnects=[];this.connect(this._fadeOut,"onEnd",dojo.hitch(this,function(){dijit.focus(this._savedFocus);}));this.open=false;},layout:function(){if(this.domNode.style.display=="block"){this._underlay.layout();this._position();}},destroy:function(){dojo.forEach(this._modalconnects,dojo.disconnect);if(this.open){var fo=this._savedFocus;setTimeout(dojo.hitch(dijit,"focus",fo),25);}this.inherited(arguments);}});dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",_firstFocusItem:null,_lastFocusItem:null,templateString:null,templateString:"<div class=\"dijitTooltipDialog\" >\n\t<div class=\"dijitTooltipContainer\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" ></div>\n</div>\n",postCreate:function(){this.inherited("postCreate",arguments);this.connect(this.containerNode,"onkeypress","_onKey");this.containerNode.title=this.title;},orient:function(node,_44d,_44e){this.domNode.className="dijitTooltipDialog "+" dijitTooltipAB"+(_44e.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_44e.charAt(0)=="T"?"Below":"Above");},onOpen:function(pos){if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}this.orient(this.domNode,pos.aroundCorner,pos.corner);this._loadCheck();dijit.focus(this._firstFocusItem);},_setup:function(){var _450=dijit.getFirstInTabbingOrder(this.containerNode);this._firstFocusItem=_450?_450:this.containerNode;_450=dijit.getLastInTabbingOrder(this.containerNode);this._lastFocusItem=_450?_450:this._firstFocusItem;},_onKey:function(evt){var node=evt.target;var _453=(this._firstFocusItem==this._lastFocusItem);if(evt.keyCode==dojo.keys.ESCAPE){this.onCancel();}else{if(node==this._firstFocusItem&&evt.shiftKey&&evt.keyCode==dojo.keys.TAB){if(!_453){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.keyCode==dojo.keys.TAB&&!evt.shiftKey){if(!_453){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{if(evt.keyCode==dojo.keys.TAB){evt.stopPropagation();}}}}}});}if(!dojo._hasResource["qi.widget.PlaceableDialog"]){dojo._hasResource["qi.widget.PlaceableDialog"]=true;dojo.provide("qi.widget.PlaceableDialog");dojo.declare("qi.widget.PlaceableDialog",[dijit.Dialog,dijit._Container],{aroundNode:{},aroundCorners:{},_position:function(){dijit.placeOnScreenAroundElement(this.domNode,this.aroundNode,this.aroundCorners);}});qi.widget.PlaceableDialog.decorateDialog=function(_454,_455,_456){_454._position=function(){dijit.placeOnScreenAroundElement(_454.domNode,_455,_456);};};}if(!dojo._hasResource["ag.widget.submit.DeleteUserSubmittable"]){dojo._hasResource["ag.widget.submit.DeleteUserSubmittable"]=true;dojo.provide("ag.widget.submit.DeleteUserSubmittable");dojo.declare("ag.widget.submit.DeleteUserSubmittable",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span>"+"<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>"+"<span dojoAttachPoint=\"container\"></span>"+"</span>",widgetsInTemplate:true,subscriptions:{},itemId:0,gameId:0,createdByUserId:0,container:{},postCreate:function(){AgEvent.LOGIN.subscribe(bindContext(this,this._onLogIn));AgEvent.LOGOUT.subscribe(bindContext(this,this._onLogOut));if(LoginModule.isUserLoggedIn()){this._onLogIn();}},_onLogIn:function(){if(Number(LoginModule.getUserId())==this.createdByUserId){this._onLogOut();this.deleteWidget=this._getDeleteUserSubmittableLink();this.addChild(this.deleteWidget);}},_onLogOut:function(){if(typeof (this.deleteWidget)!="undefined"){this.removeChild(this.deleteWidget);this.deleteWidget.destroyRecursive();delete this.deleteWidget;}},_getDeleteUserSubmittableLink:function(){throw new Error("Subclass must override _getDeleteUserSubmittableLink");}});dojo.declare("ag.widget.submit.DeleteUserSubmittableLink",[dijit._Widget,dijit._Templated],{gameId:0,_onDeleteUserSubmittable:function(e){e.preventDefault();var span=document.createElement("span");dojo.body().appendChild(span);var dlg=new qi.widget.FlashTopicContainerDialog({},span);qi.widget.PlaceableDialog.decorateDialog(dlg,this.domNode,{"BR":"BL","BL":"BR"});dlg.addChild(this._getDeleteUserSubmittableForm(dlg,span));dlg.show();},_getDeleteUserSubmittableForm:function(dlg,span){throw new Error("Subclass must override _getDeleteUserSubmittableForm");}});dojo.declare("ag.widget.submit.DeleteUserSubmittableForm",[dijit._Widget,dijit._Templated],{itemId:0,gameId:0,dialog:{},_onYes:function(e){e.preventDefault();var _45d=this._getModel();var _45e=document.createElement("span");this.domNode.appendChild(_45e);var _45f=new qi.widget.TopicSubscription({},_45e);_45f.subscribe(_45d.topic,dojo.hitch(this,function(_460){if("deleted"==_460.eventType){this._close();}}));this._delete(this.itemId);},_onNo:function(e){e.preventDefault();this._close();},_close:function(){this.dialog.hide();},_getModel:function(){throw new Error("Subclass must override _getModel");},_delete:function(id){throw new Error("Subclass must override _delete");}});}if(!dojo._hasResource["ag.widget.gamereviews.DeleteMyReview"]){dojo._hasResource["ag.widget.gamereviews.DeleteMyReview"]=true;dojo.provide("ag.widget.gamereviews.DeleteMyReview");dojo.declare("ag.widget.gamereviews.DeleteMyReview",[ag.widget.submit.DeleteUserSubmittable],{_getDeleteUserSubmittableLink:function(){return new ag.widget.gamereviews.DeleteMyReviewLink({reviewId:this.itemId,gameId:this.gameId},this.container);}});dojo.declare("ag.widget.gamereviews.DeleteMyRecentReview",[ag.widget.submit.DeleteUserSubmittable],{_getDeleteUserSubmittableLink:function(){return new ag.widget.gamereviews.DeleteMyRecentReviewLink({reviewId:this.itemId},this.container);}});dojo.declare("ag.widget.gamereviews.DeleteMyReviewLink",[ag.widget.submit.DeleteUserSubmittableLink],{templateString:"<span>\n<span class=\"delete-x\"><img src=\"/static/images/delete-x.png\"/></span>\n<span class=\"delete-text\"><a href=\"#\" dojoAttachEvent=\"onclick:_onDeleteUserSubmittable\">Delete</a></span>\n</span>\n",reviewId:0,_getDeleteUserSubmittableForm:function(dlg,span){return new ag.widget.gamereviews.DeleteMyReviewForm({itemId:this.reviewId,gameId:this.gameId,dialog:dlg},span);}});dojo.declare("ag.widget.gamereviews.DeleteMyRecentReviewLink",[ag.widget.submit.DeleteUserSubmittableLink],{_getDeleteUserSubmittableForm:function(dlg,span){return new ag.widget.gamereviews.DeleteMyRecentReviewForm({itemId:this.reviewId,dialog:dlg},span);}});dojo.declare("ag.widget.gamereviews.DeleteMyReviewForm",[ag.widget.submit.DeleteUserSubmittableForm],{templateString:"<div id=\"delete-review\">\n\tAre you sure you want to permanently delete this review?\n\t<br/>\n\t<div id=\"delete-yes-no\">\n\t\t<a href=\"#\" dojoAttachEvent=\"onclick:_onYes\">Yes</a>\n\t\t<a href=\"#\" dojoAttachEvent=\"onclick:_onNo\">No</a>\n\t</div>\n</div>\n",_getModel:function(){return ag.widget.gamereviews.Model.findByGameId(this.gameId);},_delete:function(id){this._getModel().deleteMyReview(id);}});dojo.declare("ag.widget.gamereviews.DeleteMyRecentReviewForm",[ag.widget.gamereviews.DeleteMyReviewForm],{_getModel:function(){return ag.widget.gamereviews.RecentReviewsModel.getModel("recent");}});}if(!dojo._hasResource["ag.widget.submit.FlagUserSubmittable"]){dojo._hasResource["ag.widget.submit.FlagUserSubmittable"]=true;dojo.provide("ag.widget.submit.FlagUserSubmittable");dojo.declare("ag.widget.submit.FlagUserSubmittable",[dijit._Widget,dijit._Templated],{templateString:"<span><a href=\"#Flag\" dojoAttachEvent=\"onclick:_onFlag\">Report</a></span>",itemId:0,_onFlag:function(e){e.preventDefault();new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,function(){var span=document.createElement("span");dojo.body().appendChild(span);var dlg=this._createConfirmationDialog(span);dlg.show();}),headerMessage:"<em>You must be logged in to access this feature.</em>"});},_createConfirmationDialog:function(span){throw new Error("Subclass must override _createConfirmationDialog");}});dojo.declare("ag.widget.submit.FlagUserSubmittableConfirmation",[dijit._Widget,dijit._Templated],{dialog:{},_flag:{},_onYes:function(e){e.preventDefault();var data=this._getData();ag.user.LoggedInUser.mixinSessionUserUuid(data);var _46e=this._flag(data);_46e.addCallback(dojo.hitch(this,function(_46f){this._close();}));_46e.addErrback(dojo.hitch(this,function(err){this._close();}));},_onNo:function(e){e.preventDefault();this._close();},_close:function(){this.dialog.hide();},_getData:function(){throw new Error("Subclass must override _getData");}});}if(!dojo._hasResource["qi.widget.Flash"]){dojo._hasResource["qi.widget.Flash"]=true;dojo.provide("qi.widget.Flash");(function(){function queryObjectEmbed(show,_473){_473=_473|document;if(show){dojo.query("object,embed",_473).forEach(function(elem){if(!jQuery.support.opacity){elem.style.position="static";}else{elem.style.visibility="visible";}});}else{dojo.query("object,embed",_473).forEach(function(elem){if(!jQuery.support.opacity){elem.style.position="absolute";elem.style.top="0";elem.style.left="-9999px";}else{elem.style.visibility="hidden";}});}};var _476=0;qi.widget.Flash.hideAll=function(){++_476;if(_476==1){queryObjectEmbed(false);}};qi.widget.Flash.restoreAll=function(){--_476;if(_476<0){_476=0;}if(_476==0){queryObjectEmbed(true);}};function qiwf_show(){if(!this._qiwf_isShowing){this._qiwf_isShowing=true;qi.widget.Flash.hideAll();}};function qiwf_hide(){if(this._qiwf_isShowing){this._qiwf_isShowing=false;qi.widget.Flash.restoreAll();}};qi.widget.Flash.decorateDialog=function(_477){var _478=dojo.connect(_477,"show",_477,qiwf_show);var _479=dojo.connect(_477,"hide",_477,qiwf_hide);var _47a=dojo.connect(_477,"destroy",null,function(){dojo.disconnect(_478);dojo.disconnect(_479);dojo.disconnect(_47a);});};})();}if(!dojo._hasResource["qi.widget.FlashTopicContainerDialog"]){dojo._hasResource["qi.widget.FlashTopicContainerDialog"]=true;dojo.provide("qi.widget.FlashTopicContainerDialog");dojo.declare("qi.widget.FlashTopicContainerDialog",[dijit.Dialog,dijit._Container],{postCreate:function(){qi.widget.FlashTopicContainerDialog.superclass.postCreate.apply(this,arguments);this._subscriptions=[];},show:function(){qi.widget.Flash.hideAll();qi.widget.FlashTopicContainerDialog.superclass.show.apply(this,arguments);},subscribe:function(){this._subscriptions.push(dojo.subscribe.apply(dojo,arguments));},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});if(this._connectionHandle){dojo.disconnect(this._connectionHandle);}qi.widget.FlashTopicContainerDialog.superclass.destroy.apply(this,arguments);},hide:function(){qi.widget.FlashTopicContainerDialog.superclass.hide.apply(this,arguments);window.setTimeout(dojo.hitch(this,function(){if(!dojo.isIE){qi.widget.Flash.restoreAll();}this.destroyRecursive();}),this.duration+100);}});}if(!dojo._hasResource["ag.widget.gamereviews.FlagReview"]){dojo._hasResource["ag.widget.gamereviews.FlagReview"]=true;dojo.provide("ag.widget.gamereviews.FlagReview");dojo.declare("ag.widget.gamereviews.FlagReview",[ag.widget.submit.FlagUserSubmittable],{_onFlag:function(e){postFlag(this.itemId,"Review","review");},_createConfirmationDialog:function(span){var dlg=new qi.widget.FlashTopicContainerDialog({},span);qi.widget.PlaceableDialog.decorateDialog(dlg,this.domNode,{"BR":"BL","BL":"BR"});dlg.addChild(new ag.widget.gamereviews.FlagReviewConfirmation({reviewId:this.itemId,dialog:dlg},span));return dlg;}});dojo.declare("ag.widget.gamereviews.FlagReviewConfirmation",[ag.widget.submit.FlagUserSubmittableConfirmation],{templateString:"<div id=\"flag-review\">\n\tAre you sure you want to report this review as offensive or illegal?\n\tReporting for no reason may result in the cancellation of your account.\n\t<div id=\"flag-review-yes-no\">\n\t\t<a href=\"#Yes\" dojoAttachEvent=\"onclick:_onYes\">Yes</a>\n\t\t<a href=\"#No\" dojoAttachEvent=\"onclick:_onNo\">No</a>\n\t</div>\n</div>\n",reviewId:0,_flag:new ag.services.JsonServiceFactory("gameReviewService.flag").method,_getData:function(){return {reviewId:this.reviewId};}});}if(!dojo._hasResource["ag.widget.gamereviews.GameReview"]){dojo._hasResource["ag.widget.gamereviews.GameReview"]=true;dojo.provide("ag.widget.gamereviews.GameReview");dojo.declare("ag.widget.gamereviews.GameReview",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div class=\"review-internal\">\n\t<div class=\"review-internal-tc-title\"></div>\n\t<div class=\"review-internal-cc\">\n\t\t<div class=\"ir-profilePic\"><a href=\"/profile/${createdBy.profilePath}\"><img src=\"${createdBy.userPic}\" alt=\"\"/></a></div>\n        <div class=\"ir-createdby\"><a href=\"/profile/${createdBy.profilePath}\">${createdBy.username}</a></div>         \n        <div class=\"ir-content\">\n            <span class=\"ir-thumb\" dojoType=\"ag.widget.gamereviews.Thumb\" rating=\"${rating}\"></span>\n\t\t    <div class=\"ir-text\">\n                <span dojoType=\"ag.widget.gamereviews.TextToggle\" pageLocation=\"game\">\n                    ${review}\n                </span>\n                <div class=\"ir-created-time\">${createdHtml}</div>\n            </div>\n        </div>\n        <div class=\"ir-actions\">\n            <span class=\"ir-flag\"><img src=\"/static/images/flag.png\"/></span>\n            <span class=\"ir-report\" dojoType=\"ag.widget.gamereviews.FlagReview\" itemId=\"${reviewId}\"></span>\n            <span class=\"ir-delete\" dojoType=\"ag.widget.gamereviews.DeleteMyReview\"\n                gameId=\"${gameId}\"\n                itemId=\"${reviewId}\"\n                createdByUserId=\"${createdBy.userId}\"></span>\n\t    </div>\n        <div class=\"clearFloat\"></div>\n     </div>\n    <div class=\"review-internal-bc\"></div>\n</div>\n",createdHtml:"",postMixInProperties:function(){this.review=qi.util.escapeHTML(this.review).replace(/\n\r|\r\n|\r|\n/g,"<br/>");if(this.createdBy.userPicSet){this.createdBy.userPic="/dynamic/photo/userPic?userId="+this.createdBy.userId+"&thumbnail=true";}else{this.createdBy.userPic="/static/images/user_pic_default_small.jpg";}if(this.created){this.createdHtml="("+new ag.datetime.Duration(new Date(this.created)).disallowFuture().asReadableString()+")";}}});dojo.declare("ag.widget.gamereviews.Thumb",[dijit._Widget,dijit._Templated],{templateString:"<span class='${cssClass}'></span>",rating:"",cssClass:"",postMixInProperties:function(){if("G"==this.rating){this.cssClass="rating-thumb-up";}else{this.cssClass="rating-thumb-down";}}});dojo.declare("ag.widget.gamereviews.TextToggle",[dijit._Widget,dijit._Templated],{templateString:"<div class='${cssClass}'><span dojoAttachPoint='content'></span><span> </span>&#160; <span class='comments-more'><a href='#' dojoAttachPoint='toggle' dojoAttachEvent='onclick:_onToggle'></a></span></div>",cssClass:"",pageLocation:"home",content:{},toggle:{},maxLength:510,maxWordLength:100,elispses:"...",spacesBackToLookForWordBreak:10,postMixInProperties:function(){this.collapsed=true;this.fullContent=String(this.srcNodeRef.innerHTML);this.fullContent=StringUtil.wordChopper(this.fullContent,this.maxWordLength);this.dynamic=false;if(this.fullContent.length<=this.maxLength){if(this.pageLocation=="home"){this.templateString="<div class='hr-comments'>${fullContent}</div>";}else{if(this.pageLocation=="game"){this.templateString="<div class='ir-comments'>${fullContent}</div>";}else{this.templateString="<div class='recent-comments'>${fullContent}</div>";}}}else{this.dynamic=true;this.srcNodeRef.innerHTML="";var _47f=/\s/;var idx=0;for(idx=this.maxLength;idx>1;--idx){if(_47f.test(this.fullContent.charAt(idx))){this.abbreviated=this.fullContent.substring(0,idx);break;}}if(typeof (this.abbreviated)=="undefined"){this.abbreviated=this.fullContent.substring(0,this.maxLength);}this.abbreviated+=this.elispses;if(this.pageLocation=="home"){this.cssClass="hr-comments";}else{if(this.pageLocation=="game"){this.cssClass="ir-comments";}else{this.cssClass="recent-comments";}}}},postCreate:function(){if(this.dynamic){this._dynamicDisplay();}},_onToggle:function(e){e.preventDefault();this.collapsed=!this.collapsed;this._dynamicDisplay();},_dynamicDisplay:function(){if(this.collapsed){this.content.innerHTML=this.abbreviated;this.toggle.innerHTML="more&#160;&gt;&gt;";}else{this.content.innerHTML=this.fullContent;this.toggle.innerHTML="close";}}});}if(!dojo._hasResource["ag.widget.gamereviews.Pagination"]){dojo._hasResource["ag.widget.gamereviews.Pagination"]=true;dojo.provide("ag.widget.gamereviews.Pagination");dojo.declare("ag.widget.gamereviews.PaginationBase",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div>\n<a href=\"#Previous\" dojoAttachPoint=\"prevLink\" dojoAttachEvent=\"onclick:_onPrev\">&lt;</a>\n<span dojoAttachPoint=\"current\"></span>\n<a href=\"#Next\" dojoAttachPoint=\"nextLink\" dojoAttachEvent=\"onclick:_onNext\">&gt;</a>\n<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",prevLink:{},nextLink:{},postCreate:function(){this.model=this._getModel();this.current.innerHTML=this.model.displayingPage;this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));dojo.addClass(this.domNode,"dispnone");},_getModel:function(){throw new Error("Subclass must override _getModel");},_onNext:function(e){e.preventDefault();this.model.loadNextPage();},_onPrev:function(e){e.preventDefault();this.model.loadPreviousPage();},_onModelMessage:function(msg){if("pageLoaded"==msg.eventType){var _485=this.model.getTotalPages();if(_485>1){var _486=(1==this.model.displayingPage);var _487=(Number(_485)==this.model.displayingPage);(_486?dojo.addClass:dojo.removeClass)(this.prevLink,"dispnone");(_487?dojo.addClass:dojo.removeClass)(this.nextLink,"dispnone");this.current.innerHTML=this.model.displayingPage+" of "+_485;dojo.removeClass(this.domNode,"dispnone");}else{dojo.addClass(this.domNode,"dispnone");}}}});dojo.declare("ag.widget.gamereviews.Pagination",ag.widget.gamereviews.PaginationBase,{gameId:0,_getModel:function(){return ag.widget.gamereviews.Model.findByGameId(this.gameId);}});}if(!dojo._hasResource["ag.widget.gamereviews.GameReviewPage"]){dojo._hasResource["ag.widget.gamereviews.GameReviewPage"]=true;dojo.provide("ag.widget.gamereviews.GameReviewPage");dojo.declare("ag.widget.gamereviews.GameReviewPageBase",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<div class=\"gr-promo\">\n\t<div class=\"gr-promo-tc-title\"></div>\n\t<div class=\"gr-promo-title\">\n\t\t<span class=\"gr-title\">Reviews</span>\n\t</div>\n\t<div class=\"gr-promo-cc\">\n\t\t<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"in\" class=\"dispnone\">\n\t\t\t<div class=\"gr-top-review\">\n\t\t\t\t<div dojoAttachPoint=\"topWriteReview\"></div>\n\t\t\t</div>\n\t\t\t<span dojoAttachPoint=\"beTheFirst\"></span>\n\t\t</span>\n\t\t<div dojoAttachPoint=\"container\"></div>\n\t\t<div class=\"gr-review-pagination\" dojoType=\"ag.widget.gamereviews.Pagination\" gameId=\"${gameId}\"></div>\n\t</div>\n\t<div class=\"gr-promo-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n<div>\n",widgetsInTemplate:true,subscriptions:{},container:{},page:1,_fadeInDuration:2000,postCreate:function(){this.loaded=false;this.model=this._getModel();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this.subscriptions.addSubscription(ag.event.EventBus.UI.REVIEW_SUBMITTED.subscribe(this,this._disableWriteReview));if(!this.loaded){this.model.loadPage(this.page);}},_getModel:function(){throw new Error("Subclass must override _getModel");},_createGameReviewWidget:function(_488){throw new Error("Subclass must override _createGameReviewWidget");},_onModelMessage:function(msg){if("pageLoaded"==msg.eventType){this.loaded=true;dojo.forEach(dojo.query("> [widgetId]",this.container).map(dijit.byNode),dojo.hitch(this,function(_48a){this.removeChild(_48a);_48a.destroyRecursive();}));var page=msg.page;if(0==page.reviews.length){this._showWithNoReviews();}else{this._showWithReviews(page);}}else{if("pageLoadFailed"==msg.eventType){}else{if("saved"==msg.eventType){this._removeBeTheFirst();var _48c=msg.result.review;var _48d=this._createGameReviewWidget(_48c);dojo.style(_48d.domNode,"opacity",0);if(null!=this.container.firstChild&&"undefined"!=this.container.firstChild){this.container.insertBefore(_48d.domNode,this.container.firstChild);}else{this.container.appendChild(_48d.domNode);}dojo.fadeIn({node:_48d.domNode,duration:this._fadeInDuration}).play();}}}},_showWithNoReviews:function(){if(typeof (this.beTheFirstWidget)=="undefined"){this.beTheFirstWidget=new ag.widget.gamereviews.BeTheFirst({},this.beTheFirst);}},_showWithReviews:function(page){this._removeBeTheFirst();var i;for(i=0;i<page.reviews.length;++i){this.container.appendChild(this._createGameReviewWidget(page.reviews[i]).domNode);}},_removeBeTheFirst:function(){if(typeof (this.beTheFirstWidget)!="undefined"){this.removeChild(this.beTheFirstWidget);this.beTheFirstWidget.destroyRecursive();delete this.beTheFirstWidget;}}});dojo.declare("ag.widget.gamereviews.GameReviewPage",ag.widget.gamereviews.GameReviewPageBase,{templateString:"<div class=\"gr-promo\">\n\t<div class=\"gr-promo-tc-title\"></div>\n\t<div class=\"gr-promo-title\">\n\t\t<span class=\"gr-title\">Reviews</span>\n\t</div>\n\t<div class=\"gr-promo-cc\">\n\t\t<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"in\" class=\"dispnone\">\n\t\t\t<div class=\"gr-top-review\">\n\t\t\t\t<div dojoAttachPoint=\"topWriteReview\"></div>\n\t\t\t</div>\n\t\t\t<span dojoAttachPoint=\"beTheFirst\"></span>\n\t\t</span>\n\t\t<div dojoAttachPoint=\"container\"></div>\n\t\t<div class=\"gr-review-pagination\" dojoType=\"ag.widget.gamereviews.Pagination\" gameId=\"${gameId}\"></div>\n\t</div>\n\t<div class=\"gr-promo-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n<div>\n",widgetsInTemplate:true,gameId:0,postCreate:function(){ag.widget.gamereviews.GameReviewPage.superclass.postCreate.apply(this,arguments);this.topWriteReviewWidget=new ag.widget.gamereviews.TopGameReviewInput({gameId:this.gameId},this.topWriteReview);dojo.addClass(this.topWriteReviewWidget.domNode,"dispnone");},_getModel:function(){return ag.widget.gamereviews.Model.findByGameId(this.gameId);},_createGameReviewWidget:function(_490){return new ag.widget.gamereviews.GameReview(_490,document.createElement("span"));},_onWriteReview:function(e){e.preventDefault();new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,"_onWriteReviewLoggedIn"),headerMessage:"<em>You must be logged in to access this feature.</em>"});},_onWriteReviewLoggedIn:function(){if(typeof (this.topWriteReviewWidget)=="undefined"&&this.model.hasReviews()){this.topWriteReviewWidget=new ag.widget.gamereviews.TopGameReviewInput({gameId:this.gameId},this.topWriteReview);}else{if(typeof (this.topWriteReviewWidget)!="undefined"){this.topWriteReviewWidget.show();}}},_disableWriteReview:function(){}});}if(!dojo._hasResource["ag.widget.UserLoggedInConditionalWidget"]){dojo._hasResource["ag.widget.UserLoggedInConditionalWidget"]=true;dojo.provide("ag.widget.UserLoggedInConditionalWidget");dojo.declare("ag.widget.UserLoggedInConditionalWidget",[dijit._Widget],{states:{IN:"in",OUT:"out"},showOnStateLogged:"",postCreate:function(){this._checkState();this._loginHandle=AgEvent.LOGIN.subscribe(bindContext(this,this._checkState)),this._logoutHandle=AgEvent.LOGOUT.subscribe(bindContext(this,this._checkState));},destroy:function(){AgEvent.LOGIN.unsubscribe(this._loginHandle);AgEvent.LOGOUT.unsubscribe(this._logoutHandle);ag.widget.UserLoggedInConditionalWidget.superclass.destroy.apply(this,arguments);},_shouldDisplay:function(){var _492=LoginModule.isUserLoggedIn();var _493=((_492&&this.showOnStateLogged==this.states.IN)||(!_492&&this.showOnStateLogged==this.states.OUT));return _493;},_checkState:function(){var _494=this._shouldDisplay();if(_494&&this.domNode){dojo.removeClass(this.domNode,"dispnone");}else{if(this.domNode){dojo.addClass(this.domNode,"dispnone");}}}});}if(!dojo._hasResource["ag.widget.gamereviews.GameReviewPanel"]){dojo._hasResource["ag.widget.gamereviews.GameReviewPanel"]=true;dojo.provide("ag.widget.gamereviews.GameReviewPanel");dojo.declare("ag.widget.gamereviews.GameReviewPanel",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<div class=\"gamereviewpanel\">\n<div dojoAttachPoint=\"reviews\" dojoType=\"ag.widget.gamereviews.GameReviewPage\" page=\"1\" gameId=\"${gameId}\"></div>\n<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"in\" class=\"dispnone\">\n\t<span dojoType=\"ag.widget.gamereviews.GameReviewInput\" gameId=\"${gameId}\"></span>\n</span>\n\n<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"out\" class=\"dispnone first-to-review\">\n\tWould you like to review this game?\n\t<br/>\n\t<a href=\"#Register\" onclick=\"RegisterModule.showRegister(); return false;\">Join AddictingGames</a> for FREE,\n\t<a href=\"\" class=\"facebookConnectLink\" onClick=\"sendLinkEvent('fbc_btn_game_footer_' + gameKeyword);\">Connect with Facebook</a>,\n\tor <a href=\"#Login\" onclick=\"LoginModule.showLogin(); return false;\">Login</a> if you're already a member.\n</span>\n<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,topWriteReview:{},gameId:0,beTheFirst:{},subscriptions:{},postCreate:function(){this.model=ag.widget.gamereviews.Model.findByGameId(this.gameId);this.currentPage=1;var page=this.model.getPage(this.currentPage);page.loadCompleted.addCallback(dojo.hitch(this,"_onModelMessage"));this.subscriptions.subscribe(this.model.topic,this,"_onModelMessage");},_onModelMessage:function(msg){if(!this.model.hasReviews()){this._notReviewedYet();}else{this._alreadyReviewed();}},_notReviewedYet:function(){if(typeof (this.beTheFirstWidget)=="undefined"){this.beTheFirstWidget=new ag.widget.gamereviews.BeTheFirst({},this.beTheFirst);}},_alreadyReviewed:function(){if(typeof (this.beTheFirstWidget)!="undefined"){this.removeChild(this.beTheFirstWidget);this.beTheFirstWidget.destroyRecursive();delete this.beTheFirstWidget;}}});dojo.declare("ag.widget.gamereviews.BeTheFirst",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"first-to-review\">\nBe the first to review this game!\n</div>\n"});}if(!dojo._hasResource["ag.widget.gamereviews.RecentReviewsModel"]){dojo._hasResource["ag.widget.gamereviews.RecentReviewsModel"]=true;dojo.provide("ag.widget.gamereviews.RecentReviewsModel");dojo.declare("ag.widget.gamereviews.RecentReviewsModel",[dijit._Widget,ag.widget.gamereviews.Model],{constructor:function(type){this.type=type;},_makePageModel:function(_498){return new ag.widget.gamereviews.GameReviewsModelPageBase(_498,new ag.widget.gamereviews.GameReviewModelPageUrl().getUrlForType(this.type,_498));}});(function(){var _499={};ag.widget.gamereviews.RecentReviewsModel.getModel=function(type){if(typeof (_499[type])=="undefined"){_499[type]=new ag.widget.gamereviews.RecentReviewsModel(type);}return _499[type];};})();}if(!dojo._hasResource["qi.widget.TabButtons"]){dojo._hasResource["qi.widget.TabButtons"]=true;dojo.provide("qi.widget.TabButtons");dojo.declare("qi.widget.TabButtons",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<ul class='${class}'></ul>","class":"",changeOnClick:true,placeholder:{},postMixInProperties:function(){if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dojo.query("> [dojoType]",this.srcNodeRef).forEach(dojo.hitch(this,function(node){node.setAttribute("parentWidgetId",this.id);}));},postCreate:function(){this.topic=String(this.id);},_onClick:function(tab){if(this.changeOnClick){this.selectTabPostClick(tab);}dojo.publish(this.topic,[{eventType:"click",tab:tab}]);},selectTabPostClick:function(tab){dojo.forEach(this.getChildren(),function(tab){tab.unselect();});tab.select();}});dojo.declare("qi.widget.TabButtons.Tab",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<li class=\"${class}\"><a href=\"#\" dojoAttachEvent=\"onclick:onClick\">${text}</a></li>","class":"",text:"",key:"",selected:"",parentWidgetId:"",changeOnClick:true,postCreate:function(){if(!this.getParent()&&this.parentWidgetId!=""){dijit.byId(this.parentWidgetId).domNode.appendChild(this.domNode);}if("selected"==this.selected&&this.getParent()){this.onSelected();}},onClick:function(e){e.preventDefault();this.onSelected();},onSelected:function(){this.getParent()._onClick(this);},select:function(){dojo.addClass(this.domNode,"selected");},unselect:function(){dojo.removeClass(this.domNode,"selected");}});}if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,_4a1,_4a2){var c=document.cookie;if(arguments.length==1){var idx=c.lastIndexOf(name+"=");if(idx==-1){return null;}var _4a5=idx+name.length+1;var end=c.indexOf(";",idx+name.length+1);if(end==-1){end=c.length;}return decodeURIComponent(c.substring(_4a5,end));}else{_4a2=_4a2||{};_4a1=encodeURIComponent(_4a1);if(typeof (_4a2.expires)=="number"){var d=new Date();d.setTime(d.getTime()+(_4a2.expires*24*60*60*1000));_4a2.expires=d;}document.cookie=name+"="+_4a1+(_4a2.expires?"; expires="+_4a2.expires.toUTCString():"")+(_4a2.path?"; path="+_4a2.path:"")+(_4a2.domain?"; domain="+_4a2.domain:"")+(_4a2.secure?"; secure":"");return null;}};dojo.cookie.useObject=function(name,_4a9,_4aa){if(arguments.length==1){return dojo.fromJson(this(name));}else{this(name,dojo.toJson(_4a9),_4aa||{});}};dojo.cookie.isSupported=function(){if(typeof navigator.cookieEnabled!="boolean"){this("__djCookieTest__","CookiesAllowed",{expires:90});var _4ab=this("__djCookieTest__");navigator.cookieEnabled=(_4ab=="CookiesAllowed");if(navigator.cookieEnabled){this("__djCookieTest__","",0);}}return navigator.cookieEnabled;};}if(!dojo._hasResource["ag.widget.StatusCookie"]){dojo._hasResource["ag.widget.StatusCookie"]=true;dojo.provide("ag.widget.StatusCookie");(function(){var _4ac="widgetStatus";var _4ad=1;function deleteCookie(key){dojo.cookie(key,"",{expires:-1,path:"/"});};ag.widget.StatusCookie.getWidgetStatus=function(){return dojo.cookie(_4ac);};ag.widget.StatusCookie.getWidgetStatusValue=function(key){var _4b0=ag.widget.StatusCookie.getWidgetStatus();if(null==_4b0){return null;}else{var _4b1=dojo.fromJson(_4b0);return _4b1[key];}};ag.widget.StatusCookie.setWidgetStatus=function(obj){var _4b3=ag.widget.StatusCookie.getWidgetStatus();if(null==_4b3){dojo.cookie(_4ac,dojo.toJson(obj),{expires:_4ad,path:"/"});}else{var _4b4=dojo.fromJson(_4b3);dojo.mixin(_4b4,obj);dojo.cookie(_4ac,dojo.toJson(_4b4),{expires:_4ad,path:"/"});}};ag.widget.StatusCookie.mixinWidgetStatus=function(_4b5,_4b6,id){var _4b8={};var _4b9=ag.widget.StatusCookie.getWidgetStatus(_4b5);var _4ba=dojo.fromJson(_4b9);if(null!=_4ba&&null!=_4ba[_4b5]){dojo.mixin(_4b8,_4ba[_4b5]);}_4b8[id]=_4b6;var obj={};obj[_4b5]=_4b8;ag.widget.StatusCookie.setWidgetStatus(obj);},ag.widget.StatusCookie.deleteCookies=function(){deleteCookie(_4ac);};})();}if(!dojo._hasResource["ag.widget.games.GameInfo"]){dojo._hasResource["ag.widget.games.GameInfo"]=true;dojo.provide("ag.widget.games.GameInfo");dojo.declare("ag.widget.games.GameInfo",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<span>\n\t<img src=\"${src}\" id=\"${id}_img\"\n\t\tdojoAttachPoint=\"image\"\n\t\tdojoAttachEvent=\"onmouseout:_onMouseOut, onmouseover:_onMouseOver, onhover:_onHover, onunhover:_onUnHover\"/>\n</span>\n",gameLayoverSnippetPath:dojo.moduleUrl("agstatic","frag/games/layover/"),gameId:"",src:"",image:{},offsetX:0,offsetY:0,position:"",showDelayMs:750,_onMouseOver:function(e){this._onHover(e);},_onMouseOut:function(e){if(dojo.isDescendant(e.relatedTarget,this._connectNode)){return;}this._onUnHover(e);},_onHover:function(e){if(this._hover){return;}this._hover=true;if(!this.isShowingNow&&typeof (this._loadTimer)=="undefined"&&typeof (this.loadCompleted)=="undefined"){this._loadTimer=setTimeout(dojo.hitch(this,"_download"),this.showDelayMs/2);}else{this._checkSetShowTimer();}},_onUnHover:function(e){if(!this._hover){return;}this._hover=false;this._clearTimers();this.close();},_checkSetShowTimer:function(_4c0){_4c0=_4c0||1;if(!this.isShowingNow&&!this._showTimer){this._showTimer=setTimeout(dojo.hitch(this,"open"),this.showDelayMs/_4c0);}},_download:function(){this._clearLoadTimer();this._checkSetShowTimer(2);this.loadCompleted=new ag.widget.games.GameInfoLoader(this.gameId).loadCompleted;this.loadCompleted.addCallback(dojo.hitch(this,function(game){this.game=game;}));this.loadCompleted.addErrback(dojo.hitch(this,function(){this.loaded=false;delete this.game;}));},_clearShowTimer:function(){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},_clearLoadTimer:function(){if(this._loadTimer){clearTimeout(this._loadTimer);delete this._loadTimer;}},_clearTimers:function(){this._clearLoadTimer();this._clearShowTimer();},open:function(){if(this.isShowingNow){return;}this._clearTimers();this.loadCompleted.addCallback(dojo.hitch(this,function(){if(this.game){ag.widget.games.GameInfoLayover.getInstance().showGameLayoverAtLocation(this);}}));this.isShowingNow=true;},getPosition:function(){var _4c2=dojo.coords(this.image,true);_4c2.x+=Number(this.offsetX);_4c2.y+=Number(this.offsetY);return _4c2;},close:function(){if(!this.isShowingNow){return;}ag.widget.games.GameInfoLayover.getInstance().hide();this.isShowingNow=false;},uninitialize:function(){this.close();}});dojo.declare("ag.widget.games.GameInfoLayover",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"gameinfolayover dispnone\">\n\t<div dojoAttachPoint=\"_arrow\" id=\"${id}_arrow\"></div>\n\t<div class=\"gilouter\">\n\t\t<div class=\"gilcontent\" dojoAttachPoint=\"_content\"></div>\n\t</div>\n</div>\n",_content:{},ARROW_H_PX:22,ARROW_W_PX:50,BOX_CURVE_PX:4,BOX_SHADOW_W_PX:201,BOX_SHADOW_H_PX:330,BOX_W_PX:185,BOX_H_PX:322,R_IMG_X_OFFSET:-5,HEADER_TOP_RESERVED_AREA_H:136,postCreate:function(){this.wrapper=dojo.doc.createElement("div");this.wrapper.id=this.id+"_wr";this.wrapper.className="gameinfopopup";this.wrapper.style.zIndex=1;dojo.body().appendChild(this.wrapper);this.wrapper.appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.wrapper);},showGameLayoverAtLocation:function(gil){if(this._current){this._content.removeChild(this._current.domNode);this._current.destroyRecursive();delete this._current;}var game=gil.game;var abs=gil.getPosition();this._current=new ag.widget.games.GameInfoLayoverContent(game,document.createElement("span"));this._content.appendChild(this._current.domNode);dojo.removeClass(this._arrow,"gliarrowdn");dojo.removeClass(this._arrow,"gliarrowup");dojo.style(this._arrow,"left","");var args={popup:this};var view=dijit.getViewport();var _4c8=Math.max(view.t,this.HEADER_TOP_RESERVED_AREA_H);var _4c9=view.h+view.t;var _4ca=abs.y+abs.h;var _4cb=_4c9-_4ca;var _4cc=abs.y-_4c8;var _4cd=this.BOX_H_PX;if("R"!=gil.position){_4cd+=this.ARROW_H_PX;}var _4ce=true;if(_4cb<_4cd&&_4cc>=_4cd){_4ce=false;}dojo.addClass(this._arrow,_4ce?"gliarrowdn":"gliarrowup");if("R"==gil.position){abs.x+=this.R_IMG_X_OFFSET;if(_4ce){dojo.mixin(args,{x:abs.x,y:(abs.y+abs.h)});}else{dojo.mixin(args,{x:abs.x,y:(abs.y)-this.BOX_SHADOW_H_PX});}}else{var _4cf=(abs.x+abs.w/2)-(this.BOX_W_PX/2);var x=_4cf;if(_4cf<0){x=0;}if(_4ce){dojo.mixin(args,{x:x,y:abs.y+abs.h+this.ARROW_H_PX});}else{dojo.mixin(args,{x:x,y:abs.y-this.BOX_H_PX-this.ARROW_H_PX});}if(Math.floor(_4cf)<0){dojo.style(this._arrow,"left",Math.max(this.BOX_CURVE_PX,(this.BOX_W_PX/2-this.ARROW_W_PX/2)+_4cf));}}dojo.removeClass(this.domNode,"dispnone");dijit.placeOnScreen(this.wrapper,args,["TR","BR","TL","BL"]);if(this.bgIframe.iframe){dojo.style(this.bgIframe.iframe,"display","block");dojo.style(this.bgIframe.iframe,"width",String(this.BOX_SHADOW_W_PX)+"px");dojo.style(this.bgIframe.iframe,"height",String(this.BOX_SHADOW_H_PX)+"px");}},hide:function(){dojo.addClass(this.domNode,"dispnone");if(this.bgIframe.iframe){dojo.style(this.bgIframe.iframe,"display","none");}},uninitialize:function(){if(this.bgIframe){this.bgIframe.destroy();}}});ag.widget.games.GameInfoLayover.getInstance=function(){if(!ag.widget.games.GameInfoLayover._instance){var span=document.createElement("div");dojo.body().appendChild(span);ag.widget.games.GameInfoLayover._instance=new ag.widget.games.GameInfoLayover({id:"gameInfoLayover"},span);}return ag.widget.games.GameInfoLayover._instance;};dojo.declare("ag.widget.games.GameInfoLayoverContent",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<h1>${title}</h1>\n\t<p>Launch Date: ${pubdate}</p>\n\t<h2>Description:</h2>\n\t<p>${description}</p>\n\t<div dojoAttachPoint=\"maturityRating\"></div>\n\t<h2>Instructions:</h2>\n\t<p>${instructions}</p>\n\t<h2>Game Category:</h2>\n\t<p>${genre}</p>\n\t<span dojoAttachPoint=\"filterSpan\" style=\"display:none;\">\n\t\t<h2>Tags:</h2>\n\t\t<p class=\"filterTags\" dojoAttachPoint=\"filterContent\"></p>\n\t</span>\n</span>\n",postMixInProperties:function(){dojo.forEach(["title","instructions","description","pubdate"],dojo.hitch(this,function(key){this[key]=qi.util.escapeHTML(this[key]);}));var _4d3=/(\d+)-(\d+)-(\d+)/.exec(this.pubdate);if(_4d3){var year=1;var _4d5=2;var day=3;var _4d7=_4d3[year].length>2?_4d3[year].substring(_4d3[year].length-2):_4d3[year];this.pubdate=String(Number(_4d3[_4d5]))+"/"+dojo.string.pad(_4d3[day],2,"0")+"/"+_4d7;}if(dojo.isArray(this.genres)){this.genre=qi.util.escapeHTML(this.genres[0]);}else{this.genre="";}},postCreate:function(){if(null!=this.maturity){var _4d8=new ag.widget.games.GameInfoMaturityWarning({"maturityText":this.maturity});this.maturityRating.appendChild(_4d8.domNode);}if(0<this.filters.length){dojo.style(this.filterSpan,"display","block");for(var i=0;i<this.filters.length;i++){var img=document.createElement("img");img.src="/static/images/filters/"+this.filters[i];this.filterContent.appendChild(img);}}}});dojo.declare("ag.widget.games.GameInfoLoader",null,{gameInfoPath:dojo.moduleUrl("agstatic","frag/games/layover/"),constructor:function(_4db){this.gameId=_4db;var _4dc=this.gameId.substring(this.gameId.length-1)+"/";var _4dd=dojo.xhrGet({url:this.gameInfoPath+_4dc+this.gameId+".js",handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_4dd.addCallback(dojo.hitch(this,function(game){ag.widget.games.GameDataHelper.deriveAdditionalGameData(game);this.game=game;this.loadCompleted.callback(this.game);}));_4dd.addErrback(dojo.hitch(this,function(){console.warn("Problem getting game info",arguments);this.loaded=false;delete this.game;this.loadCompleted.errback();}));}});dojo.declare("ag.widget.games.GameInfoMaturityWarning",[dijit._Widget,dijit._Templated],{templateString:"<p class=\"maturityWarning\">\n\t<img class='maturityBomb' src='/static/images/bomb_small.png' />\n\t<span>Caution: </span>\n\t<span dojoAttachPoint='maturityWarningText'></span>\n</p>\n",maturityText:"",postCreate:function(){this.maturityWarningText.innerHTML=this.maturityText;}});}if(!dojo._hasResource["ag.widget.games.TopGames"]){dojo._hasResource["ag.widget.games.TopGames"]=true;dojo.provide("ag.widget.games.TopGames");dojo.declare("ag.widget.games.TopGamesBase",[dijit._Widget,dijit._Container],{baseDataLocation:dojo.moduleUrl("agjson","whatshot"),output:{},periods:{ALLTIME:"alltime",MONTH:"month",WEEK:"week"},maxGamesToDisplay:1,selectedGenre:"",weekTab:{},monthTab:{},alltimeTab:{},_gameWidgets:[],currentPeriod:"",testDataLocation:"",CHANNEL_LIST:["Shooting Games","Action Games","Puzzle & Board Games","Arcade & Classic Games","Sports Games","Strategy Games","Adventure Games","Life & Style Games",],CHANNEL_MAP:{"Shooting Games":5,"Action Games":6,"Puzzle & Board Games":7,"Arcade & Classic Games":8,"Sports Games":9,"Strategy Games":10,"Adventure Games":11,"Life & Style Games":12},channelId:0,postMixInProperties:function(){if(""==this.currentPeriod||!this._validCurrentPeriod()){this.currentPeriod=this._getDefaultPeriod();}this.model=new ag.widget.games.TopGamesModel();if(""!=this.testDataLocation){this.baseDataLocation=dojo.moduleUrl("agstatic",this.testDataLocation);}},postCreate:function(){var _4df=ag.widget.StatusCookie.getWidgetStatusValue("topGamesPeriod");if(null!=_4df&&"undefined"!=_4df){this.currentPeriod=_4df;}this._loadPeriodWithCallback();},_getDefaultPeriod:function(){return this.periods.WEEK;},_validCurrentPeriod:function(){return dojo.indexOf(qi.util.mapValues(this.periods),this.currentPeriod)!=-1;},_loadPeriod:function(_4e0){if(ag.widget.games.genre.GenrePanel.KIND_FILTER==this._kind&&this.genreId){this.model.load(_4e0,this.baseDataLocation+"/plays?period="+_4e0+"&filter="+this.genreId);}else{if(ag.widget.games.genre.GenrePanel.KIND_GENRE==this._kind&&this.genreId){this.model.load(_4e0,this.baseDataLocation+"/plays?period="+_4e0+"&channel="+this.genreId);}else{if(this.channelId){this.model.load(_4e0,this.baseDataLocation+"/plays?period="+_4e0+"&channel="+this.channelId);}else{this.model.load(_4e0,this.baseDataLocation+"/plays?period="+_4e0);}}}},_loadPeriodWithCallback:function(){this._loadPeriod(this.currentPeriod);this.model[this.currentPeriod].loadCompleted.addCallback(this,this._periodChangedDataLoaded);},_onSelectWeek:function(){this.onPeriodChange(this.periods.WEEK);},_onSelectMonth:function(){this.onPeriodChange(this.periods.MONTH);},_onSelectAlltime:function(){this.onPeriodChange(this.periods.ALLTIME);},onPeriodChange:function(_4e1){this.currentPeriod=_4e1;ag.widget.StatusCookie.setWidgetStatus({"topGamesPeriod":this.currentPeriod});this._loadPeriodWithCallback();},onGenreChange:function(){this.channelId=this.CHANNEL_MAP[this.selectedGenre];this._loadPeriodWithCallback();},_populateGames:function(){while(this._gameWidgets.length!=0){var _4e2=this._gameWidgets.pop();this.removeChild(_4e2);_4e2.destroyRecursive();}this._addGames(this.model[this.currentPeriod].games);dojo.removeClass(this.domNode,"progress");},_filterGames:function(){var _4e3=this.model[this.currentPeriod].games;if(this.selectedGenre!=""){_4e3=dojo.filter(this.model[this.currentPeriod].games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this.selectedGenre)!=-1;}));}return _4e3;},_periodChangedDataLoaded:function(){this.period.selectTabPostClick(this[this.currentPeriod+"Tab"]);this._populateGames();},_addGames:function(_4e5){var i=0;for(;i<this.maxGamesToDisplay&&i<_4e5.length;++i){var game={ordinal:i+1};dojo.mixin(game,_4e5[i]);var _4e8=this.createGameWidget(game);this._gameWidgets.push(_4e8);this._addGame(_4e8);}},_addGame:function(_4e9){this.output.appendChild(_4e9.domNode);},createGameWidget:function(game){return new dojo._Widget(game,document.createElement("span"));}});dojo.declare("ag.widget.games.TopGames",[ag.widget.games.TopGamesBase,dijit._Templated],{templateString:"<div class=\"top-games\">\n\t<div class=\"top-games-tc\"></div>\n\t<div class=\"top-games-header\">\n\t\t<div class=\"top-games-text\">Top Games</div>\n\t\t<span dojoAttachPoint=\"period\" dojoType=\"qi.widget.TabButtons\" class=\"menu\" changeOnClick=\"false\">\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Last Week\" key=\"${periods.WEEK}\" selected=\"selected\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectWeek\"\n\t\t\t\tdojoAttachPoint=\"weekTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Last Month\" key=\"${periods.MONTH}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMonth\"\n\t\t\t\tdojoAttachPoint=\"monthTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"All Time\" key=\"${periods.ALLTIME}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectAlltime\"\n\t\t\t\tdojoAttachPoint=\"alltimeTab\"></span>\n\t\t</span>\n\t\t<div class=\"filter\">\n        \t<span class=\"filterby\">\n        \t\t<label for=\"${id}_genre\">Filter by:</label>\n        \t</span>\n            <select id=\"${id}_genre\" dojoAttachPoint=\"genreList\" dojoAttachEvent=\"onchange:onGenreChange\">\n                <option value=\"\">All Games</option>\n            </select>\n    \t</div>\n\t</div>\n\t<div class=\"top-games-content\">\n\t\t<div class=\"game\">\n\t    \t<span dojoAttachPoint=\"output\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"top-games-bc\"></div>\n</div>\n\n",widgetsInTemplate:true,maxGamesToDisplay:9,genreList:{},onGenreChange:function(){this.selectedGenre=""+this.genreList.value;ag.widget.StatusCookie.setWidgetStatus({"topGamesGenre":this.selectedGenre});ag.widget.games.TopGames.superclass.onGenreChange.apply(this,arguments);},_periodChangedDataLoaded:function(){this.genreList.options.length=1;var data=this.model[this.currentPeriod];var _4ec=this.CHANNEL_LIST;dojo.forEach(_4ec,dojo.hitch(this,function(_4ed){var _4ee=String(this.selectedGenre)==_4ed;this.genreList.options[this.genreList.options.length]=new Option(_4ed,_4ed,_4ee,_4ee);}));var _4ef=ag.widget.StatusCookie.getWidgetStatusValue("topGamesGenre");if(null!=_4ef&&"undefined"!=_4ef){this.genreList.value=_4ef;this.selectedGenre=_4ef;}ag.widget.games.TopGames.superclass._periodChangedDataLoaded.apply(this,arguments);},createGameWidget:function(game){return new ag.widget.games.TopGamesGame(game,document.createElement("span"));}});dojo.declare("ag.widget.games.TopGamesGame",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"topgame\">\n\t<div class=\"topgame-image\">\n\t\t<a href=\"${url}\">\n\t\t\t<img\n\t\t\t  dojoType=\"ag.widget.games.GameInfo\"\n\t\t\t  gameId=\"${gameId}\"\n\t\t\t  src=\"${picon}\"\n\t\t\t  position=\"R\"/>\n\t\t</a>\n\t</div>\n\t<div class=\"topgame-description\">\n\t\t<a href=\"${url}\">${title}</a>\n\t\t<br/>\n\t\t${desc}\n\t\t<span style=\"display:none\" dojoAttachPoint=\"maturityImage\"><img src=\"/static/images/bomb_small.png\"/></span>\n\t</div>\n</div>\n",widgetsInTemplate:true,desc:"",postCreate:function(){if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}}});dojo.declare("ag.widget.games.TopGamesModel",null,{load:function(_4f1,url){this[_4f1]=new ag.widget.games.GamesForTimePeriod();this[_4f1].load(url);}});dojo.declare("ag.widget.games.GamesForTimePeriod",null,{constructor:function(){this.loadCompleted=new dojo.Deferred();},load:function(url){var _4f4=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});var self=this;_4f4.addCallback(function(data){self._onDataAvailable(data);});_4f4.addErrback(function(err){console.warn("Problem getting top game data",err);});},_onDataAvailable:function(data){dojo.mixin(this,data);this.games=data.games;ag.widget.games.GameDataHelper.deriveAdditionalGameData(this.games);this._deriveGenreList();this.loadCompleted.callback(this);},_deriveGenreList:function(){var _4f9=[];var seen={};dojo.forEach(this.games,function(game){dojo.forEach(game.genres,function(_4fc){if(typeof seen[_4fc]=="undefined"){seen[_4fc]=true;_4f9.push(_4fc);}});});_4f9.sort();this.genres=_4f9;}});ag.widget.games.GameDataHelper={GAMEURLBASE:"/",PICONBASE:"/fimages/",deriveAdditionalGameData:function(_4fd){if(dojo.isArray(_4fd)){dojo.forEach(_4fd,ag.widget.games.GameDataHelper.deriveAdditionalGameData);}else{var game=_4fd;if(typeof (game.gameId)=="undefined"){game.gameId=game.id;delete game.id;}if(!/^http:\/\//.test(game.url)){game.url=ag.widget.games.GameDataHelper.GAMEURLBASE+game.url;}if(!game.picon){game.picon=ag.widget.games.GameDataHelper.PICONBASE+game.gameId+".jpg";}}}};}if(!dojo._hasResource["ag.widget.gamereviews.HomePageRecentReviews"]){dojo._hasResource["ag.widget.gamereviews.HomePageRecentReviews"]=true;dojo.provide("ag.widget.gamereviews.HomePageRecentReviews");dojo.declare("ag.widget.gamereviews.HomePageRecentReviews",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"hr-promo\">\n\t<div class=\"hr-promo-tc-title\"></div>\n\t<div class=\"hr-promo-title\">\n\t\t<span>Recent Game Reviews</span>\n\t</div>\n\t<div dojoAttachPoint=\"container\"></div>\n\t<div class=\"hr-more\"><a href=\"/static/recentreviews.html\">more game reviews&gt;&gt;</a></div>\n\t<div class=\"hr-promo-bc\"></div>\n</div>\n",postCreate:function(){this.model=ag.widget.gamereviews.RecentReviewsModel.getModel("home");var _4ff=this.model.getPage(1);_4ff.loadCompleted.addCallback(dojo.hitch(this,function(mp){for(var idx in mp.reviews){ag.widget.games.GameDataHelper.deriveAdditionalGameData(mp.reviews[idx]);var _502=new ag.widget.gamereviews.HomePageRecentGameReview(mp.reviews[idx],document.createElement("span"));this.container.appendChild(_502.domNode);}}));_4ff.loadCompleted.addErrback(dojo.hitch(this,function(err){dojo.style(this.domNode,"display","none");}));}});dojo.declare("ag.widget.gamereviews.HomePageRecentGameReview",ag.widget.gamereviews.GameReview,{widgetsInTemplate:true,templateString:"<div class=\"hr-promo-cc\">\n\t<span class=\"hr-picon\"><a href=\"${url}\"><img src=\"${picon}\"/></a></span>\n\t<span class=\"hr-thumb\"><span dojoType=\"ag.widget.gamereviews.Thumb\" rating=\"${rating}\"></span></span>\n\t<div class=\"hr-game\"><a href=\"${url}\">${name}</a></div>\n\t<span class=\"hr-flag\"><span><img src=\"/static/images/flag.png\"/></span></span>\n\t<span class=\"hr-report\"><span dojoType=\"ag.widget.gamereviews.FlagReview\" reviewId=\"${reviewId}\"></span></span>\n\t<div dojoType=\"ag.widget.gamereviews.TextToggle\" maxLength=\"100\" maxWordLength=\"25\">${review}</div>\n\t<div class=\"hr-created\">\n\t\t<span class=\"hr-by\">by</span>\n\t\t<span class=\"hr-createdby\"><a href=\"/profile/${createdBy.profilePath}\">${createdBy.username}</a></span>\n\t</div>\n</div>\n",postMixInProperties:function(){this.name=qi.util.escapeHTML(this.name);}});}if(!dojo._hasResource["ag.widget.gamereviews.RecentReviews"]){dojo._hasResource["ag.widget.gamereviews.RecentReviews"]=true;dojo.provide("ag.widget.gamereviews.RecentReviews");dojo.declare("ag.widget.gamereviews.RecentReviews",ag.widget.gamereviews.GameReviewPageBase,{templateString:"<div class=\"recent-promo\">\n\t<div class=\"recent-promo-tc-title\"></div>\n\t<div class=\"recent-promo-title\">\n\t\t<span class=\"recent-title\">Recent Reviews</span>\n\t</div>\n\t<div class=\"recent-promo-cc\">\n\t\t<div class=\"recent-pagination\" dojoType=\"ag.widget.gamereviews.RecentPagination\" ></div>\n\t\t<div dojoAttachPoint=\"container\"></div>\n\t\t<div class=\"recent-pagination\" dojoType=\"ag.widget.gamereviews.RecentPagination\" ></div>\n\t</div>\n\t<div class=\"recent-promo-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n<div>\n",widgetsInTemplate:true,_getModel:function(){return ag.widget.gamereviews.RecentReviewsModel.getModel("recent");},_createGameReviewWidget:function(_504){ag.widget.games.GameDataHelper.deriveAdditionalGameData(_504);return new ag.widget.gamereviews.RecentGameReview(_504,document.createElement("span"));}});dojo.declare("ag.widget.gamereviews.RecentGameReview",ag.widget.gamereviews.GameReview,{widgetsInTemplate:true,templateString:"<div class=\"recent-internal\">\n\t<div class=\"review-internal-tc-title\"></div>\n\t<div class=\"review-internal-cc\">\n\t\t<span class=\"recent-picon\">\n\t\t\t<a href=\"${url}\"><img src=\"${picon}\"/></a>\n\t\t</span>\n\t\t<div class=\"recent-game-name\"><a href=\"${url}\">${name}</a></div>\n\t\t<span class=\"recent-thumb\" dojoType=\"ag.widget.gamereviews.Thumb\" rating=\"${rating}\"></span>\n\t\t<span dojoType=\"ag.widget.gamereviews.TextToggle\" pageLocation=\"recent\">\n\t\t\t\t${review}\n\t\t</span>\n\t\t<div class=\"recent-createdby\">by <span class=\"recent-by\"><a href=\"/profile/${createdBy.profilePath}\">${createdBy.username}</a></span>${createdHtml}</div>\n\t\t<div class=\"recent-created-time\"></div>\n\t\t<span class=\"recent-flag\"><img src=\"/static/images/flag.png\"/></span>\n\t\t<span class=\"recent-report\" dojoType=\"ag.widget.gamereviews.FlagReview\" reviewId=\"${reviewId}\"></span>\n\t\t<span class=\"recent-delete\" dojoType=\"ag.widget.gamereviews.DeleteMyRecentReview\"\n\t\t\tgameId=\"${gameId}\"\n\t\t\titemId=\"${reviewId}\"\n\t\t\tcreatedByUserId=\"${createdBy.userId}\"></span>\n\t</div>\n\t<div class=\"review-internal-bc\"></div>\n</div>\n",postMixInProperties:function(){this.name=qi.util.escapeHTML(this.name);}});dojo.declare("ag.widget.gamereviews.RecentPagination",ag.widget.gamereviews.PaginationBase,{_getModel:function(){return ag.widget.gamereviews.RecentReviewsModel.getModel("recent");}});}if(!dojo._hasResource["ag.favorites.Model"]){dojo._hasResource["ag.favorites.Model"]=true;dojo.provide("ag.favorites.Model");dojo.declare("ag.favorites.Model",[],{_games:[],_getFavoritesService:new ag.services.JsonServiceFactory("favorites.get").method,_removeFavoriteService:new ag.services.JsonServiceFactory("favorites.remove").method,dataLoaded:false,constructor:function(){this._queryFavorites();},_queryFavorites:function(){if(LoginModule.isUserLoggedIn()){var _505=this._getQueryLimit();var _506={types:["favorites"],limit:_505};ag.user.LoggedInUser.mixinSessionUserUuid(_506);var _507=this._getFavoritesService(_506);_507.addCallback(dojo.hitch(this,function(_508){var _509=_508["favorites"];dojo.forEach(_509,function(game){game.gameId=game.id;delete game.id;ag.widget.games.GameDataHelper.deriveAdditionalGameData(game);});this._games=_509;this.dataLoaded=true;dojo.publish(ag.favorites.Model.TOPIC,[{eventType:"gotFavorites"}]);}));_507.addErrback(dojo.hitch(this,function(_50b){console.debug("error calling get favorites service",_50b);dojo.publish(ag.favorites.Model.TOPIC,[{eventType:"gotFavorites"}]);this.dataLoaded=true;}));}},getFavorites:function(){return this._games;},removeFavorite:function(_50c){var _50d={gameId:_50c};ag.user.LoggedInUser.mixinSessionUserUuid(_50d);return this._removeFavoriteService(_50d);}});dojo.declare("ag.favorites.HomepageFavoritesModel",[ag.favorites.Model],{_getQueryLimit:function(){return 6;}});dojo.declare("ag.favorites.FavoritesModel",[ag.favorites.Model],{_saveFavoritesService:new ag.services.JsonServiceFactory("favorites.save").method,_getQueryLimit:function(){return null;},setFavorites:function(_50e){this._games=_50e;var _50f=dojo.map(this._games,function(game){return game.gameId;});var _511={type:"favorites",gameIds:_50f};ag.user.LoggedInUser.mixinSessionUserUuid(_511);this._saveFavoritesService(_511);}});ag.favorites.Model.TOPIC="ag.favorites.Model.TOPIC";(function(){var _512=null;ag.favorites.Model.getFavoritesModel=function(){if(_512==null){_512=new ag.favorites.FavoritesModel();}return _512;};ag.favorites.Model.nullifyFavorites=function(){_512=null;};var _513=null;ag.favorites.Model.getHpFavoritesModel=function(){if(_513==null){_513=new ag.favorites.HomepageFavoritesModel();}return _513;};ag.favorites.Model.nullifyHpFavorites=function(){_513=null;};})();}if(!dojo._hasResource["ag.favorites.SimpleModel"]){dojo._hasResource["ag.favorites.SimpleModel"]=true;dojo.provide("ag.favorites.SimpleModel");dojo.declare("ag.favorites.SimpleModel",[],{_addFavoriteService:new ag.services.JsonServiceFactory("favorites.add").method,_isFavoritedService:new ag.services.JsonServiceFactory("favorites.isFavorite").method,favorited:false,topic:"",constructor:function(_514){this.topic=ag.favorites.SimpleModel.getTopic(_514);},addFavorite:function(_515){var _516={gameId:_515};ag.user.LoggedInUser.mixinSessionUserUuid(_516);var _517=this._addFavoriteService(_516);_517.addCallback(dojo.hitch(this,function(_518){this.favorited=true;FacebookRegisterModule.facebookPostToWall("GameFavorite",_515,"");dojo.publish(ag.favorites.SimpleModel.getTopic(_515),[{eventType:"addFavorite-success",model:this}]);}));_517.addErrback(dojo.hitch(this,function(_519){dojo.publish(ag.favorites.SimpleModel.getTopic(_515),[{eventType:"addFavorite-failure",error:_519}]);}));},isFavorited:function(_51a){var _51b={gameId:_51a,types:["favorites"]};ag.user.LoggedInUser.mixinSessionUserUuid(_51b);var _51c=this._isFavoritedService(_51b);_51c.addCallback(dojo.hitch(this,function(_51d){dojo.mixin(this,{favorited:_51d});dojo.publish(ag.favorites.SimpleModel.getTopic(_51a),[{eventType:"isFavorited-success",model:this,response:_51d}]);}));_51c.addErrback(dojo.hitch(this,function(_51e){dojo.publish(ag.favorites.SimpleModel.getTopic(_51a),[{eventType:"isFavorited-failure",response:_51e}]);}));}});ag.favorites.SimpleModel.getTopic=function(_51f){return "/favorites/"+String(_51f);};(function(){var _520=function(_521){return "_"+_521;};var _522={};ag.favorites.SimpleModel.getModel=function(_523){var key=_520(_523);if(_522[key]==null){_522[key]=new ag.favorites.SimpleModel(_523);}return _522[key];};ag.favorites.SimpleModel.nullify=function(_525){var key=_520(_525);delete _522[key];};}());}if(!dojo._hasResource["ag.widget.games.favorites.FavoriteManager"]){dojo._hasResource["ag.widget.games.favorites.FavoriteManager"]=true;dojo.provide("ag.widget.games.favorites.FavoriteManager");dojo.declare("ag.widget.games.favorites.FavoriteManager",[dijit._Widget,dijit._Templated],{templateString:"<span><span dojoAttachPoint=\"subscriptions\" dojoType=\"qi.widget.TopicSubscription\"></span></span>",widgetsInTemplate:true,gameId:0,isFramedGame:false,resultDispatcher:null,_modelInitialized:false,_favoritesURL:"/static/php/account/myFavoritesPage.php",postCreate:function(){AgEvent.LOGIN.subscribe(bindContext(this,this._onLogin));AgEvent.LOGOUT.subscribe(bindContext(this,this._onLogout));this.subscriptions.subscribe(ag.favorites.SimpleModel.getTopic(this.gameId),dojo.hitch(this,"_onSimpleModel"));this.resultDispatcher=new qi.validation.ResultDispatcher();this.resultDispatcher.addActionMapping("messages",dojo.hitch(this,function(_527){if(_527.action=="FAVORITES_COLLECTION_FULL"){this._createAndShowFavoritesFullForm(_527);}}));this.resultDispatcher.addMappedCallback("messages",function(){});if(LoginModule.isUserLoggedIn()){this._initializeModel();}},_createAndShowFavoritesFullForm:function(_528){if(false==this.isFramedGame){var span=document.createElement("span");dojo.body().appendChild(span);var dlg=new qi.widget.FlashTopicContainerDialog({},span);var _52b={dialog:dlg,favoritesURL:this._favoritesURL};dojo.mixin(_52b,_528);var form=new ag.widget.games.favorites.FavoritesFullForm(_52b,span);dlg.addChild(form);dlg.show();}else{var _52d=confirm("You already have "+_528.maxSize+" games saved as favorites. You must delete games"+" from your list in order to add more."+" Click OK to edit your favorites list.");if(_52d){window.top.location=this._favoritesURL;}}},_initializeModel:function(){if(false==this._modelInitialized){var _52e=ag.favorites.SimpleModel.getModel(this.gameId);_52e.isFavorited(this.gameId);this._modelInitialized=true;}},_onLogin:function(){this._initializeModel();},_onLogout:function(){ag.favorites.SimpleModel.nullify(this.gameId);this._modelInitialized=false;},_onSimpleModel:function(_52f){if("addFavorite-success"==_52f.eventType||"isFavorited-success"==_52f.eventType||"isFavorited-failure"==_52f.eventType){}else{if(_52f.eventType=="addFavorite-failure"){this.resultDispatcher.dispatch(_52f.error);}else{console.debug("unknown event type",_52f);}}}});(function(){var _530=function(_531){return "favoriteManager_"+_531.toString();};ag.widget.games.favorites.FavoriteManager.getFavoriteManager=function(_532,_533){var id=_530(_532);var _535=dijit.byId(id);if(_535==null){_535=new ag.widget.games.favorites.FavoriteManager({id:id,gameId:_532,isFramedGame:_533},document.createElement("span"));dojo.body().appendChild(_535.domNode);}return _535;};}());}if(!dojo._hasResource["ag.widget.games.favorites.Favorite"]){dojo._hasResource["ag.widget.games.favorites.Favorite"]=true;dojo.provide("ag.widget.games.favorites.Favorite");dojo.declare("ag.widget.games.favorites.FavoriteContainer",[dijit._Widget,qi.widget.StatePatternContainer],{gameId:0,isFramedGame:false,postCreate:function(){this.domNode.innerHTML="";ag.widget.games.favorites.FavoriteManager.getFavoriteManager(this.gameId,this.isFramedGame);this._showAsFavorite();},_showAsFavorite:function(){this._changeState(new ag.widget.games.favorites.Favorite({gameId:this.gameId,isFramedGame:this.isFramedGame},document.createElement("span")));},_showAsFavorited:function(){this._changeState(new ag.widget.games.favorites.Favorited({gameId:this.gameId},document.createElement("span")));}});dojo.declare("ag.widget.games.favorites.Favorite",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"add-to-favorites\">\n\t<a class=\"add-favorites-plus-link\" dojoAttachEvent=\"onclick:onAddToFavorites\" href=\"#favorite\">\n\t\t<div class=\"add-favorites-plus\"></div>\n\t</a>\n\t<div class=\"add-to-favorites-text\">\n\t\t<a dojoAttachEvent=\"onclick:onAddToFavorites\" href=\"#favorite\">Favorite</a>\n\t</div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,gameId:0,isClicked:false,isFramedGame:false,_favoritesURL:"/static/php/account/myFavoritesPage.php",postCreate:function(){this.subscriptions.subscribe(ag.favorites.SimpleModel.getTopic(this.gameId),dojo.hitch(this,function(_536){this.isClicked=false;if("addFavorite-success"==_536.eventType){this._checkAlreadyFavorited(true);}else{if("addFavorite-failure"==_536.eventType||"isFavorited-failure"==_536.eventType){}else{if("isFavorited-success"==_536.eventType){this._checkAlreadyFavorited(_536.response);}else{console.debug("unknown event type",_536);}}}}));},onAddToFavorites:function(e){e.preventDefault();if(!this.isClicked){this.isClicked=true;if(false==this.isFramedGame){new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,function(){var _538=ag.favorites.SimpleModel.getModel(this.gameId);_538.addFavorite(this.gameId);}),headerMessage:"<em>You must be logged in to access this feature.</em>"});}else{this._favoriteFramedGame();}this.isClicked=false;}},_checkAlreadyFavorited:function(_539){if(_539){this.getParent()._showAsFavorited();}},_favoriteFramedGame:function(){if(LoginModule.isUserLoggedIn()){var _53a=ag.favorites.SimpleModel.getModel(this.gameId);_53a.addFavorite(this.gameId);}else{window.top.location="/?pageAction=showLoginPopup&redirect="+window.top.location.pathname;}}});dojo.declare("ag.widget.games.favorites.Favorited",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"add-to-favorites\">\n\t<div class=\"add-favorites-check\"></div>\n\t<div class=\"favoriteLink_disabled\">Favorited!</div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,gameId:0,postCreate:function(){AgEvent.LOGOUT.subscribe(bindContext(this,this._onLogout));},_onLogout:function(){ag.favorites.SimpleModel.nullify(this.gameId);this.getParent()._showAsFavorite();}});dojo.declare("ag.widget.games.favorites.FavoritesFullForm",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"favorites-full\">\n\tYou already have ${maxSize} games saved as favorites. \n\t<br />\n\tYou must delete games from your list in order to add more.\n\t<br />\n\t<a href=\"#edit_favorites\" dojoAttachEvent=\"onclick:_onEditFavorites\">Click here to edit your favorites list</a>\n</div>\n",dialog:{},maxSize:0,favoritesURL:"",_onEditFavorites:function(e){e.preventDefault();window.top.location=this.favoritesURL;},_close:function(){this.dialog.hide();}});}if(!dojo._hasResource["dojo.dnd.Avatar"]){dojo._hasResource["dojo.dnd.Avatar"]=true;dojo.provide("dojo.dnd.Avatar");dojo.dnd.Avatar=function(_53c){this.manager=_53c;this.construct();};dojo.extend(dojo.dnd.Avatar,{construct:function(){var a=dojo.doc.createElement("table");a.className="dojoDndAvatar";a.style.position="absolute";a.style.zIndex=1999;a.style.margin="0px";var b=dojo.doc.createElement("tbody");var tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarHeader";var td=dojo.doc.createElement("td");td.innerHTML=this._generateText();tr.appendChild(td);dojo.style(tr,"opacity",0.9);b.appendChild(tr);var k=Math.min(5,this.manager.nodes.length);var _542=this.manager.source;for(var i=0;i<k;++i){tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarItem";td=dojo.doc.createElement("td");var node=_542.creator?node=_542._normalizedCreator(_542.getItem(this.manager.nodes[i].id).data,"avatar").node:node=this.manager.nodes[i].cloneNode(true);node.id="";td.appendChild(node);tr.appendChild(td);dojo.style(tr,"opacity",(9-i)/10);b.appendChild(tr);}a.appendChild(b);this.node=a;},destroy:function(){dojo._destroyElement(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");var t=this.node.getElementsByTagName("td");for(var i=0;i<t.length;++i){var n=t[i];if(dojo.hasClass(n.parentNode,"dojoDndAvatarHeader")){n.innerHTML=this._generateText();break;}}},_generateText:function(){return this.manager.nodes.length.toString();}});}if(!dojo._hasResource["dojo.dnd.Manager"]){dojo._hasResource["dojo.dnd.Manager"]=true;dojo.provide("dojo.dnd.Manager");dojo.dnd.Manager=function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];};dojo.extend(dojo.dnd.Manager,{OFFSET_X:0,OFFSET_Y:0,overSource:function(_548){if(this.avatar){this.target=(_548&&_548.targetState!="Disabled")?_548:null;this.avatar.update();}dojo.publish("/dnd/source/over",[_548]);},outSource:function(_549){if(this.avatar){if(this.target==_549){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_54a,_54b,copy){this.source=_54a;this.nodes=_54b;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_54a,_54b,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp")];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var _54f=this.target&&flag;if(this.canDropFlag!=_54f){this.canDropFlag=_54f;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),"dojoDndCopy");dojo.removeClass(dojo.body(),"dojoDndMove");dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScroll(e);dojo.marginBox(a.node,{l:e.pageX+this.OFFSET_X,t:e.pageY+this.OFFSET_Y});var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar&&(!("mouseButton" in this.source)||this.source.mouseButton==e.button)){if(this.target&&this.canDropFlag){var _554=[this.source,this.nodes,Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e))),this.target];dojo.publish("/dnd/drop/before",_554);dojo.publish("/dnd/drop",_554);}else{dojo.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy"));dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"));}});dojo.dnd._manager=null;dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}return dojo.dnd._manager;};}if(!dojo._hasResource["ag.widget.DojoOverride"]){dojo._hasResource["ag.widget.DojoOverride"]=true;dojo.provide("ag.widget.DojoOverride");dojo.extend(dojo.dnd.Manager,{onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScroll(e);dojo.marginBox(a.node,{l:e.pageX+this.OFFSET_X,t:e.pageY+this.OFFSET_Y});if(false==a.avatarShown){a.node.style.zIndex=1999;a.avatarShown=true;}var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}}});dojo.extend(dojo.dnd.Avatar,{avatarShown:false,construct:function(){var a=dojo.doc.createElement("table");a.className="dojoDndAvatar";a.style.position="absolute";a.style.zIndex=-1;a.style.margin="0px";var b=dojo.doc.createElement("tbody");var tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarHeader";var td=dojo.doc.createElement("td");td.innerHTML=this._generateText();tr.appendChild(td);dojo.style(tr,"opacity",0.9);b.appendChild(tr);var k=Math.min(5,this.manager.nodes.length);var _562=this.manager.source;for(var i=0;i<k;++i){tr=dojo.doc.createElement("tr");tr.className="dojoDndAvatarItem";td=dojo.doc.createElement("td");var node=_562.creator?node=_562._normalizedCreator(_562.getItem(this.manager.nodes[i].id).data,"avatar").node:node=this.manager.nodes[i].cloneNode(true);node.id="";td.appendChild(node);tr.appendChild(td);dojo.style(tr,"opacity",(9-i)/10);b.appendChild(tr);}a.appendChild(b);this.node=a;}});}if(!dojo._hasResource["ag.widget.games.DraggableGame"]){dojo._hasResource["ag.widget.games.DraggableGame"]=true;dojo.provide("ag.widget.games.DraggableGame");dojo.declare("ag.widget.games.DraggableGame",[dijit._Widget,dijit._Templated,dijit._Contained],{widgetsInTemplate:true,templateString:"<div class=\"dojoDndItem my-fav-game\" dndType=\"${dndType}\">\n\t<div class=\"my-fav-inner\">\n\t\t<div dojoAttachPoint=\"ordinalDiv\" class=\"my-fav-ordinal\">${ordinal}</div>\n\t\t<div class=\"my-fav-picon\">\n\t\t\t<a dojoAttachEvent=\"onclick:_onclick, onmousedown:_onmousedown\" href=\"${url}\">\n\t\t\t\t<img src=\"${picon}\" height=\"50\" width=\"50\"/>\n\t\t\t</a>\n\t\t</div>\n\t\t<a href=\"#remove\" dojoAttachEvent=\"onclick:_onRemoveFavorite\">\n\t\t\t<div class=\"my-fav-delete\"></div>\n\t\t</a>\n\t\t<div class=\"my-fav-title\">\n\t\t\t<a dojoAttachEvent=\"onclick:_onclick, onmousedown:_onmousedown\" href=\"${url}\">${title}</a>\n\t\t</div>\n\t</div>\n\t<div class=\"my-fav-indicator\"></div>\n</div>\n",dndType:"game",game:null,url:"",picon:"",title:"",gameId:0,ordinal:0,removingFavorite:false,_onmousemoveEvent:null,_clickPosition:null,_consumeClick:false,_maxTitleLength:20,_elipses:"...",postMixInProperties:function(){this.url=this.game.url;this.title=qi.util.trim(this.game.title,this._maxTitleLength,this._elipses);this.gameId=this.game.gameId;this.picon=this.game.picon;},postCreate:function(){this.setOrdinal(this.ordinal);},destroy:function(){this._removeOnmousemoveEvent();this.inherited("destroy",arguments);},setOrdinal:function(_565){this.ordinal=_565;this.ordinalDiv.innerHTML=this.ordinal.toString();if(_565<=10){dojo.addClass(this.domNode,"highlight");}else{dojo.removeClass(this.domNode,"highlight");}},_onRemoveFavorite:function(e){e.preventDefault();if(!this.removingFavorite){this.removingFavorite=true;this.getParent().destroyGame(this.gameId,this);}},_onclick:function(e){if(this._consumeClick){this._consumeClick=false;dojo.stopEvent(e);}},_onmousedown:function(e){this._clickPosition={x:e.pageX,y:e.pageY};this._onmousemoveEvent=dojo.connect(this.domNode,"onmousemove",this,"_onmousemove");},_onmousemove:function(e){if(this._clickPosition!=null&&this._clickPosition.x!=e.pageX&&this._clickPosition.y!=e.pageY){this._removeOnmousemoveEvent();this._consumeClick=true;}},_removeOnmousemoveEvent:function(){if(this._onmousemoveEvent!=null){dojo.disconnect(this._onmousemoveEvent);this._onmousemoveEvent=null;}}});}if(!dojo._hasResource["ag.widget.games.favorites.MyFavoritesPage"]){dojo._hasResource["ag.widget.games.favorites.MyFavoritesPage"]=true;dojo.provide("ag.widget.games.favorites.MyFavoritesPage");dojo.declare("ag.widget.games.favorites.MyFavoritesPage",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span class='my-favorites-page'><span dojoAttachPoint='output'></span></span>",myFavorites:null,addGame:function(_56a){this.output.appendChild(_56a.domNode);},destroyGame:function(_56b,_56c){this.myFavorites.destroyGame(_56b,_56c);}});}if(!dojo._hasResource["ag.widget.games.favorites.MyFavoritesPaginationLink"]){dojo._hasResource["ag.widget.games.favorites.MyFavoritesPaginationLink"]=true;dojo.provide("ag.widget.games.favorites.MyFavoritesPaginationLink");dojo.declare("ag.widget.games.favorites.MyFavoritesPaginationLink",[dijit._Widget,dijit._Templated],{templateString:"<span class=\"my-fav-pag\">\n\t<a\n\t  class=\"dispnone my-fav-arrow\"\n\t  href=\"#\"\n\t  dojoAttachPoint=\"prevLink\"\n\t  dojoAttachEvent=\"onclick:_onPrev\">&lt;</a>\n\t<span>${page} of ${pages}</span>\n\t<a\n\t  class=\"dispnone my-fav-arrow\"\n\t  href=\"#\"\n\t  dojoAttachPoint=\"nextLink\"\n\t  dojoAttachEvent=\"onclick:_onNext\">&gt;</a>\n</span>\n",widgetsInTemplate:false,page:1,pages:1,myFavorites:null,postCreate:function(){if(this.page>1){dojo.removeClass(this.prevLink,"dispnone");}if(this.page<this.pages){dojo.removeClass(this.nextLink,"dispnone");}},_onPrev:function(_56d){dojo.stopEvent(_56d);this.myFavorites._onPrev();},_onNext:function(_56e){dojo.stopEvent(_56e);this.myFavorites._onNext();}});}if(!dojo._hasResource["dojo.dnd.Container"]){dojo._hasResource["dojo.dnd.Container"]=true;dojo.provide("dojo.dnd.Container");dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(node,_570){this.node=dojo.byId(node);if(!_570){_570={};}this.creator=_570.creator||null;this.skipForm=_570.skipForm;this.defaultCreator=dojo.dnd._defaultCreator(this.node);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(_570&&_570._skipStartup)){this.startup();}this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,data){this.map[key]=data;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||dojo.global;var m=this.map,e=dojo.dnd._empty;for(var i in this.map){if(i in e){continue;}f.call(o,m[i],i,m);}},clearItems:function(){this.map={};},getAllNodes:function(){return dojo.query("> .dojoDndItem",this.parent);},insertNodes:function(data,_57b,_57c){if(!this.parent.firstChild){_57c=null;}else{if(_57b){if(!_57c){_57c=this.parent.firstChild;}}else{if(_57c){_57c=_57c.nextSibling;}}}if(_57c){for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,_57c);}}else{for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.clearItems();this.node=this.parent=this.current;},markupFactory:function(_57f,node){_57f._skipStartup=true;return new dojo.dnd.Container(node,_57f);},startup:function(){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}dojo.query("> .dojoDndItem",this.parent).forEach(function(node){if(!node.id){node.id=dojo.dnd.getUniqueId();}var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");this.setItem(node.id,{data:data?data:node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]});},this);},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,_58b){var _58c="dojoDnd"+type;var _58d=type.toLowerCase()+"State";dojo.removeClass(this.node,_58c+this[_58d]);dojo.addClass(this.node,_58c+_58b);this[_58d]=_58b;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},_getChildByEvent:function(e){var node=e.target;if(node){for(var _594=node.parentNode;_594;node=_594,_594=node.parentNode){if(_594==this.parent&&dojo.hasClass(node,"dojoDndItem")){return node;}}}return null;},_normalizedCreator:function(item,hint){var t=(this.creator?this.creator:this.defaultCreator)(item,hint);if(!dojo.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=dojo.dnd.getUniqueId();}dojo.addClass(t.node,"dojoDndItem");return t;}});dojo.dnd._createNode=function(tag){if(!tag){return dojo.dnd._createSpan;}return function(text){var n=dojo.doc.createElement(tag);n.innerHTML=text;return n;};};dojo.dnd._createTrTd=function(text){var tr=dojo.doc.createElement("tr");var td=dojo.doc.createElement("td");td.innerHTML=text;tr.appendChild(td);return tr;};dojo.dnd._createSpan=function(text){var n=dojo.doc.createElement("span");n.innerHTML=text;return n;};dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dojo.dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="table"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);return function(item,hint){var _5a5=dojo.isObject(item)&&item;var data=(_5a5&&item.data)?item.data:item;var type=(_5a5&&item.type)?item.type:["text"];var t=String(data),n=(hint=="avatar"?dojo.dnd._createSpan:c)(t);n.id=dojo.dnd.getUniqueId();return {node:n,data:data,type:type};};};}if(!dojo._hasResource["dojo.dnd.Selector"]){dojo._hasResource["dojo.dnd.Selector"]=true;dojo.provide("dojo.dnd.Selector");dojo.declare("dojo.dnd.Selector",dojo.dnd.Container,{constructor:function(node,_5ab){if(!_5ab){_5ab={};}this.singular=_5ab.singular;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(dojo.connect(this.node,"onmousedown",this,"onMouseDown"),dojo.connect(this.node,"onmouseup",this,"onMouseUp"));},singular:false,getSelectedNodes:function(){var t=new dojo.NodeList();var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}t.push(dojo.byId(i));}return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(data,id){this._addItemClass(dojo.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}var n=dojo.byId(i);this.delItem(i);dojo._destroyElement(n);}this.anchor=null;this.selection={};return this;},insertNodes:function(_5b4,data,_5b6,_5b7){var _5b8=this._normalizedCreator;this._normalizedCreator=function(item,hint){var t=_5b8.call(this,item,hint);if(_5b4){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else{if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}}this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}return t;};dojo.dnd.Selector.superclass.insertNodes.call(this,data,_5b6,_5b7);this._normalizedCreator=_5b8;return this;},destroy:function(){dojo.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},markupFactory:function(_5bc,node){_5bc._skipStartup=true;return new dojo.dnd.Selector(node,_5bc);},onMouseDown:function(e){if(!this.current){return;}if(!this.singular&&!dojo.dnd.getCopyKeyState(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;dojo.stopEvent(e);return;}if(!this.singular&&e.shiftKey){if(!dojo.dnd.getCopyKeyState(e)){this._removeSelection();}var c=dojo.query("> .dojoDndItem",this.parent);if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0;for(;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}}for(++i;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}this._addItemClass(node,"Selected");this.selection[node.id]=1;}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(dojo.dnd.getCopyKeyState(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(dojo.dnd.getCopyKeyState(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}dojo.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(e){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=dojo.connect(this.node,"onmousemove",this,"onMouseMove");},onOutEvent:function(){dojo.disconnect(this.onmousemoveEvent);delete this.onmousemoveEvent;},_removeSelection:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}var node=dojo.byId(i);if(node){this._removeItemClass(node,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;}});}if(!dojo._hasResource["dojo.dnd.Source"]){dojo._hasResource["dojo.dnd.Source"]=true;dojo.provide("dojo.dnd.Source");dojo.declare("dojo.dnd.Source",dojo.dnd.Selector,{isSource:true,horizontal:false,copyOnly:false,skipForm:false,withHandles:false,accept:["text"],constructor:function(node,_5c8){if(!_5c8){_5c8={};}this.isSource=typeof _5c8.isSource=="undefined"?true:_5c8.isSource;var type=_5c8.accept instanceof Array?_5c8.accept:["text"];this.accept=null;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.horizontal=_5c8.horizontal;this.copyOnly=_5c8.copyOnly;this.withHandles=_5c8.withHandles;this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.before=true;this.sourceState="";if(this.isSource){dojo.addClass(this.node,"dojoDndSource");}this.targetState="";if(this.accept){dojo.addClass(this.node,"dojoDndTarget");}if(this.horizontal){dojo.addClass(this.node,"dojoDndHorizontal");}this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(_5cb,_5cc){if(this==_5cb){return true;}for(var i=0;i<_5cc.length;++i){var type=_5cb.getItem(_5cc[i].id).type;var flag=false;for(var j=0;j<type.length;++j){if(type[j] in this.accept){flag=true;break;}}if(!flag){return false;}}return true;},copyState:function(_5d1){return this.copyOnly||_5d1;},destroy:function(){dojo.dnd.Source.superclass.destroy.call(this);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},markupFactory:function(_5d2,node){_5d2._skipStartup=true;return new dojo.dnd.Source(node,_5d2);},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}dojo.dnd.Source.superclass.onMouseMove.call(this,e);var m=dojo.dnd.manager();if(this.isDragging){var _5d6=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current){this.targetBox={xy:dojo.coords(this.current,true),w:this.current.offsetWidth,h:this.current.offsetHeight};}if(this.horizontal){_5d6=(e.pageX-this.targetBox.xy.x)<(this.targetBox.w/2);}else{_5d6=(e.pageY-this.targetBox.xy.y)<(this.targetBox.h/2);}}if(this.current!=this.targetAnchor||_5d6!=this.before){this._markTargetAnchor(_5d6);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}else{if(this.mouseDown&&this.isSource){var _5d7=this.getSelectedNodes();if(_5d7.length){m.startDrag(this,_5d7,this.copyState(dojo.dnd.getCopyKeyState(e)));}}}},onMouseDown:function(e){if(this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){this.mouseDown=true;this.mouseButton=e.button;dojo.dnd.Source.superclass.onMouseDown.call(this,e);}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;dojo.dnd.Source.superclass.onMouseUp.call(this,e);}},onDndSourceOver:function(_5da){if(this!=_5da){this.mouseDown=false;if(this.targetAnchor){this._unmarkTargetAnchor();}}else{if(this.isDragging){var m=dojo.dnd.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)));}}},onDndStart:function(_5dc,_5dd,copy){if(this.isSource){this._changeState("Source",this==_5dc?(copy?"Copied":"Moved"):"");}var _5df=this.accept&&this.checkAcceptance(_5dc,_5dd);this._changeState("Target",_5df?"":"Disabled");if(_5df&&this==_5dc){dojo.dnd.manager().overSource(this);}this.isDragging=true;},onDndDrop:function(_5e0,_5e1,copy){do{if(this.containerState!="Over"){break;}var _5e3=this._normalizedCreator;if(this!=_5e0){if(this.creator){this._normalizedCreator=function(node,hint){return _5e3.call(this,_5e0.getItem(node.id).data,hint);};}else{if(copy){this._normalizedCreator=function(node,hint){var t=_5e0.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}else{this._normalizedCreator=function(node,hint){var t=_5e0.getItem(node.id);_5e0.delItem(node.id);return {node:node,data:t.data,type:t.type};};}}}else{if(this.current&&this.current.id in this.selection){break;}if(this.creator){if(copy){this._normalizedCreator=function(node,hint){return _5e3.call(this,_5e0.getItem(node.id).data,hint);};}else{if(!this.current){break;}this._normalizedCreator=function(node,hint){var t=_5e0.getItem(node.id);return {node:node,data:t.data,type:t.type};};}}else{if(copy){this._normalizedCreator=function(node,hint){var t=_5e0.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}else{if(!this.current){break;}this._normalizedCreator=function(node,hint){var t=_5e0.getItem(node.id);return {node:node,data:t.data,type:t.type};};}}}this._removeSelection();if(this!=_5e0){this._removeAnchor();}if(this!=_5e0&&!copy&&!this.creator){_5e0.selectNone();}this.insertNodes(true,_5e1,this.before,this.current);if(this!=_5e0&&!copy&&this.creator){_5e0.deleteSelectedNodes();}this._normalizedCreator=_5e3;}while(false);this.onDndCancel();},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this.targetAnchor=null;}this.before=true;this.isDragging=false;this.mouseDown=false;delete this.mouseButton;this._changeState("Source","");this._changeState("Target","");},onOverEvent:function(){dojo.dnd.Source.superclass.onOverEvent.call(this);dojo.dnd.manager().overSource(this);},onOutEvent:function(){dojo.dnd.Source.superclass.onOutEvent.call(this);dojo.dnd.manager().outSource(this);},_markTargetAnchor:function(_5f9){if(this.current==this.targetAnchor&&this.before==_5f9){return;}if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}this.targetAnchor=this.current;this.targetBox=null;this.before=_5f9;if(this.targetAnchor){this._addItemClass(this.targetAnchor,this.before?"Before":"After");}},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");},_legalMouseDown:function(e){if(!this.withHandles){return true;}for(var node=e.target;node&&!dojo.hasClass(node,"dojoDndItem");node=node.parentNode){if(dojo.hasClass(node,"dojoDndHandle")){return true;}}return false;}});dojo.declare("dojo.dnd.Target",dojo.dnd.Source,{constructor:function(node,_5fe){this.isSource=false;dojo.removeClass(this.node,"dojoDndSource");},markupFactory:function(_5ff,node){_5ff._skipStartup=true;return new dojo.dnd.Target(node,_5ff);}});}if(!dojo._hasResource["ag.widget.games.favorites.MyFavorites"]){dojo._hasResource["ag.widget.games.favorites.MyFavorites"]=true;dojo.provide("ag.widget.games.favorites.MyFavorites");dojo.declare("ag.widget.games.favorites.MyFavorites",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<span><span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>",widgetsInTemplate:true,_model:null,postCreate:function(){this._model=ag.favorites.Model.getFavoritesModel();this.subscriptions.subscribe(ag.favorites.Model.TOPIC,dojo.hitch(this,"_onFavoritesLoaded"));},_onFavoritesLoaded:function(){var _601=this._model.getFavorites();if(_601.length>0){this._showWithFavorites();}else{this._showWithNoFavorites();}},_showWithFavorites:function(){var _602=new ag.widget.games.favorites.MyFavoritesWithGames({_model:this._model},document.createElement("span"));this._changeState(_602);},_showWithNoFavorites:function(){var _603=new ag.widget.games.favorites.MyFavoritesNoGames({},document.createElement("span"));this._changeState(_603);}});dojo.declare("ag.widget.games.favorites.MyFavoritesNoGames",[dijit._Widget,dijit._Templated],{templateString:"<span>"+"<span class=\"my-favorites-no-games\">You do not yet have any Favorite Games saved.<br/>"+"Click the FAVORITE link at the top right hand corner of any game page and it will be saved here."+"<a href=\"javascript:history.go(-3)\" class=\"button_standard\">OK</a>"+"</span>"});dojo.declare("ag.widget.games.favorites.MyFavoritesWithGames",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained],{templateString:"<div class=\"my-fav\">    \n    <div class=\"mod\">\n        <div class=\"mod_top\">\n            <h2 class=\"float\">Favorites</h2><div class=\"h2parens float\" id=\"fvTotal\"></div><br class=\"clearFloat\" />\n        </div>\n        <div class=\"mod_main\">\n            <span class=\"my-fav-header\">\n                <img class=\"my-fav-hand\" src=\"/static/images/hand_icon.png\" width=\"16px\" height=\"16px\" />\n                <div class=\"my-fav-info\">Drag and drop to reorder your favorite games (The first 10 will appear in your profile, and the first 6 will appear on the home page).</div>\n            </span>\n\n            <div class=\"my-fav-container\">\n                <span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\">\n                <span class=\"my-fav-content\" dojoAttachPoint=\"favoritesContainer\"></span>\n                <br class=\"clearFloat\"/>\n            </div>\n        </div>\n        <div class=\"mod_bottom\">&nbsp;</div>\n    </div>\n</div>\n\n\n",widgetsInTemplate:true,username:"My",_model:null,_pageWidget:null,postCreate:function(){var _604=dojo.dnd.manager();_604.OFFSET_X=3;_604.OFFSET_Y=3;this._createPage();},postMixInProperties:function(){this.username=LoginModule.getSessionUsername()+"'s";},destroyGame:function(_605,_606){this._model.removeFavorite(_605);_606.destroyRecursive();this._updatePage();},_createPage:function(){var _607=new ag.widget.games.favorites.MyFavoritesPage({myFavorites:this},document.createElement("span"));var _608=this._model.getFavorites();for(var i=0;i<_608.length;i++){var _60a=new ag.widget.games.DraggableGame({game:_608[i],ordinal:i+1},document.createElement("span"));_607.addGame(_60a);}if(this._pageWidget!=null){this._pageWidget.destroyRecursive();this._pageWidget=null;}this._pageWidget=_607;this.favoritesContainer.appendChild(this._pageWidget.domNode);var _60b=new dojo.dnd.Source(_607.output,{singular:true,isSource:true,accept:["game"],horizontal:true});_60b.copyState=function(_60c){return false;};this.subscriptions.subscribe("/dnd/drop",dojo.hitch(this,"_onDrop"));},_updatePage:function(){var _60d=dojo.query("[dndType~=game]",this._pageWidget.output);if(_60d.length>0){for(var i=0;i<_60d.length;i+=1){var node=_60d[i];dijit.byNode(node).setOrdinal(i+1);}}else{this.getParent()._showWithNoFavorites();}},_onDrop:function(){var _610=dojo.map(dojo.query("[dndType~=game]",this._pageWidget.output),function(node){return dijit.byNode(node).game;});this._updatePage();this._model.setFavorites(_610);}});}if(!dojo._hasResource["ag.widget.games.genre.GenrePanel"]){dojo._hasResource["ag.widget.games.genre.GenrePanel"]=true;dojo.provide("ag.widget.games.genre.GenrePanel");dojo.declare("ag.widget.games.genre.GenrePanel",[dijit._Widget,dijit._Templated,dijit._Container],{widgetsInTemplate:true,templateString:"<div>\n\t<div class=\"featured-games-tc\"></div>\n\t<div class=\"genre-widget-menu\">\n\t\t<div class=\"genre-widget-title\" dojoAttachPoint=\"_genreNameTitle\"></div>\n\t\t<div class=\"genre-widget-menu-link\">\n\t\t\t<a href=\"#MostPopular\" dojoAttachPoint=\"_mostPopularLink\" dojoAttachEvent=\"onclick:_onMostPopular\">Most Popular</a>\n \t\t</div>\n \t\t<img class=\"genre-widget-menu-img\" src=\"/images/vline.png\" />\n\t\t<div class=\"genre-widget-menu-link\">\n\t\t\t<a href=\"#ViewAll\" dojoAttachPoint=\"_viewAllLink\" dojoAttachEvent=\"onclick:_onViewAll\">View All Alphabetically</a>\n\t\t</div>\n\t</div>\n\t<div dojoAttachPoint=\"panel\"></div>\n \t<div class=\"featured-games-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",genreId:0,genreName:"",panel:{},currentPeriod:"",kind:"",postCreate:function(){if(this.kind==ag.widget.games.genre.GenrePanel.KIND_GENRE){this._genreNameTitle.innerHTML=this.genreName+":";}else{this._genreNameTitle.innerHTML=this.genreName+" Games:";}this._viewAll=new ag.widget.games.genre.GenrePanelViewAll({genreId:this.genreId,genreName:this.genreName,_kind:this.kind},document.createElement("span"));var data={maxGamesToDisplay:50,selectedGenre:this.genreName,currentPeriod:this.currentPeriod,genreId:this.genreId,_kind:this.kind};this._mostPopular=new ag.widget.games.genre.TopGames(data,document.createElement("span"));var _613=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelAlgorithm");if(null!=_613){var _614=_613[this.genreId];if(null!=_614&&"undefined"!=_614&&"viewAll"==_614){this._onViewAll();}else{this._onMostPopular();}}else{this._onMostPopular();}},_onViewAll:function(e){if(typeof (e)!="undefined"){e.preventDefault();}ag.widget.StatusCookie.mixinWidgetStatus("genrePanelAlgorithm","viewAll",this.genreId);dojo.removeClass(this._mostPopularLink,"selected");dojo.addClass(this._viewAllLink,"selected");this._tryRemove(this._mostPopular);this.panel.appendChild(this._viewAll.domNode);},_onMostPopular:function(e){if(typeof (e)!="undefined"){e.preventDefault();}ag.widget.StatusCookie.mixinWidgetStatus("genrePanelAlgorithm","mostPopular",this.genreId);dojo.removeClass(this._viewAllLink,"selected");dojo.addClass(this._mostPopularLink,"selected");this._tryRemove(this._viewAll);this.panel.appendChild(this._mostPopular.domNode);},_tryRemove:function(_617){if(_617.domNode.parentNode){_617.domNode.parentNode.removeChild(_617.domNode);}}});dojo.declare("ag.widget.games.genre.GenrePanelViewAll",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{widgetsInTemplate:true,templateString:"<div>\n\t<div class=\"genre-all-tabs\">\n\t\t<div dojoType=\"qi.widget.TabButtons\" dojoAttachPoint=\"tabs\" class=\"genre-all-menu\">\n\t\t\t<span dojoAttachPoint=\"tabPlaceholder\"></span>\n\t\t</div>\n\t</div>\n\t<div>\n\t\t<div dojoAttachPoint=\"panel\"></div>\n\t</div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",tabs:{},tabPlaceholder:{},panel:{},subscriptions:{},genreId:0,genreName:"",_kind:"",postCreate:function(){this.subscriptions.subscribe(this.tabs.topic,dojo.hitch(this,"_onTabClicked"));this.model=new ag.widget.games.genre.Model(this.genreId,this._kind);this.model.loadCompleted.addCallback(dojo.hitch(this,"_onModelLoaded"));},_onModelLoaded:function(){this.gamesWithTextLinksPages=this.model.paginate(186);this.gamesWithIconsPages=this.model.paginate(50);var idx;for(idx=0;idx<this.gamesWithIconsPages.length;++idx){var page=this.gamesWithIconsPages[idx];var _61a=""+page.startLetter+"-"+page.endLetter;var tab=new qi.widget.TabButtons.Tab({templateString:"<span><li class=\"${class}\"><a href=\"#\" dojoAttachEvent=\"onclick:onClick\">${text}</a></li></span>",text:_61a,key:_61a,"class":"genremenu-short",selected:idx==0},document.createElement("span"));tab.genrePage=page;tab.genrePageType="picon";this.tabs.addChild(tab);}for(idx=0;idx<this.gamesWithTextLinksPages.length;++idx){var page=this.gamesWithTextLinksPages[idx];var _61a="Text "+page.startLetter+"-"+page.endLetter;var tab=new qi.widget.TabButtons.Tab({templateString:"<span><li class=\"${class}\"><a href=\"#\" dojoAttachEvent=\"onclick:onClick\">${text}</a></li></span>",text:_61a,key:_61a,"class":"genremenu-wide",selected:idx==0},document.createElement("span"));tab.genrePage=page;tab.genrePageType="text";this.tabs.addChild(tab);}var _61c;if(this.tabs.hasChildren()){_61c=this.tabs.getChildren()[0];}var _61d=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelTab");if(null!=_61d){var _61e=_61d[this.genreId];if(null!=_61e&&"undefined"!=_61e){dojo.forEach(this.tabs.getChildren(),dojo.hitch(this,function(tab){if(_61e==tab.text){_61c=tab;}}));}}_61c.select();this._onTabClicked({eventType:"click",tab:_61c});},_onTabClicked:function(_620){if("click"==_620.eventType&&this.currentTab!=_620.tab){this.currentTab=_620.tab;ag.widget.StatusCookie.mixinWidgetStatus("genrePanelTab",this.currentTab.text,this.genreId);var _621;if("text"==_620.tab.genrePageType){_621=new ag.widget.games.genre.GameWithTextLinkContainer({games:_620.tab.genrePage.games},this.panel);}else{if("picon"==_620.tab.genrePageType){_621=new ag.widget.games.genre.GameWithPiconContainer({games:_620.tab.genrePage.games},this.panel);}}if(_621){this._changeState(_621);}}}});dojo.declare("ag.widget.games.genre.GameWithPicon",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div class=\"genre-game-picon\">\n\t<a href=\"${url}\">\n    \t<img src=\"${picon}\" dojoType=\"ag.widget.games.GameInfo\" gameId=\"${gameId}\"/>\n    </a>\n    <div class=\"genre-game-picon-title\">\n    \t<a href=\"${url}\">${title}</a>\n    \t<span style=\"display:none\" dojoAttachPoint=\"maturityImage\"><img src=\"/static/images/bomb_small.png\"/></span>\n\t</div>\n</div>\n",postCreate:function(){if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}}});dojo.declare("ag.widget.games.genre.GameWithTextLink",[dijit._Widget,dijit._Templated],{templateString:"<div><a href='${url}'>${title}</a><span style='display:none' dojoAttachPoint='maturityImage'><img src='/static/images/bomb_small.png'/></span><br/></div>",postCreate:function(){if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}}});dojo.declare("ag.widget.games.genre.GameWithPiconContainer",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<div class='allgames-content'><span dojoAttachPoint='container'></span></div>",games:[],container:{},postCreate:function(){var _622=5;var _623=0;dojo.forEach(this.games,dojo.hitch(this,function(game){var _625=new ag.widget.games.genre.GameWithPicon(game,document.createElement("span"));this.container.appendChild(_625.domNode);++_623;if(_623%_622==0&&_623!=50){var _626=document.createElement("div");dojo.addClass(_626,"genre-all-divider");this.container.appendChild(_626);}}));while(_623%_622!=0){var _627=document.createElement("div");dojo.addClass(_627,"genre-game-picon");this.container.appendChild(_627);_623++;}}});dojo.declare("ag.widget.games.genre.GameWithTextLinkContainer",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<div class=\"topgames-content\">\n\t<div class=\"genre-text-spacer\"></div>\n\t<table class=\"genre-table\">\n\t\t<tr>\n\t\t\t<td class=\"genre-column genre-column-border genre-column1\" dojoAttachPoint=\"col1\"></td>\n\t\t\t<td class=\"genre-column genre-column-border\" dojoAttachPoint=\"col2\"></td>\n\t\t\t<td class=\"genre-column\" dojoAttachPoint=\"col3\"></td>\n\t\t</tr>\n\t</table>\n</div>\n",games:[],postCreate:function(){var _628=3;var _629=Math.floor(this.games.length/_628);var _62a=1;var _62b=0;dojo.forEach(this.games,dojo.hitch(this,function(game){var _62d=new ag.widget.games.genre.GameWithTextLink(game,document.createElement("span"));if(_62a!=_628&&_62b==_629){++_62a;_62b=0;}this["col"+_62a].appendChild(_62d.domNode);++_62b;}));}});dojo.declare("ag.widget.games.genre.Model",null,{baseDataLocation:"",constructor:function(_62e,kind){if(ag.widget.games.genre.GenrePanel.KIND_GENRE==kind){this.baseDataLocation=dojo.moduleUrl("agstatic","frag/games/genre/");}else{if(ag.widget.games.genre.GenrePanel.KIND_FILTER==kind){this.baseDataLocation=dojo.moduleUrl("agstatic","frag/filters/");}else{console.error("Unknown type: ",kind);}}this.genreId=_62e;this.loadCompleted=new dojo.Deferred();var url=this.baseDataLocation+_62e+".js";var _631=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});_631.addCallback(dojo.hitch(this,function(data){this.games=data;this.games.sort(function(a,b){return a.title.localeCompare(b.title);});ag.widget.games.GameDataHelper.deriveAdditionalGameData(this.games);this.loadCompleted.callback(this);}));_631.addErrback(this.loadCompleted,"errback");},paginate:function(_635){var _636=[];var _637;var idx=0;for(idx=0;idx<this.games.length;idx+=_635){_637=this.games.slice(idx,Math.min(idx+_635,this.games.length));var _639=_637[0].title.charAt(0);if(/\d/.test(_639)){_639="A";}var _63a=_637[_637.length-1].title.charAt(0);_636.push({startLetter:_639,endLetter:_63a,games:_637});}return _636;}});dojo.declare("ag.widget.games.genre.TopGames",[ag.widget.games.TopGamesBase,dijit._Templated],{templateString:"<div class=\"genretopgames\">\n\t<div class=\"genre-topgames-tabs\">\n\t\t<span dojoAttachPoint=\"period\" dojoType=\"qi.widget.TabButtons\" class=\"menu\" changeOnClick=\"false\">\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t\t\ttext=\"Last Week\" key=\"${periods.WEEK}\" selected=\"selected\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectWeek\"\n\t\t\t\tdojoAttachPoint=\"weekTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t\t\ttext=\"Last Month\" key=\"${periods.MONTH}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMonth\"\n\t\t\t\tdojoAttachPoint=\"monthTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t\t\ttext=\"All Time\" key=\"${periods.ALLTIME}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectAlltime\"\n\t\t\t\tdojoAttachPoint=\"alltimeTab\"></span>\n\t\t</span>\n\t</div>\n\t<div class=\"topgames-content\">\n\t\t<div class=\"game\">\n\t\t\t<span dojoAttachPoint=\"output\"></span>\n\t\t</div>\n\t</div>\n</div>\n",widgetsInTemplate:true,maxGamesToDisplay:50,selectedGenre:"",genreId:0,rowDiv:{},_kind:"",postCreate:function(){var _63b=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelPeriod");if(null!=_63b&&"undefined"!=_63b&&null!=_63b[this.genreId]){this.currentPeriod=_63b[this.genreId];}else{this.currentPeriod=this._getDefaultPeriod();}this._loadPeriodWithCallback();},createGameWidget:function(game){return new ag.widget.games.genre.TopGamesGame(game,document.createElement("span"));},_getDefaultPeriod:function(){return this.periods.WEEK;},onPeriodChange:function(_63d){this.currentPeriod=_63d;ag.widget.StatusCookie.mixinWidgetStatus("genrePanelPeriod",this.currentPeriod,this.genreId);this._loadPeriodWithCallback();},_addGame:function(_63e){if(_63e.ordinal%5==1){this.rowDiv=document.createElement("div");if(_63e.ordinal==1){var kids=this.output.childNodes;var i;for(i=kids.length-1;i>=0;i--){this.output.removeChild(kids[i]);}dojo.addClass(this.rowDiv,"genre-first-row");}else{dojo.addClass(this.rowDiv,"genre-top-row");}this.output.appendChild(this.rowDiv);}this.rowDiv.appendChild(_63e.domNode);if(_63e.ordinal%5==0&&_63e.ordinal!=this.maxGamesToDisplay){var _641=document.createElement("div");dojo.addClass(_641,"genre-popular-divider");this.output.appendChild(_641);}},_filterGames:function(){var _642=this.model[this.currentPeriod].games;if(this.selectedGenre!=""){if(ag.widget.games.genre.GenrePanel.KIND_FILTER==this._kind){return _642;}_642=dojo.filter(this.model[this.currentPeriod].games,dojo.hitch(this,function(game){if(ag.widget.games.genre.GenrePanel.KIND_GENRE==this._kind){return dojo.indexOf(game.genres,this.selectedGenre)!=-1;}}));}return _642;}});ag.widget.games.genre.GenrePanel.KIND_GENRE="genre";ag.widget.games.genre.GenrePanel.KIND_FILTER="filter";dojo.declare("ag.widget.games.genre.TopGamesGame",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"genretopgamesgame\">\n\t<div class=\"genretopgamesgame-rank\">${ordinal}</div>\n\t<a href=\"${url}\">\n\t\t<img src=\"/fimages/${gameId}.png\" class=\"fimage gameId-${gameId}\"/>\n\t</a>\n\t<div class=\"genretopgamesgame-title\">\n\t\t<a href=\"${url}\">${title}</a>\n\t\t<span style=\"display:none\" dojoAttachPoint=\"maturityImage\"><img src=\"/static/images/bomb_small.png\"/></span>\n\t</div>\n\t<div class=\"genretopgamesgame-plays\">${playsText}</div>\n</div>\n",widgetsInTemplate:true,playsText:"",plays:0,postMixInProperties:function(){if(this.plays){this.playsText="Plays: "+dojo.number.format(this.plays);}},postCreate:function(){if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}}});}if(!dojo._hasResource["ag.widget.games.favorites.FavoritesGamePanel"]){dojo._hasResource["ag.widget.games.favorites.FavoritesGamePanel"]=true;dojo.provide("ag.widget.games.favorites.FavoritesGamePanel");dojo.declare("ag.widget.games.favorites.FavoritesGamePanel",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained],{templateString:"<div class=\"favorites-games\">\n\t<span dojoAttachPoint=\"output\"></span>\n\t<span dojoAttachPoint=\"subscriptions\" dojoType=\"qi.widget.TopicSubscription\"></span>\n</div>\n",widgetsInTemplate:true,maxGamesToDisplay:6,_maxGamesBeforeLink:3,favorites:null,_model:null,postCreate:function(){this._model=ag.favorites.Model.getHpFavoritesModel();this._addGames();},_addGames:function(){for(var i=0;i<this.maxGamesToDisplay&&i<this.favorites.length;++i){var _645=new ag.widget.games.DraggableGame({game:this.favorites[i],ordinal:i+1},document.createElement("span"));this.output.appendChild(_645.domNode);}if(this.favorites.length>this._maxGamesBeforeLink){this.favoritesLink=new ag.widget.games.favorites.FavoritesLink({},document.createElement("span"));this.output.appendChild(this.favoritesLink.domNode);}},destroyGame:function(_646,_647){_647.destroyRecursive();var _648=ag.favorites.Model.getHpFavoritesModel();var _649=_648.removeFavorite(_646);_649.addCallback(dojo.hitch(_648,"_queryFavorites"));_649.addErrback(dojo.hitch(_648,"_queryFavorites"));}});dojo.declare("ag.widget.games.favorites.FavoritesLink",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"more-favorites-link\">\n\t<a href=\"/static/php/account/myFavoritesPage.php\">Edit</a>\n\t<img src=\"/static/images/favorites-divider.jpg\"/>\n\t<a href=\"/static/php/account/myFavoritesPage.php\">View all</a>\n</div>\n\t\n"});}if(!dojo._hasResource["ag.widget.games.favorites.FavoritesPanel"]){dojo._hasResource["ag.widget.games.favorites.FavoritesPanel"]=true;dojo.provide("ag.widget.games.favorites.FavoritesPanel");dojo.declare("ag.widget.games.favorites.FavoritesPanel",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{widgetsInTemplate:true,templateString:"<div class=\"favorites-panel\"><span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span></div>",model:null,postCreate:function(){AgEvent.LOGIN.subscribe(bindContext(this,this._onLogin));AgEvent.LOGOUT.subscribe(bindContext(this,this._onLogout));this.subscriptions.subscribe(ag.favorites.Model.TOPIC,dojo.hitch(this,"_onFavoritesLoaded"));if(!LoginModule.isUserLoggedIn()){this._showNotLoggedIn();}else{this._loadFavorites();}},_onLogin:function(){this._loadFavorites();},_onLogout:function(){ag.favorites.Model.nullifyHpFavorites();this._showNotLoggedIn();},_loadFavorites:function(){this.model=ag.favorites.Model.getHpFavoritesModel();if(this.model.dataLoaded){this._onFavoritesLoaded();}},_onFavoritesLoaded:function(){if(this.model.getFavorites().length==0){this._showWithNoFavorites();}else{this._showWithFavorites();}},_showNotLoggedIn:function(){this._changeState(new ag.widget.games.favorites.FavoritesNotLoggedIn({},document.createElement("span")));},_showWithFavorites:function(){this._changeState(new ag.widget.games.favorites.FavoritesGamePanel({favorites:this.model.getFavorites()},document.createElement("span")));},_showWithNoFavorites:function(){this._changeState(new ag.widget.games.favorites.FavoritesNoGames({},document.createElement("span")));}});dojo.declare("ag.widget.games.favorites.FavoritesNotLoggedIn",[dijit._Widget,dijit._Templated],{templateString:"<div>\n\t<div class=\"call-to-action\">\n\t\t<a href=\"#Login\" onclick=\"LoginModule.showLogin(); return false;\"><div class=\"favorites-logged-out\"></div></a>\n\t</div>\n</div>\n",widgetsInTemplate:true});dojo.declare("ag.widget.games.favorites.FavoritesNoGames",[dijit._Widget,dijit._Templated],{templateString:"<div>\n\t<div class=\"call-to-action\"></div>\n</div>\n"});}if(!dojo._hasResource["ag.widget.games.Recent"]){dojo._hasResource["ag.widget.games.Recent"]=true;dojo.provide("ag.widget.games.Recent");dojo.declare("ag.widget.games.Recent",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"container favorites-games recent-games\" dojoAttachPoint=\"container\"></div>",maxGames:6,gamesPerRow:3,postCreate:function(){this.model=ag.widget.games.Recent.getRecentModel();this.model.loadCompleted.addCallback(dojo.hitch(this,function(){if(this.model.games.length==0){var _64a=new ag.widget.games.JustPlayedNoGames({},document.createElement("span"));this.container.appendChild(_64a.domNode);}else{var _64b=0;dojo.forEach(this.model.games,dojo.hitch(this,function(game){++_64b;if(_64b<=this.maxGames){var _64d=new ag.widget.games.DraggableGame({game:game,ordinal:_64b},document.createElement("span"));this.container.appendChild(_64d.domNode);}}));}}));}});dojo.declare("ag.widget.games.RecentGame",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"recentgame\">\n\t<div class=\"inner\">\n\t    <a href=\"${url}\"><img src=\"${picon}\"/></a>\n\t    <br/>\n\t    <a href=\"${url}\">${title}</a>\n    </div>\n</div>\n",desc:"",maxTitleLength:20,elipses:"...",postMixInProperties:function(){this.title=qi.util.trim(this.title,this.maxTitleLength,this.elipses);}});dojo.declare("ag.widget.games.JustPlayedNoGames",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"just-played-favorites-logged-out\">The next time you play a game, it will be listed here for quick access.</div>"});dojo.declare("ag.widget.games.RecentModel",null,{DEFAULT_MAX_GAMES:6,constructor:function(_64e){if(_64e){dojo.mixin(this,_64e);}var _64f=dojo.cookie("recent0");this.recentIds=[];if(null!=_64f){this.recentIds=_64f.split(",");}if(typeof (this.maxGames)=="undefined"){this.maxGames=this.DEFAULT_MAX_GAMES;}this.loadCompleted=new dojo.Deferred();this.games=[];var i=0;this._callbackCt=0;this._errCt=0;this._numToFetch=Math.min(this.maxGames,this.recentIds.length);for(i=0;i<this._numToFetch;++i){(dojo.hitch(this,function(){var idx=i;new ag.widget.games.GameInfoLoader(this.recentIds[idx]).loadCompleted.addCallback(dojo.hitch(this,function(game){this.games[idx]=game;this._calledBack(false);})).addErrback(dojo.hitch(this,function(){this._calledBack(true);}));}))();}if(this._numToFetch==0){this.loadCompleted.callback(this.games);}},_calledBack:function(_653){if(_653){++this._errCt;}++this._callbackCt;if(this._callbackCt==this._numToFetch){var _654=[];dojo.forEach(this.games,dojo.hitch(this,function(game){if(typeof (game)!="undefined"){_654.push(game);}}));this.games=_654;this.loadCompleted.callback(this.games);}}});(function(){var _656=null;ag.widget.games.Recent.getRecentModel=function(_657){if(_656==null){_656=new ag.widget.games.RecentModel(_657);}return _656;};ag.widget.games.Recent.nullify=function(){_656=null;};})();}if(!dojo._hasResource["ag.widget.games.HomepageUserWidget"]){dojo._hasResource["ag.widget.games.HomepageUserWidget"]=true;dojo.provide("ag.widget.games.HomepageUserWidget");dojo.declare("ag.widget.games.HomepageUserWidget",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div class=\"hp-widget\">\n\t<div class=\"hp-tc\"></div>\n\t<div class=\"hp-header\">\n\t\t<span dojoAttachPoint=\"tab\" dojoType=\"qi.widget.TabButtons\" class=\"menu\" changeOnClick=\"false\">\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"My Favorites\" key=\"${tabs.MY_FAVORITES}\" \n\t\t\t\tselected=\"selected\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMyFavorites\"\n\t\t\t\tdojoAttachPoint=\"myFavoritesTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Just Played\" key=\"${tabs.JUST_PLAYED}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectJustPlayed\"\n\t\t\t\tdojoAttachPoint=\"justPlayedTab\"></span>\n\t\t</span>\n\t</div>\n\t<div class=\"hp-fav-games\" dojoAttachPoint=\"output\"></div>\n\t<div class=\"hp-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n\n",tabs:{MY_FAVORITES:"myFavorites",JUST_PLAYED:"justPlayed"},postCreate:function(){var _658=ag.widget.StatusCookie.getWidgetStatusValue("userModule");if(null!=_658&&this._validTab(_658)){if(this.tabs.MY_FAVORITES==_658){this._onSelectMyFavorites();}else{if(this.tabs.JUST_PLAYED==_658){this._onSelectJustPlayed();}}}else{this._onSelectMyFavorites();}},_validTab:function(tab){return dojo.indexOf(qi.util.mapValues(this.tabs),tab)!=-1;},_onSelectMyFavorites:function(){this._onTabChange(this.tabs.MY_FAVORITES);var _65a=new ag.widget.games.favorites.FavoritesPanel({},document.createElement("span"));this.output.appendChild(_65a.domNode);},_onSelectJustPlayed:function(){this._onTabChange(this.tabs.JUST_PLAYED);var _65b=new ag.widget.games.Recent({},document.createElement("span"));this.output.appendChild(_65b.domNode);},_onTabChange:function(_65c){this._clearOutput();this.currentTab=_65c;ag.widget.StatusCookie.setWidgetStatus({"userModule":this.currentTab});this.tab.selectTabPostClick(this[this.currentTab+"Tab"]);},_clearOutput:function(){while(this.output.firstChild){this.output.removeChild(this.output.firstChild);}}});}if(!dojo._hasResource["ag.widget.games.StatsReviews"]){dojo._hasResource["ag.widget.games.StatsReviews"]=true;dojo.provide("ag.widget.games.StatsReviews");dojo.declare("ag.widget.games.StatsReviews",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<span>\n\t<span class=\"gamestats-reviews-title\">Reviews: <span class=\"gamestats-reviews-value\" dojoAttachPoint=\"numReviews\"></span></span>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</span>\n",update:function(_65d){this.model=ag.widget.gamereviews.Model.findByGameId(_65d);this.subscriptions.subscribe(this.model.topic,this,"_onModelMessage");},_onModelMessage:function(msg){if("pageLoaded"==msg.eventType){if(null==msg.page.numReviews||0==msg.page.numReviews){this.numReviews.innerHTML="Not Reviewed";}else{this.numReviews.innerHTML=dojo.number.format(msg.page.numReviews);}}else{this.numReviews.innerHTML="Not Reviewed";}}});}if(!dojo._hasResource["ag.widget.games.Stats"]){dojo._hasResource["ag.widget.games.Stats"]=true;dojo.provide("ag.widget.games.Stats");dojo.declare("ag.widget.games.Stats",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div class=\"gamestats-container\">\n\t<div class=\"stat-field\">\n\t\t<span class=\"gamestats-launch-title\">Launch Date: <span class =\"gamestats-launch-value\" dojoAttachPoint=\"launchDate\"></span></span>\n\t</div>\n\t<div class=\"stat-field\">\n\t\t<span class=\"gamestats-plays-title\">Plays: <span class=\"gamestats-plays-value\" dojoAttachPoint=\"totalPlays\"></span> (<span dojoAttachPoint=\"playsToday\"></span> today)</span>\n\t</div>\n\t<div class=\"stat-field\">\n\t\t<span dojoAttachPoint=\"statsReviews\" dojoType=\"ag.widget.games.StatsReviews\" />\n\t</div>\n</div>\n",statSnippetPath:dojo.moduleUrl("agjson","plays/"),gameId:"",postMixInProperties:function(){this._download();},postCreate:function(){this.statsReviews.update(this.gameId);},_gameIdToUrl:function(){return this.statSnippetPath+this.gameId;},_download:function(){var _65f=this.gameId.substring(this.gameId.length-1)+"/";var _660=dojo.xhrGet({url:this._gameIdToUrl(),handleAs:"json-comment-filtered"});_660.addCallback(dojo.hitch(this,function(_661){if(_661.launchDate){_661.launchDate=qi.util.formatDate(_661.launchDate);this.launchDate.innerHTML=_661.launchDate;}else{$(".gamestats-launch-title").hide();}this.totalPlays.innerHTML=dojo.number.format(_661.totalPlays);this.playsToday.innerHTML=dojo.number.format(_661.playsToday);}));_660.addErrback(dojo.hitch(this,function(){console.warn("Problem getting game stats",arguments);}));}});}if(!dojo._hasResource["ag.widget.games.recommended.Recommended"]){dojo._hasResource["ag.widget.games.recommended.Recommended"]=true;dojo.provide("ag.widget.games.recommended.Recommended");dojo.declare("ag.widget.games.recommended.Recommended",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<div class=\"recommended-tc\"></div>\n\t<div class=\"recommended-title\"><span>Popular in ${genre}</span></div>\n\t<div dojoAttachPoint=\"content\" dojoType=\"ag.widget.games.recommended.RecommendedContent\"></div>\n\t<div class=\"recommended-bc\"></div>\n</span>\n",widgetsInTemplate:true,gameId:0,genre:"",testDataLocation:"",_baseDataLocation:dojo.moduleUrl("agjson","recommended/forGame/"),_dataFile:"",postMixInProperties:function(){this._dataFile;if(""===this.testDataLocation){this._dataFile=this._baseDataLocation;}else{this._dataFile=dojo.moduleUrl("agstatic",this.testDataLocation);}this._dataFile+=this.gameId;},postCreate:function(){this._loadData();},_loadData:function(){var _662=dojo.xhrGet({url:this._dataFile,handleAs:"json-comment-filtered"});_662.addCallback(this,dojo.hitch(this,function(data){this.content._showWithGames(data);}));_662.addErrback(this,dojo.hitch(this,function(_664){this.content._showWithError();}));}});dojo.declare("ag.widget.games.recommended.RecommendedContent",[dijit._Widget,qi.widget.StatePatternContainer],{postCreate:function(){this._showAsLoading();},_showAsLoading:function(){var _665=new ag.widget.games.recommended.RecommendedLoading({},document.createElement("span"));this._changeState(_665);},_showWithError:function(){var _666=new ag.widget.games.recommended.RecommendedError({},document.createElement("span"));this._changeState(_666);},_showWithGames:function(data){var _668=new ag.widget.games.recommended.RecommendedGames({_games:data.games,startDate:qi.util.formatDate(data.startDate),endDate:qi.util.formatDate(data.endDate)},document.createElement("span"));this._changeState(_668);}});dojo.declare("ag.widget.games.recommended.RecommendedLoading",[dijit._Widget,dijit._Templated],{templateString:"<span class='recommended-content'>\n\t<div class='recommended-center-message'>Loading</div>\n</span>\t\n"});dojo.declare("ag.widget.games.recommended.RecommendedError",[dijit._Widget,dijit._Templated],{templateString:"<span class='recommended-content'>\n\t<div class='recommended-center-message'>Error Loading</div>\n</span>\t\n"});dojo.declare("ag.widget.games.recommended.RecommendedGames",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<span class=\"recommended-content\">\n\t\t<span dojoAttachPoint='content'></span>\n\t\t<span class=\"recommended-date\">Statistics listed are for the month of ${startDate} to ${endDate}</span>\n\t</span>\n</span>\n",_games:[],startDate:"",endDate:"",postCreate:function(){for(var i=0;i<this._games.length;i++){var _66a=new ag.widget.games.recommended.RecommendedGame({url:this._games[i].url,imgSrc:"/fimages/"+this._games[i].id+".jpg",title:this._games[i].title,description:this._games[i].desc,numPlays:dojo.number.format(this._games[i].plays)},document.createElement("span"));this.content.appendChild(_66a.domNode);if(i!=this._games.length-1){var _66b=new ag.widget.games.recommended.RecommendedGameBorder({},document.createElement("span"));this.content.appendChild(_66b.domNode);}}}});dojo.declare("ag.widget.games.recommended.RecommendedGame",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"recommended-game\">\n\t<div class=\"recommended-game-content\">\n\t\t<a class=\"recommended-game-picon\" href=\"${url}\"><img src=\"${imgSrc}\" width=\"50px\" height=\"50px\"></img></a>\n\t\t<span class=\"recommended-game-right-column\">\n\t\t\t<div class=\"recommended-game-title\"><a href=\"${url}\">${title}</a></div>\n\t\t\t<div class=\"recommended-game-description\">${description}</div>\n\t\t\t<div class=\"recommended-game-plays\">Plays: <span>${numPlays}</span></div>\n\t\t</span>\n\t</div>\n</div>\n",url:"",imgSrc:"",title:"",description:"",numPlays:0});dojo.declare("ag.widget.games.recommended.RecommendedGameBorder",[dijit._Widget,dijit._Templated],{templateString:"<div class='recommended-border'></div>"});}if(!dojo._hasResource["ag.widget.games.WhatsHot"]){dojo._hasResource["ag.widget.games.WhatsHot"]=true;dojo.provide("ag.widget.games.WhatsHot");dojo.declare("ag.widget.games.WhatsHot",[ag.widget.games.TopGamesBase,dijit._Templated],{templateString:"<div class=\"whats-hot\">\n\t<div class=\"whats-hot-top\">\n\t\t<!--<div class=\"whats-hot-header-title\">THIS WILL BE AN IMAGE NOW</div>-->\n\t\t<div class=\"whats-hot-choose\">\n\t\t\t<span class=\"whats-hot-filterby\">\n\t\t\t\t<label for=\"${id}_genre\">Choose Genre:</label>\n\t\t\t</span>\n\t\t\t<select id=\"${id}_genre\" dojoAttachPoint=\"genreChoice\" dojoAttachEvent=\"onchange:onGenreChange\">\n\t\t\t\t<option value=\"All Games\">All Games</option>\n\t\t\t</select>\n\t\t</div>\n\t\t<div class=\"whats-hot-filter\">\n\t\t\t<span class=\"whats-hot-filterby\">\n\t\t\t\t<label for=\"${id}_period\">Filter by:</label>\n\t\t\t</span>\n\t\t\t<select id=\"${id}_period\" dojoAttachPoint=\"periodList\" dojoAttachEvent=\"onchange:onPeriodChange\">\n\t\t\t\t<option value=\"week\">Last Week</option>\n\t\t\t\t<option value=\"month\">Last Month</option>\n\t\t\t\t<option value=\"alltime\">All Time</option>\n\t\t\t</select>\n\t\t</div>\n\t</div>\n\t<div class=\"whats-hot-tc\"></div>\n\t<div class=\"whats-hot-header\">\n\t\t<div class=\"whats-hot-genre\" dojoAttachPoint=\"genre\"></div>\n\t\t<span dojoAttachPoint=\"algorithm\" dojoType=\"qi.widget.TabButtons\" class=\"menu\" changeOnClick=\"false\">\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Top Rated\" key=\"${algorithms.TOP_RATED}\" \n\t\t\t\tselected=\"selected\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectTopRated\"\n\t\t\t\tdojoAttachPoint=\"ratingsTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Most Popular\" key=\"${algorithms.MOST_POPULAR}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMostPopular\"\n\t\t\t\tdojoAttachPoint=\"playsTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Most Reviewed\" key=\"${algorithms.MOST_REVIEWED}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMostReviewed\"\n\t\t\t\tdojoAttachPoint=\"reviewsTab\"></span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\" \n\t\t\t\ttext=\"Most Favorited\" key=\"${algorithms.MOST_FAVORITED}\"\n\t\t\t\tdojoAttachEvent=\"onClick:_onSelectMostFavorited\"\n\t\t\t\tdojoAttachPoint=\"favoritesTab\"></span>\n\t\t</span>\n\t</div>\n\t<div class=\"whats-hot-content\">\n\t\t<div class=\"whats-hot-date\" dojoAttachPoint=\"timePeriod\"></div>\n\t\t<div class=\"whats-hot-games\">\n\t\t\t<span dojoAttachPoint=\"output\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"whats-hot-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n\n",algorithms:{TOP_RATED:"ratings",MOST_POPULAR:"plays",MOST_REVIEWED:"reviews",MOST_FAVORITED:"favorites"},DEFAULT_GENRE:"All Games",CHANNEL_LIST:["Shooting Games","Action Games","Puzzle & Board Games","Arcade & Classic Games","Sports Games","Strategy Games","Adventure Games","Life & Style Games",],CHANNEL_MAP:{"Shooting Games":5,"Action Games":6,"Puzzle & Board Games":7,"Arcade & Classic Games":8,"Sports Games":9,"Strategy Games":10,"Adventure Games":11,"Life & Style Games":12},channelId:0,currentAlgorithm:"",maxGamesToDisplay:50,widgetsInTemplate:true,testDataLocation:"",postMixInProperties:function(){if(""==this.currentAlgorithm||!this._validCurrentAlgorithm()){this.currentAlgorithm=this.algorithms.TOP_RATED;}if(""==this.currentPeriod||!this._validCurrentPeriod()){this.currentPeriod=this._getDefaultPeriod();}if(""==this.selectedGenre){this.selectedGenre=this.DEFAULT_GENRE;}this.model=new ag.widget.games.WhatsHotModel();if(""!=this.testDataLocation){this.model.baseDataLocation=dojo.moduleUrl("agstatic",this.testDataLocation);}},postCreate:function(){this._setGenreText();var _66c=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotPeriod");var _66d=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotAlgorithm");if(null!=_66c&&"undefined"!=_66c){this.periodList.value=_66c;this.currentPeriod=_66c;}if(null!=_66d&&"undefined"!=_66d){this.currentAlgorithm=_66d;}this._loadPeriodAndAlgorithmWithCallback();},_validCurrentAlgorithm:function(){return dojo.indexOf(qi.util.mapValues(this.algorithms),this.currentAlgorithm)!=-1;},_onSelectTopRated:function(){this.onAlgorithmChange(this.algorithms.TOP_RATED);},_onSelectMostPopular:function(){this.onAlgorithmChange(this.algorithms.MOST_POPULAR);},_onSelectMostReviewed:function(){this.onAlgorithmChange(this.algorithms.MOST_REVIEWED);},_onSelectMostFavorited:function(){this.onAlgorithmChange(this.algorithms.MOST_FAVORITED);},onAlgorithmChange:function(_66e){this.currentAlgorithm=_66e;ag.widget.StatusCookie.setWidgetStatus({"whatsHotAlgorithm":this.currentAlgorithm});this._loadPeriodAndAlgorithmWithCallback();},onPeriodChange:function(){this.currentPeriod=this.periodList.value;ag.widget.StatusCookie.setWidgetStatus({"whatsHotPeriod":this.currentPeriod});this._loadPeriodAndAlgorithmWithCallback();},onGenreChange:function(){this.selectedGenre=this.genreChoice.value;ag.widget.StatusCookie.setWidgetStatus({"whatsHotGenre":this.selectedGenre});this.channelId=this.CHANNEL_MAP[this.selectedGenre];this._loadPeriodAndAlgorithmWithCallback();},_setGenreText:function(){if(""==this.selectedGenre||"All"==this.selectedGenre){this.genre.innerHTML=this.DEFAULT_GENRE;}else{this.genre.innerHTML=this.selectedGenre;}},_loadPeriodAndAlgorithm:function(_66f,_670){this.filePath=_670+"?period="+_66f;if(this.channelId){this.filePath=_670+"?period="+_66f+"&channel="+this.channelId;}this.model.load(this.filePath);},_loadPeriodAndAlgorithmWithCallback:function(){this._loadPeriodAndAlgorithm(this.currentPeriod,this.currentAlgorithm);this.algorithm.selectTabPostClick(this[this.currentAlgorithm+"Tab"]);this._removeGames();this.model[this.filePath].loadCompleted.addCallback(this,this._periodAndAlgorithmChangedDataLoaded);},_periodAndAlgorithmChangedDataLoaded:function(){this.algorithm.selectTabPostClick(this[this.currentAlgorithm+"Tab"]);this._setTimePeriod();this.genreChoice.options.length=1;var _671=this.CHANNEL_LIST;dojo.forEach(_671,dojo.hitch(this,function(_672){var _673=String(this.selectedGenre)==_672;this.genreChoice.options[this.genreChoice.options.length]=new Option(_672,_672,_673,_673);}));this._removeGames();var _674=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotGenre");if(null!=_674&&"undefined"!=_674){this.genreChoice.value=_674;this.selectedGenre=_674;this._setGenreText();}var _675=this.model[this.filePath].games;this._addGames(_675);},_setTimePeriod:function(){var _676=this.filePath;var _677=qi.util.formatDate(this.model[_676].startDate);var _678=qi.util.formatDate(this.model[_676].endDate);var _679="Statistics listed are for ";if(this.currentPeriod==this.periods.WEEK){_679+="the week of "+_677+" to "+_678;}else{if(this.currentPeriod==this.periods.MONTH){_679+="the month of "+_677+" to "+_678;}else{if(this.currentPeriod==this.periods.ALLTIME){_679+="all time";}}}this.timePeriod.innerHTML=_679;},_removeGames:function(){while(this._gameWidgets.length!=0){var _67a=this._gameWidgets.pop();this.removeChild(_67a);_67a.destroyRecursive();}},_filterGames:function(){var _67b=this.filePath;var _67c=this.model[_67b].games;if(this.selectedGenre!=this.DEFAULT_GENRE){_67c=dojo.filter(this.model[_67b].games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this.selectedGenre)!=-1;}));}return _67c;},_addGames:function(_67e){var i=0;for(;i<this.maxGamesToDisplay&&i<_67e.length;++i){var game={ordinal:i+1};dojo.mixin(game,_67e[i]);var _681=this.createGameWidget(game);this._gameWidgets.push(_681);this._addGame(_681);if((i%5==4)&&(i!=this.maxGamesToDisplay-1)&&(i!=_67e.length-1)){var _682=new ag.widget.games.Divider({},document.createElement("div"));this._gameWidgets.push(_682);this.output.appendChild(_682.domNode);}}},createGameWidget:function(game){if(this.currentAlgorithm==this.algorithms.TOP_RATED){dojo.mixin(game,{"numValue":dojo.number.format(game.ratings),"numText":"Ratings"});}else{if(this.currentAlgorithm==this.algorithms.MOST_POPULAR){dojo.mixin(game,{"numValue":dojo.number.format(game.plays),"numText":"Plays"});}else{if(this.currentAlgorithm==this.algorithms.MOST_REVIEWED){dojo.mixin(game,{"numValue":dojo.number.format(game.reviews),"numText":"Reviews"});}else{if(this.currentAlgorithm==this.algorithms.MOST_FAVORITED){dojo.mixin(game,{"numValue":dojo.number.format(game.favorited),"numText":"Favorited"});}}}}return new ag.widget.games.WhatsHotGame(game,document.createElement("span"));}});dojo.declare("ag.widget.games.WhatsHotModel",null,{baseDataLocation:dojo.moduleUrl("agjson","whatshot"),load:function(_684){this[_684]=new ag.widget.games.GamesForTimePeriod();this[_684].load(this.baseDataLocation+"/"+_684);}});dojo.declare("ag.widget.games.WhatsHotGame",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"whats-hot-game\">\n\t<div class=\"whats-hot-image\">\n\t\t<a href=\"${url}\">\n\t\t\t<img src=\"/fimages/${gameId}.png\" class=\"fimage gameId-${gameId}\"/>\n\t\t</a>\n\t</div>\n\t<div class=\"whats-hot-title\">\n\t\t<a href=\"${url}\">${title}</a>\n\t\t<span style=\"display: none;\" dojoAttachPoint=\"maturityImage\"><img src=\"/static/images/bomb_small.png\"/></span>\n\t</div>\n\t<div class=\"whats-hot-info\">\n\t\t<span style=\"display:none\" class=\"tr-thumbs-up\" dojoAttachPoint=\"whatsHotThumb\"><img src=\"/static/images/tr-thumbs-up.png\"/></span>\n\t\t<div class=\"whats-hot-num\">${numText}: ${numValue}</div>\n\t</div>\n</div>\n",widgetsInTemplate:true,postCreate:function(){if("Ratings"==this.numText){dojo.style(this.whatsHotThumb,"display","inline");}if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}},_createAndAppendImage:function(_685,_686){var img=document.createElement("img");img.setAttribute("src",_685);_686.appendChild(img);}});dojo.declare("ag.widget.games.Divider",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class='whats-hot-divider'></div>"});ag.widget.games.WhatsHot.changeGenre=function(_688){console.debug("deprecated - shouldn't need this method any longer");};}if(!dojo._hasResource["ag.widget.games.download.PanelBase"]){dojo._hasResource["ag.widget.games.download.PanelBase"]=true;dojo.provide("ag.widget.games.download.PanelBase");dojo.declare("ag.widget.games.download.PanelBase",[dijit._Widget,dijit._Templated,dijit._Container],{_data:null,_gameWidgets:[],_selectedGenre:"All Games",_maxGamesToDisplay:50,_removeVisibleGames:function(){while(this._gameWidgets.length!=0){var _689=this._gameWidgets.pop();this.removeChild(_689);_689.destroyRecursive();}while(this.output.hasChildNodes()){this.output.removeChild(this.output.firstChild);}},_filterGames:function(){var _68a=this._data.games;if(this._selectedGenre!="All Games"){_68a=dojo.filter(this._data.games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this._selectedGenre)!=-1;}));}return _68a;},_addGames:function(_68c,_68d){var _68e=0;var max=this._maxGamesToDisplay;if("undefined"!=_68d&&null!=_68d){_68e=_68d;max=(_68e+this._maxGamesToDisplay)>_68c.length?_68c.length:_68e+this._maxGamesToDisplay;}var _690=_68c.slice(_68e,max);var i=0;for(;i<this._maxGamesToDisplay&&i<_690.length;++i){var game={ordinal:i+1};dojo.mixin(game,_690[i]);var _693=this.createGameWidget(game);this._gameWidgets.push(_693);this._addGame(_693);}},_addGame:function(_694){if(_694.ordinal%5==1){this.rowDiv=document.createElement("div");if(_694.ordinal==1){var kids=this.output.childNodes;var i;for(i=kids.length-1;i>=0;i--){this.output.removeChild(kids[i]);}dojo.addClass(this.rowDiv,"genre-first-row");}else{dojo.addClass(this.rowDiv,"genre-top-row");}this.output.appendChild(this.rowDiv);}this.rowDiv.appendChild(_694.domNode);if(_694.ordinal%5==0&&_694.ordinal!=this._maxGamesToDisplay){var _697=document.createElement("div");dojo.addClass(_697,"genre-popular-divider");this.output.appendChild(_697);}},createGameWidget:function(game){}});}if(!dojo._hasResource["ag.widget.games.download.ViewAll"]){dojo._hasResource["ag.widget.games.download.ViewAll"]=true;dojo.provide("ag.widget.games.download.ViewAll");dojo.declare("ag.widget.games.download.ViewAll",[ag.widget.games.download.PanelBase],{widgetsInTemplate:true,templateString:"<div class=\"genretopgames\">\n\t<div style=\"display:none\" class=\"download-pagination dp-top\" dojoAttachPoint=\"_topPagination\">\n\t\t<a style=\"display:none\" href=\"#previous\" dojoAttachEvent=\"onclick:_onPreviousPage\" dojoAttachPoint=\"_topPaginationPreviousLink\">&lt;</a>\n\t\t<span dojoAttachPoint=\"_topCurrentPageNumber\"></span>&nbsp;of&nbsp;<span dojoAttachPoint=\"_topTotalPageNumber\"></span>\n\t\t<a style=\"display:none\" href=\"#next\" dojoAttachEvent=\"onclick:_onNextPage\" dojoAttachPoint=\"_topPaginationNextLink\">&gt;</a>\n\t</div>\n\t<div class=\"topgames-content download\">\n\t\t<span dojoAttachPoint=\"output\"></span>\n\t</div>\n\t<div style=\"display:none\" class=\"download-pagination\" dojoAttachPoint=\"_bottomPagination\">\n\t\t<a style=\"display:none\" href=\"#previous\" dojoAttachEvent=\"onclick:_onPreviousPage\" dojoAttachPoint=\"_bottomPaginationPreviousLink\">&lt;</a>\n\t\t<span dojoAttachPoint=\"_bottomCurrentPageNumber\"></span>&nbsp;of&nbsp;<span dojoAttachPoint=\"_bottomTotalPageNumber\"></span>\n\t\t<a style=\"display:none\" href=\"#next\" dojoAttachEvent=\"onclick:_onNextPage\" dojoAttachPoint=\"_bottomPaginationNextLink\">&gt;</a>\n\t</div>\n</div>\n",dataLocation:"",_currentPage:1,_totalPages:1,postCreate:function(){this.loadCompleted=new dojo.Deferred();this.loadCompleted.addCallback(dojo.hitch(this,"_onCallback"));this.loadCompleted.addErrback(dojo.hitch(this,"_onErrback"));var url=this.dataLocation+"download.js";var _69a=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});_69a.addCallback(dojo.hitch(this,function(data){this.games=data;this.games.sort(function(a,b){return a.title.localeCompare(b.title);});ag.widget.games.GameDataHelper.deriveAdditionalGameData(this.games);this.loadCompleted.callback(this);}));},_onCallback:function(data){this._data=data;this._totalPages=Math.ceil(this._data.games.length/this._maxGamesToDisplay);if(1<this._totalPages){this._topPagination.style.display="block";this._bottomPagination.style.display="block";}this._showPage(this._currentPage);},_onErrback:function(_69f){console.debug("_onErrback: ",_69f);},createGameWidget:function(game){return new ag.widget.games.genre.GameWithPicon(game,document.createElement("span"));},_onPreviousPage:function(e){e.preventDefault();this._showPage(this._currentPage-1);},_onNextPage:function(e){e.preventDefault();this._showPage(this._currentPage+1);},_show:function(){this._showPage(this._currentPage);},resetCurrentPage:function(){this._currentPage=1;},_showPage:function(num){this._currentPage=num;this._removeVisibleGames();var _6a4=this._filterGames();this._addGames(_6a4,(this._currentPage-1)*this._maxGamesToDisplay);this._totalPages=Math.ceil(_6a4.length/this._maxGamesToDisplay);if(1>=this._totalPages){this._topPagination.style.display="none";this._bottomPagination.style.display="none";}else{this._topPagination.style.display="block";this._bottomPagination.style.display="block";}this._topCurrentPageNumber.innerHTML=this._currentPage;this._bottomCurrentPageNumber.innerHTML=this._currentPage;this._topTotalPageNumber.innerHTML=this._totalPages;this._bottomTotalPageNumber.innerHTML=this._totalPages;if(this._currentPage==1){this._topPaginationPreviousLink.style.display="none";this._bottomPaginationPreviousLink.style.display="none";}else{this._topPaginationPreviousLink.style.display="inline";this._bottomPaginationPreviousLink.style.display="inline";}if(this._currentPage==this._totalPages){this._topPaginationNextLink.style.display="none";this._bottomPaginationNextLink.style.display="none";}else{this._topPaginationNextLink.style.display="inline";this._bottomPaginationNextLink.style.display="inline";}}});}if(!dojo._hasResource["ag.widget.games.download.TopGamesGame"]){dojo._hasResource["ag.widget.games.download.TopGamesGame"]=true;dojo.provide("ag.widget.games.download.TopGamesGame");dojo.declare("ag.widget.games.download.TopGamesGame",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<div class=\"genretopgamesgame\">\n\t<div class=\"genretopgamesgame-rank\">${ordinal}</div>\n\t<a href=\"${url}\">\n\t\t<img src=\"${picon}\" dojoType=\"ag.widget.games.GameInfo\" gameId=\"${gameId}\"/>\n\t</a>\n\t<div class=\"genretopgamesgame-title\">\n\t\t<a href=\"${url}\">${title}</a>\n\t\t<span style=\"display:none\" dojoAttachPoint=\"maturityImage\"><img src=\"/static/images/bomb_small.png\"/></span>\n\t</div>\n</div>\n",widgetsInTemplate:true,postCreate:function(){if(null!=this.maturity){dojo.style(this.maturityImage,"display","inline");}}});}if(!dojo._hasResource["ag.widget.games.download.MostPopular"]){dojo._hasResource["ag.widget.games.download.MostPopular"]=true;dojo.provide("ag.widget.games.download.MostPopular");dojo.declare("ag.widget.games.download.MostPopular",[ag.widget.games.download.PanelBase],{widgetsInTemplate:true,templateString:"<div class=\"genretopgames\">\n\t<div class=\"topgames-content\">\n\t\t<span dojoAttachPoint=\"output\"></span>\n\t</div>\n</div>\n",_setData:function(data){this._data=data;var _6a6=this._filterGames();this._addGames(_6a6);},createGameWidget:function(game){return new ag.widget.games.download.TopGamesGame(game,document.createElement("span"));}});}if(!dojo._hasResource["ag.widget.games.download.DownloadPanel"]){dojo._hasResource["ag.widget.games.download.DownloadPanel"]=true;dojo.provide("ag.widget.games.download.DownloadPanel");dojo.declare("ag.widget.games.download.DownloadPanel",[dijit._Widget,dijit._Templated,dijit._Container],{widgetsInTemplate:true,templateString:"<div class=\"download-panel\">\n\t<div class=\"featured-games-tc\"></div>\n\t<div class=\"genre-widget-menu\">\n\t\t<div class=\"genre-widget-title\" dojoAttachPoint=\"_title\"></div>\n\t\t<div class=\"download-filter-by\">\n\t\t\t<label for=\"filter-by\">Filter by:</label>\n\t\t\t<select id=\"filter-by\" dojoAttachPoint=\"_filterByList\" dojoAttachEvent=\"onchange:_onFilterByChange\">\n\t\t\t\t<option value=\"Action\">Action</option>\n\t\t\t\t<option value=\"Puzzle &amp; Board\">Puzzle &amp; Board</option>\n\t\t\t\t<option value=\"Shooting &amp; Sports\">Shooting &amp; Sports</option>\n\t\t\t\t<option value=\"Arcade &amp; Classic\">Arcade &amp; Classic</option>\n\t\t\t\t<option value=\"Adventure\">Adventure</option>\n\t\t\t\t<option value=\"Life &amp; Style\">Life &amp; Style</option>\n\t\t\t\t<option value=\"All Games\" dojoAttachPoint=\"_filterByAllOption\">All Games</option>\n\t\t\t</select>\n\t\t</div>\n\t</div>\n\t<div class=\"whats-hot-header\">\n\t\t<span dojoAttachPoint=\"_tabs\" dojoType=\"qi.widget.TabButtons\" class=\"menu\" changeOnClick=\"false\">\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t\t\t\ttext=\"Most Popular\"\n\t\t\t\t\tkey=\"mostPopular\" \n\t\t\t\t\tselected=\"selected\"\n\t\t\t\t\tdojoAttachEvent=\"onClick:_onMostPopular\"\n\t\t\t\t\tdojoAttachPoint=\"_mostPopularTab\">\n\t\t\t</span>\n\t\t\t<span dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t\t\t\ttext=\"A-Z\"\n\t\t\t\t\tkey=\"az\"\n\t\t\t\t\tdojoAttachEvent=\"onClick:_onViewAll\"\n\t\t\t\t\tdojoAttachPoint=\"_azTab\">\n\t\t\t</span>\n\t\t</span>\n\t</div>\n\t<div dojoAttachPoint=\"panel\"></div>\n \t<div class=\"featured-games-bc\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",baseDataLocation:dojo.moduleUrl("agstatic","frag/games/genre/"),baseDownloadDataLocation:dojo.moduleUrl("agstatic","frag/games/whatshot/downloads/"),testDataLocation:"",panel:{},_mostPopular:{},_viewAll:{},_visibleWidget:{},_filterByList:{},postCreate:function(){this._title.innerHTML="All Download Games";this._filterByAllOption.selected=true;if(""!=this.testDataLocation){this.baseDataLocation=dojo.moduleUrl("agstatic",this.testDataLocation);}this._viewAll=new ag.widget.games.download.ViewAll({"dataLocation":this.baseDataLocation},document.createElement("span"));this._mostPopular=new ag.widget.games.download.MostPopular({},document.createElement("span"));var _6a8=new ag.widget.games.GamesForTimePeriod();_6a8.loadCompleted.addCallback(this,this._onMostPopularLoaded);_6a8.load(this.baseDownloadDataLocation+"alltime-topPlays.js");var _6a9=ag.widget.StatusCookie.getWidgetStatusValue("downloadPanel");if(null!=_6a9&&"undefined"!=_6a9&&"viewAll"==_6a9){this._onViewAll();}else{this._onMostPopular();}},_onViewAll:function(e){if(typeof (e)!="undefined"){e.preventDefault();}this._tabs.selectTabPostClick(this["_azTab"]);ag.widget.StatusCookie.setWidgetStatus({"downloadPanel":"viewAll"});if(null!=this._viewAll._data){this._viewAll._show();}this._tryRemove(this._mostPopular);this.panel.appendChild(this._viewAll.domNode);this._visibleWidget=this._viewAll;},_onMostPopular:function(e){if(typeof (e)!="undefined"){e.preventDefault();}this._tabs.selectTabPostClick(this["_mostPopularTab"]);ag.widget.StatusCookie.setWidgetStatus({"downloadPanel":"mostPopular"});this._mostPopular._removeVisibleGames();if(null!=this._mostPopular._data){var _6ac=this._mostPopular._filterGames();this._mostPopular._addGames(_6ac);}this._tryRemove(this._viewAll);this.panel.appendChild(this._mostPopular.domNode);this._visibleWidget=this._mostPopular;},_onMostPopularLoaded:function(data){this._mostPopular._setData(data);},_tryRemove:function(_6ae){if(_6ae.domNode.parentNode){_6ae.domNode.parentNode.removeChild(_6ae.domNode);}},_onFilterByChange:function(e){if("All Games"==this._filterByList.value){this._title.innerHTML="All Download Games";}else{this._title.innerHTML=this._filterByList.value+" Download Games";}this._mostPopular._selectedGenre=this._filterByList.value;this._viewAll._selectedGenre=this._filterByList.value;if(this._visibleWidget==this._mostPopular){this._onMostPopular();}else{this._viewAll.resetCurrentPage();this._onViewAll();}}});}if(!dojo._hasResource["ag.widget.ratings.RateItFramed"]){dojo._hasResource["ag.widget.ratings.RateItFramed"]=true;dojo.provide("ag.widget.ratings.RateItFramed");dojo.declare("ag.widget.ratings.RateItFramed",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<a href=\"/RateIt\" dojoAttachEvent=\"onclick:onClick\">Rate It!</a>\n</span>\n",gameId:"",onClick:function(e){e.preventDefault();var pop=window["open"](dojo.moduleUrl("agstatic","gamerating/gamerating.html?gameId=")+this.gameId,"gameratingpop","height=515,width=680");pop.focus();}});}if(!dojo._hasResource["ag.widget.ratings.Rating"]){dojo._hasResource["ag.widget.ratings.Rating"]=true;dojo.provide("ag.widget.ratings.Rating");(function(){function setPercentageInfo(elem,_6b3,msg){msg=msg||"";if(_6b3>0&&dojo.isIE){elem.style.width=""+_6b3-0.5+"%";}else{elem.style.width=""+_6b3+"%";}if(_6b3>17){elem.innerHTML=""+_6b3+"%";}elem.title=""+_6b3+"% "+msg;};dojo.declare("ag.widget.ratings.Rating",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"rating-overall\">\n  <div class=\"overall-title\">Total AG Ratings:</div>\n  <div class=\"overall-total\" dojoAttachPoint=\"agRatingTotal\"><!-- Total Ratings: 1768 --></div>\n  \t<div class=\"thumb-down\"></div>\n  \t<div class=\"thumb-up\"></div>\n    <div class=\"rating-unrated\" dojoAttachPoint=\"agRatingUnrated\">\n      <div class=\"rating-unrated-text\">no ratings yet</div>\n  </div>\n  <div dojoAttachPoint=\"agRatingLeft\"></div>\n  <div class=\"rating-graph\">\n  \t<div class=\"rating-good\" dojoAttachPoint=\"agRatingGood\"><!-- 80% --></div>\n    <div class=\"rating-bad\" dojoAttachPoint=\"agRatingBad\"><!-- 20% --></div>\n  </div>\n  <div dojoAttachPoint=\"agRatingRight\"></div>\n</div>\n",gameId:"",postCreate:function(){dojo.addClass(this.domNode,"dispnone");this.model=ag.widget.ratings.GameRatingModel.findByGameId(this.gameId);var self=this;this.model.gameRatingTotal.loadCompleted.addCallback(this,"_onDataAvailable");this.model.gameRatingTotal.loadCompleted.addErrback(function(err){console.warn("Problem getting rating total",err,""+err.message);});this._subscription=dojo.subscribe(this.model.topic,this,"_onModelMessage");},destroy:function(){dojo.unsubscribe(this._subscription);ag.widget.ratings.Rating.superclass.destroy.apply(this,arguments);},_onModelMessage:function(_6b7){if("model"==_6b7.eventType){this._onDataAvailable();}},_onDataAvailable:function(){if(this.model.gameRatingTotal.isRated()){var _6b8=this.model.gameRatingTotal.goodPercent;var _6b9=this.model.gameRatingTotal.badPercent;setPercentageInfo(this.agRatingGood,_6b8," Good");setPercentageInfo(this.agRatingBad,_6b9," Bad");this._setLeftAndRightClasses(_6b8,_6b9);dojo.addClass(this.agRatingUnrated,"dispnone");}else{dojo.removeClass(this.agRatingUnrated,"dispnone");}var _6ba=this.model.gameRatingTotal.totalVotes;this.agRatingTotal.innerHTML=""+dojo.number.format(_6ba);dojo.removeClass(this.domNode,"dispnone");},_setLeftClass:function(_6bb){if(_6bb==0){dojo.removeClass(this.agRatingLeft,"rating-left-green");dojo.addClass(this.agRatingLeft,"rating-left-red");}else{dojo.removeClass(this.agRatingLeft,"rating-left-red");dojo.addClass(this.agRatingLeft,"rating-left-green");}},_setRightClass:function(_6bc){if(_6bc==0){dojo.removeClass(this.agRatingRight,"rating-right-red");dojo.addClass(this.agRatingRight,"rating-right-green");}else{dojo.removeClass(this.agRatingRight,"rating-right-green");dojo.addClass(this.agRatingRight,"rating-right-red");}},_setGoodBarClass:function(_6bd){if(_6bd==0){dojo.removeClass(this.agRatingGood,"rating-good");dojo.addClass(this.agRatingGood,"dispnone");}else{dojo.removeClass(this.agRatingGood,"dispnone");dojo.addClass(this.agRatingGood,"rating-good");}},_setBadBarClass:function(_6be){if(_6be==0){dojo.removeClass(this.agRatingBad,"rating-bad");dojo.addClass(this.agRatingBad,"dispnone");}else{dojo.removeClass(this.agRatingBad,"dispnone");dojo.addClass(this.agRatingBad,"rating-bad");}},_setLeftAndRightClasses:function(_6bf,_6c0){this._setLeftClass(_6bf);this._setRightClass(_6c0);this._setGoodBarClass(_6bf);this._setBadBarClass(_6c0);}});})();ag.widget.ratings.createUi=function(_6c1){var _6c2=ag.widget.ratings.GameRatingModel.findByGameId(_6c1);var _6c3=dojo.byId("agrating-placeholder")||dojo.body();var span;span=document.createElement("span");_6c3.appendChild(span);new ag.widget.ratings.RateItFormContainer({gameId:Number(_6c1)},span);span=document.createElement("span");_6c3.appendChild(span);new ag.widget.ratings.Rating({gameId:Number(_6c1)},span);};ag.widget.ratings.createUiFromUrl=function(){var _6c5=""+window.location.search;var _6c6;if(_6c6=/.*gameId=(\d+)/i.exec(_6c5)){var _6c7=_6c6[1];ag.widget.ratings.createUi(_6c7);}};}if(!dojo._hasResource["ag.widget.ratings.RatingContainer"]){dojo._hasResource["ag.widget.ratings.RatingContainer"]=true;dojo.provide("ag.widget.ratings.RatingContainer");dojo.declare("ag.widget.ratings.RatingContainer",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"rating-container\">\n\t<div class=\"rating-tc\"></div>\n\t<div class=\"rating-cc\">\n\t\t<span dojoType=\"ag.widget.ratings.GameRatingModel\" gameId=\"${gameId}\"></span>\n\t\t<span dojoType=\"ag.widget.ratings.RateItFormContainer\" gameId=\"${gameId}\"></span>\n\t\t<span dojoType=\"ag.widget.ratings.Rating\" gameId=\"${gameId}\"></span>\n\t</div>\n\t<div class=\"rating-bc\"></div>\n</div>\n",gameId:"",widgetsInTemplate:true});}if(!dojo._hasResource["ag.widget.tips.TipCaptcha"]){dojo._hasResource["ag.widget.tips.TipCaptcha"]=true;dojo.provide("ag.widget.tips.TipCaptcha");dojo.declare("ag.widget.tips.TipCaptcha",[qi.widget.Captcha],{templateString:"<span>\n    <div id=\"recaptcha_div_tip\"></div>\n</span>\n",postCreate:function(){$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js",function(){Recaptcha.create("6Lc_SAcAAAAAAGx9bjOU-srubELeT3EyyHR5S9sp","recaptcha_div_tip",{theme:"red",callback:function(){$("#recaptcha_div_tip #recaptcha_response_field").attr({dojoType:"qi.widget.ValidationTextbox",dojoAttachPoint:"recaptcha",required:"true"});Recaptcha.focus_response_field();}});});}});}if(!dojo._hasResource["ag.widget.submit.SubmitInput"]){dojo._hasResource["ag.widget.submit.SubmitInput"]=true;dojo.provide("ag.widget.submit.SubmitInput");dojo.declare("ag.widget.submit.SubmitInput",[dijit._Widget,dijit._Templated,dijit._Container],{captcha:null,captchaMessages:{},captchaPlaceholder:{},captchaRow:{},captchaUrl:dojo.moduleUrl("agdynamic","captcha"),hintText:"",inputRow:{},messages:{},canHide:false,_canPost:true,_captchaVisible:false,_model:{},_posted:false,_resultDispatcher:{},_validator:{},postCreate:function(){this._resultDispatcher=new qi.validation.ResultDispatcher().addMappedCallback("captcha",dojo.hitch(this,"_onCaptcha"));this._validator=this._createValidator();this._disableTextareaMonitorAndPaste(this.hintText);},setModel:function(_6c8){this._model=_6c8;this.subscriptions.subscribe(this._model.topic,dojo.hitch(this,"_onModelMessage"));},_createData:function(){throw new Error("Subclass must override _createData");},_createValidator:function(){throw new Error("Subclass must override _createValidator");},_onclickPost:function(e){dojo.stopEvent(e);if(this._canPost){this._onfocusInput();this.messages.clear();this.captchaMessages.clear();var data=this._createData();if(this._captchaVisible){data.recaptcha_response_field=$("#recaptcha_div_tip #recaptcha_response_field").val();data.recaptcha_challenge_field=$("#recaptcha_div_tip #recaptcha_challenge_field").val();}var _6cb=this._validator.validate(data);if(_6cb.isValid()){this._posted=true;this._model.submit(data);}else{this.messages.addMessage(_6cb.fields.tip);}}},_onclickCancel:function(e){dojo.stopEvent(e);if(true==this.canHide){dojo.style(this.domNode,"display","none");}else{this._disableTextareaMonitorAndPaste(this.hintText);}if(false==this.inputWidget.getAttribute("disabled")){this._disableTextareaMonitorAndPaste(this.hintText);}this.messages.clear();},_onfocusInput:function(e){if(this.inputWidget.value==this.hintText){this.inputWidget.value="";}},_onblurInput:function(e){if(/^\s*$/.test(this.inputWidget.value)){this._disableTextareaMonitorAndPaste(this.hintText);}},_onCaptcha:function(_6cf){if(true==this._posted){if(this._captchaVisible){$("#tipCaptchaError").html("Please enter the correct code.");this.captcha.changeCaptcha();}else{this._showCaptcha();}}else{this.captchaVisble=true;dojo.addClass(this.domNode,"dispnone");}},_onModelMessage:function(_6d0){var _6d1=false;var _6d2=false;if("submitWaiting"==_6d0.eventType){this._canPost=false;_6d1=true;}else{if("submitSuccess"==_6d0.eventType){this._canPost=false;_6d2=true;this.messages.clear();this._updateAndDisableTextarea(_6d0.data.tip);this._hideCaptcha();if(true==this._posted){dojo.removeClass(this.domNode,"dispnone");}}else{if("submitFailure"==_6d0.eventType){if(/bad http response code/.test(String(_6d0.error.message))){this._canPost=true;if(true==this._posted){this.messages.addMessage("Unable to process request, please try again.");}this._disableTextareaMonitorAndPaste("");}else{if(null==_6d0.error.errorObject.error.fields.captcha){this._canPost=false;}else{this._canPost=true;}this.messages.clear();this._updateAndDisableTextarea();if(null!=_6d0.error){this._resultDispatcher.dispatch(_6d0.error);}_6d2=true;}}else{if("pageLoaded"!=_6d0.eventType){console.debug("SubmitInput: unknown event type: "+_6d0.eventType);}}}}dojo.toggleClass(this.postButton,"submitWaiting",_6d1);dojo.toggleClass(this.postButton,"submitSuccess",_6d2);},_createCaptcha:function(){this.captcha=new ag.widget.tips.TipCaptcha({captchaUrl:this.captchaUrl},this.captchaPlaceholder);this._resultDispatcher.autowire({containerWidget:this,names:["captcha"]});},_showCaptcha:function(){if(null==this.captcha){this._createCaptcha();}this._captchaVisible=true;this.inputRow.style.display="none";this.captchaRow.style.display="block";},_hideCaptcha:function(){this._captchaVisible=false;this.inputRow.style.display="block";this.captchaRow.style.display="none";},_updateAndDisableTextarea:function(_6d3){if(null!=_6d3){this._disableTextareaMonitorAndPaste(_6d3);}this.inputWidget.setAttribute("disabled","true");if(dojo.isIE){dojo.addClass(this.inputWidget,"disabled");}},_disableTextareaMonitorAndPaste:function(_6d4){this.inputWidget.value=_6d4;}});}if(!dojo._hasResource["ag.widget.tips.TipInput"]){dojo._hasResource["ag.widget.tips.TipInput"]=true;dojo.provide("ag.widget.tips.TipInput");dojo.declare("ag.widget.tips.TipInput",[ag.widget.submit.SubmitInput],{templateString:"<div class=\"tip-submit\">\n\t<div class=\"tip-submit-title\">Submit a Tip for this game:</div>\n\t<div class=\"submit-input-row\" dojoAttachPoint=\"inputRow\">\n\t\t<div\n\t\t  dojoAttachPoint=\"messages\"\n\t\t  dojoType=\"qi.widget.validation.ValidationMessages\"></div>\n\t\t<form action=\"ignored\">\n\t\t\t<textarea\n\t\t\t\tid=\"tip-input\"\n\t\t\t\tdojoAttachPoint=\"inputWidget\"\n\t\t\t\tdojoAttachEvent=\"onfocus:_onfocusInput\"\n\t\t\t\tdojoAttachEvent=\"onblur:_onblurInput\"></textarea>\n\t\t\t<br/>\n\t\t\t<div class=\"tip-inputs\">\n\t\t\t\t<input\n\t\t\t\t  class=\"tip-input-post\"\n\t\t\t\t  dojoAttachEvent=\"onclick:_onclickPost\"\n\t\t\t\t  dojoAttachPoint=\"postButton\"\n\t\t\t\t  type=\"submit\"\n\t\t\t\t  value=\"\">\n\t\t\t\t<input\n\t\t\t\t  class=\"tip-input-cancel\"\n\t\t\t\t  dojoAttachEvent=\"onclick:_onclickCancel\"\n\t\t\t\t  dojoAttachPoint=\"cancelButton\"\n\t\t\t\t  type=\"submit\"\n\t\t\t\t  value=\"\">\n\t\t\t</div>\n\t\t</form>\n\t</div>\n\t<div\n\t  class=\"tip-captcha\"\n\t  dojoAttachPoint=\"captchaRow\">\n\t\t<span dojoAttachPoint=\"captchaPlaceholder\"></span>\n\t\t<span\n\t\t  class=\"tips-captcha-message\"\n\t\t  dojoType=\"qi.widget.validation.ValidationMessages\"\n\t\t  dojoAttachPoint=\"captchaMessages\"></span>\n\t\t<div class=\"tip-captcha-heading\">\n\t\t\tContent Limit Exceeded\n\t\t</div>\n\t\t<div class=\"tip-captcha-text\">\n            <div id=\"tipCaptchaError\"></div>\n\t\t\tYou have recently posted<br />\n            several tips.\n\t\t\t<br/><br />\n\t\t\tEnter the code to continue posting.<br />\n            <input\n              class=\"tip-captcha-submit\"\n              dojoAttachEvent=\"onclick:_onclickPost\"\n              dojoAttachPoint=\"captchaButton\"\n              type=\"submit\"\n              value=\"\"></input>\n\t\t</div>\n\t</div>\n\t<div\n\t  dojoAttachPoint=\"subscriptions\"\n\t  dojoType=\"qi.widget.TopicSubscription\"></div>\n</div>\n",widgetsInTemplate:true,hintText:"Type your tip or walkthrough here.",_maxInputLength:10000,postCreate:function(){this.inherited("postCreate",arguments);this._resultDispatcher.addMappedCallback("tip",dojo.hitch(this,"_onTipError"));this._resultDispatcher.addActionMapping("tip",dojo.hitch(this,"_tipAction"));},_createData:function(){return {tip:this.inputWidget.value};},_createValidator:function(){return new qi.validation.Validator({rules:[new qi.validation.Regexp("tip","Please write a tip",/.*[^\s].*/),new qi.validation.InverseRegexp("tip","Your tip cannot be posted because it includes HTML, an email address, or a URL.",/.*<[^>]+>.*|.*[^\s]@[^\s].*|.*www\..*|.*\.(?:net|org|biz|com|gov|edu).*/i)]});},_onTipError:function(_6d5){if(this._posted){this.messages.addMessage(_6d5);}},_tipAction:function(obj){if(this._posted){this.messages.addMessage(obj.message);}}});}if(!dojo._hasResource["ag.widget.submit.SubmitModel"]){dojo._hasResource["ag.widget.submit.SubmitModel"]=true;dojo.provide("ag.widget.submit.SubmitModel");dojo.declare("ag.widget.submit.SubmitModel",null,{createService:{},deleteService:{},displayingPage:1,gameId:0,topic:"",_hasItems:false,_pageModels:null,_totalPages:1,constructor:function(){this.topic=String(this.declaredClass);this._pageModels=[];},_makePageModel:function(_6d7){throw new Error("Subclass must override _makePageModel");},_mixinResult:function(_6d8){throw new Error("Subclass must override _mixinResult");},submit:function(data){if(LoginModule.isUserLoggedIn()){dojo.publish(this.topic,[{eventType:"submitWaiting"}]);ag.user.LoggedInUser.mixinSessionUserUuid(data);data.gameId=parseInt(this.gameId);var _6da=this.createService(data);_6da.addCallback(dojo.hitch(this,function(_6db){this._mixinResult(data,_6db);dojo.publish(this.topic,[{eventType:"submitSuccess",data:data,result:_6db}]);}));_6da.addErrback(dojo.hitch(this,function(_6dc){this.submitFailure(_6dc);}));}},submitFailure:function(_6dd){dojo.publish(this.topic,[{eventType:"submitFailure",error:_6dd}]);},deleteSubmission:function(data){if(LoginModule.isUserLoggedIn()){var _6df=this.deleteService(data);_6df.addCallback(dojo.hitch(this,function(_6e0){var page=this.getPageModel(this.displayingPage);page.loadCompleted.addCallback(dojo.hitch(this,function(){page.items=dojo.filter(page.items,function(elt,idx,_6e4){return Number(elt.tipId)!=Number(data.tipId);});if(page.items.length==0&&this.getTotalPages()!=1){if(this.displayingPage<=this.getTotalPages()){--this.totalPages;this._pageModels=dojo.filter(this._pageModels,function(elt,idx,_6e7){return elt!=page;});if(this.displayingPage>this.getTotalPages()){this.displayingPage=this.getTotalPages();}}}this.loadPageModel(this.displayingPage,0);}));}));_6df.addErrback(dojo.hitch(this,function(err){dojo.publish(this.topic,[{eventType:"failure","error":err}]);}));}else{dojo.publish(this.topic,[{eventType:"failure","error":"You must be logged in to delete an item"}]);}},getPageModel:function(_6e9){var idx=_6e9-1;if(this._pageModels.length<_6e9||(false==this.hasPageModel(_6e9))){this._pageModels[idx]=this._makePageModel(_6e9);if(false==this.hasPageModel(_6e9)){throw new Error("page model problem");}}return this._pageModels[idx];},getTotalPages:function(){return this._totalPages;},hasPageModel:function(_6eb){var idx=_6eb-1;return ("undefined"!=typeof (this._pageModels[idx])&&null!=this._pageModels[idx]);},loadPageModel:function(_6ed,_6ee){var _6ef=this.getPageModel(_6ed);_6ef.loadCompleted.addCallback(dojo.hitch(this,function(){this._totalPages=_6ef.totalPages;if(_6ee){this._totalPages+=_6ee;}if(1==_6ed){this._hasItems=_6ef.hasItems();}dojo.publish(this.topic,[{eventType:"pageLoaded",pageNum:_6ed,pageModel:_6ef}]);}));_6ef.loadCompleted.addErrback(dojo.hitch(this,function(){dojo.publish(this.topic,[{eventType:"pageLoadFailed",pageNum:_6ed}]);}));},loadNextPage:function(){if(this.displayingPage<this.getTotalPages()){this.displayingPage+=1;this.loadPageModel(this.displayingPage);}},loadPreviousPage:function(){if(this.displayingPage>1){this.displayingPage-=1;this.loadPageModel(this.displayingPage);}},hasItems:function(){return this._hasItems;},splicePages:function(_6f0){if(_6f0.items.length==0&&this.getTotalPages()!=1){if(this.displayingPage<=this.getTotalPages()){--this._totalPages;this._pageModels=dojo.filter(this._pageModels,function(elt,idx,_6f3){return elt!=_6f0;});if(this.displayingPage>this.getTotalPages()){this.displayingPage=this.getTotalPages();}}}this.loadPageModel(this.displayingPage,-1);}});}if(!dojo._hasResource["ag.widget.submit.SubmitPageModel"]){dojo._hasResource["ag.widget.submit.SubmitPageModel"]=true;dojo.provide("ag.widget.submit.SubmitPageModel");dojo.declare("ag.widget.submit.SubmitPageModel",null,{items:[],totalPages:1,constructor:function(url){var _6f5=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_6f5.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_6f5.addErrback(dojo.hitch(this,function(err){if(/.*404.*/.test(""+err.message)){dojo.mixin(this,{page:1,items:[],totalPages:1});this.loadCompleted.callback(this);}else{this.loadCompleted.errback(err);}}));},_fillFromServer:function(_6f8){dojo.mixin(this,_6f8);},hasItems:function(){return "undefined"!=typeof (this.items)&&0!=this.items.length;}});}if(!dojo._hasResource["ag.widget.tips.TipModel"]){dojo._hasResource["ag.widget.tips.TipModel"]=true;dojo.provide("ag.widget.tips.TipModel");dojo.declare("ag.widget.tips.TipModel",[ag.widget.submit.SubmitModel],{_dataUrl:"",_kind:null,_vote:new ag.services.JsonServiceFactory("tipService.vote").method,_votes:[],constructor:function(_6f9,kind,_6fb){this._dataUrl=_6f9;this._kind=kind;this.gameId=_6fb;this.createService=new ag.services.JsonServiceFactory("tipService.save").method;this.deleteService=new ag.services.JsonServiceFactory("tipService.deleteMine").method;},_makePageModel:function(_6fc){var _6fd=String(this.gameId);var path="tips/"+this._kind+"/"+_6fd+"?page="+_6fc;var url=dojo.moduleUrl("agjson",path);return new ag.widget.submit.SubmitPageModel(url.uri);},getTitle:function(){return this.getPageModel(1).title;},hasVotedOnTip:function(_700){if("undefined"==this._votes[_700]||null==this._votes[_700]){return false;}else{return true;}},voteOnTip:function(_701,vote){if(false==this.hasVotedOnTip(_701)){this._votes[_701]=vote;var _703={tipId:_701,vote:vote};ag.user.LoggedInUser.mixinSessionUserUuid(_703);return this._vote(_703);}},_mixinResult:function(data,_705){this.getPageModel(1).items.unshift(_705.tip);}});ag.widget.tips.TipModel.KIND_POPULAR="popular";ag.widget.tips.TipModel.KIND_RECENT="recent";ag.widget.tips.TipModel.YES="Y";ag.widget.tips.TipModel.NO="N";(function(){var _706=[];ag.widget.tips.TipModel.getModel=function(_707,kind,_709){if(_706[kind]==null){_706[kind]=new ag.widget.tips.TipModel(_707,kind,_709);}return _706[kind];};}());}if(!dojo._hasResource["ag.widget.submit.SubmitPage"]){dojo._hasResource["ag.widget.submit.SubmitPage"]=true;dojo.provide("ag.widget.submit.SubmitPage");dojo.declare("ag.widget.submit.SubmitPage",[dijit._Widget,dijit._Templated,dijit._Container],{container:{},loaded:false,model:{},pageNum:1,numToShow:100,subscriptions:{},showTopPagination:true,showBottomPagination:true,postCreate:function(){this.model=this._getModel();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));if(false==this.loaded){this.model.loadPageModel(this.pageNum);}this._showOrHidePaginationLinks();},_createItemWidget:function(item){throw new Error("Subclass must override _createItemWidget");},_showWhenItems:function(_70b){throw new Error("Subclass must override _showWhenItems");},_getModel:function(){throw new Error("Subclass must override _getModel");},_showOrHidePaginationLinks:function(){throw new Error("Subclass must override _showOrHidePaginationLinks");},_onModelMessage:function(_70c){if("pageLoaded"==_70c.eventType){this.loaded=true;dojo.forEach(dojo.query("> [widgetId]",this.container).map(dijit.byNode),dojo.hitch(this,function(_70d){this.removeChild(_70d);_70d.destroyRecursive();}));var _70e=this._getModel();var page=_70e.getPageModel(_70e.displayingPage);this._showWhenItems(page.items.length);var i;for(i=0;(i<page.items.length)&&(i<this.numToShow);i+=1){var _711=this._createItemWidget(page.items[i]);this.container.appendChild(_711.domNode);}if(1<page.totalPages){this.showPagination=true;this._showOrHidePaginationLinks();}}else{if("pageLoadFailed"==_70c.eventType){console.debug("page load failed");}else{}}}});}if(!dojo._hasResource["ag.widget.submit.PaginationBase"]){dojo._hasResource["ag.widget.submit.PaginationBase"]=true;dojo.provide("ag.widget.submit.PaginationBase");dojo.declare("ag.widget.submit.PaginationBase",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"submit-pagination\">\n\t<a href=\"#Previous\" dojoAttachPoint=\"prevLink\" dojoAttachEvent=\"onclick:_onPrev\">&lt;</a>\n\t<span dojoAttachPoint=\"current\"></span>\n\t<a href=\"#Next\" dojoAttachPoint=\"nextLink\" dojoAttachEvent=\"onclick:_onNext\">&gt;</a>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,prevLink:{},nextLink:{},postCreate:function(){this.model=this._getModel();this.current.innerHTML=this.model.displayingPage;this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));dojo.addClass(this.domNode,"dispnone");},_getModel:function(){throw new Error("Subclass must override _getModel");},_onNext:function(e){e.preventDefault();this.model.loadNextPage();},_onPrev:function(e){e.preventDefault();this.model.loadPreviousPage();},_onModelMessage:function(msg){if("pageLoaded"==msg.eventType){var _715=this.model.getTotalPages();if(_715>1){var _716=(1==this.model.displayingPage);var _717=(Number(_715)==this.model.displayingPage);(_716?dojo.addClass:dojo.removeClass)(this.prevLink,"dispnone");(_717?dojo.addClass:dojo.removeClass)(this.nextLink,"dispnone");this.current.innerHTML=this.model.displayingPage+" of "+_715;dojo.removeClass(this.domNode,"dispnone");}else{dojo.addClass(this.domNode,"dispnone");}}}});}if(!dojo._hasResource["ag.widget.tips.Pagination"]){dojo._hasResource["ag.widget.tips.Pagination"]=true;dojo.provide("ag.widget.tips.Pagination");dojo.declare("ag.widget.tips.Pagination",ag.widget.submit.PaginationBase,{gameId:0,kind:"",dataUrl:"",_getModel:function(){return ag.widget.tips.TipModel.getModel(this.dataUrl,this.kind,this.gameId);}});}if(!dojo._hasResource["ag.widget.submit.TextToggle"]){dojo._hasResource["ag.widget.submit.TextToggle"]=true;dojo.provide("ag.widget.submit.TextToggle");dojo.declare("ag.widget.submit.TextToggle",[dijit._Widget,dijit._Templated],{templateString:"<div class='${cssClass}'>"+"<span dojoAttachPoint='content'></span>"+"<span> </span>&#160; <span class='comments-more'>"+"<a href='#' dojoAttachPoint='toggle' dojoAttachEvent='onclick:_onToggle'></a>"+"</span></div>",cssClass:"",pageLocation:"home",content:{},toggle:{},maxLength:510,elispses:"...",spacesBackToLookForWordBreak:10,postMixInProperties:function(){this.collapsed=true;this.fullContent=String(this.srcNodeRef.innerHTML);this.dynamic=false;if(this.fullContent.length<=this.maxLength){if(this.pageLocation=="home"){this.templateString="<div class='hr-comments'>${fullContent}</div>";}else{if(this.pageLocation=="game"){this.templateString="<div class='ir-comments'>${fullContent}</div>";}else{if(this.pageLocation=="tip"){this.templateString="<div class='tip-content'>${fullContent}</div>";}else{this.templateString="<div class='recent-comments'>${fullContent}</div>";}}}}else{this.dynamic=true;this.srcNodeRef.innerHTML="";var _718=/\s/;var idx=0;for(idx=this.maxLength;idx>1;--idx){if(_718.test(this.fullContent.charAt(idx))){this.abbreviated=this.fullContent.substring(0,idx);break;}}if(typeof (this.abbreviated)=="undefined"){this.abbreviated=this.fullContent.substring(0,this.maxLength);}this.abbreviated+=this.elispses;if(this.pageLocation=="home"){this.cssClass="hr-comments";}else{if(this.pageLocation=="game"){this.cssClass="ir-comments";}else{if(this.pageLocation=="tip"){this.cssClass="tip-content";}else{this.cssClass="recent-comments";}}}}},postCreate:function(){if(this.dynamic){this._dynamicDisplay();}},_onToggle:function(e){e.preventDefault();this.collapsed=!this.collapsed;this._dynamicDisplay();},_dynamicDisplay:function(){if(this.collapsed){this.content.innerHTML=this.abbreviated;this.toggle.innerHTML="more&#160;&gt;&gt;";}else{this.content.innerHTML=this.fullContent;this.toggle.innerHTML="close";}}});}if(!dojo._hasResource["ag.widget.tips.DeleteTip"]){dojo._hasResource["ag.widget.tips.DeleteTip"]=true;dojo.provide("ag.widget.tips.DeleteTip");dojo.declare("ag.widget.tips.DeleteTip",[ag.widget.submit.DeleteUserSubmittable],{kind:"",_getDeleteUserSubmittableLink:function(){return new ag.widget.tips.DeleteTipLink({tipId:this.itemId,gameId:this.gameId,kind:this.kind},this.container);}});dojo.declare("ag.widget.tips.DeleteTipLink",[ag.widget.submit.DeleteUserSubmittableLink],{templateString:"<span class=\"delete-tip\">\n\t<span class=\"delete-x\"><img src=\"/static/images/delete-x.png\"/></span>\n\t<span class=\"delete-text\"><a href=\"#Delete\" dojoAttachEvent=\"onclick:_onDeleteUserSubmittable\">Delete</a></span>\n</span>\n",tipId:0,kind:"",_getDeleteUserSubmittableForm:function(dlg,span){return new ag.widget.tips.DeleteTipForm({itemId:this.tipId,gameId:this.gameId,kind:this.kind,dialog:dlg},span);}});dojo.declare("ag.widget.tips.DeleteTipForm",[ag.widget.submit.DeleteUserSubmittableForm],{templateString:"<div id=\"delete-tip\">\n\tAre you sure you want to permanently delete this tip?\n\t<br/>\n\t<div id=\"delete-yes-no\">\n\t\t<a href=\"#Yes\" dojoAttachEvent=\"onclick:_onYes\">Yes</a>\n\t\t<a href=\"#No\" dojoAttachEvent=\"onclick:_onNo\">No</a>\n\t</div>\n</div>\n",kind:"",_getModel:function(){return ag.widget.tips.TipModel.getModel("",this.kind,this.gameId);},_delete:function(id){var data={tipId:id};ag.user.LoggedInUser.mixinSessionUserUuid(data);this._getModel().deleteSubmission(data);this.dialog.hide();}});}if(!dojo._hasResource["ag.widget.tips.FlagTip"]){dojo._hasResource["ag.widget.tips.FlagTip"]=true;dojo.provide("ag.widget.tips.FlagTip");dojo.declare("ag.widget.tips.FlagTip",[ag.widget.submit.FlagUserSubmittable],{_createConfirmationDialog:function(span){var dlg=new qi.widget.FlashTopicContainerDialog({},span);qi.widget.PlaceableDialog.decorateDialog(dlg,this.domNode,{"BR":"BL","BL":"BR"});dlg.addChild(new ag.widget.tips.FlagTipConfirmation({tipId:this.itemId,dialog:dlg},span));return dlg;}});dojo.declare("ag.widget.tips.FlagTipConfirmation",[ag.widget.submit.FlagUserSubmittableConfirmation],{templateString:"<div id=\"flag-tip\">\n\tAre you sure you want to report this tip as offensive or illegal?\n\tReporting for no reason may result in the cancellation of your account.\n\t<div id=\"flag-tip-yes-no\">\n\t\t<a href=\"#Yes\" dojoAttachEvent=\"onclick:_onYes\">Yes</a>\n\t\t<a href=\"#No\" dojoAttachEvent=\"onclick:_onNo\">No</a>\n\t</div>\n</div>\n",tipId:0,_flag:new ag.services.JsonServiceFactory("tipService.flag").method,_getData:function(){return {tipId:this.tipId};}});}if(!dojo._hasResource["ag.widget.tips.Tip"]){dojo._hasResource["ag.widget.tips.Tip"]=true;dojo.provide("ag.widget.tips.Tip");dojo.declare("ag.widget.tips.Tip",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<div class=\"tip\">\n\t<div class=\"tip-tc\"></div>\n\t<div class=\"tip-cc\">\n\t\t<div class=\"tip-profilePic\"><a href=\"/profile/${createdBy.profilePath}\"><img src=\"${createdBy.userPic}\" alt=\"\"/></a></div>\n        <div class=\"tip-createdby\"><a href=\"/profile/${createdBy.profilePath}\">${createdBy.username}</a></div>\n        <div class=\"tip-text-container\">\n            <div dojoAttachPoint=\"star\"></div>\n            <div class=\"tip-text\">\n                <div dojoType=\"ag.widget.tips.TipTextToggle\" pageLocation=\"tip\" dojoAttachPoint=\"text\">${tip}</div>\n                <div class=\"tip-created-time\">${createdHtml}</div>\n                <div class=\"tip-divider\"></div>\n                <div class=\"tip-helpful\">\n                    <span>Was this tip helpful?</span>\n                    <span dojoAttachPoint=\"_tipVote\" class=\"tip-yes-no\">\n                        <a href=\"#Yes\" dojoAttachPoint=\"voteYes\" dojoAttachEvent=\"onclick:_onTipHelpful\">Yes</a>\n                        <a href=\"#No\" dojoAttachPoint=\"voteNo\" dojoAttachEvent=\"onclick:_onTipNotHelpful\">No</a>\n                    </span>\n                </div>\n            </div>\n        </div>\n        <div class=\"tip-actions\">\n            <span class=\"tip-flag\"><img src=\"/static/images/flag.png\"/></span>\n            <span class=\"tip-report\" dojoType=\"ag.widget.tips.FlagTip\" itemId=\"${tipId}\"></span>\n            <span class=\"tip-delete\" dojoType=\"ag.widget.tips.DeleteTip\"\n                gameId=\"${gameId}\"\n                itemId=\"${tipId}\"\n                createdByUserId=\"${createdBy.userId}\"\n                kind=\"${kind}\"></span>\n        </div>\n\t</div>\n\t<div class=\"tip-bc\"></div>\n</div>\n",createdHtml:"",kind:"",postMixInProperties:function(){dojo.mixin(this,this.tip);this.tip=qi.util.escapeHTML(this.tip).replace(/\n\r|\r\n|\r|\n/g,"<br/>");if(this.createdBy.userPicSet){this.createdBy.userPic="/dynamic/photo/userPic?userId="+this.createdBy.userId+"&thumbnail=true";}else{this.createdBy.userPic="/static/images/user_pic_default_small.jpg";}if(this.created){this.createdHtml="("+new ag.datetime.Duration(new Date(this.created)).disallowFuture().asReadableString()+")";}},postCreate:function(){if(ag.widget.tips.TipModel.KIND_POPULAR==this.kind){dojo.addClass(this.star,"tip-star");}},_onTipHelpful:function(e){e.preventDefault();this._voteOnTip(ag.widget.tips.TipModel.YES,this.voteYes);},_onTipNotHelpful:function(e){e.preventDefault();this._voteOnTip(ag.widget.tips.TipModel.NO,this.voteNo);},_voteOnTip:function(vote,elt){new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,function(){var _725=ag.widget.tips.TipModel.getModel(this.kind,this.gameId);if(_725.hasVotedOnTip(this.tipId)){this._tipVote.innerHTML="You have already voted on this tip.";}else{var _726=_725.voteOnTip(this.tipId,vote);_726.addCallback(dojo.hitch(this,function(_727){if(null!=_727.error){this._tipVote.innerHTML="You have already voted on this tip.";}else{this._tipVote.innerHTML="Thanks for voting!";}}));_726.addErrback(dojo.hitch(this,function(_728){if(_728.errorObject!=null&&_728.errorObject.error.messages.length>0){this._tipVote.innerHTML="You have already voted on this tip.";}else{this._tipVote.innerHTML="Error voting on tip.";}}));}}),headerMessage:"<em>You must be logged in to access this feature.</em>"});}});dojo.declare("ag.widget.tips.TipTextToggle",[ag.widget.submit.TextToggle],{maxLength:500,cssClass:"tip-text-toggle"});}if(!dojo._hasResource["ag.widget.tips.TipPage"]){dojo._hasResource["ag.widget.tips.TipPage"]=true;dojo.provide("ag.widget.tips.TipPage");dojo.declare("ag.widget.tips.TipPage",[ag.widget.submit.SubmitPage],{dataUrl:"",gameId:0,kind:"",templateString:"<span>\n\t<div class=\"tip-page-title-${kind}\" dojoAttachPoint=\"tipTitle\"></div>\n\t<span dojoAttachPoint=\"paginationTop\" \n\t\t\tdojoType=\"ag.widget.tips.Pagination\"\n\t\t\tkind=\"${kind}\"\n\t\t\tgameId=\"${gameId}\"\n\t\t\tdataUrl=\"${dataUrl}\">\n\t</span>\n\t<div dojoAttachPoint=\"container\"></div>\n\t<span dojoAttachPoint=\"paginationBottom\"\n\t\t\tdojoType=\"ag.widget.tips.Pagination\"\n\t\t\tkind=\"${kind}\"\n\t\t\tgameId=\"${gameId}\"\n\t\t\tdataUrl=\"${dataUrl}\">\n\t</span>\n\t<div class=\"tip-no-tips\" dojoAttachPoint=\"noTips\" style=\"display: none;\">\n\t\tBe the first to add a tip or walkthrough for this game!\n\t</div>\n\t<div class=\"tip-more-popular\" dojoAttachPoint=\"tipMore\" style=\"display: none;\">\n\t\t<a href=\"/static/more_popular_tips.html?gameId=${gameId}\">See more popular tips</a>\n\t\t<a href=\"/static/more_popular_tips.html?gameId=${gameId}\"><img src=\"/static/images/down_arrow.jpg\" /></a>\n\t</div>\n\t<div class=\"tip-more-divider\" dojoAttachPoint=\"tipDivider\" style=\"display: none;\"></div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</span>\n",widgetsInTemplate:true,showMoreLink:false,showDivider:false,_fadeInDuration:2000,_showOrHidePaginationLinks:function(){if(false==this.showTopPagination){dojo.style(this.paginationTop.domNode,"display","none");}if(false==this.showBottomPagination){dojo.style(this.paginationBottom.domNode,"display","none");}},_createItemWidget:function(item){dojo.mixin(item,{kind:this.kind});return new ag.widget.tips.Tip(item,document.createElement("span"));},_showWhenItems:function(_72a){if(0<_72a){this.tipTitle.innerHTML="Most "+this._getCapitalizedKind();dojo.style(this.tipTitle,"display","");if(true==this.showDivider){dojo.style(this.tipDivider,"display","");}dojo.style(this.noTips,"display","none");}else{if(ag.widget.tips.TipModel.KIND_POPULAR!=this.kind){dojo.style(this.noTips,"display","");}}if(0==_72a){dojo.style(this.tipTitle,"display","none");}if(_72a>this.numToShow&&true==this.showMoreLink){dojo.style(this.tipMore,"display","");}},_getCapitalizedKind:function(){if(0<this.kind.length){return this.kind.charAt(0).toUpperCase()+this.kind.substr(1).toLowerCase();}else{return this.kind;}},_getModel:function(){return ag.widget.tips.TipModel.getModel(this.dataUrl,this.kind,this.gameId);},addTipToFront:function(_72b){dojo.style(this.noTips,"display","none");var _72c=this._createItemWidget(_72b);dojo.style(_72c.domNode,"opacity",0);if(null!=this.container.firstChild&&"undefined"!=this.container.firstChild){this.container.insertBefore(_72c.domNode,this.container.firstChild);}else{this.container.appendChild(_72c.domNode);}dojo.fadeIn({node:_72c.domNode,duration:this._fadeInDuration}).play();}});}if(!dojo._hasResource["ag.widget.tips.TipPanel"]){dojo._hasResource["ag.widget.tips.TipPanel"]=true;dojo.provide("ag.widget.tips.TipPanel");dojo.declare("ag.widget.tips.TipPanel",[dijit._Widget,dijit._Templated],{dataUrl:"",gameId:0,templateString:"<div>\n\t<div class=\"tip-panel-tc\"></div>\n\t<div class=\"tip-panel\">\n\t\t<div class=\"tips-and-walkthroughs\">Tips & Walkthroughs</div>\n\t\t<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"in\" class=\"dispnone\">\n\t\t\t<div style=\"display: none;\" dojoAttachPoint=\"tipInputOne\" dojoType=\"ag.widget.tips.TipInput\" canHide=\"true\"></div>\n\t\t</span>\n\t\t<div\n\t\t  dojoAttachPoint=\"tipPagePopular\"\n\t\t  dojoType=\"ag.widget.tips.TipPage\"\n\t\t  dataUrl=\"${dataUrl}\"\n\t\t  gameId=\"${gameId}\"\n\t\t  kind=\"popular\"\n\t\t  numToShow=\"3\"\n\t\t  showMoreLink=\"true\"\n\t\t  showDivider=\"true\"\n\t\t  showTopPagination=\"false\"\n\t\t  showBottomPagination=\"false\"></div>\n\t\t<div\n\t\t  dojoAttachPoint=\"tipPageRecent\"\n\t\t  dojoType=\"ag.widget.tips.TipPage\"\n\t\t  dataUrl=\"${dataUrl}\"\n\t\t  gameId=\"${gameId}\"\n\t\t  kind=\"recent\"\n\t\t  showTopPagination=\"false\"></div>\n\t</div>\n\t<div class=\"tip-panel-bc\"></div>\n\t<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"in\" class=\"dispnone\">\n\t\t<div dojoAttachPoint=\"tipInputTwo\" dojoType=\"ag.widget.tips.TipInput\"></div>\n\t</span>\n\t<span dojoType=\"ag.widget.UserLoggedInConditionalWidget\" showOnStateLogged=\"out\" class=\"dispnone first-to-review\">\n\t\tWould you like to submit a tip or walkthrough for this game?\n\t\t<br/>\n\t\t<a href=\"#Register\" onclick=\"RegisterModule.showRegister(); return false;\">Join AddictingGames</a> for FREE or <a href=\"#Login\" onclick=\"LoginModule.showLogin(); return false;\"> login now </a>if you're already a member.\n\t</span>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",tipInputOne:{},tipInputTwo:{},tipPagePopular:{},tipPageRecent:{},widgetsInTemplate:true,postCreate:function(){this.inherited("postCreate",arguments);this.subscriptions.subscribe("ag.widget.tips.TipModel",dojo.hitch(this,"_onModelMessage"));this.tipInputOne.setModel(this.tipPageRecent.model);this.tipInputTwo.setModel(this.tipPageRecent.model);},showTipInputOne:function(){dojo.style(this.tipInputOne.domNode,"display","");},_onModelMessage:function(_72d){if("submitSuccess"==_72d.eventType){var _72e=this.tipPageRecent.addTipToFront(_72d.result.tip);}}});}if(!dojo._hasResource["ag.widget.ReviewsTipsPanel"]){dojo._hasResource["ag.widget.ReviewsTipsPanel"]=true;dojo.provide("ag.widget.ReviewsTipsPanel");dojo.declare("ag.widget.ReviewsTipsPanel",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{dataUrl:"",gameId:0,templateString:"<div class=\"reviews-tips-panel\">\n\t<div\n\t  dojoType=\"qi.widget.TabButtons\"\n\t  class=\"reviews-tips-buttons\">\n\t\t<div\n\t\t  dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t  class=\"reviews\"\n\t\t  text=\"Reviews\"\n\t\t  key=\"reviews\"\n\t\t  dojoAttachEvent=\"onClick:_onSelectGameReviewPanel\"\n\t\t  dojoAttachPoint=\"gameReviewTab\"\n\t\t  selected=\"selected\"></div>\n\t\t<div\n\t\t  dojoType=\"qi.widget.TabButtons.Tab\"\n\t\t  class=\"tips\"\n\t\t  text=\"Tips &amp; Walkthroughs\"\n\t\t  key=\"tips\"\n\t\t  dojoAttachEvent=\"onClick:_onSelectTipPanel\"\n\t\t  dojoAttachPoint=\"tipTab\"></div>\n\t</div>\n\t<div class=\"reviews-tips-links\">\n\t\t<span class=\"tip-review-span tip-review-disabled\" dojoAttachPoint=\"writeReviewSpan\" style=\"display: none;\">\n\t\t\t<img class=\"review-pencil\" src=\"/static/images/review-pencil-white.png\" />Write a Review\n\t\t</span>\n\t\t<span class=\"tip-review-span\" dojoAttachPoint=\"writeReviewLink\">\n\t\t\t<a id=\"review-it-anchor\" class=\"review-write\" href=\"#WriteReview\" dojoAttachEvent=\"onclick:_onWriteReview\"><img class=\"review-pencil\" src=\"/static/images/review-pencil-white.png\" /></a>\n\t\t\t<a id=\"review-it-anchor\" class=\"review-write\" href=\"#WriteReview\" dojoAttachEvent=\"onclick:_onWriteReview\">Write a Review</a>\n\t\t</span>\n\t\t<span class=\"tip-review-span tip-review-disabled\" dojoAttachPoint=\"submitTipSpan\" style=\"display: none;\">\n\t\t\t<img class=\"tip-light-bulb\" src=\"/static/images/light-bulb.jpg\" />Submit a Tip\n\t\t</span>\n\t\t<span class=\"tip-review-span\" dojoAttachPoint=\"submitTipLink\">\n\t\t\t<a class=\"tip-submit\" href=\"#SubmitTip\" dojoAttachEvent=\"onclick:_onSubmitTip\"><img class=\"tip-light-bulb\" src=\"/static/images/light-bulb.jpg\" /></a>\n\t\t\t<a class=\"tip-submit\" href=\"#SubmitTip\" dojoAttachEvent=\"onclick:_onSubmitTip\">Submit a Tip</a>\n\t\t</span>\n\t</div>\n\t<div style=\"clear: both;\"></div>\n\t<div dojoAttachPoint=\"containerNode\"></div>\n\t<div dojoAttachPoint=\"subscriptions\" dojoType=\"qi.widget.TopicSubscription\"></div>\n</div>\n",widgetsInTemplate:true,_currentPanel:null,_gameReviewPanel:null,_tipPanel:null,_createGameReviewPanel:function(){return new ag.widget.gamereviews.GameReviewPanel({gameId:this.gameId},document.createElement("span"));},_createTipPanel:function(){var _72f={dataUrl:this.dataUrl,gameId:this.gameId};return new ag.widget.tips.TipPanel(_72f,document.createElement("span"));},_onSelectGameReviewPanel:function(e){dojo.stopEvent(e);this._showGameReviewPanel();},_onSelectTipPanel:function(e){dojo.stopEvent(e);this._showTipPanel();},_showGameReviewPanel:function(){if(null==this._gameReviewPanel){this._gameReviewPanel=this._createGameReviewPanel();}this._changeState(this._gameReviewPanel);},_showTipPanel:function(){if(null==this._tipPanel){this._tipPanel=this._createTipPanel();}this._changeState(this._tipPanel);},_onSubmitTip:function(e){e.preventDefault();new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,"_onSubmitTipLoggedIn"),headerMessage:"<em>You must be logged in to access this feature.</em>"});},_onSubmitTipLoggedIn:function(){this.gameReviewTab.unselect();this.tipTab.select();this._showTipPanel();this._tipPanel.showTipInputOne();},_onWriteReview:function(e){e.preventDefault();new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,"_onWriteReviewLoggedIn"),headerMessage:"<em>You must be logged in to access this feature.</em>"});},_onWriteReviewLoggedIn:function(){this.gameReviewTab.select();this.tipTab.unselect();this._showGameReviewPanel();this._gameReviewPanel.reviews._onWriteReviewLoggedIn();},_onReviewModelMessage:function(_734){if("saved"==_734.eventType){this.writeReviewLink.style.display="none";this.writeReviewSpan.style.display="block";}},_onTipModelMessage:function(_735){if("submitSuccess"==_735.eventType){this.submitTipLink.style.display="none";this.submitTipSpan.style.display="block";}},postCreate:function(){this.inherited("postCreate",arguments);this.subscriptions.subscribe("ag.widget.tips.TipModel",dojo.hitch(this,"_onTipModelMessage"));this.subscriptions.subscribe("ag.widget.gamereviews.Model",dojo.hitch(this,"_onReviewModelMessage"));this._showGameReviewPanel();},shouldDestroyOldChildState:function(){return false;}});}if(!dojo._hasResource["ag.widget.tips.MorePopularTips"]){dojo._hasResource["ag.widget.tips.MorePopularTips"]=true;dojo.provide("ag.widget.tips.MorePopularTips");dojo.declare("ag.widget.tips.MorePopularTips",[dijit._Widget,dijit._Templated],{templateString:"<span>\n\t<div class=\"more-popular-game-title\">\n\t\t<a href=\"/\">Games</a> &raquo; <a dojoAttachPoint=\"genreLink\"></a> &raquo; <a dojoAttachPoint=\"gameTitle\"></a>\n\t</div>\n\t<div class=\"more-popular-tc\"></div>\n\t<div class=\"more-popular-cc\">\n\t\t<div dojoAttachPoint=\"content\"></div>\n\t</div>\n\t<div class=\"more-popular-bc\"></div>\n</span>\n",widgetsInTemplate:true,_gameId:-1,dataUrl:"",postMixInProperties:function(){this._gameId=qi.util.getQueryStringValue("gameId");},postCreate:function(){var _736=new ag.widget.tips.TipPage({kind:ag.widget.tips.TipModel.KIND_POPULAR,gameId:this._gameId,showPagination:true,dataUrl:this.dataUrl},document.createElement("span"));this.content.appendChild(_736.domNode);this._setBreadCrumb();},_setBreadCrumb:function(){this.loadCompleted=new ag.widget.games.GameInfoLoader(this._gameId).loadCompleted;this.loadCompleted.addCallback(dojo.hitch(this,function(game){this.gameTitle.innerHTML=game.title;this.gameTitle.href=game.url;this.genreLink.innerHTML=game.genres[0];this.genreLink.href="/"+game.genreurls[0];}));this.loadCompleted.addErrback(dojo.hitch(this,function(){console.debug("Unable to load game info");}));}});}if(!dojo._hasResource["ag.widget.user.CancelAccountNoConfirm"]){dojo._hasResource["ag.widget.user.CancelAccountNoConfirm"]=true;dojo.provide("ag.widget.user.CancelAccountNoConfirm");dojo.declare("ag.widget.user.CancelAccountNoConfirm",[dijit._Widget,qi.widget.StatePatternContainer],{successUrl:"/",postCreate:function(){this._changeState(new ag.widget.user.CancelAcctProcessing({},document.createElement("span")));},startup:function(){var uuid=qi.util.getQueryStringValue("uuid");if(null!=uuid){var _739=new ag.services.JsonServiceFactory("userService.cancelAccountByUuid").method;var _73a=_739({uuid:uuid});_73a.addCallback(dojo.hitch(this,function(_73b){this._changeState(new ag.widget.user.CancelAcctSuccess({successUrl:this.successUrl},document.createElement("span")));}));_73a.addErrback(dojo.hitch(this,function(err){this._changeState(new ag.widget.user.CancelAcctFailure({message:"Unable to cancel at this time. Please try again."},document.createElement("span")));}));}else{this._changeState(new ag.widget.user.CancelAcctFailure({message:"Missing request parameter"},document.createElement("span")));}}});dojo.declare("ag.widget.user.CancelAcctProcessing",[dijit._Widget,dijit._Templated],{templateString:"<span>Processing...</span>"});dojo.declare("ag.widget.user.CancelAcctFailure",[dijit._Widget,dijit._Templated],{templateString:"<span>${message}</span>",message:""});dojo.declare("ag.widget.user.CancelAcctSuccess",[dijit._Widget,dijit._Templated],{templateString:"<span id=\"cancel-no-confirm\">\n\tThe account is cancelled.\n\t<br/>\n\t<button dojoAttachEvent=\"onclick:onOk\">Ok</button>\n</span>\n",successUrl:"",onOk:function(e){e.preventDefault();window.top.location.replace(this.successUrl);}});}if(!dojo._hasResource["ag.widget.user.LoginPopup"]){dojo._hasResource["ag.widget.user.LoginPopup"]=true;dojo.provide("ag.widget.user.LoginPopup");(function(){dojo.declare("ag.widget.user.LoginPopup",[],{});ag.widget.user.LoginPopup.showPopup=function(args){var _73f=g_page.getModule(LoginModule.NAME);_73f.login(args);};})();}if(!dojo._hasResource["ag.widget.user.RegisterPopup"]){dojo._hasResource["ag.widget.user.RegisterPopup"]=true;dojo.provide("ag.widget.user.RegisterPopup");(function(){dojo.declare("ag.widget.user.RegisterPopup",[],{});ag.widget.user.RegisterPopup.showPopup=function(args){var _741=g_page.getModule(RegisterModule.NAME);_741.register(args);};})();}dojo.i18n._preloadLocalizations("dojo.nls.ag",["xx","ROOT","en","en-us"]);

