/*
	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["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(_1,_2,_3){var c=document.cookie;if(arguments.length==1){var _5=c.lastIndexOf(_1+"=");if(_5==-1){return null;}var _6=_5+_1.length+1;var _7=c.indexOf(";",_5+_1.length+1);if(_7==-1){_7=c.length;}return decodeURIComponent(c.substring(_6,_7));}else{_3=_3||{};_2=encodeURIComponent(_2);if(typeof (_3.expires)=="number"){var d=new Date();d.setTime(d.getTime()+(_3.expires*24*60*60*1000));_3.expires=d;}document.cookie=_1+"="+_2+(_3.expires?"; expires="+_3.expires.toUTCString():"")+(_3.path?"; path="+_3.path:"")+(_3.domain?"; domain="+_3.domain:"")+(_3.secure?"; secure":"");return null;}};dojo.cookie.useObject=function(_9,_a,_b){if(arguments.length==1){return dojo.fromJson(this(_9));}else{this(_9,dojo.toJson(_a),_b||{});}};dojo.cookie.isSupported=function(){if(typeof navigator.cookieEnabled!="boolean"){this("__djCookieTest__","CookiesAllowed",{expires:90});var _c=this("__djCookieTest__");navigator.cookieEnabled=(_c=="CookiesAllowed");if(navigator.cookieEnabled){this("__djCookieTest__","",0);}}return navigator.cookieEnabled;};}if(!dojo._hasResource["ag.user.LoggedInUser"]){dojo._hasResource["ag.user.LoggedInUser"]=true;dojo.provide("ag.user.LoggedInUser");(function(){var _d=window.location.hostname;var _e=_d.indexOf(".");var _f=_d.substr(_e);var _10="aguseruuidsc";var _11="aguseridsc";var _12="agusername";function deleteCookie(key){dojo.cookie(key,"",{domain:_f,expires:-1,path:"/"});};ag.user.LoggedInUser.getSessionUserUuid=function(){return dojo.cookie(_10);};ag.user.LoggedInUser.getSessionUsername=function(){return dojo.cookie(_12);};ag.user.LoggedInUser.getUserId=function(){return dojo.cookie(_11);};ag.user.LoggedInUser.isUserLoggedIn=function(){var _14=ag.user.LoggedInUser.getSessionUserUuid();return _14!=null;};ag.user.LoggedInUser.mixinSessionUserUuid=function(obj){if(ag.user.LoggedInUser.isUserLoggedIn()){var _16={uuid:ag.user.LoggedInUser.getSessionUserUuid()};dojo.mixin(obj,_16);}};ag.user.LoggedInUser.temporarilySetPermanentUserUuid=function(_17){if(null==_17||typeof (_17)=="undefined"){deleteCookie(_10);}else{dojo.cookie(_10,_17,{domain:_f,path:"/"});}};ag.user.LoggedInUser.deleteCookies=function(){deleteCookie(_10);deleteCookie(_12);deleteCookie(_11);};})();}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(_18){if(_18){if((dojo.isString(_18))||(_18 instanceof dojo._Url)){if(_18 instanceof dojo._Url){var url=_18+"";}else{url=_18;}var def=dojo.xhrGet({url:url,handleAs:"json-comment-optional",sync:true});def.addCallback(this,"processSmd");def.addErrback(function(){throw new Error("Unable to load SMD from "+_18);});}else{if(_18.smdStr){this.processSmd(dojo.eval("("+_18.smdStr+")"));}else{if(_18.serviceUrl){this.serviceUrl=_18.serviceUrl;}this.timeout=_18.timeout||3000;if("strictArgChecks" in _18){this.strictArgChecks=_18.strictArgChecks;}this.processSmd(_18);}}}},strictArgChecks:true,serviceUrl:"",parseResults:function(obj){return obj;},errorCallback:function(_1c){return function(_1d){_1c.errback(new Error(_1d.message));};},resultCallback:function(_1e){var tf=dojo.hitch(this,function(obj){if(obj.error!=null){var err;if(typeof obj.error=="object"){err=new Error(obj.error.message);err.code=obj.error.code;err.error=obj.error.error;}else{err=new Error(obj.error);}err.id=obj.id;err.errorObject=obj;_1e.errback(err);}else{_1e.callback(this.parseResults(obj));}});return tf;},generateMethod:function(_22,_23,url){return dojo.hitch(this,function(){var _25=new dojo.Deferred();if((this.strictArgChecks)&&(_23!=null)&&(arguments.length!=_23.length)){throw new Error("Invalid number of parameters for remote method.");}else{this.bind(_22,dojo._toArray(arguments),_25,url);}return _25;});},processSmd:function(_26){if(_26.methods){dojo.forEach(_26.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=_26.serviceUrl||_26.serviceURL;this.required=_26.required;this.smd=_26;}});}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(_28,_29){var _2a=new dojo.Deferred();this.bind(_28,_29,_2a);return _2a;},bind:function(_2b,_2c,_2d,url){var def=dojo.rawXhrPost({url:url||this.serviceUrl,postData:this.createRequest(_2b,_2c),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});def.addCallbacks(this.resultCallback(_2d),this.errorCallback(_2d));},createRequest:function(_30,_31){var req={"params":_31,"method":_30,"id":++this.lastSubmissionId};var _33=dojo.toJson(req);return _33;},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(_35){var _36=_35.serviceUrl||""+dojo.moduleUrl("agdynamic","services");var _37=[];if(dojo.isString(_35)){_35={method:_35};}if(_35.method){_37.push({name:_35.method});}else{if(dojo.isArray(_35.methods)){_37=_35.methods;}}var _38=_35.method;delete _35.method;delete _35.methods;var _39={serviceURL:_36,methods:_37,timeout:20000};dojo.mixin(_39,_35);this.service=new dojo.rpc.JsonService(_39);if(_38){this.method=this.service[_38];}}});}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(_3a){if(typeof (_3a)=="number"){this.gameId=_3a;}this.id="UserGameRating_"+this.gameId;this.loadCompleted=new dojo.Deferred();this._subscriptions=[ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,"onUserLoggedIn"),ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,"onUserLoggedOut")];this.onUserLoggedIn();},method:new ag.services.JsonServiceFactory({method:"gameRatingService.get",timeout:20000}).method,onUserLoggedIn:function(){if(ag.user.LoggedInUser.isUserLoggedIn()){var _3b={gameId:this.gameId};ag.user.LoggedInUser.mixinSessionUserUuid(_3b);var _3c=this.method(_3b);_3c.addCallback(dojo.hitch(this,function(_3d){dojo.mixin(this,_3d);if(0==this.loadCompleted.fired){this.loadCompleted=new dojo.Deferred();}this.loadCompleted.callback(this);}));_3c.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(_3f){this.rated=true;this.rating=_3f;this.loadCompleted=new dojo.Deferred();this.loadCompleted.callback(this);},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});}});}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(_41){this.topic=_41;},publish:function(_42){if(typeof (_42)=="undefined"){_42=[];}dojo.publish(this.topic,_42);if(typeof (this.containedBy)!="undefined"){this.containedBy.publish(_42);}},subscribe:function(_43,_44){return dojo.subscribe(this.topic,_43,_44);},_addChild:function(_45){_45.containedBy=this;this[_45.topic]=_45;}});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["ag.user.AutoLogin"]){dojo._hasResource["ag.user.AutoLogin"]=true;dojo.provide("ag.user.AutoLogin");ag.user.AutoLogin=function(){if(ag.user.LoggedInUser.isUserLoggedIn()==false){var _46=ag.user.LoggedInUser.getSessionUserUuid();ag.user.loginWithUuid(_46);}else{ag.event.EventBus.APPLICATION.LOGIN.publish();}};ag.user.logout=function(){ag.user.LoggedInUser.deleteCookies();ag.event.EventBus.APPLICATION.LOGOUT.publish();};ag.user.loginWithUuid=function(_47){if(_47!=""&&_47!=null){var _48=ag.user.LoggedInUser.getSessionUserUuid()==null;if(_48){ag.user.LoggedInUser.temporarilySetPermanentUserUuid(_47);}var _49=new ag.services.JsonServiceFactory({method:"autoLoginService.login",timeout:20000});var _4a=_49.method({uuid:_47});_4a.addCallback(function(_4b){ag.event.EventBus.APPLICATION.LOGIN.publish();});_4a.addErrback(function(_4c){ag.event.EventBus.APPLICATION.LOGOUT.publish();});if(_48){ag.user.LoggedInUser.temporarilySetPermanentUserUuid(null);}}};}if(!dojo._hasResource["ag.user.LoginStatePageRefresher"]){dojo._hasResource["ag.user.LoginStatePageRefresher"]=true;dojo.provide("ag.user.LoginStatePageRefresher");dojo.declare("ag.user.LoginStatePageRefresher",null,{constructor:function(_4d){this._status=ag.user.LoggedInUser.isUserLoggedIn();this._subscriptions=[ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,"onUserLoggedIn"),ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,"onUserLoggedOut")];},onUserLoggedIn:function(){if(this._status!=ag.user.LoggedInUser.isUserLoggedIn()){window.location=window.location;}},onUserLoggedOut:function(){if(this._status!=ag.user.LoggedInUser.isUserLoggedIn()){window.location=window.location;}}});}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,_4f,_50,_51){var ord=Math.round(Math.random()*10000000000000000);var _53="<scr"+"ipt type='text/javascript' language='javascript' src='"+url+"tile="+_4f+";dcopt=ist;sz="+_50+"x"+_51+";ord="+ord+"?'></scr"+"ipt>";return _53;};ag.widget.ads.update_ad_iframe=function(_54,url,_56,_57,_58,_59){if(!dojo.isFF&&!dojo.isSafari){var _5a=ag.widget.ads.get_ad_iframe_src(url,_56,_57,_58);self.frames[_54].document.open();self.frames[_54].document.write(_5a);}else{var _5b=dojo.byId(_54);var src="javascript:parent.ag.widget.ads.get_ad_iframe_src('"+url+"', "+_56+", "+_57+", "+_58+")";_5b.src=src;}if(typeof (_59)!="undefined"){var _5d="ag.widget.ads.update_ad_iframe('"+_54+"','"+url+"',"+_56+","+_57+","+_58+","+_59+")";setTimeout(_5d,_59);}};}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 _5e=dojo.global;var _5f=dojo.doc;if(_5f.selection){return !_5f.selection.createRange().text;}else{if(_5e.getSelection){var _60=_5e.getSelection();if(dojo.isString(_60)){return !_60;}else{return _60.isCollapsed||!_60.toString();}}}},getBookmark:function(){var _61,_62=dojo.doc.selection;if(_62){var _63=_62.createRange();if(_62.type.toUpperCase()=="CONTROL"){_61=_63.length?dojo._toArray(_63):null;}else{_61=_63.getBookmark();}}else{if(window.getSelection){_62=dojo.global.getSelection();if(_62){var _63=_62.getRangeAt(0);_61=_63.cloneRange();}}else{console.debug("No idea how to store the current selection for this browser!");}}return _61;},moveToBookmark:function(_64){var _65=dojo.doc;if(_65.selection){var _66;if(dojo.isArray(_64)){_66=_65.body.createControlRange();dojo.forEach(_64,_66.addElement);}else{_66=_65.selection.createRange();_66.moveToBookmark(_64);}_66.select();}else{var _67=dojo.global.getSelection&&dojo.global.getSelection();if(_67&&_67.removeAllRanges){_67.removeAllRanges();_67.addRange(_64);}else{console.debug("No idea how to restore selection for this browser!");}}},getFocus:function(_68,_69){return {node:_68&&dojo.isDescendant(dijit._curFocus,_68.domNode)?dijit._prevFocus:dijit._curFocus,bookmark:!dojo.withGlobal(_69||dojo.global,dijit.isCollapsed)?dojo.withGlobal(_69||dojo.global,dijit.getBookmark):null,openedForWindow:_69};},focus:function(_6a){if(!_6a){return;}var _6b="node" in _6a?_6a.node:_6a,_6c=_6a.bookmark,_6d=_6a.openedForWindow;if(_6b){var _6e=(_6b.tagName.toLowerCase()=="iframe")?_6b.contentWindow:_6b;if(_6e&&_6e.focus){try{_6e.focus();}catch(e){}}dijit._onFocusNode(_6b);}if(_6c&&dojo.withGlobal(_6d||dojo.global,dijit.isCollapsed)){if(_6d){_6d.focus();}try{dojo.withGlobal(_6d||dojo.global,moveToBookmark,null,[_6c]);}catch(e){}}},_activeStack:[],registerWin:function(_6f){if(!_6f){_6f=window;}dojo.connect(_6f.document,"onmousedown",null,function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);dijit._onTouchNode(evt.target||evt.srcElement);});var _71=_6f.document.body||_6f.document.getElementsByTagName("body")[0];if(_71){if(dojo.isIE){_71.attachEvent("onactivate",function(evt){if(evt.srcElement.tagName.toLowerCase()!="body"){dijit._onFocusNode(evt.srcElement);}});_71.attachEvent("ondeactivate",function(evt){dijit._onBlurNode(evt.srcElement);});}else{_71.addEventListener("focus",function(evt){dijit._onFocusNode(evt.target);},true);_71.addEventListener("blur",function(evt){dijit._onBlurNode(evt.target);},true);}}_71=null;},_onBlurNode:function(_76){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(_77){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _78=[];try{while(_77){if(_77.dijitPopupParent){_77=dijit.byId(_77.dijitPopupParent).domNode;}else{if(_77.tagName&&_77.tagName.toLowerCase()=="body"){if(_77===dojo.body()){break;}_77=dojo.query("iframe").filter(function(_79){return _79.contentDocument.body===_77;})[0];}else{var id=_77.getAttribute&&_77.getAttribute("widgetId");if(id){_78.unshift(id);}_77=_77.parentNode;}}}}catch(e){}dijit._setStack(_78);},_onFocusNode:function(_7b){if(_7b&&_7b.tagName&&_7b.tagName.toLowerCase()=="body"){return;}dijit._onTouchNode(_7b);if(_7b==dijit._curFocus){return;}dijit._prevFocus=dijit._curFocus;dijit._curFocus=_7b;dojo.publish("focusNode",[_7b]);},_setStack:function(_7c){var _7d=dijit._activeStack;dijit._activeStack=_7c;for(var _7e=0;_7e<Math.min(_7d.length,_7c.length);_7e++){if(_7d[_7e]!=_7c[_7e]){break;}}for(var i=_7d.length-1;i>=_7e;i--){var _80=dijit.byId(_7d[i]);if(_80){_80._focused=false;if(_80._onBlur){_80._onBlur();}if(_80._setStateClass){_80._setStateClass();}dojo.publish("widgetBlur",[_80]);}}for(var i=_7e;i<_7c.length;i++){var _80=dijit.byId(_7c[i]);if(_80){_80._focused=true;if(_80._onFocus){_80._onFocus();}if(_80._setStateClass){_80._setStateClass();}dojo.publish("widgetFocus",[_80]);}}}});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(_81){if(this._hash[_81.id]){throw new Error("Tried to register widget with id=="+_81.id+" but that id is already registered");}this._hash[_81.id]=_81;},remove:function(id){delete this._hash[id];},forEach:function(_83){for(var id in this._hash){_83(this._hash[id]);}},filter:function(_85){var res=new dijit.WidgetSet();this.forEach(function(_87){if(_85(_87)){res.add(_87);}});return res;},byId:function(id){return this._hash[id];},byClass:function(cls){return this.filter(function(_8a){return _8a.declaredClass==cls;});}});dijit.registry=new dijit.WidgetSet();dijit._widgetTypeCtr={};dijit.getUniqueId=function(_8b){var id;do{id=_8b+"_"+(dijit._widgetTypeCtr[_8b]!==undefined?++dijit._widgetTypeCtr[_8b]:dijit._widgetTypeCtr[_8b]=0);}while(dijit.byId(id));return id;};if(dojo.isIE){dojo.addOnUnload(function(){dijit.registry.forEach(function(_8d){_8d.destroy();});});}dijit.byId=function(id){return (dojo.isString(id))?dijit.registry.byId(id):id;};dijit.byNode=function(_8f){return dijit.registry.byId(_8f.getAttribute("widgetId"));};dijit.getEnclosingWidget=function(_90){while(_90){if(_90.getAttribute&&_90.getAttribute("widgetId")){return dijit.registry.byId(_90.getAttribute("widgetId"));}_90=_90.parentNode;}return null;};dijit._tabElements={area:true,button:true,input:true,object:true,select:true,textarea:true};dijit.isTabNavigable=function(_91){if(dojo.hasAttr(_91,"disabled")){return false;}var _92=dojo.hasAttr(_91,"tabindex");var _93=dojo.attr(_91,"tabindex");if(_92&&_93>=0){return true;}var _94=_91.nodeName.toLowerCase();if(((_94=="a"&&dojo.hasAttr(_91,"href"))||dijit._tabElements[_94])&&(!_92||_93>=0)){return true;}return false;};dijit._getTabNavigable=function(_95){var _96,_97,_98,_99,_9a,_9b;dojo.query("*",_95).forEach(function(_9c){if(dijit.isTabNavigable(_9c)){var _9d=dojo.attr(_9c,"tabindex");if(!dojo.hasAttr(_9c,"tabindex")||_9d==0){if(!_96){_96=_9c;}_97=_9c;}else{if(_9d>0){if(!_98||_9d<_99){_99=_9d;_98=_9c;}if(!_9a||_9d>=_9b){_9b=_9d;_9a=_9c;}}}}});return {first:_96,last:_97,lowest:_98,highest:_9a};};dijit.getFirstInTabbingOrder=function(_9e){var _9f=dijit._getTabNavigable(dojo.byId(_9e));return _9f.lowest?_9f.lowest:_9f.first;};dijit.getLastInTabbingOrder=function(_a0){var _a1=dijit._getTabNavigable(dojo.byId(_a0));return _a1.last?_a1.last:_a1.highest;};}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){var _a2=dojo.global;var _a3=dojo.doc;var w=0,h=0;var de=_a3.documentElement;var dew=de.clientWidth,deh=de.clientHeight;if(dojo.isMozilla){var _a9,_aa,_ab,_ac;var dbw=_a3.body.clientWidth;if(dbw>dew){_a9=dew;_ab=dbw;}else{_ab=dew;_a9=dbw;}var dbh=_a3.body.clientHeight;if(dbh>deh){_aa=deh;_ac=dbh;}else{_ac=deh;_aa=dbh;}w=(_ab>_a2.innerWidth)?_a9:_ab;h=(_ac>_a2.innerHeight)?_aa:_ac;}else{if(!dojo.isOpera&&_a2.innerWidth){w=_a2.innerWidth;h=_a2.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 _af=dojo._docScroll();return {w:w,h:h,l:_af.x,t:_af.y};};dijit.placeOnScreen=function(_b0,pos,_b2,_b3){var _b4=dojo.map(_b2,function(_b5){return {corner:_b5,pos:pos};});return dijit._place(_b0,_b4);};dijit._place=function(_b6,_b7,_b8){var _b9=dijit.getViewport();if(!_b6.parentNode||String(_b6.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_b6);}var _ba=null;dojo.some(_b7,function(_bb){var _bc=_bb.corner;var pos=_bb.pos;if(_b8){_b8(_b6,_bb.aroundCorner,_bc);}var _be=_b6.style;var _bf=_be.display;var _c0=_be.visibility;_be.visibility="hidden";_be.display="";var mb=dojo.marginBox(_b6);_be.display=_bf;_be.visibility=_c0;var _c2=(_bc.charAt(1)=="L"?pos.x:Math.max(_b9.l,pos.x-mb.w)),_c3=(_bc.charAt(0)=="T"?pos.y:Math.max(_b9.t,pos.y-mb.h)),_c4=(_bc.charAt(1)=="L"?Math.min(_b9.l+_b9.w,_c2+mb.w):pos.x),_c5=(_bc.charAt(0)=="T"?Math.min(_b9.t+_b9.h,_c3+mb.h):pos.y),_c6=_c4-_c2,_c7=_c5-_c3,_c8=(mb.w-_c6)+(mb.h-_c7);if(_ba==null||_c8<_ba.overflow){_ba={corner:_bc,aroundCorner:_bb.aroundCorner,x:_c2,y:_c3,w:_c6,h:_c7,overflow:_c8};}return !_c8;});_b6.style.left=_ba.x+"px";_b6.style.top=_ba.y+"px";return _ba;};dijit.placeOnScreenAroundElement=function(_c9,_ca,_cb,_cc){_ca=dojo.byId(_ca);var _cd=_ca.style.display;_ca.style.display="";var _ce=_ca.offsetWidth;var _cf=_ca.offsetHeight;var _d0=dojo.coords(_ca,true);_ca.style.display=_cd;var _d1=[];for(var _d2 in _cb){_d1.push({aroundCorner:_d2,corner:_cb[_d2],pos:{x:_d0.x+(_d2.charAt(1)=="L"?0:_ce),y:_d0.y+(_d2.charAt(0)=="T"?0:_cf)}});}return dijit._place(_c9,_d1,_cc);};}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 _d8=[],_d9=1000,_da=1;this.open=function(_db){var _dc=_db.popup,_dd=_db.orient||{"BL":"TL","TL":"BL"},_de=_db.around,id=(_db.around&&_db.around.id)?(_db.around.id+"_dropdown"):("popup_"+_da++);var _e0=dojo.doc.createElement("div");_e0.id=id;_e0.className="dijitPopup";_e0.style.zIndex=_d9+_d8.length;_e0.style.visibility="hidden";if(_db.parent){_e0.dijitPopupParent=_db.parent.id;}dojo.body().appendChild(_e0);_dc.domNode.style.display="";_e0.appendChild(_dc.domNode);var _e1=new dijit.BackgroundIframe(_e0);var _e2=_de?dijit.placeOnScreenAroundElement(_e0,_de,_dd,_dc.orient?dojo.hitch(_dc,"orient"):null):dijit.placeOnScreen(_e0,_db,_dd=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"]);_e0.style.visibility="visible";var _e3=[];function getTopPopup(){for(var pi=_d8.length-1;pi>0&&_d8[pi].parent===_d8[pi-1].widget;pi--){}return _d8[pi];};_e3.push(dojo.connect(_e0,"onkeypress",this,function(evt){if(evt.keyCode==dojo.keys.ESCAPE&&_db.onCancel){_db.onCancel();}else{if(evt.keyCode==dojo.keys.TAB){dojo.stopEvent(evt);var _e6=getTopPopup();if(_e6&&_e6.onCancel){_e6.onCancel();}}}}));if(_dc.onCancel){_e3.push(dojo.connect(_dc,"onCancel",null,_db.onCancel));}_e3.push(dojo.connect(_dc,_dc.onExecute?"onExecute":"onChange",null,function(){var _e7=getTopPopup();if(_e7&&_e7.onExecute){_e7.onExecute();}}));_d8.push({wrapper:_e0,iframe:_e1,widget:_dc,parent:_db.parent,onExecute:_db.onExecute,onCancel:_db.onCancel,onClose:_db.onClose,handlers:_e3});if(_dc.onOpen){_dc.onOpen(_e2);}return _e2;};this.close=function(_e8){while(dojo.some(_d8,function(_e9){return _e9.widget==_e8;})){var top=_d8.pop(),_eb=top.wrapper,_ec=top.iframe,_ed=top.widget,_ee=top.onClose;if(_ed.onClose){_ed.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(!_ed||!_ed.domNode){return;}dojo.style(_ed.domNode,"display","none");dojo.body().appendChild(_ed.domNode);_ec.destroy();dojo._destroyElement(_eb);if(_ee){_ee();}}};}();dijit._frames=new function(){var _ef=[];this.pop=function(){var _f0;if(_ef.length){_f0=_ef.pop();_f0.style.display="";}else{if(dojo.isIE){var _f1="<iframe src='javascript:\"\"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_f0=dojo.doc.createElement(_f1);}else{var _f0=dojo.doc.createElement("iframe");_f0.src="javascript:\"\"";_f0.className="dijitBackgroundIframe";}_f0.tabIndex=-1;dojo.body().appendChild(_f0);}return _f0;};this.push=function(_f2){_f2.style.display="";if(dojo.isIE){_f2.style.removeExpression("width");_f2.style.removeExpression("height");}_ef.push(_f2);};}();if(dojo.isIE&&dojo.isIE<7){dojo.addOnLoad(function(){var f=dijit._frames;dojo.forEach([f.pop()],f.push);});}dijit.BackgroundIframe=function(_f4){if(!_f4.id){throw new Error("no id");}if((dojo.isIE&&dojo.isIE<7)||(dojo.isFF&&dojo.isFF<3&&dojo.hasClass(dojo.body(),"dijit_a11y"))){var _f5=dijit._frames.pop();_f4.appendChild(_f5);if(dojo.isIE){_f5.style.setExpression("width","document.getElementById('"+_f4.id+"').offsetWidth");_f5.style.setExpression("height","document.getElementById('"+_f4.id+"').offsetHeight");}this.iframe=_f5;}};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(_f6){if(dojo.isIE){if(dojo.marginBox(_f6.parentNode).h<=_f6.parentNode.scrollHeight){_f6.scrollIntoView(false);}}else{if(dojo.isMozilla){_f6.scrollIntoView(false);}else{var _f7=_f6.parentNode;var _f8=_f7.scrollTop+dojo.marginBox(_f7).h;var _f9=_f6.offsetTop+dojo.marginBox(_f6).h;if(_f8<_f9){_f7.scrollTop+=(_f9-_f8);}else{if(_f7.scrollTop>_f6.offsetTop){_f7.scrollTop-=(_f7.scrollTop-_f6.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 _fc=d.isOpera;var maj=Math.floor;var _fe={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_iequirks:ie&&d.isQuirks,dj_opera:_fc,dj_opera8:maj(_fc)==8,dj_opera9:maj(_fc)==9,dj_khtml:d.isKhtml,dj_safari:d.isSafari,dj_gecko:d.isMozilla};for(var p in _fe){if(_fe[p]){var html=dojo.doc.documentElement;if(html.className){html.className+=" "+p;}else{html.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,_102,node,_104,obj,_106,_107){if(obj!=this._obj){this.stop();this._initialDelay=_107||500;this._subsequentDelay=_106||0.9;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_102,_104);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(node,_109,_10a,_10b,_10c,_10d){return [dojo.connect(node,"onkeypress",this,function(evt){if(evt.keyCode==_109.keyCode&&(!_109.charCode||_109.charCode==evt.charCode)&&(_109.ctrlKey===undefined||_109.ctrlKey==evt.ctrlKey)&&(_109.altKey===undefined||_109.altKey==evt.ctrlKey)&&(_109.shiftKey===undefined||_109.shiftKey==evt.ctrlKey)){dojo.stopEvent(evt);dijit.typematic.trigger(_109,_10a,node,_10b,_109,_10c,_10d);}else{if(dijit.typematic._obj==_109){dijit.typematic.stop();}}}),dojo.connect(node,"onkeyup",this,function(evt){if(dijit.typematic._obj==_109){dijit.typematic.stop();}})];},addMouseListener:function(node,_111,_112,_113,_114){var dc=dojo.connect;return [dc(node,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_111,node,_112,node,_113,_114);}),dc(node,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mousemove",this,function(evt){dojo.stopEvent(evt);}),dc(node,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_111,node,_112,node,_113,_114);setTimeout(dijit.typematic.stop,50);}})];},addListener:function(_11b,_11c,_11d,_11e,_11f,_120,_121){return this.addKeyListener(_11c,_11d,_11e,_11f,_120,_121).concat(this.addMouseListener(_11b,_11e,_11f,_120,_121));}};}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 _124=cs.backgroundImage;var _125=(cs.borderTopColor==cs.borderRightColor)||(_124!=null&&(_124=="none"||_124=="url(invalid-url:)"));dojo[_125?"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 _128=elem.getAttribute("role");if(_128){var _129=_128.indexOf(":");return _129==-1?_128:_128.substring(_129+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,_12e){if(dojo.isFF&&dojo.isFF<3){var val=elem.hasAttributeNS("http://www.w3.org/2005/07/aaa",_12e);return val;}else{if(elem.hasAttribute){return elem.hasAttribute("aria-"+_12e);}else{return elem.getAttribute("aria-"+_12e)?true:false;}}},getWaiState:function(elem,_131){if(dojo.isFF&&dojo.isFF<3){var val=elem.getAttributeNS("http://www.w3.org/2005/07/aaa",_131);return val;}else{var _133=elem.getAttribute("aria-"+_131);return _133?_133:"";}},setWaiState:function(elem,_135,_136){if(dojo.isFF&&dojo.isFF<3){elem.setAttributeNS("http://www.w3.org/2005/07/aaa","aaa:"+_135,_136);}else{elem.setAttribute("aria-"+_135,_136);}},removeWaiState:function(elem,_138){if(dojo.isFF&&dojo.isFF<3){elem.removeAttributeNS("http://www.w3.org/2005/07/aaa",_138);}else{elem.removeAttribute("aria-"+_138);}}});}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(_139,_13a){this.create(_139,_13a);},create:function(_13b,_13c){this.srcNodeRef=dojo.byId(_13c);this._connects=[];this._attaches=[];if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_13b){dojo.mixin(this,_13b);}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 _13e=this[attr];if(typeof _13e!="object"&&((_13e!==""&&_13e!==false)||(_13b&&_13b[attr]))){this.setAttribute(attr,_13e);}}}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(_13f){this.destroyDescendants();this.destroy();},destroy:function(_140){this.uninitialize();dojo.forEach(this._connects,function(_141){dojo.forEach(_141,dojo.disconnect);});this.destroyRendering(_140);dijit.registry.remove(this.id);},destroyRendering:function(_142){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(_143){_143.destroy();});},uninitialize:function(){return false;},setAttribute:function(attr,_145){var _146=this[this.attributeMap[attr]||"domNode"];this[attr]=_145;switch(attr){case "class":dojo.addClass(_146,_145);break;case "style":if(_146.style.cssText){_146.style.cssText+="; "+_145;}else{_146.style.cssText=_145;}break;default:if(/^on[A-Z]/.test(attr)){attr=attr.toLowerCase();}if(typeof _145=="function"){_145=dojo.hitch(this,_145);}dojo.attr(_146,attr,_145);}},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,_149,_14a){var _14b=[];if(_149=="ondijitclick"){var w=this;if(!this.nodesWithKeyClick[obj.nodeName]){_14b.push(dojo.connect(obj,"onkeydown",this,function(e){if(e.keyCode==dojo.keys.ENTER){return (dojo.isString(_14a))?w[_14a](e):_14a.call(w,e);}else{if(e.keyCode==dojo.keys.SPACE){dojo.stopEvent(e);}}}));_14b.push(dojo.connect(obj,"onkeyup",this,function(e){if(e.keyCode==dojo.keys.SPACE){return dojo.isString(_14a)?w[_14a](e):_14a.call(w,e);}}));}_149="onclick";}_14b.push(dojo.connect(obj,_149,this,_14a));this._connects.push(_14b);return _14b;},disconnect:function(_14f){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_14f){dojo.forEach(_14f,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(_156,map,_158,_159){return _156.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_15a,key,_15c){var _15d=dojo.getObject(key,false,map);if(_15c){_15d=dojo.getObject(_15c,false,_159)(_15d);}if(_158){_15d=_158(_15d,key);}return _15d.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 _160=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_160)){var _162=this.declaredClass,_163=this;var tstr=dojo.string.substitute(_160,this,function(_165,key){if(key.charAt(0)=="!"){_165=_163[key.substr(1)];}if(typeof _165=="undefined"){throw new Error(_162+" template:"+key);}if(!_165){return "";}return key.charAt(0)=="!"?_165:_165.toString().replace(/"/g,"&quot;");},this);node=dijit._Templated._createNodesFromText(tstr)[0];}else{node=_160.cloneNode(true);}this._attachTemplateNodes(node);var _167=this.srcNodeRef;if(_167&&_167.parentNode){_167.parentNode.replaceChild(node,_167);}this.domNode=node;if(this.widgetsInTemplate){var _168=dojo.parser.parse(node);this._attachTemplateNodes(_168,function(n,p){return n[p];});}this._fillContent(_167);},_fillContent:function(_16b){var dest=this.containerNode;if(_16b&&dest){while(_16b.hasChildNodes()){dest.appendChild(_16b.firstChild);}}},_attachTemplateNodes:function(_16d,_16e){_16e=_16e||function(n,p){return n.getAttribute(p);};var _171=dojo.isArray(_16d)?_16d:(_16d.all||_16d.getElementsByTagName("*"));var x=dojo.isArray(_16d)?0:-1;for(;x<_171.length;x++){var _173=(x==-1)?_16d:_171[x];if(this.widgetsInTemplate&&_16e(_173,"dojoType")){continue;}var _174=_16e(_173,"dojoAttachPoint");if(_174){var _175,_176=_174.split(/\s*,\s*/);while(_175=_176.shift()){if(dojo.isArray(this[_175])){this[_175].push(_173);}else{this[_175]=_173;}}}var _177=_16e(_173,"dojoAttachEvent");if(_177){var _178,_179=_177.split(/\s*,\s*/);var trim=dojo.trim;while(_178=_179.shift()){if(_178){var _17b=null;if(_178.indexOf(":")!=-1){var _17c=_178.split(":");_178=trim(_17c[0]);_17b=trim(_17c[1]);}else{_178=trim(_178);}if(!_17b){_17b=_178;}this.connect(_173,_178,_17b);}}}var role=_16e(_173,"waiRole");if(role){dijit.setWaiRole(_173,role);}var _17e=_16e(_173,"waiState");if(_17e){dojo.forEach(_17e.split(/\s*,\s*/),function(_17f){if(_17f.indexOf("-")!=-1){var pair=_17f.split("-");dijit.setWaiState(_173,pair[0],pair[1]);}});}}}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_181,_182,_183){var _184=dijit._Templated._templateCache;var key=_182||_181;var _186=_184[key];if(_186){return _186;}if(!_182){_182=dijit._Templated._sanitizeTemplateString(dojo._getText(_181));}_182=dojo.string.trim(_182);if(_182.match(/\$\{([^\}]+)\}/g)||_183){return (_184[key]=_182);}else{return (_184[key]=dijit._Templated._createNodesFromText(_182)[0]);}};dijit._Templated._sanitizeTemplateString=function(_187){if(_187){_187=_187.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _188=_187.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_188){_187=_188[1];}}else{_187="";}return _187;};if(dojo.isIE){dojo.addOnUnload(function(){var _189=dijit._Templated._templateCache;for(var key in _189){var _18b=_189[key];if(!isNaN(_18b.nodeType)){dojo._destroyElement(_18b);}delete _189[key];}});}(function(){var _18c={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 _18f="none";var _190=text.replace(/^\s+/,"");for(var type in _18c){var map=_18c[type];if(map.re.test(_190)){_18f=type;text=map.pre+text+map.post;break;}}tn.innerHTML=text;if(tn.normalize){tn.normalize();}var tag={cell:"tr",row:"tbody",section:"table"}[_18f];var _194=(typeof tag!="undefined")?tn.getElementsByTagName(tag)[0]:tn;var _195=[];while(_194.firstChild){_195.push(_194.removeChild(_194.firstChild));}tn.innerHTML="";return _195;};})();dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["ag.widget.StatusCookie"]){dojo._hasResource["ag.widget.StatusCookie"]=true;dojo.provide("ag.widget.StatusCookie");(function(){var _196="widgetStatus";var _197=1;function deleteCookie(key){dojo.cookie(key,"",{expires:-1,path:"/"});};ag.widget.StatusCookie.getWidgetStatus=function(){return dojo.cookie(_196);};ag.widget.StatusCookie.getWidgetStatusValue=function(key){var _19a=ag.widget.StatusCookie.getWidgetStatus();if(null==_19a){return null;}else{var _19b=dojo.fromJson(_19a);return _19b[key];}};ag.widget.StatusCookie.setWidgetStatus=function(obj){var _19d=ag.widget.StatusCookie.getWidgetStatus();if(null==_19d){dojo.cookie(_196,dojo.toJson(obj),{expires:_197,path:"/"});}else{var _19e=dojo.fromJson(_19d);dojo.mixin(_19e,obj);dojo.cookie(_196,dojo.toJson(_19e),{expires:_197,path:"/"});}};ag.widget.StatusCookie.mixinWidgetStatus=function(_19f,_1a0,id){var _1a2={};var _1a3=ag.widget.StatusCookie.getWidgetStatus(_19f);var _1a4=dojo.fromJson(_1a3);if(null!=_1a4&&null!=_1a4[_19f]){dojo.mixin(_1a2,_1a4[_19f]);}_1a2[id]=_1a0;var obj={};obj[_19f]=_1a2;ag.widget.StatusCookie.setWidgetStatus(obj);},ag.widget.StatusCookie.deleteCookies=function(){deleteCookie(_196);};})();}if(!dojo._hasResource["ag.widget.filters.More"]){dojo._hasResource["ag.widget.filters.More"]=true;dojo.provide("ag.widget.filters.More");dojo.declare("ag.widget.filters.More",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"more-filters-wrapper\">\n\t<div class=\"more-filters\">\n\t\t<div dojoAttachPoint=\"_moreOpen\" style=\"display:none\">\n\t\t\t<div class=\"more-drop-down\" dojoAttachPoint=\"_dropdown\">\n\t\t\t\t<div class=\"more-layover-small-column\">TAGS:</div>\n\t\t\t\t<div class=\"more-layover-columns\">\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column0\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column1\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column2\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column3\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column4\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column5\"></div>\n\t\t\t\t\t<div class=\"more-layover-column\" dojoAttachPoint=\"_column6\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"more-layover-wide-column\">\n\t\t\t\t\t<div class=\"more-layover-other-sections\">OTHER SECTIONS:</div>\n\t\t\t\t\t<div class=\"more-layover-link\"><a href=\"/aboutus/ausg.html\">Submit a Game</a></div>\n\t\t\t\t\t<div class=\"more-layover-link\"><a href=\"/gotd/games_for_your_site.html\">Free Games for Your Site</a></div>\n\t\t\t\t</div>\n\t\t\t</div>   \t\t\t\n\t\t</div>\n\t\t<div dojoAttachPoint=\"_moreClosed\"></div>\n\t</div>\n</div>\n",testDataLocation:"",_baseDataLocation:dojo.moduleUrl("agstatic","frag/filters/"),_state:"",_filters:null,_numColumns:7,_loading:false,_states:{OPEN:"open",CLOSED:"closed"},_embeddableTitle:"Embeddable",_embeddableURL:"/gotd/games_for_your_site.html",_filterURLBase:"/filters/",postCreate:function(){var _1a6=ag.widget.StatusCookie.getWidgetStatusValue("filterNav");if(null!=_1a6&&"undefined"!=_1a6&&"open"==_1a6){this._onOpenDropDown();}$("#subnav_toggle_link").bind("click",this,function(e){e.preventDefault();var _1a8=e.data;if($(this).hasClass("subnav_more")){_1a8._onOpenDropDown(e);}else{if($(this).hasClass("subnav_close")){_1a8._onCloseDropDown(e);}}});},_onOpenDropDown:function(e){if(null!=e&&"undefined"!=e){e.preventDefault();}this._state=this._states.OPEN;if(null==this._filters&&false==this._loading){this._loadData();}else{this._showDropDown();}},_loadData:function(){this._loading=true;var _1aa;if(""===this.testDataLocation){_1aa=this._baseDataLocation;}else{_1aa=dojo.moduleUrl("agstatic",this.testDataLocation);}_1aa+="filters.js";var _1ab=dojo.xhrGet({url:_1aa,handleAs:"json-comment-filtered"});_1ab.addCallback(this,dojo.hitch(this,function(data){this._filters=data.filters;this._addFilters();this._showDropDown();}));_1ab.addErrback(this,dojo.hitch(this,function(_1ad){console.debug("Error retrieving filter json: ",_1ad);}));},_showDropDown:function(){ag.widget.StatusCookie.setWidgetStatus({"filterNav":"closed"});$("#subnav_toggle_link").removeClass("subnav_more").addClass("subnav_close").html("Close");$(".columns2").css({"padding-top":"5px","background-image":"url(/static/images/content-top-nav.jpg)"});dojo.removeClass(this.domNode,"more");dojo.style(this._moreClosed,"display","none");dojo.style(this._moreOpen,"display","block");},_onCloseDropDown:function(e){e.preventDefault();ag.widget.StatusCookie.setWidgetStatus({"filterNav":"closed"});this._state=this._states.CLOSED;$("#subnav_toggle_link").removeClass("subnav_close").addClass("subnav_more").html("More");$(".columns2").css({"padding-top":"20px","background-image":"url(/static/images/content-top.jpg)"});dojo.style(this._moreOpen,"display","none");dojo.style(this._moreClosed,"display","block");},_addFilters:function(){var _1af=0;dojo.forEach(this._filters,dojo.hitch(this,function(_1b0){var _1b1;if(this._embeddableTitle==_1b0.title){_1b1=new ag.widget.filters.MoreLink({id:_1b0.id,url:this._embeddableURL,title:_1b0.title});}else{_1b1=new ag.widget.filters.MoreLink({id:_1b0.id,url:this._filterURLBase+_1b0.url,title:_1b0.title});}this._addToColumn(_1b1,_1af);_1af=(_1af+1)%this._numColumns;}));},_addToColumn:function(_1b2,_1b3){if(0==_1b3){this._column0.appendChild(_1b2.domNode);}else{if(1==_1b3){this._column1.appendChild(_1b2.domNode);}else{if(2==_1b3){this._column2.appendChild(_1b2.domNode);}else{if(3==_1b3){this._column3.appendChild(_1b2.domNode);}else{if(4==_1b3){this._column4.appendChild(_1b2.domNode);}else{if(5==_1b3){this._column5.appendChild(_1b2.domNode);}else{this._column6.appendChild(_1b2.domNode);}}}}}}}});dojo.declare("ag.widget.filters.MoreLink",[dijit._Widget,dijit._Templated],{templateString:"<div class='more-layover-link'><a href='${url}'>${title}</a></div>",id:0,title:"",url:""});}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_1b4,_1b5,_1b6){_1b6=dojo.i18n.normalizeLocale(_1b6);var _1b7=_1b6.split("-");var _1b8=[_1b4,"nls",_1b5].join(".");var _1b9=dojo._loadedModules[_1b8];if(_1b9){var _1ba;for(var i=_1b7.length;i>0;i--){var loc=_1b7.slice(0,i).join("_");if(_1b9[loc]){_1ba=_1b9[loc];break;}}if(!_1ba){_1ba=_1b9.ROOT;}if(_1ba){var _1bd=function(){};_1bd.prototype=_1ba;return new _1bd();}}throw new Error("Bundle not found: "+_1b5+" in "+_1b4+" , locale="+_1b6);};dojo.i18n.normalizeLocale=function(_1be){var _1bf=_1be?_1be.toLowerCase():dojo.locale;if(_1bf=="root"){_1bf="ROOT";}return _1bf;};dojo.i18n._requireLocalization=function(_1c0,_1c1,_1c2,_1c3){var _1c4=dojo.i18n.normalizeLocale(_1c2);var _1c5=[_1c0,"nls",_1c1].join(".");var _1c6="";if(_1c3){var _1c7=_1c3.split(",");for(var i=0;i<_1c7.length;i++){if(_1c4.indexOf(_1c7[i])==0){if(_1c7[i].length>_1c6.length){_1c6=_1c7[i];}}}if(!_1c6){_1c6="ROOT";}}var _1c9=_1c3?_1c6:_1c4;var _1ca=dojo._loadedModules[_1c5];var _1cb=null;if(_1ca){if(dojo.config.localizationComplete&&_1ca._built){return;}var _1cc=_1c9.replace(/-/g,"_");var _1cd=_1c5+"."+_1cc;_1cb=dojo._loadedModules[_1cd];}if(!_1cb){_1ca=dojo["provide"](_1c5);var syms=dojo._getModuleSymbols(_1c0);var _1cf=syms.concat("nls").join("/");var _1d0;dojo.i18n._searchLocalePath(_1c9,_1c3,function(loc){var _1d2=loc.replace(/-/g,"_");var _1d3=_1c5+"."+_1d2;var _1d4=false;if(!dojo._loadedModules[_1d3]){dojo["provide"](_1d3);var _1d5=[_1cf];if(loc!="ROOT"){_1d5.push(loc);}_1d5.push(_1c1);var _1d6=_1d5.join("/")+".js";_1d4=dojo._loadPath(_1d6,null,function(hash){var _1d8=function(){};_1d8.prototype=_1d0;_1ca[_1d2]=new _1d8();for(var j in hash){_1ca[_1d2][j]=hash[j];}});}else{_1d4=true;}if(_1d4&&_1ca[_1d2]){_1d0=_1ca[_1d2];}else{_1ca[_1d2]=_1d0;}if(_1c3){return true;}});}if(_1c3&&_1c4!=_1c6){_1ca[_1c4.replace(/-/g,"_")]=_1ca[_1c6.replace(/-/g,"_")];}};(function(){var _1da=dojo.config.extraLocale;if(_1da){if(!_1da instanceof Array){_1da=[_1da];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_1de,_1df){req(m,b,_1de,_1df);if(_1de){return;}for(var i=0;i<_1da.length;i++){req(m,b,_1da[i],_1df);}};}})();dojo.i18n._searchLocalePath=function(_1e1,down,_1e3){_1e1=dojo.i18n.normalizeLocale(_1e1);var _1e4=_1e1.split("-");var _1e5=[];for(var i=_1e4.length;i>0;i--){_1e5.push(_1e4.slice(0,i).join("-"));}_1e5.push(false);if(down){_1e5.reverse();}for(var j=_1e5.length-1;j>=0;j--){var loc=_1e5[j]||"ROOT";var stop=_1e3(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_1ea,_1eb){function preload(_1ec){_1ec=dojo.i18n.normalizeLocale(_1ec);dojo.i18n._searchLocalePath(_1ec,true,function(loc){for(var i=0;i<_1eb.length;i++){if(_1eb[i]==loc){dojo["require"](_1ea+"_"+loc);return true;}}return false;});};preload();var _1ef=dojo.config.extraLocale||[];for(var i=0;i<_1ef.length;i++){preload(_1ef[i]);}};}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,_1f2){return str.replace(/([\.$?*!=:|{}\(\)\[\]\\\/^])/g,function(ch){if(_1f2&&_1f2.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_1f6){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("|"),_1f6);};dojo.regexp.group=function(_1f9,_1fa){return "("+(_1fa?"?:":"")+_1f9+")";};}if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.number.format=function(_1fb,_1fc){_1fc=dojo.mixin({},_1fc||{});var _1fd=dojo.i18n.normalizeLocale(_1fc.locale);var _1fe=dojo.i18n.getLocalization("dojo.cldr","number",_1fd);_1fc.customs=_1fe;var _1ff=_1fc.pattern||_1fe[(_1fc.type||"decimal")+"Format"];if(isNaN(_1fb)){return null;}return dojo.number._applyPattern(_1fb,_1ff,_1fc);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_200,_201,_202){_202=_202||{};var _203=_202.customs.group;var _204=_202.customs.decimal;var _205=_201.split(";");var _206=_205[0];_201=_205[(_200<0)?1:0]||("-"+_206);if(_201.indexOf("%")!=-1){_200*=100;}else{if(_201.indexOf("\u2030")!=-1){_200*=1000;}else{if(_201.indexOf("\xa4")!=-1){_203=_202.customs.currencyGroup||_203;_204=_202.customs.currencyDecimal||_204;_201=_201.replace(/\u00a4{1,3}/,function(_207){var prop=["symbol","currency","displayName"][_207.length-1];return _202[prop]||_202.currency||"";});}else{if(_201.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _209=dojo.number._numberPatternRE;var _20a=_206.match(_209);if(!_20a){throw new Error("unable to find a number expression in pattern: "+_201);}return _201.replace(_209,dojo.number._formatAbsolute(_200,_20a[0],{decimal:_204,group:_203,places:_202.places}));};dojo.number.round=function(_20b,_20c,_20d){var _20e=String(_20b).split(".");var _20f=(_20e[1]&&_20e[1].length)||0;if(_20f>_20c){var _210=Math.pow(10,_20c);if(_20d>0){_210*=10/_20d;_20c++;}_20b=Math.round(_20b*_210)/_210;_20e=String(_20b).split(".");_20f=(_20e[1]&&_20e[1].length)||0;if(_20f>_20c){_20e[1]=_20e[1].substr(0,_20c);_20b=Number(_20e.join("."));}}return _20b;};dojo.number._formatAbsolute=function(_211,_212,_213){_213=_213||{};if(_213.places===true){_213.places=0;}if(_213.places===Infinity){_213.places=6;}var _214=_212.split(".");var _215=(_213.places>=0)?_213.places:(_214[1]&&_214[1].length)||0;if(!(_213.round<0)){_211=dojo.number.round(_211,_215,_213.round);}var _216=String(Math.abs(_211)).split(".");var _217=_216[1]||"";if(_213.places){_216[1]=dojo.string.pad(_217.substr(0,_213.places),_213.places,"0",true);}else{if(_214[1]&&_213.places!==0){var pad=_214[1].lastIndexOf("0")+1;if(pad>_217.length){_216[1]=dojo.string.pad(_217,pad,"0",true);}var _219=_214[1].length;if(_219<_217.length){_216[1]=_217.substr(0,_219);}}else{if(_216[1]){_216.pop();}}}var _21a=_214[0].replace(",","");pad=_21a.indexOf("0");if(pad!=-1){pad=_21a.length-pad;if(pad>_216[0].length){_216[0]=dojo.string.pad(_216[0],pad);}if(_21a.indexOf("#")==-1){_216[0]=_216[0].substr(_216[0].length-pad);}}var _21b=_214[0].lastIndexOf(",");var _21c,_21d;if(_21b!=-1){_21c=_214[0].length-_21b-1;var _21e=_214[0].substr(0,_21b);_21b=_21e.lastIndexOf(",");if(_21b!=-1){_21d=_21e.length-_21b-1;}}var _21f=[];for(var _220=_216[0];_220;){var off=_220.length-_21c;_21f.push((off>0)?_220.substr(off):_220);_220=(off>0)?_220.slice(0,off):"";if(_21d){_21c=_21d;delete _21d;}}_216[0]=_21f.reverse().join(_213.group||",");return _216.join(_213.decimal||".");};dojo.number.regexp=function(_222){return dojo.number._parseInfo(_222).regexp;};dojo.number._parseInfo=function(_223){_223=_223||{};var _224=dojo.i18n.normalizeLocale(_223.locale);var _225=dojo.i18n.getLocalization("dojo.cldr","number",_224);var _226=_223.pattern||_225[(_223.type||"decimal")+"Format"];var _227=_225.group;var _228=_225.decimal;var _229=1;if(_226.indexOf("%")!=-1){_229/=100;}else{if(_226.indexOf("\u2030")!=-1){_229/=1000;}else{var _22a=_226.indexOf("\xa4")!=-1;if(_22a){_227=_225.currencyGroup||_227;_228=_225.currencyDecimal||_228;}}}var _22b=_226.split(";");if(_22b.length==1){_22b.push("-"+_22b[0]);}var re=dojo.regexp.buildGroupRE(_22b,function(_22d){_22d="(?:"+dojo.regexp.escapeString(_22d,".")+")";return _22d.replace(dojo.number._numberPatternRE,function(_22e){var _22f={signed:false,separator:_223.strict?_227:[_227,""],fractional:_223.fractional,decimal:_228,exponent:false};var _230=_22e.split(".");var _231=_223.places;if(_230.length==1||_231===0){_22f.fractional=false;}else{if(typeof _231=="undefined"){_231=_230[1].lastIndexOf("0")+1;}if(_231&&_223.fractional==undefined){_22f.fractional=true;}if(!_223.places&&(_231<_230[1].length)){_231+=","+_230[1].length;}_22f.places=_231;}var _232=_230[0].split(",");if(_232.length>1){_22f.groupSize=_232.pop().length;if(_232.length>1){_22f.groupSize2=_232.pop().length;}}return "("+dojo.number._realNumberRegexp(_22f)+")";});},true);if(_22a){re=re.replace(/(\s*)(\u00a4{1,3})(\s*)/g,function(_233,_234,_235,_236){var prop=["symbol","currency","displayName"][_235.length-1];var _238=dojo.regexp.escapeString(_223[prop]||_223.currency||"");_234=_234?"\\s":"";_236=_236?"\\s":"";if(!_223.strict){if(_234){_234+="*";}if(_236){_236+="*";}return "(?:"+_234+_238+_236+")?";}return _234+_238+_236;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_227,decimal:_228,factor:_229};};dojo.number.parse=function(_239,_23a){var info=dojo.number._parseInfo(_23a);var _23c=(new RegExp("^"+info.regexp+"$")).exec(_239);if(!_23c){return NaN;}var _23d=_23c[1];if(!_23c[1]){if(!_23c[2]){return NaN;}_23d=_23c[2];info.factor*=-1;}_23d=_23d.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return Number(_23d)*info.factor;};dojo.number._realNumberRegexp=function(_23e){_23e=_23e||{};if(typeof _23e.places=="undefined"){_23e.places=Infinity;}if(typeof _23e.decimal!="string"){_23e.decimal=".";}if(typeof _23e.fractional=="undefined"||/^0/.test(_23e.places)){_23e.fractional=[true,false];}if(typeof _23e.exponent=="undefined"){_23e.exponent=[true,false];}if(typeof _23e.eSigned=="undefined"){_23e.eSigned=[true,false];}var _23f=dojo.number._integerRegexp(_23e);var _240=dojo.regexp.buildGroupRE(_23e.fractional,function(q){var re="";if(q&&(_23e.places!==0)){re="\\"+_23e.decimal;if(_23e.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_23e.places+"}";}}return re;},true);var _243=dojo.regexp.buildGroupRE(_23e.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_23e.eSigned})+")";}return "";});var _245=_23f+_240;if(_240){_245="(?:(?:"+_245+")|(?:"+_240+"))";}return _245+_243;};dojo.number._integerRegexp=function(_246){_246=_246||{};if(typeof _246.signed=="undefined"){_246.signed=[true,false];}if(typeof _246.separator=="undefined"){_246.separator="";}else{if(typeof _246.groupSize=="undefined"){_246.groupSize=3;}}var _247=dojo.regexp.buildGroupRE(_246.signed,function(q){return q?"[-+]":"";},true);var _249=dojo.regexp.buildGroupRE(_246.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=_246.groupSize,grp2=_246.groupSize2;if(grp2){var _24d="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_24d+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_24d;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _247+_249;};}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(_24f){var _250=function(ch){switch(ch){case "<":return "&lt;";case ">":return "&gt;";case "&":return "&amp;";case "'":return "&#39;";case "\"":return "&quot;";}return ch;};_24f=_24f||"";return String(_24f).replace(/[<>&"']/g,_250);};qi.util.getQueryStringValue=function(key){var _253=String(window.top.document.location.search);var _254=new RegExp("[?&]"+key+"=([^&]+)","i").exec(_253);var _255=null;if(_254&&2==_254.length){_255=_254[1];}return _255;};qi.util.mapValues=function(map){var key;var _258=[];for(key in map){_258.push(map[key]);}return _258;};qi.util.mapKeys=function(map){var key;var _25b=[];for(key in map){_25b.push(key);}return _25b;};qi.util.formatDate=function(date){var _25d=/(\d+)-(\d+)-(\d+)/.exec(date);var _25e;if(_25d){var year=1;var _260=2;var day=3;var _262=_25d[year].length>2?_25d[year].substring(_25d[year].length-2):_25d[year];_25e=String(Number(_25d[_260]))+"/"+dojo.string.pad(_25d[day],2,"0")+"/"+_262;}return _25e;};qi.util.trim=function(text,_264,_265){if(String(text).length>_264){text=text.substring(0,_264-_265.length)+_265;}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 _268=dijit.byId(id);return _268.isContainer?_268:null;}}return null;},_getSibling:function(_269){var node=this.domNode;do{node=node[_269+"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(_26c,_26d){if(_26d===undefined){_26d="last";}var _26e=this.containerNode||this.domNode;if(_26d&&typeof _26d=="number"){var _26f=dojo.query("> [widgetid]",_26e);if(_26f&&_26f.length>=_26d){_26e=_26f[_26d-1];_26d="after";}}dojo.place(_26c.domNode,_26e,_26d);if(this._started&&!_26c._started){_26c.startup();}},removeChild:function(_270){var node=_270.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(_275,dir){var node=_275.domNode;var _278=(dir>0?"nextSibling":"previousSibling");do{node=node[_278];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node?dijit.byNode(node):null;}});dojo.declare("dijit._KeyNavContainer",[dijit._Container],{_keyNavCodes:{},connectKeyNavHandlers:function(_279,_27a){var _27b=this._keyNavCodes={};var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_279,function(code){_27b[code]=prev;});dojo.forEach(_27a,function(code){_27b[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(_280,_281){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._setTabIndexMinusOne(_280);},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 _282=this._getNextFocusableChild(this.focusedChild,1);if(_282.getFocalNodes){this.focusChild(_282,_282.getFocalNodes()[0]);}else{this.focusChild(_282);}},focusPrev:function(){if(this.focusedChild&&this.focusedChild.hasPrevFocalNode&&this.focusedChild.hasPrevFocalNode()){this.focusedChild.focusPrev();return;}var _283=this._getNextFocusableChild(this.focusedChild,-1);if(_283.getFocalNodes){var _284=_283.getFocalNodes();this.focusChild(_283,_284[_284.length-1]);}else{this.focusChild(_283);}},focusChild:function(_285,node){if(_285){if(this.focusedChild&&_285!==this.focusedChild){this._onChildBlur(this.focusedChild);}this.focusedChild=_285;if(node&&_285.focusFocalNode){_285.focusFocalNode(node);}else{_285.focus();}}},_setTabIndexMinusOne:function(_287){if(_287.getFocalNodes){dojo.forEach(_287.getFocalNodes(),function(node){node.setAttribute("tabIndex",-1);});}else{(_287.focusNode||_287.domNode).setAttribute("tabIndex",-1);}},_onContainerFocus:function(evt){this.domNode.setAttribute("tabIndex",-1);if(evt.target===this.domNode){this.focusFirstChild();}else{var _28a=dijit.getEnclosingWidget(evt.target);if(_28a&&_28a.isFocusable()){this.focusedChild=_28a;}}},_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(_28e){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_28f,dir){if(_28f){_28f=this._getSiblingOfChild(_28f,dir);}var _291=this.getChildren();for(var i=0;i<_291.length;i++){if(!_28f){_28f=_291[(dir>0)?0:(_291.length-1)];}if(_28f.isFocusable()){return _28f;}_28f=this._getSiblingOfChild(_28f,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(_293){if(this.currentWidgetDelegate){var _294=this.currentWidgetDelegate;delete this.currentWidgetDelegate;try{this.removeChild(_294);}catch(e){console.warn("Problem removing child",e);}if(this.shouldDestroyOldChildState()){try{_294.destroyRecursive();}catch(e){console.warn("Problem destroying child (maybe already destroyed)",e);}}}this.currentWidgetDelegate=_293;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 _295=dojo.xhrGet({url:this._dataFile,handleAs:"json-comment-filtered"});_295.addCallback(this,dojo.hitch(this,function(data){this.content._showWithFilters(data);}));_295.addErrback(this,dojo.hitch(this,function(_297){this.content._showWithError();}));}});dojo.declare("ag.widget.filters.MorePopularFiltersContent",[dijit._Widget,qi.widget.StatePatternContainer],{postCreate:function(){this._showAsLoading();},_showAsLoading:function(){var _298=new ag.widget.filters.MorePopularFiltersLoading({},document.createElement("span"));this._changeState(_298);},_showWithError:function(){var _299=new ag.widget.filters.MorePopularFiltersError({},document.createElement("span"));this._changeState(_299);},_showWithFilters:function(data){var _29b=new ag.widget.filters.MorePopularFiltersLoaded({_filters:data.filters},document.createElement("span"));this._changeState(_29b);}});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 _29c=Math.round(this._filters.length/2);for(var i=0;i<_29c;i++){var _29e=this._makeWidget(this._filters[i]);this.leftContent.appendChild(_29e.domNode);}for(var i=_29c;i<this._filters.length;i++){var _29e=this._makeWidget(this._filters[i]);this.rightContent.appendChild(_29e.domNode);}},_makeWidget:function(data){url="/filters/"+data.url;if(data.title==this._embeddableTitle){url=this._embeddableURL;}var _2a0=new ag.widget.filters.MorePopularFilter({id:data.id,url:url,imgSrc:"/static/images/filters/"+data.img,title:data.title},document.createElement("span"));return _2a0;}});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["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 _2b8=n.scrollLeft,_2b9=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_2b8!=n.scrollLeft||_2b9!=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,_2bf=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"),_2bf];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,_2c6){this.node=dojo.byId(node);if(!_2c6){_2c6={};}this.handle=_2c6.handle?dojo.byId(_2c6.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_2c6.delay>0?_2c6.delay:0;this.skip=_2c6.skip;this.mover=_2c6.mover?_2c6.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(_2c7,node){return new dojo.dnd.Moveable(node,_2c7);},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(_2cd){dojo.publish("/dnd/move/start",[_2cd]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_2ce){dojo.publish("/dnd/move/stop",[_2ce]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_2cf){},onMove:function(_2d0,_2d1){this.onMoving(_2d0,_2d1);dojo.marginBox(_2d0.node,_2d1);this.onMoved(_2d0,_2d1);},onMoving:function(_2d2,_2d3){},onMoved:function(_2d4,_2d5){}});}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(_2d6,node){return new dojo.dnd.move.constrainedMoveable(node,_2d6);},constructor:function(node,_2d9){if(!_2d9){_2d9={};}this.constraints=_2d9.constraints;this.within=_2d9.within;},onFirstMove:function(_2da){var c=this.constraintBox=this.constraints.call(this,_2da),m=_2da.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(_2dd,_2de){var c=this.constraintBox;_2de.l=_2de.l<c.l?c.l:c.r<_2de.l?c.r:_2de.l;_2de.t=_2de.t<c.t?c.t:c.b<_2de.t?c.b:_2de.t;dojo.marginBox(_2dd.node,_2de);}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_2e0,node){return new dojo.dnd.move.boxConstrainedMoveable(node,_2e0);},constructor:function(node,_2e3){var box=_2e3&&_2e3.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_2e5,node){return new dojo.dnd.move.parentConstrainedMoveable(node,_2e5);},constructor:function(node,_2e8){var area=_2e8&&_2e8.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,_2ef){var _2f0=function(node,e,_2f3){dojo.dnd.Mover.call(this,node,e,_2f3);};dojo.extend(_2f0,dojo.dnd.Mover.prototype);dojo.extend(_2f0,{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-(_2ef?m.w:0);c.b=c.t+c.h-(_2ef?m.h:0);}});return _2f0;};dojo.dnd.move.boxConstrainedMover=function(box,_2fc){return dojo.dnd.move.constrainedMover(function(){return box;},_2fc);};dojo.dnd.move.parentConstrainedMover=function(area,_2fe){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,_2fe);};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 _304={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _307=function(_308){this._index=-1;this._animations=_308||[];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(_307,{_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(_30b,_30c){if(!this._current){this._current=this._animations[this._index=0];}if(!_30c&&this._current.status()=="playing"){return this;}var _30d=dojo.connect(this._current,"onBeforeBegin",this,function(){this._fire("onBeforeBegin");}),_30e=dojo.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arg);}),_310=dojo.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arg);dojo.disconnect(_30d);dojo.disconnect(_30e);dojo.disconnect(_310);});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(_314,_315){this.pause();var _316=this.duration*_314;this._current=null;dojo.some(this._animations,function(a){if(a.duration<=_316){this._current=a;return true;}_316-=a.duration;return false;});if(this._current){this._current.gotoPercent(_316/_current.duration,_315);}return this;},stop:function(_318){if(this._current){if(_318){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(_307,_304);dojo.fx.chain=function(_31b){return new _307(_31b);};var _31c=function(_31d){this._animations=_31d||[];this._connects=[];this.duration=0;dojo.forEach(_31d,function(a){var _31f=a.duration;if(a.delay){_31f+=a.delay;}if(this.duration<_31f){this.duration=_31f;}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(_31c,{_doAction:function(_321,args){dojo.forEach(this._animations,function(a){a[_321].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(_326,_327){return this._doAction("play",arguments);},pause:function(){return this._doAction("pause",arguments);},gotoPercent:function(_328,_329){this._pseudoAnimation[action].apply(this._pseudoAnimation,args);var ms=this.duration*_328;dojo.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_329);});return this;},stop:function(_32c){return this._doAction("stop",arguments);},status:function(){return this._pseudoAnimation.status();},destroy:function(){dojo.forEach(this._connects,dojo.disconnect);}});dojo.extend(_31c,_304);dojo.fx.combine=function(_32d){return new _31c(_32d);};})();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(_330){return this.showAnim.play(_330||0);},hide:function(_331){return this.hideAnim.play(_331||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 _336=dojo.style(node,"height");return Math.max(_336,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(_345){_345.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 _34e=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_351,dim){_351.resize?_351.resize(dim):dojo.marginBox(_351.domNode,dim);dojo.mixin(_351,dojo.marginBox(_351.domNode));dojo.mixin(_351,dim);};dijit.layout.layoutChildren=function(_353,dim,_355){dim=dojo.mixin({},dim);dojo.addClass(_353,"dijitLayoutContainer");_355=dojo.filter(_355,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(_355,function(item){return item.layoutAlign=="client";}));dojo.forEach(_355,function(_358){var elm=_358.domNode,pos=_358.layoutAlign;var _35b=elm.style;_35b.left=dim.l+"px";_35b.top=dim.t+"px";_35b.bottom=_35b.right="auto";dojo.addClass(elm,"dijitAlign"+_34e(pos));if(pos=="top"||pos=="bottom"){size(_358,{w:dim.w});dim.h-=_358.h;if(pos=="top"){dim.t+=_358.h;}else{_35b.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){size(_358,{h:dim.h});dim.w-=_358.w;if(pos=="left"){dim.l+=_358.w;}else{_35b.left=dim.l+dim.w+"px";}}else{if(pos=="client"){size(_358,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 _35c=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_35c);this.errorMessage=dojo.string.substitute(this.errorMessage,_35c);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 _35d=dojo.query(">",this.containerNode||this.domNode),_35e=_35d.filter("[widgetId]");if(_35d.length==1&&_35e.length==1){this.isContainer=true;this._singleChild=dijit.byNode(_35e[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(_364){this.cancel();this.isLoaded=false;this._loadCheck(_364);},_loadCheck:function(_365){var _366=((this.open!==false)&&(this.domNode.style.display!="none"));if(this.href&&(_365||(this.preload&&!this._xhrDfd)||(this.refreshOnShow&&_366&&!this._xhrDfd)||(!this.isLoaded&&_366&&!this._xhrDfd))){this._downloadExternalContent();}},_downloadExternalContent:function(){this._onUnloadHandler();this._setContent(this.onDownloadStart.call(this));var self=this;var _368={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_368,this.ioArgs);}var hand=this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_368);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 _36f=this.onContentError(e);try{node.innerHTML=_36f;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}}},_onError:function(type,err,_372){var _373=this["on"+type+"Error"].call(this,err);if(_372){console.error(_372,err);}else{if(_373){this._setContent.call(this,_373);}}},_createSubWidgets:function(){var _374=this.containerNode||this.domNode;try{dojo.parser.parse(_374,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(_377){},onDownloadError:function(_378){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(_37b){if(!_37b.name){return;}var _37c=map[_37b.name]||(map[_37b.name]=[]);_37c.push(_37b);});for(var name in map){var _37e=map[name],_37f=dojo.getObject(name,false,obj);if(!dojo.isArray(_37f)){_37f=[_37f];}if(typeof _37e[0].checked=="boolean"){dojo.forEach(_37e,function(w,i){w.setAttribute("checked",(dojo.indexOf(_37f,w.value)!=-1));});}else{dojo.forEach(_37e,function(w,i){w.setValue(_37f[i]);});}}},getValues:function(){var obj={};dojo.forEach(this.getDescendants(),function(_385){var _386=(_385.getValue&&!_385._getValueDeprecated)?_385.getValue():_385.value;var name=_385.name;if(!name){return;}if(typeof _385.checked=="boolean"){if(/Radio/.test(_385.declaredClass)){if(_385.checked){dojo.setObject(name,_386,obj);}}else{var ary=dojo.getObject(name,false,obj);if(!ary){ary=[];dojo.setObject(name,ary,obj);}if(_385.checked){ary.push(_386);}}}else{dojo.setObject(name,_386,obj);}});return obj;},isValid:function(){return dojo.every(this.getDescendants(),function(_389){return !_389.isValid||_389.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(_38a){},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 _38b=dijit.getViewport();var is=this.node.style,os=this.domNode.style;os.top=_38b.t+"px";os.left=_38b.l+"px";is.width=_38b.w+"px";is.height=_38b.h+"px";var _38e=dijit.getViewport();if(_38b.w!=_38e.w){is.width=_38e.w+"px";}if(_38b.h!=_38e.h){is.height=_38e.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(_38f){},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 _391=dijit.getFirstInTabbingOrder(this.domNode);this._firstFocusItem=_391?_391:this.domNode;_391=dijit.getLastInTabbingOrder(this.domNode);this._lastFocusItem=_391?_391: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 _393=dijit.getViewport();var mb=dojo.marginBox(this.domNode);var _395=this.domNode.style;_395.left=Math.floor((_393.l+(_393.w-mb.w)/2))+"px";_395.top=Math.floor((_393.t+(_393.h-mb.h)/2))+"px";},_onKey:function(evt){if(evt.keyCode){var node=evt.target;var _398=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.keyCode==dojo.keys.TAB){if(!_398){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.keyCode==dojo.keys.TAB&&!evt.shiftKey){if(!_398){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,_39b,_39c){this.domNode.className="dijitTooltipDialog "+" dijitTooltipAB"+(_39c.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_39c.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 _39e=dijit.getFirstInTabbingOrder(this.containerNode);this._firstFocusItem=_39e?_39e:this.containerNode;_39e=dijit.getLastInTabbingOrder(this.containerNode);this._lastFocusItem=_39e?_39e:this._firstFocusItem;},_onKey:function(evt){var node=evt.target;var _3a1=(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(!_3a1){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.keyCode==dojo.keys.TAB&&!evt.shiftKey){if(!_3a1){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{if(evt.keyCode==dojo.keys.TAB){evt.stopPropagation();}}}}}});}if(!dojo._hasResource["qi.widget.Flash"]){dojo._hasResource["qi.widget.Flash"]=true;dojo.provide("qi.widget.Flash");(function(){function queryObjectEmbed(show,_3a3){_3a3=_3a3|document;if(show){dojo.query("object,embed",_3a3).forEach(function(elem){if(!jQuery.support.opacity){elem.style.position="static";}else{elem.style.visibility="visible";}});}else{dojo.query("object,embed",_3a3).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 _3a6=0;qi.widget.Flash.hideAll=function(){++_3a6;if(_3a6==1){queryObjectEmbed(false);}};qi.widget.Flash.restoreAll=function(){--_3a6;if(_3a6<0){_3a6=0;}if(_3a6==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(_3a7){var _3a8=dojo.connect(_3a7,"show",_3a7,qiwf_show);var _3a9=dojo.connect(_3a7,"hide",_3a7,qiwf_hide);var _3aa=dojo.connect(_3a7,"destroy",null,function(){dojo.disconnect(_3a8);dojo.disconnect(_3a9);dojo.disconnect(_3aa);});};})();}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["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,_3ad){if(this.hasFieldMessage(key)==false){this.fields[key]=_3ad;}},addMessage:function(_3ae){this.messages.push(_3ae);},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(_3b1){this._rules=_3b1.rules;},validate:function(_3b2){var _3b3=new qi.validation.Result();for(var i=0;i<this._rules.length;i++){var rule=this._rules[i];rule.validate(_3b2,_3b3);}return _3b3;}});}if(!dojo._hasResource["dojo.date"]){dojo._hasResource["dojo.date"]=true;dojo.provide("dojo.date");dojo.date.getDaysInMonth=function(_3b6){var _3b7=_3b6.getMonth();var days=[31,28,31,30,31,30,31,31,30,31,30,31];if(_3b7==1&&dojo.date.isLeapYear(_3b6)){return 29;}return days[_3b7];};dojo.date.isLeapYear=function(_3b9){var year=_3b9.getFullYear();return !(year%400)||(!(year%4)&&!!(year%100));};dojo.date.getTimezoneName=function(_3bb){var str=_3bb.toString();var tz="";var _3be;var pos=str.indexOf("(");if(pos>-1){tz=str.substring(++pos,str.indexOf(")"));}else{var pat=/([A-Z\/]+) \d{4}$/;if((_3be=str.match(pat))){tz=_3be[1];}else{str=_3bb.toLocaleString();pat=/ ([A-Z\/]+)$/;if((_3be=str.match(pat))){tz=_3be[1];}}}return (tz=="AM"||tz=="PM")?"":tz;};dojo.date.compare=function(_3c1,_3c2,_3c3){_3c1=new Date(Number(_3c1));_3c2=new Date(Number(_3c2||new Date()));if(_3c3!=="undefined"){if(_3c3=="date"){_3c1.setHours(0,0,0,0);_3c2.setHours(0,0,0,0);}else{if(_3c3=="time"){_3c1.setFullYear(0,0,0);_3c2.setFullYear(0,0,0);}}}if(_3c1>_3c2){return 1;}if(_3c1<_3c2){return -1;}return 0;};dojo.date.add=function(date,_3c5,_3c6){var sum=new Date(Number(date));var _3c8=false;var _3c9="Date";switch(_3c5){case "day":break;case "weekday":var days,_3cb;var mod=_3c6%5;if(!mod){days=(_3c6>0)?5:-5;_3cb=(_3c6>0)?((_3c6-5)/5):((_3c6+5)/5);}else{days=mod;_3cb=parseInt(_3c6/5);}var strt=date.getDay();var adj=0;if(strt==6&&_3c6>0){adj=1;}else{if(strt==0&&_3c6<0){adj=-1;}}var trgt=strt+days;if(trgt==0||trgt==6){adj=(_3c6>0)?2:-2;}_3c6=(7*_3cb)+days+adj;break;case "year":_3c9="FullYear";_3c8=true;break;case "week":_3c6*=7;break;case "quarter":_3c6*=3;case "month":_3c8=true;_3c9="Month";break;case "hour":case "minute":case "second":case "millisecond":_3c9="UTC"+_3c5.charAt(0).toUpperCase()+_3c5.substring(1)+"s";}if(_3c9){sum["set"+_3c9](sum["get"+_3c9]()+_3c6);}if(_3c8&&(sum.getDate()<date.getDate())){sum.setDate(0);}return sum;};dojo.date.difference=function(_3d0,_3d1,_3d2){_3d1=_3d1||new Date();_3d2=_3d2||"day";var _3d3=_3d1.getFullYear()-_3d0.getFullYear();var _3d4=1;switch(_3d2){case "quarter":var m1=_3d0.getMonth();var m2=_3d1.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_3d3*4);_3d4=q2-q1;break;case "weekday":var days=Math.round(dojo.date.difference(_3d0,_3d1,"day"));var _3da=parseInt(dojo.date.difference(_3d0,_3d1,"week"));var mod=days%7;if(mod==0){days=_3da*5;}else{var adj=0;var aDay=_3d0.getDay();var bDay=_3d1.getDay();_3da=parseInt(days/7);mod=days%7;var _3df=new Date(_3d0);_3df.setDate(_3df.getDate()+(_3da*7));var _3e0=_3df.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 (_3e0+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 (_3e0+mod)<0:adj=2;}}}days+=adj;days-=(_3da*2);}_3d4=days;break;case "year":_3d4=_3d3;break;case "month":_3d4=(_3d1.getMonth()-_3d0.getMonth())+(_3d3*12);break;case "week":_3d4=parseInt(dojo.date.difference(_3d0,_3d1,"day")/7);break;case "day":_3d4/=24;case "hour":_3d4/=60;case "minute":_3d4/=60;case "second":_3d4/=1000;case "millisecond":_3d4*=_3d1.getTime()-_3d0.getTime();}return Math.round(_3d4);};}if(!dojo._hasResource["qi.widget.DatePicker"]){dojo._hasResource["qi.widget.DatePicker"]=true;dojo.provide("qi.widget.DatePicker");dojo.declare("qi.widget.DatePicker",[dijit._Widget,dijit._Templated],{startingYear:"",endingYear:"",name:"",templateString:"<span>\n\t<select dojoAttachPoint=\"monthSelect\" dojoAttachEvent=\"onchange:onDateChange\" name=\"${name}_month\">\n\t\t<option value=\"\">Month</option>\n\t</select>\n\t<select dojoAttachPoint=\"daySelect\" name=\"${name}_day\">\n\t</select>\n\t<select dojoAttachPoint=\"yearSelect\" dojoAttachEvent=\"onchange:onDateChange\" name=\"${name}_year\">\n\t</select>\n</span>\n",postCreate:function(){var self=this;var _3e2=0;dojo.forEach(qi.widget.DatePicker.MONTHS,function(_3e3){self.monthSelect.options[self.monthSelect.options.length]=new Option(_3e3,_3e2);++_3e2;});this.daySelect.options[0]=new Option("Day","");this.yearSelect.options[0]=new Option("Year","");var year=Number(eval(this.startingYear));for(var _3e5=Number(eval(this.endingYear));year<=_3e5;--_3e5){this.yearSelect.options[this.yearSelect.options.length]=this._makeSimpleOption(_3e5);}for(var day=1;day<29;++day){this.daySelect.options[this.daySelect.options.length]=this._makeSimpleOption(day);}},onDateChange:function(){var _3e7=new Date(this.yearSelect.value,this.monthSelect.value,1);var _3e8=dojo.date.getDaysInMonth(_3e7);var _3e9=this.getDayOfMonth();this.daySelect.options.length=_3e8+1;for(var day=29;day<=_3e8;++day){this.daySelect.options[day]=this._makeSimpleOption(day);}if(_3e9>0&&this.daySelect.options.length-1>=_3e9){this.daySelect.options[_3e9].selected=true;}else{}},getValue:function(){return new Date(this.yearSelect.value,this.monthSelect.value,this.daySelect.value);},getValueAsObject:function(){if((this.yearSelect.value!="")&&(this.monthSelect.value!="")&&(this.daySelect.value!="")){return qi.util.dateToObject(this.getValue());}else{return {};}},getYear:function(){return this.yearSelect.value;},getMonth:function(){return this.monthSelect.value;},getDayOfMonth:function(){return this.daySelect.value;},_makeSimpleOption:function(_3eb){return new Option(_3eb,_3eb);}});qi.widget.DatePicker.MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];}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["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated],{baseClass:"",name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,readOnly:false,intermediateChanges:false,attributeMap:dojo.mixin(dojo.clone(dijit._Widget.prototype.attributeMap),{value:"focusNode",disabled:"focusNode",readOnly:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode"}),setAttribute:function(attr,_3ed){this.inherited(arguments);switch(attr){case "disabled":var _3ee=this[this.attributeMap["tabIndex"]||"domNode"];if(_3ed){this._hovering=false;this._active=false;_3ee.removeAttribute("tabIndex");}else{_3ee.setAttribute("tabIndex",this.tabIndex);}dijit.setWaiState(this[this.attributeMap["disabled"]||"domNode"],"disabled",_3ed);this._setStateClass();}},setDisabled:function(_3ef){dojo.deprecated("setDisabled("+_3ef+") is deprecated. Use setAttribute('disabled',"+_3ef+") instead.","","2.0");this.setAttribute("disabled",_3ef);},_onMouse:function(_3f0){var _3f1=_3f0.currentTarget;if(_3f1&&_3f1.getAttribute){this.stateModifier=_3f1.getAttribute("stateModifier")||"";}if(!this.disabled){switch(_3f0.type){case "mouseenter":case "mouseover":this._hovering=true;this._active=this._mouseDown;break;case "mouseout":case "mouseleave":this._hovering=false;this._active=false;break;case "mousedown":this._active=true;this._mouseDown=true;var _3f2=this.connect(dojo.body(),"onmouseup",function(){this._active=false;this._mouseDown=false;this._setStateClass();this.disconnect(_3f2);});if(this.isFocusable()){this.focus();}break;}this._setStateClass();}},isFocusable:function(){return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){setTimeout(dojo.hitch(this,dijit.focus,this.focusNode),0);},_setStateClass:function(){if(!("staticClass" in this)){this.staticClass=(this.stateNode||this.domNode).className;}var _3f3=[this.baseClass];function multiply(_3f4){_3f3=_3f3.concat(dojo.map(_3f3,function(c){return c+_3f4;}),"dijit"+_3f4);};if(this.checked){multiply("Checked");}if(this.state){multiply(this.state);}if(this.selected){multiply("Selected");}if(this.disabled){multiply("Disabled");}else{if(this.readOnly){multiply("ReadOnly");}else{if(this._active){multiply(this.stateModifier+"Active");}else{if(this._focused){multiply("Focused");}if(this._hovering){multiply(this.stateModifier+"Hover");}}}}(this.stateNode||this.domNode).className=this.staticClass+" "+_3f3.join(" ");},onChange:function(_3f6){},_onChangeMonitor:"value",_onChangeActive:false,_handleOnChange:function(_3f7,_3f8){this._lastValue=_3f7;if(this._lastValueReported==undefined&&_3f8===null){this._lastValueReported=_3f7;}if((this.intermediateChanges||_3f8||_3f8===undefined)&&((_3f7&&_3f7.toString)?_3f7.toString():_3f7)!==((this._lastValueReported&&this._lastValueReported.toString)?this._lastValueReported.toString():this._lastValueReported)){this._lastValueReported=_3f7;if(this._onChangeActive){this.onChange(_3f7);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;this._setStateClass();},postCreate:function(){this._lastValueReported=this[this._onChangeMonitor];},setValue:function(_3f9){dojo.deprecated("dijit.form._FormWidget:setValue("+_3f9+") is deprecated.  Use setAttribute('value',"+_3f9+") instead.","","2.0");this.setAttribute("value",_3f9);},_getValueDeprecated:true,getValue:function(){dojo.deprecated("dijit.form._FormWidget:getValue() is deprecated.  Use widget.value instead.","","2.0");return this.value;},_layoutHack:function(){if(dojo.isFF==2){setTimeout(dojo.hitch(this,function(){var node=this.domNode;var old=node.style.opacity;node.style.opacity="0.999";setTimeout(function(){node.style.opacity=old;},0);}),250);}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{attributeMap:dojo.mixin(dojo.clone(dijit.form._FormWidget.prototype.attributeMap),{value:""}),postCreate:function(){this.setValue(this.value,null);},setValue:function(_3fc,_3fd){this._handleOnChange(_3fc,_3fd);},_getValueDeprecated:false,getValue:function(){return this._lastValue;},undo:function(){this.setValue(this._lastValueReported,false);},_onKeyPress:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!e.shiftKey&&!e.ctrlKey&&!e.altKey){var v=this.getValue();var lv=this._lastValueReported;if((typeof lv!="undefined")&&((v!==null&&v.toString)?v.toString():null)!==lv.toString()){this.undo();dojo.stopEvent(e);return false;}}return true;}});}if(!dojo._hasResource["dijit.form.TextBox"]){dojo._hasResource["dijit.form.TextBox"]=true;dojo.provide("dijit.form.TextBox");dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",templateString:"<input class=\"dijit dijitReset dijitLeft\" dojoAttachPoint='textbox,focusNode' name=\"${name}\"\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse,onfocus:_onMouse,onblur:_onMouse,onkeyup,onkeypress:_onKeyPress'\n\tautocomplete=\"on\" type=\"${type}\"\n\t/>\n",baseClass:"dijitTextBox",attributeMap:dojo.mixin(dojo.clone(dijit.form._FormValueWidget.prototype.attributeMap),{maxLength:"focusNode"}),getDisplayedValue:function(){return this.filter(this.textbox.value);},getValue:function(){return this.parse(this.getDisplayedValue(),this.constraints);},setValue:function(_401,_402,_403){var _404=this.filter(_401);if(((typeof _404==typeof _401)||(_401===null))&&(_403==null||_403==undefined)){_403=this.format(_404,this.constraints);}if(_403!=null&&_403!=undefined){this.textbox.value=_403;}dijit.form.TextBox.superclass.setValue.call(this,_404,_402);},setDisplayedValue:function(_405){this.textbox.value=_405;this.setValue(this.getValue(),true);},format:function(_406,_407){return ((_406==null||_406==undefined)?"":(_406.toString?_406.toString():_406));},parse:function(_408,_409){return _408;},postCreate:function(){this.textbox.setAttribute("value",this.getDisplayedValue());this.inherited("postCreate",arguments);this._layoutHack();},filter:function(val){if(val==undefined||val==null){return "";}else{if(typeof val!="string"){return val;}}if(this.trim){val=dojo.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_onBlur:function(){this.setValue(this.getValue(),(this.isValid?this.isValid():true));},onkeyup:function(){}});}if(!dojo._hasResource["qi.widget.ValidationBase"]){dojo._hasResource["qi.widget.ValidationBase"]=true;dojo.provide("qi.widget.ValidationBase");dojo.declare("qi.widget.ValidationBase",[],{messagesWidget:null,addValidationMessage:function(_40c){dojo.addClass(this.domNode,"error");if(this.messagesWidget!=null){this.messagesWidget.addMessage(_40c);}},clearValidationMessages:function(){dojo.removeClass(this.domNode,"error");if(this.messagesWidget!=null){this.messagesWidget.clear();}},makeValidationCallback:function(){return dojo.hitch(this,"addValidationMessage");},makeClearValidationCallback:function(){return dojo.hitch(this,"clearValidationMessages");},addMappedCallback:function(_40d){_40d.addMappedcallback(this.name,this.makeValidationCallback());}});}if(!dojo._hasResource["qi.widget.ValidationTextbox"]){dojo._hasResource["qi.widget.ValidationTextbox"]=true;dojo.provide("qi.widget.ValidationTextbox");dojo.declare("qi.widget.ValidationTextbox",[dijit.form.TextBox,qi.widget.ValidationBase],{onfocus:function(_40e){this.inherited("onfocus",arguments);this.clearValidationMessages();}});}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,_412){this._key=key;this._min=min;this._max=max;this._message=_412;},validate:function(_413,_414){var _415=_413[this._key];if(_415==null){_414.addFieldMessage(this._key,this._message);}else{_415=_415.toString();if((_415.length<this._min)||(_415.length>this._max)){_414.addFieldMessage(this._key,this._message);}}}});}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,_417){this._key=key;this._message=_417;},validate:function(_418,_419){var _41a=_418[this._key];if((_41a==null)||(_41a=="")){_419.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["ag.widget.validation.LoginValidationRules"]){dojo._hasResource["ag.widget.validation.LoginValidationRules"]=true;dojo.provide("ag.widget.validation.LoginValidationRules");dojo.declare("ag.widget.validation.LoginValidationRules",null,{constructor:function(_41b){this.rules=[new qi.validation.Required("username_email","A username or email is required."),new qi.validation.Required("password","Password is required.")];if(_41b){this.rules.push(new qi.validation.Required("recaptcha_response_field","Please enter the correct code."));}}});}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(_41c){dojo.addClass(this.domNode,"error");if(typeof (_41c)!="undefined"){if(_41c.domNode){this.addChild(_41c);}else{this.addChild(new qi.widget.ValidationMessage({message:_41c},document.createElement("span")));}}},addValidationMessage:function(_41d){dojo.deprecated(this.declaredClass+" addValidationMessage() - use addMessage() intead");this.addMessage(_41d);},clear:function(){dojo.removeClass(this.domNode,"error");var _41e=this.getChildren();dojo.forEach(_41e,dojo.hitch(this,function(_41f){this.removeChild(_41f);_41f.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["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(_428,_429){this.actionMappings[_428]=_429;},dispatch:function(_42a){var _42b=new qi.validation.Result();if(typeof (_42a.fields)!="undefined"&&typeof (_42a.messages)!="undefined"){_42b=_42a;}else{if(typeof (_42a.errorObject)!="undefined"&&typeof (_42a.errorObject.error)!="undefined"&&typeof (_42a.errorObject.error.fields)!="undefined"&&typeof (_42a.errorObject.error.messages)!="undefined"){_42b.fields=_42a.errorObject.error.fields;_42b.messages=_42a.errorObject.error.messages;}else{if(/bad http response code/.test(String(_42a.message))){_42b.messages.push("Unable to process request, please try again.");}else{console.debug("no result in response",_42a,_42a.message);}}}var _42c;for(_42c in _42b.fields){var _42d;if(dojo.isString(_42b.fields[_42c])==false){_42d=this.actionMappings[_42c](_42b.fields[_42c]);}else{_42d=_42b.fields[_42c];}var _42e=this.getCallbackMap(_42c);if(0==_42e.length){console.warn("No callback to handle field message for ",_42c," (",_42b.fields[_42c],")");}dojo.forEach(_42e,function(cbfn){cbfn(_42d);});}var _42d;for(_42d in _42b.messages){dojo.forEach(this.callbacks,function(cbfn){cbfn(_42b.messages[_42d]);});}},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(_434){var _435=_434.containerWidget;var _436=_434.names;var _437=_434.genericCallback;var _438=_434.genericClearCallback;var map={};dojo.forEach(_435.getDescendants(),function(_43a){if(!_43a.name){return;}else{var _43b=map[_43a.name]||(map[_43a.name]=[]);_43b.push(_43a);}});var _43c=dojo.hitch(this,function(name){var _43e=dojo.hitch(this,function(_43f){var _440=_435[name+"_messages"];if(_440){_43f.messagesWidget=_440;if(typeof (_43f.makeValidationCallback)=="function"){this.addMappedCallback(name,_43f.makeValidationCallback());}else{this.addMappedCallback(name,_437);}if(typeof (_43f.makeClearValidationCallback)=="function"){this.addClearMappedCallback(name,_43f.makeClearValidationCallback());}else{this.addClearMappedCallback(name,_438);}}else{console.debug("warning: missing messages widget "+name+"_messages");}});var _441=map[name];if(_441){dojo.forEach(_441,_43e);}else{console.debug("warning: missing widget "+name);}});dojo.forEach(_436,_43c);}});}if(!dojo._hasResource["ag.widget.LoginForm"]){dojo._hasResource["ag.widget.LoginForm"]=true;dojo.provide("ag.widget.LoginForm");dojo.declare("ag.widget.LoginForm",[dijit._Widget,dijit._Templated],{constructor:function(){this.captchaVisible=false;},headerMessage:"",email:"",widgetsInTemplate:true,templateString:"<span>\n<p class=\"dialogueHeaderLink\">Not a Member? <a href=\"\" dojoattachevent=\"onclick:register\" >Join now - It's free!</a></p>\n  <form\n\t  dojoAttachPoint=\"form\"\n\t  dojoAttachEvent=\"onsubmit:onSubmit\">\n      <div class=\"content_standard\">\n\t    <div class=\"errorMsg\" style=\"display:none\">\n\t          <div\n\t              dojoType=\"qi.widget.validation.ValidationMessages\"\n\t\t\t\t  dojoAttachPoint=\"username_email_messages\"></div>\n\t           <div\n\t              dojoType=\"qi.widget.validation.ValidationMessages\"\n\t              dojoAttachPoint=\"password_messages\"></div>\n\t            <div\n\t              dojoType=\"qi.widget.validation.ValidationMessages\"\n\t              dojoAttachPoint=\"captcha_messages\"></div>\n                <div\n                    class=\"validation-message\"\n                    dojoType=\"dijit.layout.ContentPane\"\n                    dojoAttachPoint=\"contentMessages\">\n                </div>\n        </div>\n        <div class=\"label float\">Username or Email</div>\n        <div class=\"field float\">\n            <input\n\t\t\t\tdojoType=\"qi.widget.ValidationTextbox\"\n\t\t\t\tdojoAttachPoint=\"username_email\"\n\t\t\t\tname=\"username_email\"\n\t\t\t\tid=\"${id}_username\"\n\t\t\t\trequired=\"true\"\n\t\t\t\tinvalidMessage=\"A username or email is required\"\n                value=\"${email}\">\n\t\t\t</input>\n         </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"label float\">Password</div>\n        <div class=\"field float\">\n             <input\n\t\t\t\tdojoType=\"qi.widget.ValidationTextbox\"\n\t\t\t\tdojoAttachPoint=\"password\"\n\t\t\t\tname=\"password\"\n\t\t\t\tid=\"${id}_password\"\n\t\t\t\ttype=\"password\"\n\t\t\t\trequired=\"true\">\n\t\t\t</input>\n        </div>\n\t\t<div class=\"forgotPassword float\">\n\t\t\t<a href=\"#\"\n\t\t\t\tdojoAttachEvent=\"onclick:onForgotPassword\">\n\t\t\t\tForgot my password</a><br />\n\t\t</div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"rememberMe\">\n        \t<input\n\t\t\t\tname=\"rememberme\"\n\t\t\t\tid=\"${id}_rememberme\"\n\t\t\t\ttype=\"checkbox\">\n\t\t\t</input> Remember me<br />\n\t\t</div>\n        <div dojoAttachPoint=\"captchaRow\">\n\t\t\t<span dojoAttachPoint=\"captchaPlaceholder\"></span>\n\t\t</div>\n\t</div>\n    <div class=\"button_double\">\n        <input class=\"button_primary float first\" type=\"submit\" value=\"LOG IN\"/>          \n        <a href=\"\" class=\"text_link float\" dojoAttachPoint=\"cancel_button\" dojoAttachEvent=\"onclick:cancel\">cancel</a><br class=\"clearFloat\" />\n    </div>\n\n</form>\n</span>\n",_serviceMethod:new ag.services.JsonServiceFactory("loginService.login").method,captchaRow:{},captchaPlaceholder:{},captchaUrl:dojo.moduleUrl("agdynamic","captcha"),postCreate:function(){this.validationResultDispatcher=new qi.validation.ResultDispatcher();this.validationResultDispatcher.autowire({containerWidget:this,names:["username_email","password"],genericCallback:function(_442){alert(_442);},genericClearCallback:function(_443){alert(_443);}});this.validationResultDispatcher.addMappedCallback("captcha",dojo.hitch(this,"_changeCaptcha"));this.validationResultDispatcher.addMappedCallback("captcha",dojo.hitch(this,function(_444){this.captcha_messages.addValidationMessage(_444);}));this.validationResultDispatcher.addMappedCallback("recaptcha_response_field",dojo.hitch(this,"_changeCaptcha"));this.validationResultDispatcher.addMappedCallback("recaptcha_response_field",dojo.hitch(this,function(_445){this.captcha_messages.addValidationMessage(_445);}));this.validationResultDispatcher.addCallback(dojo.hitch(this,function(_446){this.contentMessages.setContent(_446);}));this.validationResultDispatcher.addClearCallback(dojo.hitch(this,function(){this.contentMessages.setContent("");this.captcha_messages.clearValidationMessages();}));this.validationResultDispatcher.addActionMapping("messages",dojo.hitch(this,function(_447){if(_447.action=="OFFER_RESEND_VERIFICATION_LINK"){return new ag.widget.OfferResendVerificationLink({loginForm:this},document.createElement("div"));}else{return _447.message;}}));this.validationResultDispatcher.addMappedCallback("messages",dojo.hitch(this,function(_448){this.username_email_messages.addMessage(_448);}));},onSubmit:function(_449){dojo.stopEvent(_449);var _44a=dojo.formToObject(this.form);if(_44a["rememberme"]=="on"){_44a["rememberme"]=true;}else{_44a["rememberme"]=false;}var _44b=this._validateLogin(_44a);this.validationResultDispatcher.clearMessages();this.validationResultDispatcher.dispatch(_44b);if(_44b.isValid()){if(this.scoreToken&&this.gameId){_44a.scoresToken=this.scoreToken;_44a.gameId=parseInt(this.gameId);}this.contentMessages.setContent("");var _44c=this._serviceMethod(_44a);dojo.addClass(this.domNode,"progress");_44c.addCallback(dojo.hitch(this,this._handleLogin));_44c.addErrback(dojo.hitch(this,this._handleErrorReponse));}else{$(this.domNode).find(".errorMsg").show();}},cancel:function(e){ag.event.EventBus.APPLICATION.CANCEL_LOGIN.publish();this.hide(e);},hide:function(e){e.preventDefault();this.popup.hide();},_handleLogin:function(_44f){var _450=new qi.validation.Result();this.validationResultDispatcher.clearMessages();this.validationResultDispatcher.dispatch(_450);ag.event.EventBus.APPLICATION.LOGIN.publish();if(this.redirect){window.location=this.redirect;}},_handleErrorReponse:function(_451){$(this.domNode).find(".errorMsg").show();dojo.removeClass(this.domNode,"progress");this.validationResultDispatcher.clearMessages();this.validationResultDispatcher.dispatch(_451);},onForgotPassword:function(_452){dojo.stopEvent(_452);var _453=new qi.validation.Validator({rules:[new qi.validation.Required("username_email","A username or email is required")]});var _454=dojo.formToObject(this.form);var _455=_453.validate(_454);this.validationResultDispatcher.clearMessages();this.validationResultDispatcher.dispatch(_455);if(_455.isValid()){$(this.domNode).find(".errorMsg").show();this.contentMessages.setContent("");var _456=new ag.services.JsonServiceFactory("loginService.passwordReminder").method;var _457=_456(_454);_457.addCallback(dojo.hitch(this,function(_458){this.contentMessages.setContent("An email has been sent to the account you signed up with. "+"Please check this e-mail for your password.");}));_457.addErrback(dojo.hitch(this,this._handleErrorReponse));}else{$(this.domNode).find(".errorMsg").show();}},register:function(e){e.preventDefault();var args={};if(this.gameId&&this.scoreToken){args.scoreToken=this.scoreToken;args.gameId=this.gameId;}if(this.redirect){args.redirect=this.redirect;}ag.widget.user.RegisterPopup.showPopup(args);},_updateWidget:function(_45b,id){var _45d="Normal";if(_45b.hasFieldMessage(id)){_45d="Error";}var _45e=dijit.byId(this.id+"_"+id);if(typeof (_45e)!="undefined"&&typeof (_45e.updateClass)!="undefined"){_45e.updateClass(_45d);}},_updateWidgets:function(_45f){var _460="";if(_45f.isValid()==false){if(this.captcha){this._changeCaptcha();}var _461=[];if(_45f.hasMessages()){_461=_461.concat(_45f.messages);}if(_45f.hasFieldMessages()){var self=this;dojo.forEach(["username_email","password","captcha"],function(id){self._updateWidget(_45f,id);});for(var id in _45f.fields){_461.push(_45f.fields[id]);}}_460=_461.join("<br/>");}this.contentMessages.setContent(_460);},_changeCaptcha:function(_465){$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js",function(){Recaptcha.create("6Lc_SAcAAAAAAGx9bjOU-srubELeT3EyyHR5S9sp","recaptcha_div",{theme:"red",callback:function(){$("#recaptcha_response_field").attr({dojoType:"qi.widget.ValidationTextbox",dojoAttachPoint:"recaptcha",required:"true"});Recaptcha.focus_response_field();}});});if(this._captchaInvisble()){ag.event.EventBus.APPLICATION.LOGIN_SHOW_CAPTCHA.publish();this.captcha=new qi.widget.Captcha({captchaUrl:dojo.moduleUrl("agdynamic","captcha")},this.captchaPlaceholder);this.captchaRow.style.display="block";}else{this.captcha.changeCaptcha();}},_validateLogin:function(_466){var _467=new ag.widget.validation.LoginValidationRules(this._captchaVisible());var _468=new qi.validation.Validator(_467);return _468.validate(_466);},_captchaVisible:function(){return typeof (this.captcha)!="undefined";},_captchaInvisble:function(){return !this._captchaVisible();}});dojo.declare("ag.widget.OfferResendVerificationLink",[dijit._Widget,dijit._Templated],{templateString:"<div>You must&nbsp; <a href='#' dojoAttachEvent='onclick:onClick'>verify your email address</a>.</div>",onClick:function(_469){dojo.stopEvent(_469);this.loginForm.onForgotPassword(_469);}});}if(!dojo._hasResource["qi.widget.FixedSizeDialog"]){dojo._hasResource["qi.widget.FixedSizeDialog"]=true;dojo.provide("qi.widget.FixedSizeDialog");dojo.declare("qi.widget.FixedSizeDialog",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"${css_class} dialogue\">\n\t<div class=\"dialogue_top\">\n\t\t<p class=\"h1\">${title}</p>\n\t</div>\n    <div class=\"dialogue_main\">\n            <div\n              class=\"fixedSizeDialogContent\"\n              dojoAttachPoint=\"containerNode\"></div>\n        </div>\n     <div class=\"dialogue_bottom\">&nbsp;</div>\n</div>\n\n",widgetsInTemplate:true,css_class:"fixedSizeDialog",title:"",postCreate:function(){this._wrapper=dojo.doc.createElement("div");this._wrapper.id=this.id+"_wrapper";this._wrapper.appendChild(this.domNode);this.configureWrapper(this._wrapper);var b=dojo.body();b.appendChild(this._wrapper);this._bgIframe=new dijit.BackgroundIframe(this._wrapper);var _46b=this.createContent();this.containerNode.appendChild(_46b.domNode);},configureWrapper:function(_46c){},show:function(_46d){qi.widget.Flash.hideAll();$(this.domNode).jqmShow();},place:function(_46e){if(typeof (_46e)!="undefined"&&typeof (_46e.aroundNode)!="undefined"&&typeof (_46e.aroundCorners)!="undefined"){dijit.placeOnScreenAroundElement(this._wrapper,_46e.aroundNode,_46e.aroundCorners);}else{if(typeof (_46e)!="undefined"&&typeof (_46e.x)!="undefined"&&typeof (_46e.y)!="undefined"){var _46f=_46e.corners||["TL"];dijit.placeOnScreen(this._wrapper,_46e,_46f);}else{dijit.Dialog.prototype._position.apply(this);}}},hide:function(){if(this._bgIframe){this._bgIframe.destroy();delete this._bgIframe;}$(this.domNode).jqmHide();var body=dojo.body();body.removeChild(this._wrapper);this.destroyRecursive();qi.widget.Flash.restoreAll();}});}if(!dojo._hasResource["qi.widget.CountryPicker"]){dojo._hasResource["qi.widget.CountryPicker"]=true;dojo.provide("qi.widget.CountryPicker");dojo.declare("qi.widget.CountryPicker",[dijit._Widget,dijit._Templated],{name:"",templateString:"<span>\n\t<select dojoAttachPoint=\"countrySelect\" dojoAttachEvent=\"onchange:onCountryChange\" name=\"country\">\n\t\t<option value=\"\">Country</option>\n\t</select>\n</span>\n",postCreate:function(){var self=this;dojo.forEach(qi.widget.CountryPicker.COUNTRIES,function(_472){self.countrySelect.options[self.countrySelect.options.length]=new Option(_472.country,_472.country);});},onCountryChange:function(){var _473=this.getCountry();if(_473=="United States"){$("#statePicker").show();}else{$("#statePicker").hide();$("#statePicker option:contains(State)").attr("selected",true);}},getCountry:function(){return this.countrySelect.value;}});qi.widget.CountryPicker.COUNTRIES=[{code:"us",country:"United States"},{code:"ca",country:"Canada"},{code:"uk",country:"United Kingdom"},{code:"au",country:"Australia"},{code:"-",country:"--------"},{code:"af",country:"Afghanistan"},{code:"al",country:"Albania"},{code:"dz",country:"Algeria"},{code:"as",country:"American Samoa"},{code:"ad",country:"Andorra"},{code:"ao",country:"Angola"},{code:"ai",country:"Anguilla"},{code:"aq",country:"Antarctica"},{code:"ag",country:"Antigua and Barbuda"},{code:"ar",country:"Argentina"},{code:"am",country:"Armenia"},{code:"aw",country:"Aruba"},{code:"at",country:"Austria"},{code:"az",country:"Azerbaidjan"},{code:"bs",country:"Bahamas"},{code:"bh",country:"Bahrain"},{code:"bd",country:"Bangladesh"},{code:"bb",country:"Barbados"},{code:"be",country:"Belgium"},{code:"bz",country:"Belize"},{code:"bj",country:"Benin"},{code:"bm",country:"Bermuda"},{code:"bt",country:"Bhutan"},{code:"bo",country:"Bolivia"},{code:"ba",country:"Bosnia-Herzegovina"},{code:"bw",country:"Botswana"},{code:"bv",country:"Bouvet Island"},{code:"br",country:"Brazil"},{code:"io",country:"British Indian Ocean Territory"},{code:"bn",country:"Brunei Darussalam"},{code:"bg",country:"Bulgaria"},{code:"bf",country:"Burkina Faso"},{code:"bi",country:"Burundi"},{code:"kh",country:"Cambodia"},{code:"cm",country:"Cameroon"},{code:"cv",country:"Cape Verde"},{code:"ky",country:"Cayman Islands"},{code:"cf",country:"Central African Republic"},{code:"td",country:"Chad"},{code:"cl",country:"Chile"},{code:"cn",country:"China"},{code:"cx",country:"Christmas Island"},{code:"cc",country:"Cocos (Keeling) Islands"},{code:"co",country:"Colombia"},{code:"km",country:"Comoros"},{code:"ck",country:"Cook Islands"},{code:"cr",country:"Costa Rica"},{code:"hr",country:"Croatia"},{code:"cy",country:"Cyprus"},{code:"cz",country:"Czech Republic"},{code:"dk",country:"Denmark"},{code:"dj",country:"Djibouti"},{code:"dm",country:"Dominica"},{code:"do",country:"Dominican Republic"},{code:"tp",country:"East Timor"},{code:"ec",country:"Ecuador"},{code:"eg",country:"Egypt"},{code:"sv",country:"El Salvador"},{code:"gq",country:"Equatorial Guinea"},{code:"er",country:"Eritrea"},{code:"ee",country:"Estonia"},{code:"et",country:"Ethiopia"},{code:"fk",country:"Falkland Islands"},{code:"fo",country:"Faroe Islands"},{code:"fj",country:"Fiji"},{code:"fi",country:"Finland"},{code:"cs",country:"Former Czechoslovakia"},{code:"fr",country:"France"},{code:"fx",country:"France (European Territory)"},{code:"gf",country:"French Guyana"},{code:"tf",country:"French Southern Territories"},{code:"ga",country:"Gabon"},{code:"gm",country:"Gambia"},{code:"ge",country:"Georgia"},{code:"de",country:"Germany"},{code:"gh",country:"Ghana"},{code:"gi",country:"Gibraltar"},{code:"gr",country:"Greece"},{code:"gl",country:"Greenland"},{code:"gd",country:"Grenada"},{code:"gp",country:"Guadeloupe (French)"},{code:"gu",country:"Guam (USA)"},{code:"gt",country:"Guatemala"},{code:"gn",country:"Guinea"},{code:"gw",country:"Guinea Bissau"},{code:"gy",country:"Guyana"},{code:"ht",country:"Haiti"},{code:"va",country:"Holy See (Vatican City State)"},{code:"hn",country:"Honduras"},{code:"hk",country:"Hong Kong"},{code:"hu",country:"Hungary"},{code:"is",country:"Iceland"},{code:"in",country:"India"},{code:"id",country:"Indonesia"},{code:"ie",country:"Ireland"},{code:"il",country:"Israel"},{code:"it",country:"Italy"},{code:"jm",country:"Jamaica"},{code:"jp",country:"Japan"},{code:"jo",country:"Jordan"},{code:"kz",country:"Kazakhstan"},{code:"ke",country:"Kenya"},{code:"ki",country:"Kiribati"},{code:"kw",country:"Kuwait"},{code:"kg",country:"Kyrgyz Republic (Kyrgyzstan)"},{code:"la",country:"Laos"},{code:"lv",country:"Latvia"},{code:"lb",country:"Lebanon"},{code:"ls",country:"Lesotho"},{code:"ly",country:"Libya"},{code:"li",country:"Liechtenstein"},{code:"lt",country:"Lithuania"},{code:"lu",country:"Luxembourg"},{code:"mo",country:"Macau"},{code:"mk",country:"Macedonia"},{code:"mg",country:"Madagascar"},{code:"mw",country:"Malawi"},{code:"my",country:"Malaysia"},{code:"mv",country:"Maldives"},{code:"ml",country:"Mali"},{code:"mt",country:"Malta"},{code:"mh",country:"Marshall Islands"},{code:"mq",country:"Martinique (French)"},{code:"mr",country:"Mauritania"},{code:"mu",country:"Mauritius"},{code:"yt",country:"Mayotte"},{code:"mx",country:"Mexico"},{code:"fm",country:"Micronesia"},{code:"md",country:"Moldavia"},{code:"mc",country:"Monaco"},{code:"mn",country:"Mongolia"},{code:"ms",country:"Montserrat"},{code:"ma",country:"Morocco"},{code:"mz",country:"Mozambique"},{code:"na",country:"Namibia"},{code:"nr",country:"Nauru"},{code:"np",country:"Nepal"},{code:"nl",country:"Netherlands"},{code:"an",country:"Netherlands Antilles"},{code:"nt",country:"Neutral Zone"},{code:"nc",country:"New Caledonia (French)"},{code:"nz",country:"New Zealand"},{code:"ni",country:"Nicaragua"},{code:"ne",country:"Niger"},{code:"ng",country:"Nigeria"},{code:"nu",country:"Niue"},{code:"nf",country:"Norfolk Island"},{code:"mp",country:"Northern Mariana Islands"},{code:"no",country:"Norway"},{code:"om",country:"Oman"},{code:"pk",country:"Pakistan"},{code:"pw",country:"Palau"},{code:"pa",country:"Panama"},{code:"pg",country:"Papua New Guinea"},{code:"py",country:"Paraguay"},{code:"pe",country:"Peru"},{code:"ph",country:"Philippines"},{code:"pn",country:"Pitcairn Island"},{code:"pl",country:"Poland"},{code:"pf",country:"Polynesia (French)"},{code:"pt",country:"Portugal"},{code:"pr",country:"Puerto Rico"},{code:"qa",country:"Qatar"},{code:"re",country:"Reunion (French)"},{code:"ro",country:"Romania"},{code:"ru",country:"Russian Federation"},{code:"rw",country:"Rwanda"},{code:"gs",country:"S. Georgia & S. Sandwich Isls."},{code:"sh",country:"Saint Helena"},{code:"kn",country:"Saint Kitts & Nevis Anguilla"},{code:"lc",country:"Saint Lucia"},{code:"pm",country:"Saint Pierre and Miquelon"},{code:"st",country:"Saint Tome (Sao Tome) and Principe"},{code:"vc",country:"Saint Vincent & Grenadines"},{code:"ws",country:"Samoa"},{code:"sm",country:"San Marino"},{code:"sa",country:"Saudi Arabia"},{code:"sn",country:"Senegal"},{code:"sc",country:"Seychelles"},{code:"sg",country:"Singapore"},{code:"sk",country:"Slovak Republic"},{code:"si",country:"Slovenia"},{code:"sb",country:"Solomon Islands"},{code:"so",country:"Somalia"},{code:"za",country:"South Africa"},{code:"kr",country:"South Korea"},{code:"es",country:"Spain"},{code:"lk",country:"Sri Lanka"},{code:"sr",country:"Suriname"},{code:"sj",country:"Svalbard and Jan Mayen Islands"},{code:"sz",country:"Swaziland"},{code:"se",country:"Sweden"},{code:"ch",country:"Switzerland"},{code:"tj",country:"Tadjikistan"},{code:"tw",country:"Taiwan"},{code:"tz",country:"Tanzania"},{code:"th",country:"Thailand"},{code:"tg",country:"Togo"},{code:"tk",country:"Tokelau"},{code:"to",country:"Tonga"},{code:"tt",country:"Trinidad and Tobago"},{code:"tn",country:"Tunisia"},{code:"tr",country:"Turkey"},{code:"tm",country:"Turkmenistan"},{code:"tc",country:"Turks and Caicos Islands"},{code:"tv",country:"Tuvalu"},{code:"ug",country:"Uganda"},{code:"ua",country:"Ukraine"},{code:"ae",country:"United Arab Emirates"},{code:"uy",country:"Uruguay"},{code:"um",country:"USA Minor Outlying Islands"},{code:"uz",country:"Uzbekistan"},{code:"vu",country:"Vanuatu"},{code:"ve",country:"Venezuela"},{code:"vn",country:"Vietnam"},{code:"vg",country:"Virgin Islands (British)"},{code:"vi",country:"Virgin Islands (USA)"},{code:"wf",country:"Wallis and Futuna Islands"},{code:"eh",country:"Western Sahara"},{code:"ye",country:"Yemen"},{code:"yu",country:"Yugoslavia"},{code:"zr",country:"Zaire"},{code:"zm",country:"Zambia"}];}if(!dojo._hasResource["qi.widget.StatePicker"]){dojo._hasResource["qi.widget.StatePicker"]=true;dojo.provide("qi.widget.StatePicker");dojo.declare("qi.widget.StatePicker",[dijit._Widget,dijit._Templated],{name:"",templateString:"<span>\n\t<select dojoAttachPoint=\"stateSelect\" dojoAttachEvent=\"onchange:onStateChange\" name=\"state\">\n\t\t<option value=\"\">State</option>\n\t</select>\n</span>\n",postCreate:function(){var self=this;dojo.forEach(qi.widget.StatePicker.STATES,function(_475){self.stateSelect.options[self.stateSelect.options.length]=new Option(_475.state,_475.state);});},onStateChange:function(){var _476=this.getState();},getState:function(){return this.stateSelect.value;}});qi.widget.StatePicker.STATES=[{code:"AL",state:"Alabama"},{code:"AK",state:"Alaska"},{code:"AZ",state:"Arizona"},{code:"AR",state:"Arkansas"},{code:"CA",state:"California"},{code:"CO",state:"Colorado"},{code:"CT",state:"Connecticut"},{code:"DE",state:"Delaware"},{code:"DC",state:"District of Columbia"},{code:"FL",state:"Florida"},{code:"GA",state:"Georgia"},{code:"HI",state:"Hawaii"},{code:"ID",state:"Idaho"},{code:"IL",state:"Illinois"},{code:"IN",state:"Indiana"},{code:"IA",state:"Iowa"},{code:"KS",state:"Kansas"},{code:"KY",state:"Kentucky"},{code:"LA",state:"Louisiana"},{code:"ME",state:"Maine"},{code:"MD",state:"Maryland"},{code:"MA",state:"Massachusetts"},{code:"MI",state:"Michigan"},{code:"MN",state:"Minnesota"},{code:"MS",state:"Mississippi"},{code:"MO",state:"Missouri"},{code:"MT",state:"Montana"},{code:"NE",state:"Nebraska"},{code:"NV",state:"Nevada"},{code:"NH",state:"New Hampshire"},{code:"NJ",state:"New Jersey"},{code:"NM",state:"New Mexico"},{code:"NY",state:"New York"},{code:"NC",state:"North Carolina"},{code:"ND",state:"North Dakota"},{code:"OH",state:"Ohio"},{code:"OK",state:"Oklahoma"},{code:"OR",state:"Oregon"},{code:"PA",state:"Pennsylvania"},{code:"RI",state:"Rhode Island"},{code:"SC",state:"South Carolina"},{code:"SD",state:"South Dakota"},{code:"TN",state:"Tennessee"},{code:"TX",state:"Texas"},{code:"UT",state:"Utah"},{code:"VT",state:"Vermont"},{code:"VA",state:"Virginia"},{code:"WA",state:"Washington"},{code:"WV",state:"West Virginia"},{code:"WI",state:"Wisconsin"},{code:"WY",state:"Wyoming"}];}if(!dojo._hasResource["ag.widget.user.OfferLoginLink"]){dojo._hasResource["ag.widget.user.OfferLoginLink"]=true;dojo.provide("ag.widget.user.OfferLoginLink");dojo.declare("ag.widget.user.OfferLoginLink",[dijit._Widget,dijit._Templated],{templateString:"<span class=\"validation-message\">This email address has already been registered. If this is your email address <a href='#' dojoAttachEvent='onclick:onClick'>log in here.</a></span>",onClick:function(_477){dojo.stopEvent(_477);ag.widget.user.LoginPopup.showPopup();}});}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,_479,_47a){this._key=key;this._message=_479;this._regexp=_47a;},validate:function(_47b,_47c){var _47d=_47b[this._key];if(this._regexp.test(_47d)==false){_47c.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["ag.widget.validation.CheckNameValidationRules"]){dojo._hasResource["ag.widget.validation.CheckNameValidationRules"]=true;dojo.provide("ag.widget.validation.CheckNameValidationRules");dojo.declare("ag.widget.validation.CheckNameValidationRules",null,{constructor:function(){this.rules=[new qi.validation.Required("username","A username is required"),new qi.validation.Length("username",4,30,"Your username must be between 4 and 30 characters in length."),new qi.validation.Regexp("username","You cannot use an email as a user name",/^\s*@?[^@]*@?\s*$/),new qi.validation.Required("captcha","You must enter the code.")];}});}if(!dojo._hasResource["ag.widget.validation.UsernameValidationRules"]){dojo._hasResource["ag.widget.validation.UsernameValidationRules"]=true;dojo.provide("ag.widget.validation.UsernameValidationRules");dojo.declare("ag.widget.validation.UsernameValidationRules",null,{rules:[new qi.validation.Required("username","A username is required."),new qi.validation.Length("username",0,30,"Your username cannot be longer than 30 characters."),new qi.validation.Length("username",4,255,"Your username must be at least 4 characters long."),new qi.validation.Regexp("username","You cannot use an email as a user name",/^\s*@?[^@]*@?\s*$/)]});}if(!dojo._hasResource["ag.validation.Birthday"]){dojo._hasResource["ag.validation.Birthday"]=true;dojo.provide("ag.validation.Birthday");dojo.declare("ag.validation.Birthday",null,{constructor:function(key,age,_480,now){this._key=key;this._age=age;this._message=_480;this._now=now;},validate:function(_482,_483,now){var _485=_482[this._key];if(_485==null){_483.addFieldMessage(this._key,this._message);}else{if(dojo.isBrowser){var _486=false;if(dojo.cookie("RegistrationFormCookie")!=null){_486=true;}else{var now=this._now||new Date();if(this._isValidBirthday(_485,now,this._age)==false){_486=true;dojo.cookie("RegistrationFormCookie","set",{path:"/"});}}if(_486){var msg="Based on the information you have submitted to us, you are ineligible to register.";for(var i=0;i<_483.messages.length;i++){if(_483.messages[i]==msg){return;}}_483.addMessage(msg);}}}},_isValidBirthday:function(_489,now,age){var year=now.getFullYear()-age;var _48d=now.getMonth();var day=now.getDate();var _48f=[year,_48d,day];var _490=[_489.year,_489.month,_489.day];for(var i=0;i<3;i++){if(_48f[i]>_490[i]){return true;}else{if(_48f[i]<_490[i]){return false;}}}return true;}});}if(!dojo._hasResource["ag.validation.Location"]){dojo._hasResource["ag.validation.Location"]=true;dojo.provide("ag.validation.Location");dojo.declare("ag.validation.Location",null,{constructor:function(key,_493,_494,age,_496,now){this._key=key;this._state=_493;this._message=_496;this._age=age;this._now=now;this._birthday=_494;},validate:function(_498,_499){var _49a=_498[this._key];var _49b=_498[this._birthday];if(_49a==null){_499.addFieldMessage(this._key,this._message);}else{if(dojo.isBrowser){var _49c=false;if(dojo.cookie("RegistrationFormCookie")!=null){_49c=true;}else{var now=this._now||new Date();if((this._isValidLocation(_49a,this._state)==false)&&(this._isValidBirthday(_49b,now,this._age)==false)){_49c=true;dojo.cookie("RegistrationFormCookie","set",{path:"/"});}}if(_49c){var msg="Based on the information you have submitted to us, you are ineligible to register.";for(var i=0;i<=_499.messages.length;i++){if(_499.messages[i]==msg){return;}}_499.addMessage(msg);}}}},_isValidLocation:function(_4a0,_4a1){if((_4a0==_4a1)){return false;}else{return true;}},_isValidBirthday:function(_4a2,now,age){var year=now.getFullYear()-age;var _4a6=now.getMonth();var day=now.getDate();var _4a8=[year,_4a6,day];var _4a9=[_4a2.year,_4a2.month,_4a2.day];for(var i=0;i<3;i++){if(_4a8[i]>_4a9[i]){return true;}else{if(_4a8[i]<_4a9[i]){return false;}}}return true;}});}if(!dojo._hasResource["qi.validation.DateRequired"]){dojo._hasResource["qi.validation.DateRequired"]=true;dojo.provide("qi.validation.DateRequired");dojo.declare("qi.validation.DateRequired",null,{constructor:function(key,_4ac){this._key=key;this._message=_4ac;},validate:function(_4ad,_4ae){var _4af=true;var _4b0=_4ad[this._key];if(_4b0){var year=_4b0["year"];var _4b2=_4b0["month"];var day=_4b0["day"];if(year&&_4b2>=0&&day){_4af=false;}}if(_4af){_4ae.addFieldMessage(this._key,this._message);}}});}if(!dojo._hasResource["qi.validation.Email"]){dojo._hasResource["qi.validation.Email"]=true;dojo.provide("qi.validation.Email");dojo.declare("qi.validation.Email",null,{constructor:function(key,_4b5){this._delegate=new qi.validation.Regexp(key,_4b5,/^(?:[^ @\s])+@(?:[^ \.@\s]+)(?:\.(?:[^ \.@\s])+)+/);},validate:function(_4b6,_4b7){return this._delegate.validate(_4b6,_4b7);}});}if(!dojo._hasResource["qi.validation.Equal"]){dojo._hasResource["qi.validation.Equal"]=true;dojo.provide("qi.validation.Equal");dojo.declare("qi.validation.Equal",null,{constructor:function(key1,key2,_4ba){this._key1=key1;this._key2=key2;this._message=_4ba;},validate:function(_4bb,_4bc){var _4bd=_4bb[this._key1];var _4be=_4bb[this._key2];if(_4bd!=_4be){_4bc.addFieldMessage(this._key1,this._message);}}});}if(!dojo._hasResource["ag.widget.validation.RegistrationValidationRules"]){dojo._hasResource["ag.widget.validation.RegistrationValidationRules"]=true;dojo.provide("ag.widget.validation.RegistrationValidationRules");dojo.declare("ag.widget.validation.RegistrationValidationRules",null,{constructor:function(page){if(page==1){this.rules=new ag.widget.validation.UsernameValidationRules().rules.concat([new qi.validation.Required("email","An email address is required."),new qi.validation.Email("email","Your email address must be valid."),new qi.validation.Required("password","A password is required."),new qi.validation.Length("password",4,20,"Your password must be between 4 and 20 characters in length."),new qi.validation.DateRequired("birthday","Your birthday is required."),new ag.validation.Birthday("birthday",13,"Based on the information you have submitted to us, you are ineligible to register."),new qi.validation.Required("country","Your country is required."),new ag.validation.Location("state","Maine","birthday",18,"Based on the information you have submitted to us, you are ineligible to register.")]);}else{if(page==2){this.rules=[new qi.validation.Required("firstname","Your first name is required"),new qi.validation.Required("lastname","Your last name is required"),];}}}});}if(!dojo._hasResource["ag.widget.RegisterForm"]){dojo._hasResource["ag.widget.RegisterForm"]=true;dojo.provide("ag.widget.RegisterForm");dojo.declare("ag.widget.RegisterForm",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,templateString:"<span>\n<p class=\"dialogueHeaderLink\">Already a Member? <a href=\"\" dojoattachevent=\"onclick:login\" >Log in here</a></p>\n    <form\n      id=\"regDialogForm\"\n      dojoAttachPoint=\"form1\"\n      dojoAttachEvent=\"onsubmit:onSubmit1\"\n     >\n        <div class=\"content_standard\">\n        <div class=\"errorMsg\" style=\"display:none\">\n          <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"username_messages\"></div>\n           <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"birthday_messages\"></div>\n            <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"email_messages\"></div>\n            <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"password_messages\"></div>\n            <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"country_messages\"></div>\n            <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"subscribe_messages\"></div>\n            <div\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"contentMessages1\"></div>\n            <span class=\"validation-message\" id=\"tos_message\"></span>\n    </div>\n        <!--note the following p is hidden when error message is shown-->\n        <p id=\"introText\"><strong>Please enter the required registration information below.</strong></p>\n        <div class=\"label float\">Username</div>\n        <div class=\"field float\">\n            <input\n              dojoType=\"qi.widget.ValidationTextbox\"\n              dojoAttachPoint=\"username\"\n              name=\"username\"\n              id=\"${id}_username\"\n              required=\"true\"\n              invalidMessage=\"A username is required\"></input>\n         </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"label float\">Date of Birth</div>\n        <div class=\"field float\">\n             <span\n              dojoType=\"qi.widget.DatePicker\"\n              dojoAttachPoint=\"dateOfBirth\"\n              startingYear=\"1900\"\n              endingYear=\"new Date().getFullYear()\"\n              name=\"birthday\"\n              id=\"${id}_birthday\"></span>\n        </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"label float\">Email Address</div>\n        <div class=\"field float\">\n            <input\n              dojoType=\"qi.widget.ValidationTextbox\"\n              dojoAttachPoint=\"email\"\n              name=\"email\"\n              id=\"${id}_email\"\n              value=\"${email}\"\n              required=\"true\"></input>\n        </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"label float\">Password</div>\n        <div class=\"field float\">\n            <input\n              dojoType=\"qi.widget.ValidationTextbox\"\n              dojoAttachPoint=\"password\"\n              name=\"password\"\n              id=\"${id}_password\"\n              type=\"password\"\n              required=\"true\"></input>\n        </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div class=\"label float\">Country</div>\n        <div class=\"field float\">\n             <span\n              dojoType=\"qi.widget.CountryPicker\"\n              dojoAttachPoint=\"country\"\n              name=\"country\"\n              id=\"${id}_country\"></span>\n        </div>\n        <div class=\"clearFloat\">&nbsp;</div>\n        <div id=\"statePicker\" style=\"display:none\">\n            <div class=\"label float\">State</div>\n            <div class=\"field float\">\n                 <span\n                  dojoType=\"qi.widget.StatePicker\"\n                  dojoAttachPoint=\"state\"\n                  name=\"state\"\n                  id=\"${id}_state\"></span>\n            </div>\n            <div class=\"clearFloat\">&nbsp;</div>\n        </div>\n        <div class=\"terms\">\n            <p class=\"smallText tos\"><input\n              name=\"tos\"\n              id=\"tos_checkbox\"\n              type=\"checkbox\"></input> I agree to adhere to the AddictingGames <a target=\"_blank\" href=\"http://www.addictinggames.com/ag_legal_terms.html\">Terms of Service</a>.</p>\n            <p class=\"smallText\"><input\n              name=\"subscribe\"\n              id=\"${id}_subscribe\"\n              type=\"checkbox\"\n              checked=\"checked\"></input> Tell me about new AddictingGames and other AG stuff in the AddictingGames newsletter.\n            </p>\n        </div>\n       </div>\n       <div  class=\"register-submit hidden-button\">\n\t\t\t <input type=\"submit\" value=\"\"/>\n\t    </div>\n       <div class=\"button_double\">\n            <a href=\"\" class=\"button_primary float first\" dojoAttachPoint=\"join_button\" dojoAttachEvent=\"onclick:onSubmit1\">JOIN NOW!</a>\n            <a style=\"display:none;background-position:-7px -58px\" class=\"button_primary float first disabled\">JOIN NOW!</a>\n            <a href=\"\" class=\"text_link float\" dojoAttachPoint=\"cancel_button\" dojoAttachEvent=\"onclick:cancel\">cancel</a>\n            <br class=\"clearFloat\" />\n        </div>\n </form>\n\n     <div class=\"displayNone\"\n         id=\"regDialogConf\"\n         dojoAttachPoint=\"confirmDiv\">\n         <div class=\"content_standard\">\n         <div class=\"errorMsg\" style=\"display:none;\"></div>\n        <!--note the following p is hidden when error message is shown-->\n        <p>An email has been sent to <span class=\"confirmEmail\" dojoAttachPoint=\"confirmEmail\"></span>. Please activate your account by clicking the link provided in the email.</p>\n        <p class=\"smallText\" dojoAttachPoint=\"emailVerifyResend\">Click here to <a href=\"\" dojoAttachEvent=\"onclick:onResendEmailVerification\">resend the confirmation email</a>.</p>\n        <p class=\"displayNone\" dojoAttachPoint=\"emailVerifyResent\">\n                Confirmation email has been resent\n            </p>\n            <span\n              dojoType=\"qi.widget.validation.ValidationMessages\"\n              dojoAttachPoint=\"contentMessages3\"></span>\n       </div>\n        <div class=\"button_single\">\n            <a href=\"\" class=\"button_standard\" dojoAttachPoint=\"conf_ok_button\" dojoAttachEvent=\"onclick:hide\">OK</a><br />\n        </div>\n     </div>\n\n</span>\n",_registerService:new ag.services.JsonServiceFactory({methods:[{name:"registerService.register"},{name:"registerService.checkName"}]}).service,id:"",email:"",postCreate:function(){this.sendRegistrationStart();this.validationResultDispatcher1=new qi.validation.ResultDispatcher();this.validationResultDispatcher1.autowire({containerWidget:this,names:["username","email","password"]});this.validationResultDispatcher1.addMappedCallback("birthday",dojo.hitch(this,function(err){this.showError();this.birthday_messages.addMessage(err);}));this.validationResultDispatcher1.addClearMappedCallback("birthday",dojo.hitch(this,function(){this.birthday_messages.clear();}));this.validationResultDispatcher1.addMappedCallback("country",dojo.hitch(this,function(err){this.showError();this.country_messages.addMessage(err);}));this.validationResultDispatcher1.addClearMappedCallback("country",dojo.hitch(this,function(){this.country_messages.clear();}));this.validationResultDispatcher1.addCallback(dojo.hitch(this,function(err){this.showError();this.contentMessages1.addMessage(err);}));this.validationResultDispatcher1.addClearCallback(dojo.hitch(this,function(){this.contentMessages1.clear();}));this.validationResultDispatcher1.addActionMapping("email",function(_4c3){if(_4c3.action=="OFFER_LOGIN_LINK"){return new ag.widget.user.OfferLoginLink({},document.createElement("span"));}else{return _4c3.message;}});this.validationResultDispatcher3=new qi.validation.ResultDispatcher();this.validationResultDispatcher3.addCallback(dojo.hitch(this,function(err){this.showError();this.contentMessages3.addMessage(err);}));this.validationResultDispatcher3.addClearCallback(dojo.hitch(this,function(){this.contentMessages3.clear();}));},login:function(e){e.preventDefault();var args={};if(this.gameId&&this.scoreToken){args.scoreToken=this.scoreToken;args.gameId=this.gameId;}if(this.redirect){args.redirect=this.redirect;}ag.widget.user.LoginPopup.showPopup(args);},showError:function(){$(this.domNode).find("#introText").hide();$(this.domNode).find("#regDialogForm .errorMsg").show();this.enableSubmit();},disableSubmit:function(){$("#regDialogForm .button_primary").hide();$("#regDialogForm .button_primary.disabled").show();},enableSubmit:function(){$("#regDialogForm .button_primary").show();$("#regDialogForm .button_primary.disabled").hide();},checkName:function(){var _4c7={"email":this.email.getValue(),"username":this.username.getValue()};this.contentMessages1.clear();var _4c8=this._registerService["registerService.checkName"];var _4c9=_4c8(_4c7);_4c9.addErrback(dojo.hitch(this,function(_4ca){var _4cb=new qi.validation.Result();_4cb.fields=_4ca["errorObject"].error.fields;_4cb._containsFieldMessages=true;_4cb.messages=_4ca["errorObject"].error.messages;this.validationResultDispatcher1.clearMessages();this.validationResultDispatcher1.dispatch(_4cb);this.showError();}));},showConfirmDiv:function(){this.confirmEmail.innerHTML=this.email.getValue();$(this.domNode).closest(".registration").find(".dialogue_top h1").html("Activate Your Account");$(this.domNode).find(".dialogueHeaderLink").hide();dojo.addClass(this.form1,"displayNone");dojo.removeClass(this.confirmDiv,"displayNone");this.enableSubmit();this._confirmShown=true;},cancel:function(e){ag.event.EventBus.APPLICATION.CANCEL_LOGIN.publish();this.hide(e);},hide:function(e){e.preventDefault();this.popup.hide();if(this._confirmShown&&this.redirect){window.location=this.redirect;}},onSubmit1:function(e){e.preventDefault();this.disableSubmit();if(!document.getElementById("tos_checkbox").checked){document.getElementById("tos_message").innerHTML="You must check the box to accept the Terms of Service.";this.showError();return;}document.getElementById("tos_message").innerHTML="";this.params1=dojo.formToObject(this.form1);this.params1.verifypassword=this.params1.password;delete this.params1.birthday_month;delete this.params1.birthday_day;delete this.params1.birthday_year;this.params1.birthday=this.dateOfBirth.getValueAsObject();if(this.scoreToken&&this.gameId){this.params1.scoresToken=this.scoreToken;this.params1.gameId=parseInt(this.gameId);}var _4cf=new ag.widget.validation.RegistrationValidationRules(1);var _4d0=new qi.validation.Validator(_4cf);var _4d1=_4d0.validate(this.params1);var rf=_4d1.fields;this.sendRegistrationFail(rf.username,rf.email,rf.password,rf.password,rf.birthday,rf.birthday,rf.birthday);this.validationResultDispatcher1.clearMessages();this.validationResultDispatcher1.dispatch(_4d1);if(_4d1.isValid()){this.checkName();var _4d3=this._registerService["registerService.register"];var _4d4=_4d3(this.params1);_4d4.addCallback(dojo.hitch(this,this._handleRegister));_4d4.addErrback(dojo.hitch(this,this._handleError));}else{this.showError();}},_handleRegister:function(_4d5){var _4d6=new qi.validation.Result();this.validationResultDispatcher1.clearMessages();this.validationResultDispatcher1.dispatch(_4d6);this.sendRegistrationSuccess();ag.event.EventBus.APPLICATION.REGISTER.publish([_4d5,this.params1.email]);this.showConfirmDiv();},_handleError:function(_4d7){var _4d8=new qi.validation.Result();_4d8.fields=_4d7["errorObject"].error.fields;_4d8.messages=_4d7["errorObject"].error.messages;this.showError();this.validationResultDispatcher1.clearMessages();this.validationResultDispatcher1.dispatch(_4d8);},onResendEmailVerification:function(e){e.preventDefault();var _4da={"username_email":this.username.getValue(),"password":this.password.getValue()};var _4db=new ag.services.JsonServiceFactory("loginService.passwordReminder").method(_4da);_4db.addCallback(dojo.hitch(this,function(_4dc){dojo.removeClass(this.emailVerifyResent,"displayNone");dojo.addClass(this.emailVerifyResend,"displayNone");}));_4db.addErrback(dojo.hitch(this,function(err){var _4de=new qi.validation.Result();_4de.fields=err["errorObject"].error.fields;_4de.messages=err["errorObject"].error.messages;this.validationResultDispatcher3.clearMessages();this.validationResultDispatcher3.dispatch(_4de);}));},resetParamsToDefault:function(){try{if(com.mtvi.util.isDefined(dispatcher)){com.mtvi.reporting.Account={name:"viaaddictinggames",dynamicAccountSelection:true,dynamicAccountList:"viaaddictinggamesdev=dev.addictinggames.com",linkInternalFilters:"javascript:,addictinggames.com",trackExternalLinks:true,trackDownloadLinks:true};dispatcher.setAttribute("pageName","/"+channel+pageName);dispatcher.setAttribute("channel",channel+pageName);dispatcher.setAttribute("hier2",hier2);}}catch(e){}},omniSetOverrides:function(or,_4e0){try{this.resetParamsToDefault();var ro={};for(i in or){var tmpi=i.replace(/s_/,"");tmpi=(tmpi=="account")?"name":tmpi;ro[tmpi]=or[i];if(tmpi=="name"){if(_4e0){if(_4e0=="append"){var _4e3=new RegExp("^"+ro[tmpi]+"$|^"+ro[tmpi]+",|,"+ro[tmpi]+"$|,"+ro[tmpi]+",");if(!_4e3.test(com.mtvi.reporting.Account.name)){com.mtvi.reporting.Account.name+=","+ro[tmpi];}}else{if(_4e0=="overwrite"){com.mtvi.reporting.Account.name=ro[tmpi];}}}ro[tmpi]=com.mtvi.reporting.Account.name;}}ro.dynamicAccountSelection=true;ro.linkInternalFilters="javascript:,addictinggames.com";ro.trackExternalLinks=true;ro.trackDownloadLinks=true;if(com.mtvi.util.isDefined(dispatcher)){dispatcher.setAccountVars(ro);}}catch(e){}},sendRegistrationStart:function(){try{this.omniSetOverrides({name:"viaagregistration",pageName:"Registration: Start"},"overwrite");dispatcher.sendCall();}catch(e){}},sendRegistrationSuccess:function(){try{this.omniSetOverrides({name:"viaagregistration",pageName:"Registration: Success"},"overwrite");dispatcher.sendCall();}catch(e){}},sendRegistrationFail:function(_4e4,_4e5,_4e6,_4e7,_4e8,_4e9,_4ea){try{var _4eb="";if(_4e4){_4eb+="userName,";}if(_4e5){_4eb+="email,";}if(_4e6){_4eb+="password,";}if(_4e7){_4eb+="verifyPassword,";}if(_4e8){_4eb+="birthDay,";}if(_4e9){_4eb+="birthMonth,";}if(_4ea){_4eb+="birthYear,";}if(_4eb){this.omniSetOverrides({name:"viaagregistration",pageName:"Registration: Fail",prop1:_4eb},"overwrite");dispatcher.sendCall();}}catch(e){}}});}if(!dojo._hasResource["ag.widget.Popup"]){dojo._hasResource["ag.widget.Popup"]=true;dojo.provide("ag.widget.Popup");(function(){ag.widget.Popup.getCenterCoords=function(_4ec,_4ed){var _4ee=dijit.getViewport();var xPos=_4ee.l+((_4ee.w-_4ec)/2);var yPos=_4ee.t+((_4ee.h-_4ed)/2);var _4f1=(_4ee.w-974)/2;_4f1=_4f1<0?0:_4f1;var maxX=_4f1+650-_4ee.l-_4ec;xPos=xPos>maxX?maxX:xPos;var minY=_4ee.t<105?105:_4ee.t;yPos=yPos<minY?minY:yPos;var args={x:xPos,y:yPos};return args;};})();}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(_4f5){this._subscriptions.push(_4f5);return this;},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});this.inherited("destroy",arguments);}});}if(!dojo._hasResource["ag.widget.user.RegisterPopup"]){dojo._hasResource["ag.widget.user.RegisterPopup"]=true;dojo.provide("ag.widget.user.RegisterPopup");(function(){var lock=false;dojo.declare("ag.widget.user.RegisterPopup",[qi.widget.FixedSizeDialog],{css_class:"registration",title:"Register for AddictingGames",createContent:function(){var args={popup:this};if(this.email){args.email=this.email;}if(this.redirect){args.redirect=this.redirect;}if(this.scoreToken){args.scoreToken=this.scoreToken;}if(this.gameId){args.gameId=this.gameId;}return new ag.widget.RegisterForm(args,document.createElement("span"));},hide:function(){this.inherited("hide",arguments);lock=false;},hideConf:function(){this.hide();if(ag.widget.user.LoginPopup.redirect){window.location=ag.widget.user.LoginPopup.redirect;}},configureWrapper:function(_4f9){var _4fa=$(_4f9).find(".registration");_4fa.jqm({modal:true,trigger:false,toTop:true});}});ag.widget.user.RegisterPopup.showPopup=function(_4fb){ag.event.EventBus.APPLICATION.HIDE_POPUP.publish();if(!lock){lock=true;var _4fc=new ag.widget.user.RegisterPopup(_4fb,document.createElement("span"));var _4fd=new qi.widget.TopicSubscription({},document.createElement("span"));_4fc.domNode.appendChild(_4fd.domNode);_4fd.addSubscription(ag.event.EventBus.APPLICATION.LOGIN.subscribe(_4fc,"hide"));_4fd.addSubscription(ag.event.EventBus.APPLICATION.HIDE_POPUP.subscribe(_4fc,"hide"));_4fc.show(_4fb);}};ag.widget.user.RegisterPopup.handlePageAction=function(){if(ag.user.LoggedInUser.isUserLoggedIn()){return;}var _4fe=qi.util.getQueryStringValue("pageAction");if(_4fe=="showRegisterPopup"){var args={};args.email=qi.util.getQueryStringValue("email");args.scoreToken=qi.util.getQueryStringValue("sctkn");args.gameId=qi.util.getQueryStringValue("scgid");args.redirect=qi.util.getQueryStringValue("redirect");ag.widget.user.RegisterPopup.showPopup(args);}};dojo.addOnLoad(ag.widget.user.RegisterPopup.handlePageAction);})();}if(!dojo._hasResource["ag.widget.user.LoginPopup"]){dojo._hasResource["ag.widget.user.LoginPopup"]=true;dojo.provide("ag.widget.user.LoginPopup");(function(){var lock=false;dojo.declare("ag.widget.user.LoginPopup",[qi.widget.FixedSizeDialog],{css_class:"login",title:"Log In",createContent:function(){var args={popup:this};if(this.headerMessage){args.headerMessage=this.headerMessage;}if(this.email){args.email=this.email;}if(this.scoreToken){args.scoreToken=this.scoreToken;}if(this.gameId){args.gameId=this.gameId;}if(this.redirect){args.redirect=this.redirect;}return new ag.widget.LoginForm(args,document.createElement("span"));},configureWrapper:function(_502){var _503=$(_502).find(".login");_503.jqm({modal:true,trigger:false,toTop:true});},hide:function(){this.inherited("hide",arguments);lock=false;}});ag.widget.user.LoginPopup.showPopup=function(_504){ag.event.EventBus.APPLICATION.HIDE_POPUP.publish();if(!lock){lock=true;var args={};_504=_504||{};dojo.mixin(args,_504);var _506=new ag.widget.user.LoginPopup(args,document.createElement("span"));var _507=new qi.widget.TopicSubscription({},document.createElement("span"));_506.domNode.appendChild(_507.domNode);_507.addSubscription(ag.event.EventBus.APPLICATION.HIDE_POPUP.subscribe(_506,"hide"));_507.addSubscription(ag.event.EventBus.APPLICATION.LOGIN.subscribe(_506,"hide"));_507.addSubscription(ag.event.EventBus.APPLICATION.LOGIN_SHOW_CAPTCHA.subscribe(function(){dojo.addClass(_506.domNode,"loginPopupShowCaptcha");}));_506.show(args);}};ag.widget.user.LoginPopup.handlePageAction=function(){if(ag.user.LoggedInUser.isUserLoggedIn()){return;}var _508=qi.util.getQueryStringValue("pageAction");if(_508=="showLoginPopup"){var args={};args.email=qi.util.getQueryStringValue("email");var _50a=qi.util.getQueryStringValue("gameInvitor");if(_50a){args.headerMessage="Log in to play against "+_50a;}args.scoreToken=qi.util.getQueryStringValue("sctkn");args.gameId=qi.util.getQueryStringValue("scgid");args.redirect=qi.util.getQueryStringValue("redirect");ag.widget.user.LoginPopup.showPopup(args);}};dojo.addOnLoad(ag.widget.user.LoginPopup.handlePageAction);})();}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(_50b){var _50c=_50b.topic;var _50d=_50b.callbackFunction;var _50e=_50b.disconnectOnlyOnTrue;if(typeof (_50e)=="undefined"){_50e=false;}var _50f=dojo.subscribe(_50c,function(){var _510;try{_510=_50d.apply(null,arguments);}catch(e){console.warn("callback ",_50d,"threw",e,e.message,e.stack,e.filename,e.lineNumber);}if(false==_50e||(true==_50e&&true==_510)){dojo.unsubscribe(_50f);}});}});}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(_511){if(ag.user.LoggedInUser.isUserLoggedIn()){_511.callbackFunction();}else{ag.widget.user.LoginPopup.showPopup(_511);new qi.event.OneShotSubscription({topic:ag.event.EventBus.APPLICATION.LOGIN.topic,callbackFunction:_511.callbackFunction});}}});}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(_513){dojo.publish(this.topic,[{eventType:"processing",caller:this}]);if(ag.user.LoggedInUser.isUserLoggedIn()&&(!this.userGameRating.rated||_513!=this.userGameRating.rating)){var self=this;var _515=this.service({uuid:ag.user.LoggedInUser.getSessionUserUuid(),gameId:this.gameId,"rating":_513});_515.addCallback(dojo.hitch(this,function(){var _516=this.userGameRating.rated;this.userGameRating.reflectChangedVote(_513);this.gameRatingTotal.reflectChangedVote(_516,_513);this._onModelUpdated();}));_515.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(_517){var _518=ag.widget.ratings.GameRatingModel.getByGameId(_517);if(typeof (_518)=="undefined"){var span=document.createElement("span");dojo.body().appendChild(span);_518=new ag.widget.ratings.GameRatingModel({gameId:Number(_517)},span);}return _518;};ag.widget.ratings.GameRatingModel.modelExistsForGame=function(_51a){var _51b=ag.widget.ratings.GameRatingModel.getByGameId(_51a);return Boolean(typeof (_51b)!="undefined");};ag.widget.ratings.GameRatingModel.getByGameId=function(_51c){var _51d="GameRatingModel_"+_51c;return dijit.byId(_51d);};dojo.declare("ag.widget.ratings.GameRatingTotal",null,{constructor:function(_51e,_51f){_51e=""+_51e;var _520=dojo.xhrGet({url:_51f+_51e,timeout:20000,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_520.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_520.addErrback(dojo.hitch(this,function(err){if(/.*404.*/.test(""+err.message)){this._fillFromServer({good:0,bad:0,gameId:_51e});this.loadCompleted.callback(this);}else{this.loadCompleted.errback(err);}}));},_fillFromServer:function(_523){dojo.mixin(this,_523);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(_525,_526){var _527={good:this.good,bad:this.bad};if(_526){if("G"==_526){++_527.good;if(_525&&_527.bad>0){--_527.bad;}}else{if("B"==_526){_527.bad+=1;if(_525&&_527.good>0){--_527.good;}}}this._fillFromServer(_527);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=[ag.event.EventBus.APPLICATION.LOGOUT.subscribe(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(_529){if("model"==_529.eventType){this._onLoadUserGameRating();}else{if("processing"==_529.eventType){this._changeState(new ag.widget.ratings.Processing({gameId:this.gameId},this.content));}else{if("votefailed"==_529.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(_52a){if("model"==_52a.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(_52d){new ag.widget.user.RequireLoggedIn({callbackFunction:dojo.hitch(this,function(){ag.widget.ratings.GameRatingModel.findByGameId(this.gameId).setRating(_52d);}),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.InverseRegexp"]){dojo._hasResource["qi.validation.InverseRegexp"]=true;dojo.provide("qi.validation.InverseRegexp");dojo.declare("qi.validation.InverseRegexp",null,{constructor:function(key,_530,_531){this._key=key;this._message=_530;this._regexp=_531;},validate:function(_532,_533){var _534=_532[this._key];if(this._regexp.test(_534)==true){_533.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(_535){var idx=_535-1;if(this._pages.length<_535||typeof (this._pages[idx])=="undefined"){this._pages[idx]=this._makePageModel(_535);if(this._pages[idx]==null||typeof (this._pages[idx])=="undefined"){throw new Error("page model problem");}}return this._pages[idx];},_makePageModel:function(_537){throw new Error("Subclass must override _makePageModel");},loadPage:function(_538,_539){var page=this.getPage(_538);page.loadCompleted.addCallback(dojo.hitch(this,function(){this.totalPages=page.totalPages;if(_539){this.totalPages+=_539;}if(1==_538){this._hasReviews=page.hasReviews();}dojo.publish(this.topic,[{eventType:"pageLoaded",pageNum:_538,page:page}]);}));page.loadCompleted.addErrback(dojo.hitch(this,function(){dojo.publish(this.topic,[{eventType:"pageLoadFailed",pageNum:_538}]);}));},hasReviews:function(){return this._hasReviews;}});dojo.declare("ag.widget.gamereviews.GameReviewModelPageUrl",null,{dataPath:dojo.moduleUrl("agjson"),TYPES:{home:"recentReviews/frontPage",recent:"recentReviews"},getUrlForGame:function(_53b,page){var _53b=String(_53b);return this.dataPath+"reviews/"+_53b+"?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 _541=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_541.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_541.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(_544){dojo.mixin(this,_544);},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(_545){return new ag.widget.gamereviews.GameReviewsModelPageBase(_545,new ag.widget.gamereviews.GameReviewModelPageUrl().getUrlForGame(this.gameId,_545));},postReview:function(data){if(ag.user.LoggedInUser.isUserLoggedIn()){ag.user.LoggedInUser.mixinSessionUserUuid(data);data.gameId=parseInt(this.gameId);var _547=this._save(data);_547.addCallback(dojo.hitch(this,function(_548){this.getPage(1).loadCompleted.addCallback(dojo.hitch(this,function(){this.loadPage(1);}));dojo.publish(this.topic,[{eventType:"saved",data:data,result:_548}]);}));_547.addErrback(dojo.hitch(this,function(err){dojo.publish(this.topic,[{eventType:"failure","error":err}]);}));}},deleteMyReview:function(_54a){if(ag.user.LoggedInUser.isUserLoggedIn()){var data={reviewId:_54a};ag.user.LoggedInUser.mixinSessionUserUuid(data);var _54c=this._delete(data);_54c.addCallback(dojo.hitch(this,function(_54d){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,_551){return Number(elt.reviewId)!=Number(_54a);});if(page.reviews.length==0&&this.getTotalPages()!=1){if(this.displayingPage<=this.getTotalPages()){--this.totalPages;this._pages=dojo.filter(this._pages,function(elt,idx,_554){return elt!=page;});if(this.displayingPage>this.getTotalPages()){this.displayingPage=this.getTotalPages();}}}this.loadPage(this.displayingPage,-1);}));}));_54c.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(_556){var _557="GameReviewModel_"+_556;var _558=dijit.byId(_557);if(typeof (_558)=="undefined"){var span=document.createElement("span");dojo.body().appendChild(span);_558=new ag.widget.gamereviews.Model({gameId:_556},span);}return _558;};}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(_55f){if(_55f.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(_560){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 _565=this._validator.validate(data);if(_565.isValid()){this.postedReview=true;this.reviewModel.postReview(data);ag.event.EventBus.UI.REVIEW_SUBMITTED.publish();}else{ag.event.EventBus.UI.REVIEW_FAILED.publish();this.validationResultDispatcher.dispatch(_565);}},_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(_568){if(null!=_568){this._disableTextareaMonitorAndPaste(_568);}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(_56a){this.reviewInput.value=_56a;}});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["ag.datetime.Duration"]){dojo._hasResource["ag.datetime.Duration"]=true;dojo.provide("ag.datetime.Duration");(function(){dojo.declare("ag.datetime.Duration",null,{constructor:function(_56c,end){this.start=_56c;this.end=end||new Date();this._allowFuture=true;},disallowFuture:function(){this._allowFuture=false;return this;},asReadableString:function(){var _56e=dojo.date.compare(this.start,this.end);var _56f;var _570=this.start;var end=this.end;if(_56e<=0){_56f=" ago";}else{if(!this._allowFuture){return "moments ago";}else{_56f=" from now";_570=this.end;end=this.start;}}var _572=date_difference(_570,end,"month");var _573=date_difference(_570,end,"week");var days=date_difference(_570,end,"day");var _575=date_difference(_570,end,"hour");var mins=date_difference(_570,end,"minute");if(_572>6){return "&gt; 6 months"+_56f;}var secs=date_difference(_570,end,"second");if(_572>=2){return ""+_572+" months"+_56f;}if(1==_572&&days>=30){return "1 month"+_56f;}if(_573>1){return ""+_573+" weeks"+_56f;}if(1==_573&&days>=7){return "1 week"+_56f;}if(days>1){return ""+days+" days"+_56f;}if(1==days&&_575>=24){return "1 day"+_56f;}if(_575>1){return ""+_575+" hours"+_56f;}if(1==_575&&mins>=60){return "1 hour"+_56f;}if(60==mins){return "1 hour"+_56f;}if(mins>1){return ""+mins+" minutes"+_56f;}if(1==mins){return "1 minute"+_56f;}if(secs>1){return ""+secs+" seconds"+_56f;}if(1==secs){return "1 second"+_56f;}return "now";}});date_difference=function(_578,_579,_57a){_579=_579||new Date();_57a=_57a||"day";var _57b=_579.getFullYear()-_578.getFullYear();var _57c=1;switch(_57a){case "quarter":var m1=_578.getMonth();var m2=_579.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_57b*4);_57c=q2-q1;break;case "weekday":var days=Math.round(date_difference(_578,_579,"day"));var _582=parseInt(date_difference(_578,_579,"week"));var mod=days%7;if(mod==0){days=_582*5;}else{var adj=0;var aDay=_578.getDay();var bDay=_579.getDay();_582=parseInt(days/7);mod=days%7;var _587=new Date(_578);_587.setDate(_587.getDate()+(_582*7));var _588=_587.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 (_588+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 (_588+mod)<0:adj=2;}}}days+=adj;days-=(_582*2);}_57c=days;break;case "year":_57c=_57b;break;case "month":_57c=(_579.getMonth()-_578.getMonth())+(_57b*12);break;case "week":_57c=parseInt(date_difference(_578,_579,"day")/7);break;case "day":_57c/=24;case "hour":_57c/=60;case "minute":_57c/=60;case "second":_57c/=1000;case "millisecond":_57c*=_579.getTime()-_578.getTime();}return Math.floor(_57c);};})();}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(_589,_58a,_58b){_589._position=function(){dijit.placeOnScreenAroundElement(_589.domNode,_58a,_58b);};};}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(){this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,this._onLogIn));this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,this._onLogOut));if(ag.user.LoggedInUser.isUserLoggedIn()){this._onLogIn();}},_onLogIn:function(){if(Number(ag.user.LoggedInUser.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 _592=this._getModel();var _593=document.createElement("span");this.domNode.appendChild(_593);var _594=new qi.widget.TopicSubscription({},_593);_594.subscribe(_592.topic,dojo.hitch(this,function(_595){if("deleted"==_595.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 _5a3=this._flag(data);_5a3.addCallback(dojo.hitch(this,function(_5a4){this._close();}));_5a3.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["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],{_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 _5a9=/\s/;var idx=0;for(idx=this.maxLength;idx>1;--idx){if(_5a9.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 _5af=this.model.getTotalPages();if(_5af>1){var _5b0=(1==this.model.displayingPage);var _5b1=(Number(_5af)==this.model.displayingPage);(_5b0?dojo.addClass:dojo.removeClass)(this.prevLink,"dispnone");(_5b1?dojo.addClass:dojo.removeClass)(this.nextLink,"dispnone");this.current.innerHTML=this.model.displayingPage+" of "+_5af;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(_5b2){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(_5b4){this.removeChild(_5b4);_5b4.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 _5b6=msg.result.review;var _5b7=this._createGameReviewWidget(_5b6);dojo.style(_5b7.domNode,"opacity",0);if(null!=this.container.firstChild&&"undefined"!=this.container.firstChild){this.container.insertBefore(_5b7.domNode,this.container.firstChild);}else{this.container.appendChild(_5b7.domNode);}dojo.fadeIn({node:_5b7.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(_5ba){return new ag.widget.gamereviews.GameReview(_5ba,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._handles=[ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,this._checkState),ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,this._checkState)];},destroy:function(){dojo.forEach(this._handles,function(_5bc){dojo.unsubscribe(_5bc);});ag.widget.UserLoggedInConditionalWidget.superclass.destroy.apply(this,arguments);},_shouldDisplay:function(){var _5bd=ag.user.LoggedInUser.isUserLoggedIn();var _5be=((_5bd&&this.showOnStateLogged==this.states.IN)||(!_5bd&&this.showOnStateLogged==this.states.OUT));return _5be;},_checkState:function(){var _5bf=this._shouldDisplay();if(_5bf&&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=\"ag.widget.user.RegisterPopup.showPopup(); return false;\">Join AddictingGames</a> for FREE or <a href=\"#Login\" onclick=\"ag.widget.user.LoginPopup.showPopup(); return false;\"> login now </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(_5c3){return new ag.widget.gamereviews.GameReviewsModelPageBase(_5c3,new ag.widget.gamereviews.GameReviewModelPageUrl().getUrlForType(this.type,_5c3));}});(function(){var _5c4={};ag.widget.gamereviews.RecentReviewsModel.getModel=function(type){if(typeof (_5c4[type])=="undefined"){_5c4[type]=new ag.widget.gamereviews.RecentReviewsModel(type);}return _5c4[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["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(_5cf){_5cf=_5cf||1;if(!this.isShowingNow&&!this._showTimer){this._showTimer=setTimeout(dojo.hitch(this,"open"),this.showDelayMs/_5cf);}},_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 _5d1=dojo.coords(this.image,true);_5d1.x+=Number(this.offsetX);_5d1.y+=Number(this.offsetY);return _5d1;},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 _5d7=Math.max(view.t,this.HEADER_TOP_RESERVED_AREA_H);var _5d8=view.h+view.t;var _5d9=abs.y+abs.h;var _5da=_5d8-_5d9;var _5db=abs.y-_5d7;var _5dc=this.BOX_H_PX;if("R"!=gil.position){_5dc+=this.ARROW_H_PX;}var _5dd=true;if(_5da<_5dc&&_5db>=_5dc){_5dd=false;}dojo.addClass(this._arrow,_5dd?"gliarrowdn":"gliarrowup");if("R"==gil.position){abs.x+=this.R_IMG_X_OFFSET;if(_5dd){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 _5de=(abs.x+abs.w/2)-(this.BOX_W_PX/2);var x=_5de;if(_5de<0){x=0;}if(_5dd){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(_5de)<0){dojo.style(this._arrow,"left",Math.max(this.BOX_CURVE_PX,(this.BOX_W_PX/2-this.ARROW_W_PX/2)+_5de));}}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 _5e2=/(\d+)-(\d+)-(\d+)/.exec(this.pubdate);if(_5e2){var year=1;var _5e4=2;var day=3;var _5e6=_5e2[year].length>2?_5e2[year].substring(_5e2[year].length-2):_5e2[year];this.pubdate=String(Number(_5e2[_5e4]))+"/"+dojo.string.pad(_5e2[day],2,"0")+"/"+_5e6;}if(dojo.isArray(this.genres)){this.genre=qi.util.escapeHTML(this.genres[0]);}else{this.genre="";}},postCreate:function(){if(null!=this.maturity){var _5e7=new ag.widget.games.GameInfoMaturityWarning({"maturityText":this.maturity});this.maturityRating.appendChild(_5e7.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(_5ea){this.gameId=_5ea;var _5eb=this.gameId.substring(this.gameId.length-1)+"/";var _5ec=dojo.xhrGet({url:this.gameInfoPath+_5eb+this.gameId+".js",handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_5ec.addCallback(dojo.hitch(this,function(game){ag.widget.games.GameDataHelper.deriveAdditionalGameData(game);this.game=game;this.loadCompleted.callback(this.game);}));_5ec.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 _5ee=ag.widget.StatusCookie.getWidgetStatusValue("topGamesPeriod");if(null!=_5ee&&"undefined"!=_5ee){this.currentPeriod=_5ee;}this._loadPeriodWithCallback();},_getDefaultPeriod:function(){return this.periods.WEEK;},_validCurrentPeriod:function(){return dojo.indexOf(qi.util.mapValues(this.periods),this.currentPeriod)!=-1;},_loadPeriod:function(_5ef){if(ag.widget.games.genre.GenrePanel.KIND_FILTER==this._kind&&this.genreId){this.model.load(_5ef,this.baseDataLocation+"/plays?period="+_5ef+"&filter="+this.genreId);}else{if(ag.widget.games.genre.GenrePanel.KIND_GENRE==this._kind&&this.genreId){this.model.load(_5ef,this.baseDataLocation+"/plays?period="+_5ef+"&channel="+this.genreId);}else{if(this.channelId){this.model.load(_5ef,this.baseDataLocation+"/plays?period="+_5ef+"&channel="+this.channelId);}else{this.model.load(_5ef,this.baseDataLocation+"/plays?period="+_5ef);}}}},_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(_5f0){this.currentPeriod=_5f0;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 _5f1=this._gameWidgets.pop();this.removeChild(_5f1);_5f1.destroyRecursive();}this._addGames(this.model[this.currentPeriod].games);dojo.removeClass(this.domNode,"progress");},_filterGames:function(){var _5f2=this.model[this.currentPeriod].games;if(this.selectedGenre!=""){_5f2=dojo.filter(this.model[this.currentPeriod].games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this.selectedGenre)!=-1;}));}return _5f2;},_periodChangedDataLoaded:function(){this.period.selectTabPostClick(this[this.currentPeriod+"Tab"]);this._populateGames();},_addGames:function(_5f4){var i=0;for(;i<this.maxGamesToDisplay&&i<_5f4.length;++i){var game={ordinal:i+1};dojo.mixin(game,_5f4[i]);var _5f7=this.createGameWidget(game);this._gameWidgets.push(_5f7);this._addGame(_5f7);}},_addGame:function(_5f8){this.output.appendChild(_5f8.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 _5fb=this.CHANNEL_LIST;dojo.forEach(_5fb,dojo.hitch(this,function(_5fc){var _5fd=String(this.selectedGenre)==_5fc;this.genreList.options[this.genreList.options.length]=new Option(_5fc,_5fc,_5fd,_5fd);}));var _5fe=ag.widget.StatusCookie.getWidgetStatusValue("topGamesGenre");if(null!=_5fe&&"undefined"!=_5fe){this.genreList.value=_5fe;this.selectedGenre=_5fe;}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(_600,url){this[_600]=new ag.widget.games.GamesForTimePeriod();this[_600].load(url);}});dojo.declare("ag.widget.games.GamesForTimePeriod",null,{constructor:function(){this.loadCompleted=new dojo.Deferred();},load:function(url){var _603=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});var self=this;_603.addCallback(function(data){self._onDataAvailable(data);});_603.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 _608=[];var seen={};dojo.forEach(this.games,function(game){dojo.forEach(game.genres,function(_60b){if(typeof seen[_60b]=="undefined"){seen[_60b]=true;_608.push(_60b);}});});_608.sort();this.genres=_608;}});ag.widget.games.GameDataHelper={GAMEURLBASE:"/",PICONBASE:"/fimages/",deriveAdditionalGameData:function(_60c){if(dojo.isArray(_60c)){dojo.forEach(_60c,ag.widget.games.GameDataHelper.deriveAdditionalGameData);}else{var game=_60c;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 Reviews</span>\n\t</div>\n\t<div dojoAttachPoint=\"container\"></div>\n\t<div class=\"hr-more\"><a href=\"/static/recentreviews.html\">More&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 _60e=this.model.getPage(1);_60e.loadCompleted.addCallback(dojo.hitch(this,function(mp){for(var idx in mp.reviews){ag.widget.games.GameDataHelper.deriveAdditionalGameData(mp.reviews[idx]);var _611=new ag.widget.gamereviews.HomePageRecentGameReview(mp.reviews[idx],document.createElement("span"));this.container.appendChild(_611.domNode);}}));_60e.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(_613){ag.widget.games.GameDataHelper.deriveAdditionalGameData(_613);return new ag.widget.gamereviews.RecentGameReview(_613,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(ag.user.LoggedInUser.isUserLoggedIn()){var _614=this._getQueryLimit();var _615={types:["favorites"],limit:_614};ag.user.LoggedInUser.mixinSessionUserUuid(_615);var _616=this._getFavoritesService(_615);_616.addCallback(dojo.hitch(this,function(_617){var _618=_617["favorites"];dojo.forEach(_618,function(game){game.gameId=game.id;delete game.id;ag.widget.games.GameDataHelper.deriveAdditionalGameData(game);});this._games=_618;this.dataLoaded=true;dojo.publish(ag.favorites.Model.TOPIC,[{eventType:"gotFavorites"}]);}));_616.addErrback(dojo.hitch(this,function(_61a){console.debug("error calling get favorites service",_61a);dojo.publish(ag.favorites.Model.TOPIC,[{eventType:"gotFavorites"}]);this.dataLoaded=true;}));}},getFavorites:function(){return this._games;},removeFavorite:function(_61b){var _61c={gameId:_61b};ag.user.LoggedInUser.mixinSessionUserUuid(_61c);return this._removeFavoriteService(_61c);}});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(_61d){this._games=_61d;var _61e=dojo.map(this._games,function(game){return game.gameId;});var _620={type:"favorites",gameIds:_61e};ag.user.LoggedInUser.mixinSessionUserUuid(_620);this._saveFavoritesService(_620);}});ag.favorites.Model.TOPIC="ag.favorites.Model.TOPIC";(function(){var _621=null;ag.favorites.Model.getFavoritesModel=function(){if(_621==null){_621=new ag.favorites.FavoritesModel();}return _621;};ag.favorites.Model.nullifyFavorites=function(){_621=null;};var _622=null;ag.favorites.Model.getHpFavoritesModel=function(){if(_622==null){_622=new ag.favorites.HomepageFavoritesModel();}return _622;};ag.favorites.Model.nullifyHpFavorites=function(){_622=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(_623){this.topic=ag.favorites.SimpleModel.getTopic(_623);},addFavorite:function(_624){var _625={gameId:_624};ag.user.LoggedInUser.mixinSessionUserUuid(_625);var _626=this._addFavoriteService(_625);_626.addCallback(dojo.hitch(this,function(_627){this.favorited=true;dojo.publish(ag.favorites.SimpleModel.getTopic(_624),[{eventType:"addFavorite-success",model:this}]);}));_626.addErrback(dojo.hitch(this,function(_628){dojo.publish(ag.favorites.SimpleModel.getTopic(_624),[{eventType:"addFavorite-failure",error:_628}]);}));},isFavorited:function(_629){var _62a={gameId:_629,types:["favorites"]};ag.user.LoggedInUser.mixinSessionUserUuid(_62a);var _62b=this._isFavoritedService(_62a);_62b.addCallback(dojo.hitch(this,function(_62c){dojo.mixin(this,{favorited:_62c});dojo.publish(ag.favorites.SimpleModel.getTopic(_629),[{eventType:"isFavorited-success",model:this,response:_62c}]);}));_62b.addErrback(dojo.hitch(this,function(_62d){dojo.publish(ag.favorites.SimpleModel.getTopic(_629),[{eventType:"isFavorited-failure",response:_62d}]);}));}});ag.favorites.SimpleModel.getTopic=function(_62e){return "/favorites/"+String(_62e);};(function(){var _62f=function(_630){return "_"+_630;};var _631={};ag.favorites.SimpleModel.getModel=function(_632){var key=_62f(_632);if(_631[key]==null){_631[key]=new ag.favorites.SimpleModel(_632);}return _631[key];};ag.favorites.SimpleModel.nullify=function(_634){var key=_62f(_634);delete _631[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(){this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGIN.subscribe(dojo.hitch(this,"_onLogin")));this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGOUT.subscribe(dojo.hitch(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(_636){if(_636.action=="FAVORITES_COLLECTION_FULL"){this._createAndShowFavoritesFullForm(_636);}}));this.resultDispatcher.addMappedCallback("messages",function(){});if(ag.user.LoggedInUser.isUserLoggedIn()){this._initializeModel();}},_createAndShowFavoritesFullForm:function(_637){if(false==this.isFramedGame){var span=document.createElement("span");dojo.body().appendChild(span);var dlg=new qi.widget.FlashTopicContainerDialog({},span);var _63a={dialog:dlg,favoritesURL:this._favoritesURL};dojo.mixin(_63a,_637);var form=new ag.widget.games.favorites.FavoritesFullForm(_63a,span);dlg.addChild(form);dlg.show();}else{var _63c=confirm("You already have "+_637.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(_63c){window.top.location=this._favoritesURL;}}},_initializeModel:function(){if(false==this._modelInitialized){var _63d=ag.favorites.SimpleModel.getModel(this.gameId);_63d.isFavorited(this.gameId);this._modelInitialized=true;}},_onLogin:function(){this._initializeModel();},_onLogout:function(){ag.favorites.SimpleModel.nullify(this.gameId);this._modelInitialized=false;},_onSimpleModel:function(_63e){if("addFavorite-success"==_63e.eventType||"isFavorited-success"==_63e.eventType||"isFavorited-failure"==_63e.eventType){}else{if(_63e.eventType=="addFavorite-failure"){this.resultDispatcher.dispatch(_63e.error);}else{console.debug("unknown event type",_63e);}}}});(function(){var _63f=function(_640){return "favoriteManager_"+_640.toString();};ag.widget.games.favorites.FavoriteManager.getFavoriteManager=function(_641,_642){var id=_63f(_641);var _644=dijit.byId(id);if(_644==null){_644=new ag.widget.games.favorites.FavoriteManager({id:id,gameId:_641,isFramedGame:_642},document.createElement("span"));dojo.body().appendChild(_644.domNode);}return _644;};}());}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(_645){this.isClicked=false;if("addFavorite-success"==_645.eventType){this._checkAlreadyFavorited(true);}else{if("addFavorite-failure"==_645.eventType||"isFavorited-failure"==_645.eventType){}else{if("isFavorited-success"==_645.eventType){this._checkAlreadyFavorited(_645.response);}else{console.debug("unknown event type",_645);}}}}));},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 _647=ag.favorites.SimpleModel.getModel(this.gameId);_647.addFavorite(this.gameId);}),headerMessage:"<em>You must be logged in to access this feature.</em>"});}else{this._favoriteFramedGame();}this.isClicked=false;}},_checkAlreadyFavorited:function(_648){if(_648){this.getParent()._showAsFavorited();}},_favoriteFramedGame:function(){if(ag.user.LoggedInUser.isUserLoggedIn()){var _649=ag.favorites.SimpleModel.getModel(this.gameId);_649.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(){this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGOUT.subscribe(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(_64b){this.manager=_64b;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 _651=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=_651.creator?node=_651._normalizedCreator(_651.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(_657){if(this.avatar){this.target=(_657&&_657.targetState!="Disabled")?_657:null;this.avatar.update();}dojo.publish("/dnd/source/over",[_657]);},outSource:function(_658){if(this.avatar){if(this.target==_658){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_659,_65a,copy){this.source=_659;this.nodes=_65a;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_659,_65a,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 _65e=this.target&&flag;if(this.canDropFlag!=_65e){this.canDropFlag=_65e;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 _663=[this.source,this.nodes,Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e))),this.target];dojo.publish("/dnd/drop/before",_663);dojo.publish("/dnd/drop",_663);}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 _671=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=_671.creator?node=_671._normalizedCreator(_671.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(_674){this.ordinal=_674;this.ordinalDiv.innerHTML=this.ordinal.toString();if(_674<=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(_679){this.output.appendChild(_679.domNode);},destroyGame:function(_67a,_67b){this.myFavorites.destroyGame(_67a,_67b);}});}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(_67c){dojo.stopEvent(_67c);this.myFavorites._onPrev();},_onNext:function(_67d){dojo.stopEvent(_67d);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,_67f){this.node=dojo.byId(node);if(!_67f){_67f={};}this.creator=_67f.creator||null;this.skipForm=_67f.skipForm;this.defaultCreator=dojo.dnd._defaultCreator(this.node);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(_67f&&_67f._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,_68a,_68b){if(!this.parent.firstChild){_68b=null;}else{if(_68a){if(!_68b){_68b=this.parent.firstChild;}}else{if(_68b){_68b=_68b.nextSibling;}}}if(_68b){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,_68b);}}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(_68e,node){_68e._skipStartup=true;return new dojo.dnd.Container(node,_68e);},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,_69a){var _69b="dojoDnd"+type;var _69c=type.toLowerCase()+"State";dojo.removeClass(this.node,_69b+this[_69c]);dojo.addClass(this.node,_69b+_69a);this[_69c]=_69a;},_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 _6a3=node.parentNode;_6a3;node=_6a3,_6a3=node.parentNode){if(_6a3==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 _6b4=dojo.isObject(item)&&item;var data=(_6b4&&item.data)?item.data:item;var type=(_6b4&&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,_6ba){if(!_6ba){_6ba={};}this.singular=_6ba.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(_6c3,data,_6c5,_6c6){var _6c7=this._normalizedCreator;this._normalizedCreator=function(item,hint){var t=_6c7.call(this,item,hint);if(_6c3){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,_6c5,_6c6);this._normalizedCreator=_6c7;return this;},destroy:function(){dojo.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},markupFactory:function(_6cb,node){_6cb._skipStartup=true;return new dojo.dnd.Selector(node,_6cb);},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,_6d7){if(!_6d7){_6d7={};}this.isSource=typeof _6d7.isSource=="undefined"?true:_6d7.isSource;var type=_6d7.accept instanceof Array?_6d7.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=_6d7.horizontal;this.copyOnly=_6d7.copyOnly;this.withHandles=_6d7.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(_6da,_6db){if(this==_6da){return true;}for(var i=0;i<_6db.length;++i){var type=_6da.getItem(_6db[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(_6e0){return this.copyOnly||_6e0;},destroy:function(){dojo.dnd.Source.superclass.destroy.call(this);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},markupFactory:function(_6e1,node){_6e1._skipStartup=true;return new dojo.dnd.Source(node,_6e1);},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 _6e5=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){_6e5=(e.pageX-this.targetBox.xy.x)<(this.targetBox.w/2);}else{_6e5=(e.pageY-this.targetBox.xy.y)<(this.targetBox.h/2);}}if(this.current!=this.targetAnchor||_6e5!=this.before){this._markTargetAnchor(_6e5);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}else{if(this.mouseDown&&this.isSource){var _6e6=this.getSelectedNodes();if(_6e6.length){m.startDrag(this,_6e6,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(_6e9){if(this!=_6e9){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(_6eb,_6ec,copy){if(this.isSource){this._changeState("Source",this==_6eb?(copy?"Copied":"Moved"):"");}var _6ee=this.accept&&this.checkAcceptance(_6eb,_6ec);this._changeState("Target",_6ee?"":"Disabled");if(_6ee&&this==_6eb){dojo.dnd.manager().overSource(this);}this.isDragging=true;},onDndDrop:function(_6ef,_6f0,copy){do{if(this.containerState!="Over"){break;}var _6f2=this._normalizedCreator;if(this!=_6ef){if(this.creator){this._normalizedCreator=function(node,hint){return _6f2.call(this,_6ef.getItem(node.id).data,hint);};}else{if(copy){this._normalizedCreator=function(node,hint){var t=_6ef.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=_6ef.getItem(node.id);_6ef.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 _6f2.call(this,_6ef.getItem(node.id).data,hint);};}else{if(!this.current){break;}this._normalizedCreator=function(node,hint){var t=_6ef.getItem(node.id);return {node:node,data:t.data,type:t.type};};}}else{if(copy){this._normalizedCreator=function(node,hint){var t=_6ef.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=_6ef.getItem(node.id);return {node:node,data:t.data,type:t.type};};}}}this._removeSelection();if(this!=_6ef){this._removeAnchor();}if(this!=_6ef&&!copy&&!this.creator){_6ef.selectNone();}this.insertNodes(true,_6f0,this.before,this.current);if(this!=_6ef&&!copy&&this.creator){_6ef.deleteSelectedNodes();}this._normalizedCreator=_6f2;}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(_708){if(this.current==this.targetAnchor&&this.before==_708){return;}if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}this.targetAnchor=this.current;this.targetBox=null;this.before=_708;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,_70d){this.isSource=false;dojo.removeClass(this.node,"dojoDndSource");},markupFactory:function(_70e,node){_70e._skipStartup=true;return new dojo.dnd.Target(node,_70e);}});}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 _710=this._model.getFavorites();if(_710.length>0){this._showWithFavorites();}else{this._showWithNoFavorites();}},_showWithFavorites:function(){var _711=new ag.widget.games.favorites.MyFavoritesWithGames({_model:this._model},document.createElement("span"));this._changeState(_711);},_showWithNoFavorites:function(){var _712=new ag.widget.games.favorites.MyFavoritesNoGames({},document.createElement("span"));this._changeState(_712);}});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 _713=dojo.dnd.manager();_713.OFFSET_X=3;_713.OFFSET_Y=3;this._createPage();},postMixInProperties:function(){this.username=ag.user.LoggedInUser.getSessionUsername()+"'s";},destroyGame:function(_714,_715){this._model.removeFavorite(_714);_715.destroyRecursive();this._updatePage();},_createPage:function(){var _716=new ag.widget.games.favorites.MyFavoritesPage({myFavorites:this},document.createElement("span"));var _717=this._model.getFavorites();for(var i=0;i<_717.length;i++){var _719=new ag.widget.games.DraggableGame({game:_717[i],ordinal:i+1},document.createElement("span"));_716.addGame(_719);}if(this._pageWidget!=null){this._pageWidget.destroyRecursive();this._pageWidget=null;}this._pageWidget=_716;this.favoritesContainer.appendChild(this._pageWidget.domNode);var _71a=new dojo.dnd.Source(_716.output,{singular:true,isSource:true,accept:["game"],horizontal:true});_71a.copyState=function(_71b){return false;};this.subscriptions.subscribe("/dnd/drop",dojo.hitch(this,"_onDrop"));},_updatePage:function(){var _71c=dojo.query("[dndType~=game]",this._pageWidget.output);if(_71c.length>0){for(var i=0;i<_71c.length;i+=1){var node=_71c[i];dijit.byNode(node).setOrdinal(i+1);}}else{this.getParent()._showWithNoFavorites();}},_onDrop:function(){var _71f=dojo.map(dojo.query("[dndType~=game]",this._pageWidget.output),function(node){return dijit.byNode(node).game;});this._updatePage();this._model.setFavorites(_71f);}});}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 _722=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelAlgorithm");if(null!=_722){var _723=_722[this.genreId];if(null!=_723&&"undefined"!=_723&&"viewAll"==_723){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(_726){if(_726.domNode.parentNode){_726.domNode.parentNode.removeChild(_726.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 _729=""+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:_729,key:_729,"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 _729="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:_729,key:_729,"class":"genremenu-wide",selected:idx==0},document.createElement("span"));tab.genrePage=page;tab.genrePageType="text";this.tabs.addChild(tab);}var _72b;if(this.tabs.hasChildren()){_72b=this.tabs.getChildren()[0];}var _72c=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelTab");if(null!=_72c){var _72d=_72c[this.genreId];if(null!=_72d&&"undefined"!=_72d){dojo.forEach(this.tabs.getChildren(),dojo.hitch(this,function(tab){if(_72d==tab.text){_72b=tab;}}));}}_72b.select();this._onTabClicked({eventType:"click",tab:_72b});},_onTabClicked:function(_72f){if("click"==_72f.eventType&&this.currentTab!=_72f.tab){this.currentTab=_72f.tab;ag.widget.StatusCookie.mixinWidgetStatus("genrePanelTab",this.currentTab.text,this.genreId);var _730;if("text"==_72f.tab.genrePageType){_730=new ag.widget.games.genre.GameWithTextLinkContainer({games:_72f.tab.genrePage.games},this.panel);}else{if("picon"==_72f.tab.genrePageType){_730=new ag.widget.games.genre.GameWithPiconContainer({games:_72f.tab.genrePage.games},this.panel);}}if(_730){this._changeState(_730);}}}});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 _731=5;var _732=0;dojo.forEach(this.games,dojo.hitch(this,function(game){var _734=new ag.widget.games.genre.GameWithPicon(game,document.createElement("span"));this.container.appendChild(_734.domNode);++_732;if(_732%_731==0&&_732!=50){var _735=document.createElement("div");dojo.addClass(_735,"genre-all-divider");this.container.appendChild(_735);}}));while(_732%_731!=0){var _736=document.createElement("div");dojo.addClass(_736,"genre-game-picon");this.container.appendChild(_736);_732++;}}});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 _737=3;var _738=Math.floor(this.games.length/_737);var _739=1;var _73a=0;dojo.forEach(this.games,dojo.hitch(this,function(game){var _73c=new ag.widget.games.genre.GameWithTextLink(game,document.createElement("span"));if(_739!=_737&&_73a==_738){++_739;_73a=0;}this["col"+_739].appendChild(_73c.domNode);++_73a;}));}});dojo.declare("ag.widget.games.genre.Model",null,{baseDataLocation:"",constructor:function(_73d,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=_73d;this.loadCompleted=new dojo.Deferred();var url=this.baseDataLocation+_73d+".js";var _740=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});_740.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);}));_740.addErrback(this.loadCompleted,"errback");},paginate:function(_744){var _745=[];var _746;var idx=0;for(idx=0;idx<this.games.length;idx+=_744){_746=this.games.slice(idx,Math.min(idx+_744,this.games.length));var _748=_746[0].title.charAt(0);if(/\d/.test(_748)){_748="A";}var _749=_746[_746.length-1].title.charAt(0);_745.push({startLetter:_748,endLetter:_749,games:_746});}return _745;}});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 _74a=ag.widget.StatusCookie.getWidgetStatusValue("genrePanelPeriod");if(null!=_74a&&"undefined"!=_74a&&null!=_74a[this.genreId]){this.currentPeriod=_74a[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(_74c){this.currentPeriod=_74c;ag.widget.StatusCookie.mixinWidgetStatus("genrePanelPeriod",this.currentPeriod,this.genreId);this._loadPeriodWithCallback();},_addGame:function(_74d){if(_74d.ordinal%5==1){this.rowDiv=document.createElement("div");if(_74d.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(_74d.domNode);if(_74d.ordinal%5==0&&_74d.ordinal!=this.maxGamesToDisplay){var _750=document.createElement("div");dojo.addClass(_750,"genre-popular-divider");this.output.appendChild(_750);}},_filterGames:function(){var _751=this.model[this.currentPeriod].games;if(this.selectedGenre!=""){if(ag.widget.games.genre.GenrePanel.KIND_FILTER==this._kind){return _751;}_751=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 _751;}});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=\"${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\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.Heartbeat"]){dojo._hasResource["ag.widget.games.Heartbeat"]=true;dojo.provide("ag.widget.games.Heartbeat");dojo.declare("ag.widget.games.Heartbeat",[dijit._Widget],{duration:20000,gameId:0,postCreate:function(){window.setTimeout(dojo.hitch(this,function(){var _753={serviceUrl:String(dojo.moduleUrl("agdynamic","servicesb")),method:"hb"};var _754=new ag.services.JsonServiceFactory(_753).method(this.gameId);_754.addCallback(dojo.hitch(this,function(_755){}));_754.addErrback(dojo.hitch(this,function(err){}));}),this.duration);}});}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 _758=new ag.widget.games.DraggableGame({game:this.favorites[i],ordinal:i+1},document.createElement("span"));this.output.appendChild(_758.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(_759,_75a){_75a.destroyRecursive();var _75b=ag.favorites.Model.getHpFavoritesModel();var _75c=_75b.removeFavorite(_759);_75c.addCallback(dojo.hitch(_75b,"_queryFavorites"));_75c.addErrback(dojo.hitch(_75b,"_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(){this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,this._onLogin));this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,this._onLogout));this.subscriptions.subscribe(ag.favorites.Model.TOPIC,dojo.hitch(this,"_onFavoritesLoaded"));if(!ag.user.LoggedInUser.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=\"ag.widget.user.LoginPopup.showPopup(); 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 _75d=new ag.widget.games.JustPlayedNoGames({},document.createElement("span"));this.container.appendChild(_75d.domNode);}else{var _75e=0;dojo.forEach(this.model.games,dojo.hitch(this,function(game){++_75e;if(_75e<=this.maxGames){var _760=new ag.widget.games.DraggableGame({game:game,ordinal:_75e},document.createElement("span"));this.container.appendChild(_760.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(_761){if(_761){dojo.mixin(this,_761);}var _762=dojo.cookie("recent0");this.recentIds=[];if(null!=_762){this.recentIds=_762.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(_766){if(_766){++this._errCt;}++this._callbackCt;if(this._callbackCt==this._numToFetch){var _767=[];dojo.forEach(this.games,dojo.hitch(this,function(game){if(typeof (game)!="undefined"){_767.push(game);}}));this.games=_767;this.loadCompleted.callback(this.games);}}});(function(){var _769=null;ag.widget.games.Recent.getRecentModel=function(_76a){if(_769==null){_769=new ag.widget.games.RecentModel(_76a);}return _769;};ag.widget.games.Recent.nullify=function(){_769=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 _76b=ag.widget.StatusCookie.getWidgetStatusValue("userModule");if(null!=_76b&&this._validTab(_76b)){if(this.tabs.MY_FAVORITES==_76b){this._onSelectMyFavorites();}else{if(this.tabs.JUST_PLAYED==_76b){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 _76d=new ag.widget.games.favorites.FavoritesPanel({},document.createElement("span"));this.output.appendChild(_76d.domNode);},_onSelectJustPlayed:function(){this._onTabChange(this.tabs.JUST_PLAYED);var _76e=new ag.widget.games.Recent({},document.createElement("span"));this.output.appendChild(_76e.domNode);},_onTabChange:function(_76f){this._clearOutput();this.currentTab=_76f;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(_770){this.model=ag.widget.gamereviews.Model.findByGameId(_770);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 _772=this.gameId.substring(this.gameId.length-1)+"/";var _773=dojo.xhrGet({url:this._gameIdToUrl(),handleAs:"json-comment-filtered"});_773.addCallback(dojo.hitch(this,function(_774){_774.launchDate=qi.util.formatDate(_774.launchDate);this.launchDate.innerHTML=_774.launchDate;this.totalPlays.innerHTML=dojo.number.format(_774.totalPlays);this.playsToday.innerHTML=dojo.number.format(_774.playsToday);}));_773.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 _775=dojo.xhrGet({url:this._dataFile,handleAs:"json-comment-filtered"});_775.addCallback(this,dojo.hitch(this,function(data){this.content._showWithGames(data);}));_775.addErrback(this,dojo.hitch(this,function(_777){this.content._showWithError();}));}});dojo.declare("ag.widget.games.recommended.RecommendedContent",[dijit._Widget,qi.widget.StatePatternContainer],{postCreate:function(){this._showAsLoading();},_showAsLoading:function(){var _778=new ag.widget.games.recommended.RecommendedLoading({},document.createElement("span"));this._changeState(_778);},_showWithError:function(){var _779=new ag.widget.games.recommended.RecommendedError({},document.createElement("span"));this._changeState(_779);},_showWithGames:function(data){var _77b=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(_77b);}});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 _77d=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(_77d.domNode);if(i!=this._games.length-1){var _77e=new ag.widget.games.recommended.RecommendedGameBorder({},document.createElement("span"));this.content.appendChild(_77e.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\">What's Hot</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 _77f=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotPeriod");var _780=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotAlgorithm");if(null!=_77f&&"undefined"!=_77f){this.periodList.value=_77f;this.currentPeriod=_77f;}if(null!=_780&&"undefined"!=_780){this.currentAlgorithm=_780;}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(_781){this.currentAlgorithm=_781;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(_782,_783){this.filePath=_783+"?period="+_782;if(this.channelId){this.filePath=_783+"?period="+_782+"&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 _784=this.CHANNEL_LIST;dojo.forEach(_784,dojo.hitch(this,function(_785){var _786=String(this.selectedGenre)==_785;this.genreChoice.options[this.genreChoice.options.length]=new Option(_785,_785,_786,_786);}));this._removeGames();var _787=ag.widget.StatusCookie.getWidgetStatusValue("whatsHotGenre");if(null!=_787&&"undefined"!=_787){this.genreChoice.value=_787;this.selectedGenre=_787;this._setGenreText();}var _788=this.model[this.filePath].games;this._addGames(_788);},_setTimePeriod:function(){var _789=this.filePath;var _78a=qi.util.formatDate(this.model[_789].startDate);var _78b=qi.util.formatDate(this.model[_789].endDate);var _78c="Statistics listed are for ";if(this.currentPeriod==this.periods.WEEK){_78c+="the week of "+_78a+" to "+_78b;}else{if(this.currentPeriod==this.periods.MONTH){_78c+="the month of "+_78a+" to "+_78b;}else{if(this.currentPeriod==this.periods.ALLTIME){_78c+="all time";}}}this.timePeriod.innerHTML=_78c;},_removeGames:function(){while(this._gameWidgets.length!=0){var _78d=this._gameWidgets.pop();this.removeChild(_78d);_78d.destroyRecursive();}},_filterGames:function(){var _78e=this.filePath;var _78f=this.model[_78e].games;if(this.selectedGenre!=this.DEFAULT_GENRE){_78f=dojo.filter(this.model[_78e].games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this.selectedGenre)!=-1;}));}return _78f;},_addGames:function(_791){var i=0;for(;i<this.maxGamesToDisplay&&i<_791.length;++i){var game={ordinal:i+1};dojo.mixin(game,_791[i]);var _794=this.createGameWidget(game);this._gameWidgets.push(_794);this._addGame(_794);if((i%5==4)&&(i!=this.maxGamesToDisplay-1)&&(i!=_791.length-1)){var _795=new ag.widget.games.Divider({},document.createElement("div"));this._gameWidgets.push(_795);this.output.appendChild(_795.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(_797){this[_797]=new ag.widget.games.GamesForTimePeriod();this[_797].load(this.baseDataLocation+"/"+_797);}});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 dojoType=\"ag.widget.games.GameInfo\" gameId=\"${gameId}\" src=\"${picon}\"/>\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(_798,_799){var img=document.createElement("img");img.setAttribute("src",_798);_799.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(_79b){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 _79c=this._gameWidgets.pop();this.removeChild(_79c);_79c.destroyRecursive();}while(this.output.hasChildNodes()){this.output.removeChild(this.output.firstChild);}},_filterGames:function(){var _79d=this._data.games;if(this._selectedGenre!="All Games"){_79d=dojo.filter(this._data.games,dojo.hitch(this,function(game){return dojo.indexOf(game.genres,this._selectedGenre)!=-1;}));}return _79d;},_addGames:function(_79f,_7a0){var _7a1=0;var max=this._maxGamesToDisplay;if("undefined"!=_7a0&&null!=_7a0){_7a1=_7a0;max=(_7a1+this._maxGamesToDisplay)>_79f.length?_79f.length:_7a1+this._maxGamesToDisplay;}var _7a3=_79f.slice(_7a1,max);var i=0;for(;i<this._maxGamesToDisplay&&i<_7a3.length;++i){var game={ordinal:i+1};dojo.mixin(game,_7a3[i]);var _7a6=this.createGameWidget(game);this._gameWidgets.push(_7a6);this._addGame(_7a6);}},_addGame:function(_7a7){if(_7a7.ordinal%5==1){this.rowDiv=document.createElement("div");if(_7a7.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(_7a7.domNode);if(_7a7.ordinal%5==0&&_7a7.ordinal!=this._maxGamesToDisplay){var _7aa=document.createElement("div");dojo.addClass(_7aa,"genre-popular-divider");this.output.appendChild(_7aa);}},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 _7ad=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});_7ad.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(_7b2){console.debug("_onErrback: ",_7b2);},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 _7b7=this._filterGames();this._addGames(_7b7,(this._currentPage-1)*this._maxGamesToDisplay);this._totalPages=Math.ceil(_7b7.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 _7b9=this._filterGames();this._addGames(_7b9);},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 _7bb=new ag.widget.games.GamesForTimePeriod();_7bb.loadCompleted.addCallback(this,this._onMostPopularLoaded);_7bb.load(this.baseDownloadDataLocation+"alltime-topPlays.js");var _7bc=ag.widget.StatusCookie.getWidgetStatusValue("downloadPanel");if(null!=_7bc&&"undefined"!=_7bc&&"viewAll"==_7bc){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 _7bf=this._mostPopular._filterGames();this._mostPopular._addGames(_7bf);}this._tryRemove(this._viewAll);this.panel.appendChild(this._mostPopular.domNode);this._visibleWidget=this._mostPopular;},_onMostPopularLoaded:function(data){this._mostPopular._setData(data);},_tryRemove:function(_7c1){if(_7c1.domNode.parentNode){_7c1.domNode.parentNode.removeChild(_7c1.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,_7c6,msg){msg=msg||"";if(_7c6>0&&dojo.isIE){elem.style.width=""+_7c6-0.5+"%";}else{elem.style.width=""+_7c6+"%";}if(_7c6>17){elem.innerHTML=""+_7c6+"%";}elem.title=""+_7c6+"% "+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(_7ca){if("model"==_7ca.eventType){this._onDataAvailable();}},_onDataAvailable:function(){if(this.model.gameRatingTotal.isRated()){var _7cb=this.model.gameRatingTotal.goodPercent;var _7cc=this.model.gameRatingTotal.badPercent;setPercentageInfo(this.agRatingGood,_7cb," Good");setPercentageInfo(this.agRatingBad,_7cc," Bad");this._setLeftAndRightClasses(_7cb,_7cc);dojo.addClass(this.agRatingUnrated,"dispnone");}else{dojo.removeClass(this.agRatingUnrated,"dispnone");}var _7cd=this.model.gameRatingTotal.totalVotes;this.agRatingTotal.innerHTML=""+dojo.number.format(_7cd);dojo.removeClass(this.domNode,"dispnone");},_setLeftClass:function(_7ce){if(_7ce==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(_7cf){if(_7cf==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(_7d0){if(_7d0==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(_7d1){if(_7d1==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(_7d2,_7d3){this._setLeftClass(_7d2);this._setRightClass(_7d3);this._setGoodBarClass(_7d2);this._setBadBarClass(_7d3);}});})();ag.widget.ratings.createUi=function(_7d4){var _7d5=ag.widget.ratings.GameRatingModel.findByGameId(_7d4);var _7d6=dojo.byId("agrating-placeholder")||dojo.body();var span;span=document.createElement("span");_7d6.appendChild(span);new ag.widget.ratings.RateItFormContainer({gameId:Number(_7d4)},span);span=document.createElement("span");_7d6.appendChild(span);new ag.widget.ratings.Rating({gameId:Number(_7d4)},span);};ag.widget.ratings.createUiFromUrl=function(){var _7d8=""+window.location.search;var _7d9;if(_7d9=/.*gameId=(\d+)/i.exec(_7d8)){var _7da=_7d9[1];ag.widget.ratings.createUi(_7da);}};}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(_7db){this._model=_7db;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 _7de=this._validator.validate(data);if(_7de.isValid()){this._posted=true;this._model.submit(data);}else{this.messages.addMessage(_7de.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(_7e2){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(_7e3){var _7e4=false;var _7e5=false;if("submitWaiting"==_7e3.eventType){this._canPost=false;_7e4=true;}else{if("submitSuccess"==_7e3.eventType){this._canPost=false;_7e5=true;this.messages.clear();this._updateAndDisableTextarea(_7e3.data.tip);this._hideCaptcha();if(true==this._posted){dojo.removeClass(this.domNode,"dispnone");}}else{if("submitFailure"==_7e3.eventType){if(/bad http response code/.test(String(_7e3.error.message))){this._canPost=true;if(true==this._posted){this.messages.addMessage("Unable to process request, please try again.");}this._disableTextareaMonitorAndPaste("");}else{if(null==_7e3.error.errorObject.error.fields.captcha){this._canPost=false;}else{this._canPost=true;}this.messages.clear();this._updateAndDisableTextarea();if(null!=_7e3.error){this._resultDispatcher.dispatch(_7e3.error);}_7e5=true;}}else{if("pageLoaded"!=_7e3.eventType){console.debug("SubmitInput: unknown event type: "+_7e3.eventType);}}}}dojo.toggleClass(this.postButton,"submitWaiting",_7e4);dojo.toggleClass(this.postButton,"submitSuccess",_7e5);},_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(_7e6){if(null!=_7e6){this._disableTextareaMonitorAndPaste(_7e6);}this.inputWidget.setAttribute("disabled","true");if(dojo.isIE){dojo.addClass(this.inputWidget,"disabled");}},_disableTextareaMonitorAndPaste:function(_7e7){this.inputWidget.value=_7e7;}});}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(_7e8){if(this._posted){this.messages.addMessage(_7e8);}},_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(_7ea){throw new Error("Subclass must override _makePageModel");},_mixinResult:function(_7eb){throw new Error("Subclass must override _mixinResult");},submit:function(data){if(ag.user.LoggedInUser.isUserLoggedIn()){dojo.publish(this.topic,[{eventType:"submitWaiting"}]);ag.user.LoggedInUser.mixinSessionUserUuid(data);data.gameId=parseInt(this.gameId);var _7ed=this.createService(data);_7ed.addCallback(dojo.hitch(this,function(_7ee){this._mixinResult(data,_7ee);dojo.publish(this.topic,[{eventType:"submitSuccess",data:data,result:_7ee}]);}));_7ed.addErrback(dojo.hitch(this,function(_7ef){this.submitFailure(_7ef);}));}},submitFailure:function(_7f0){dojo.publish(this.topic,[{eventType:"submitFailure",error:_7f0}]);},deleteSubmission:function(data){if(ag.user.LoggedInUser.isUserLoggedIn()){var _7f2=this.deleteService(data);_7f2.addCallback(dojo.hitch(this,function(_7f3){var page=this.getPageModel(this.displayingPage);page.loadCompleted.addCallback(dojo.hitch(this,function(){page.items=dojo.filter(page.items,function(elt,idx,_7f7){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,_7fa){return elt!=page;});if(this.displayingPage>this.getTotalPages()){this.displayingPage=this.getTotalPages();}}}this.loadPageModel(this.displayingPage,0);}));}));_7f2.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(_7fc){var idx=_7fc-1;if(this._pageModels.length<_7fc||(false==this.hasPageModel(_7fc))){this._pageModels[idx]=this._makePageModel(_7fc);if(false==this.hasPageModel(_7fc)){throw new Error("page model problem");}}return this._pageModels[idx];},getTotalPages:function(){return this._totalPages;},hasPageModel:function(_7fe){var idx=_7fe-1;return ("undefined"!=typeof (this._pageModels[idx])&&null!=this._pageModels[idx]);},loadPageModel:function(_800,_801){var _802=this.getPageModel(_800);_802.loadCompleted.addCallback(dojo.hitch(this,function(){this._totalPages=_802.totalPages;if(_801){this._totalPages+=_801;}if(1==_800){this._hasItems=_802.hasItems();}dojo.publish(this.topic,[{eventType:"pageLoaded",pageNum:_800,pageModel:_802}]);}));_802.loadCompleted.addErrback(dojo.hitch(this,function(){dojo.publish(this.topic,[{eventType:"pageLoadFailed",pageNum:_800}]);}));},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(_803){if(_803.items.length==0&&this.getTotalPages()!=1){if(this.displayingPage<=this.getTotalPages()){--this._totalPages;this._pageModels=dojo.filter(this._pageModels,function(elt,idx,_806){return elt!=_803;});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 _808=dojo.xhrGet({url:url,handleAs:"json-comment-filtered"});this.loadCompleted=new dojo.Deferred();_808.addCallback(dojo.hitch(this,function(data){this._fillFromServer(data);this.loadCompleted.callback(this);}));_808.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(_80b){dojo.mixin(this,_80b);},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(_80c,kind,_80e){this._dataUrl=_80c;this._kind=kind;this.gameId=_80e;this.createService=new ag.services.JsonServiceFactory("tipService.save").method;this.deleteService=new ag.services.JsonServiceFactory("tipService.deleteMine").method;},_makePageModel:function(_80f){var _810=String(this.gameId);var path="tips/"+this._kind+"/"+_810+"?page="+_80f;var url=dojo.moduleUrl("agjson",path);return new ag.widget.submit.SubmitPageModel(url.uri);},getTitle:function(){return this.getPageModel(1).title;},hasVotedOnTip:function(_813){if("undefined"==this._votes[_813]||null==this._votes[_813]){return false;}else{return true;}},voteOnTip:function(_814,vote){if(false==this.hasVotedOnTip(_814)){this._votes[_814]=vote;var _816={tipId:_814,vote:vote};ag.user.LoggedInUser.mixinSessionUserUuid(_816);return this._vote(_816);}},_mixinResult:function(data,_818){this.getPageModel(1).items.unshift(_818.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 _819=[];ag.widget.tips.TipModel.getModel=function(_81a,kind,_81c){if(_819[kind]==null){_819[kind]=new ag.widget.tips.TipModel(_81a,kind,_81c);}return _819[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(_81e){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(_81f){if("pageLoaded"==_81f.eventType){this.loaded=true;dojo.forEach(dojo.query("> [widgetId]",this.container).map(dijit.byNode),dojo.hitch(this,function(_820){this.removeChild(_820);_820.destroyRecursive();}));var _821=this._getModel();var page=_821.getPageModel(_821.displayingPage);this._showWhenItems(page.items.length);var i;for(i=0;(i<page.items.length)&&(i<this.numToShow);i+=1){var _824=this._createItemWidget(page.items[i]);this.container.appendChild(_824.domNode);}if(1<page.totalPages){this.showPagination=true;this._showOrHidePaginationLinks();}}else{if("pageLoadFailed"==_81f.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 _828=this.model.getTotalPages();if(_828>1){var _829=(1==this.model.displayingPage);var _82a=(Number(_828)==this.model.displayingPage);(_829?dojo.addClass:dojo.removeClass)(this.prevLink,"dispnone");(_82a?dojo.addClass:dojo.removeClass)(this.nextLink,"dispnone");this.current.innerHTML=this.model.displayingPage+" of "+_828;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 _82b=/\s/;var idx=0;for(idx=this.maxLength;idx>1;--idx){if(_82b.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 _838=ag.widget.tips.TipModel.getModel(this.kind,this.gameId);if(_838.hasVotedOnTip(this.tipId)){this._tipVote.innerHTML="You have already voted on this tip.";}else{var _839=_838.voteOnTip(this.tipId,vote);_839.addCallback(dojo.hitch(this,function(_83a){if(null!=_83a.error){this._tipVote.innerHTML="You have already voted on this tip.";}else{this._tipVote.innerHTML="Thanks for voting!";}}));_839.addErrback(dojo.hitch(this,function(_83b){if(_83b.errorObject!=null&&_83b.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(_83d){if(0<_83d){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==_83d){dojo.style(this.tipTitle,"display","none");}if(_83d>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(_83e){dojo.style(this.noTips,"display","none");var _83f=this._createItemWidget(_83e);dojo.style(_83f.domNode,"opacity",0);if(null!=this.container.firstChild&&"undefined"!=this.container.firstChild){this.container.insertBefore(_83f.domNode,this.container.firstChild);}else{this.container.appendChild(_83f.domNode);}dojo.fadeIn({node:_83f.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=\"ag.widget.user.RegisterPopup.showPopup(); return false;\">Join AddictingGames</a> for FREE or <a href=\"#Login\" onclick=\"ag.widget.user.LoginPopup.showPopup(); 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(_840){if("submitSuccess"==_840.eventType){var _841=this.tipPageRecent.addTipToFront(_840.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 _842={dataUrl:this.dataUrl,gameId:this.gameId};return new ag.widget.tips.TipPanel(_842,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(_847){if("saved"==_847.eventType){this.writeReviewLink.style.display="none";this.writeReviewSpan.style.display="block";}},_onTipModelMessage:function(_848){if("submitSuccess"==_848.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.validation.SignUpValidationRules"]){dojo._hasResource["ag.widget.validation.SignUpValidationRules"]=true;dojo.provide("ag.widget.validation.SignUpValidationRules");dojo.declare("ag.widget.validation.SignUpValidationRules",null,{constructor:function(){this.rules=[new qi.validation.Required("email","An email address is required."),new qi.validation.Email("email","Your email address must be valid."),new qi.validation.DateRequired("birthday","Your birthday is required."),new ag.validation.Birthday("birthday",13,"Based on the information you have submitted to us, you are ineligible to register.")];}});}if(!dojo._hasResource["ag.widget.signup.SignUp"]){dojo._hasResource["ag.widget.signup.SignUp"]=true;dojo.provide("ag.widget.signup.SignUp");dojo.declare("ag.widget.signup.SignUp",[dijit._Widget,dijit._Templated],{templateString:"<span class=\"sign-up\">\n\t<form\n\t  method=\"post\"\n\t  action=\"http://www.shockwave.com/account/agMemberSubscribe.jsp\"\n\t  dojoAttachPoint=\"form\"\n\t  dojoAttachEvent=\"onsubmit:onSubmit\">\n\t\t<p class=\"sign-up-p1\">Get new game updates delivered to you every Friday!</p>\n\t\t<div class=\"sign-up-email\">\n\t\t\t<label for=\"email\">Your Email:</label>\n\t\t\t<br/>\n\t\t\t<input\n\t\t\t  dojoType=\"dijit.form.TextBox\"\n\t\t\t  dojoAttachPoint=\"email\"\n\t\t\t  name=\"email\"\n\t\t\t  id=\"email\"/>\n\t\t</div>\n\t\t<div class=\"sign-up-birthday\">\n\t\t\t<label for=\"birthday\">We need to see your I.D. How old are you?</label>\n\t\t\t<br/>\n\t\t\t<span\n\t\t\t  dojoType=\"qi.widget.DatePicker\"\n\t\t\t  dojoAttachPoint=\"birthday\"\n\t\t\t  startingYear=\"1900\"\n\t\t\t  endingYear=\"new Date().getFullYear()\"\n\t\t\t  name=\"birthday\"\n\t\t\t  id=\"birthday\"></span>\n\t\t</div>\n\t\t<div class=\"sign-up-submit\">\n\t\t\t<input type=\"submit\" value=\"\"/>\n\t\t</div>\n\t\t<p class=\"sign-up-p2\">We value your privacy. <a href=\"\">Take a look at our privacy policy.</a></p>\n\t\t<div dojoAttachPoint=\"contentMessages\"></div>\n\t\t<input\n\t\t  type=\"hidden\"\n\t\t  name=\"success\"\n\t\t  value=\"http://agstage.shockwave.com/newsletter/newsletterSuccess.html\"/>\n\t\t<input\n\t\t  type=\"hidden\"\n\t\t  name=\"failure\"\n\t\t  value=\"http://agstage.shockwave.com/newsletter/newsletterError.html\"/>\n\t</form>\n</span>\n",widgetsInTemplate:true,onSubmit:function(e){var _84a=dojo.formToObject(this.form);_84a.birthday=this.birthday.getValueAsObject();var _84b=this._validateSignUp(_84a);this._updateWidgets(_84b);if(!_84b.isValid()){e.preventDefault();}},_updateWidget:function(_84c,id){var _84e="Normal";if(_84c.hasFieldMessage(id)){_84e="Error";}widget=dijit.byId(id);widget.updateClass(_84e);},_updateWidgets:function(_84f){var _850="";if(_84f.isValid()==false){var _851=[];if(_84f.hasMessages()){_851=_851.concat(_84f.messages);}if(_84f.hasFieldMessages()){for(var id in _84f.fields){_851.push(_84f.fields[id]);}}_850=_851.join("<br/>");}this.contentMessages.innerHTML=_850;},_validateSignUp:function(_853){var _854=new ag.widget.validation.SignUpValidationRules();var _855=new qi.validation.Validator(_854);return _855.validate(_853);}});}if(!dojo._hasResource["ag.widget.signup.SignUpPopup"]){dojo._hasResource["ag.widget.signup.SignUpPopup"]=true;dojo.provide("ag.widget.signup.SignUpPopup");(function(){var lock=false;dojo.declare("ag.widget.signup.SignUpPopup",[qi.widget.FixedSizeDialog],{css_class:"signUpPopup fixedSizeDialog",title:"Sign Up for the AG Newsletter!",createContent:function(){return new ag.widget.signup.SignUp({},document.createElement("span"));},hide:function(){this.inherited("hide",arguments);lock=false;}});ag.widget.signup.SignUpPopup.showPopup=function(_857){if(lock==false){lock=true;var _858=new ag.widget.signup.SignUpPopup({},document.createElement("span"));var _859=new qi.widget.TopicSubscription({},document.createElement("span"));_858.domNode.appendChild(_859.domNode);_859.addSubscription(ag.event.EventBus.APPLICATION.HIDE_POPUP.subscribe(_858,"hide"));_858.show(_857);}};ag.widget.signup.SignUpPopup.showPopup=function(){ag.event.EventBus.APPLICATION.HIDE_POPUP.publish();ag.event.EventBus.APPLICATION.REQUEST_SIGNUP.publish();};dojo.addOnLoad(function(){var _85a=dojo.subscribe(ag.event.EventBus.APPLICATION.REQUEST_SIGNUP.topic,function(_85b){var args=ag.widget.Popup.getCenterCoords(400,300);ag.widget.signup.SignUpPopup.showPopup(args);});dojo.addOnUnload(function(){dojo.unsubscribe(_85a);});});})();}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 _85d=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(_85d.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.account.ShowInfo"]){dojo._hasResource["ag.widget.user.account.ShowInfo"]=true;dojo.provide("ag.widget.user.account.ShowInfo");dojo.declare("ag.widget.user.account.ShowInfo",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget\">\n\t<span class=\"title\" dojoAttachPoint=\"infoTitle\"></span>\n\t<span class=\"value\" dojoAttachPoint=\"infoValue\"></span>\n    <a class=\"create\" dojoAttachPoint=\"infoValueLink\"></a>\n    <a class=\"create\" href=\"javascript:;\" dojoAttachPoint=\"createLink\" dojoAttachEvent=\"onclick:onEdit\"></a>\n    <span class=\"edit\"><a href=\"javascript:;\" dojoAttachPoint=\"infoLink\" dojoAttachEvent=\"onclick:onEdit\"></a></span>\n    <div class=\"help\" dojoAttachPoint=\"infoHelp\"></div>\n    <span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,constructor:function(args){dojo.mixin(this,args);},postCreate:function(){this.infoTitle.innerHTML=this.title;this.infoLink.innerHTML=this.link;if(this.help!=undefined&&this.help!=null){this.infoHelp.innerHTML=this.help;}if(this.createText!=undefined&&this.createText!=null){this.createLink.innerHTML=this.createText;}},setValue:function(_860){this.infoValue.innerHTML=_860;if(_860){this.infoValue.style.display="block";this.infoLink.style.display="block";this.createLink.style.display="none";}else{this.infoValue.style.display="none";this.infoLink.style.display="none";this.createLink.style.display="block";}},setValueUrl:function(_861,_862){this.infoValueLink.innerHTML=_861;this.infoValueLink.setAttribute("href",_862);this.infoValue.style.display="none";if(_861){this.infoValueLink.style.display="block";this.infoLink.style.display="block";this.createLink.style.display="none";}else{this.infoValueLink.style.display="none";this.infoLink.style.display="none";this.createLink.style.display="block";}},onEdit:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showEdit();}});}if(!dojo._hasResource["ag.widget.user.account.MaintainUsername"]){dojo._hasResource["ag.widget.user.account.MaintainUsername"]=true;dojo.provide("ag.widget.user.account.MaintainUsername");dojo.declare("ag.widget.user.account.MaintainUsername",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"&nbsp;&nbsp;Username: ",link:"edit"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainUsernameEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this.infoWidget.setValue(this.model.data.userName);this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget.usernameEdit.value=this.model.data.userName;this._changeState(this.editWidget);},_updateUsername:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _864=new qi.validation.Validator(new ag.widget.validation.UsernameValidationRules());var _865={username:this.editWidget.usernameEdit.value};var _866=_864.validate(_865);if(!_866.isValid()){dojo.publish(this.model.topic,[{eventType:"error-account",message:_866.fields["username"]}]);}else{if(this.editWidget.usernameEdit.value==this.model.data.userName){this._showInfo();}else{ag.user.LoggedInUser.mixinSessionUserUuid(_865);var _867=new ag.services.JsonServiceFactory("userService.changeMyUsername").method(_865);_867.addCallback(dojo.hitch(this,function(_868){var _869=new Object();_869.userName=_868.username;this.model.updateModel(_869);dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"Username updated"}]);this._showInfo();}));_867.addErrback(dojo.hitch(this,function(err){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["username"]}]);}));}}},_onModelMessage:function(msg){if(msg.eventType=="loaded"){this.infoWidget.setValue(this.model.data.userName);this.editWidget.usernameEdit.value=this.model.data.userName;}}});dojo.declare("ag.widget.user.account.MaintainUsernameEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<span class=\"title\">Username:</span>\n\t<input type=\"text\" class=\"value\" dojoAttachPoint=\"usernameEdit\"\n\t\t\tid=\"${id}_usernameEdit\" name=\"usernameEdit\"></input>\n\t<div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdateUsername\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdateUsername\">Cancel</a>\n        <br class=\"clearFloat\" />\n\t</div>\n</div>\n",onUpdateUsername:function(){this.parent._updateUsername();},onCancelUpdateUsername:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();}});}if(!dojo._hasResource["ag.widget.validation.EmailValidationRules"]){dojo._hasResource["ag.widget.validation.EmailValidationRules"]=true;dojo.provide("ag.widget.validation.EmailValidationRules");dojo.declare("ag.widget.validation.EmailValidationRules",null,{rules:[new qi.validation.Required("email","An email address is required."),new qi.validation.Email("email","Your email address must be valid.")]});}if(!dojo._hasResource["ag.widget.user.account.EmailChanged"]){dojo._hasResource["ag.widget.user.account.EmailChanged"]=true;dojo.provide("ag.widget.user.account.EmailChanged");dojo.declare("ag.widget.user.account.EmailChanged",[dijit._Widget,dijit._Templated],{templateString:"<span class=\"log-in\">\n\t<div class=\"email-changed-wrapper\">\n\t\t<div class=\"email-changed\">You have submitted a new email address for your AddictingGames account.</div>\n\t\t<div class=\"email-changed\">An email has been sent to ${email}</div>\n\t\t<div class=\"email-changed\">Please reactivate your account by clicking on the link provided in the email.</div>\n\t</div>\n</span>\n"});}if(!dojo._hasResource["ag.widget.user.EmailChangedPopup"]){dojo._hasResource["ag.widget.user.EmailChangedPopup"]=true;dojo.provide("ag.widget.user.EmailChangedPopup");(function(){var lock=false;dojo.declare("ag.widget.user.EmailChangedPopup",[qi.widget.FixedSizeDialog],{css_class:"loginPopup fixedSizeDialog",title:"Email Changed",createContent:function(){var args={popup:this};if(typeof (this.email)!="undefined"){args.email=this.email;}return new ag.widget.user.account.EmailChanged(args,document.createElement("span"));},hide:function(){this.inherited("hide",arguments);lock=false;}});ag.widget.user.EmailChangedPopup.showPopupAtLocation=function(_86f){if(false==lock){lock=true;var args={};_86f=_86f||{};dojo.mixin(args,_86f);var _871=new ag.widget.user.EmailChangedPopup(args,document.createElement("span"));var _872=new qi.widget.TopicSubscription({},document.createElement("span"));_871.domNode.appendChild(_872.domNode);_872.addSubscription(ag.event.EventBus.APPLICATION.HIDE_POPUP.subscribe(_871,"hide"));_871.show(args);}};ag.widget.user.EmailChangedPopup.showPopupCentered=function(_873){var args=ag.widget.Popup.getCenterCoords(350,400);dojo.mixin(args,_873);ag.widget.user.EmailChangedPopup.showPopupAtLocation(args);};})();}if(!dojo._hasResource["ag.widget.user.account.MaintainEmail"]){dojo._hasResource["ag.widget.user.account.MaintainEmail"]=true;dojo.provide("ag.widget.user.account.MaintainEmail");dojo.declare("ag.widget.user.account.MaintainEmail",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoAttachPoint=\"containerNode\"></span>\n\t<div class=\"email-verified hide\" dojoAttachPoint=\"verified\">\n\t\t(This email address has not been verified)\n\t\t<a href=\"javascript:;\" dojoAttachEvent=\"onclick:_onResendEmailInformation\">click here to verify</a>\n\t</div>\n\t<div class=\"email-verified hide\" dojoAttachPoint=\"verifiedResend\">\n\t\t<div>\n\t\t\tWhen you registered for the site, we emailed you a verification link. Just click the link in the email to verify your email address.\n\t\t</div>\n\t\t<div>\n\t\t\tCan't find the email?\n\t\t\t<a href=\"javascript:;\" dojoAttachEvent=\"onclick:_onResendEmailVerification\">\n\t\t\t\tRe-send verification email\n\t\t\t</a>\n\t\t</div>\n\t</div>\n\t<div class=\"email-verified hide\" dojoAttachPoint=\"verifiedResent\">\n\t\tA verification email was sent to <span dojoAttachPoint=\"emailLocation\"></span>.\n\t\tIf you don't see the email, please check your Bulk or Junk Mail folder.\n\t</div>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"*Email Address: ",link:"edit"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainEmailEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this.infoWidget.setValue(this.model.data.email);this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget.emailEdit.value=this.model.data.email;this._changeState(this.editWidget);},_updateEmail:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _875=new qi.validation.Validator(new ag.widget.validation.EmailValidationRules());var _876={email:this.editWidget.emailEdit.value};var _877=_875.validate(_876);if(!_877.isValid()){dojo.publish(this.model.topic,[{eventType:"error-account",message:_877.fields["email"]}]);}else{if(this.editWidget.emailEdit.value==this.model.data.email){this._showInfo();}else{ag.user.LoggedInUser.mixinSessionUserUuid(_876);var _878=new ag.services.JsonServiceFactory("userService.changeMyEmail").method(_876);_878.addCallback(dojo.hitch(this,function(_879){this.model.updateModel(_879);dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"Email updated"}]);this._showInfo();ag.widget.user.EmailChangedPopup.showPopupCentered({"email":this.model.data.email});ag.user.LoggedInUser.deleteCookies();window.setTimeout(dojo.hitch(this,function(){ag.event.EventBus.APPLICATION.LOGOUT.publish();}),10000);}));_878.addErrback(dojo.hitch(this,function(err){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["email"]}]);}));}}},_onResendEmailInformation:function(){dojo.addClass(this.verified,"hide");dojo.addClass(this.verifiedResent,"hide");dojo.removeClass(this.verifiedResend,"hide");},_onResendEmailVerification:function(){var _87b={};ag.user.LoggedInUser.mixinSessionUserUuid(_87b);var _87c=new ag.services.JsonServiceFactory("userService.resendEmailVerification").method(_87b);_87c.addCallback(dojo.hitch(this,function(_87d){dojo.publish(this.model.topic,[{eventType:"update-account",message:"Verification Email Sent"}]);this.model.updateModel(_87d);this.emailLocation.innerHTML=this.model.data.email;dojo.removeClass(this.verifiedResent,"hide");dojo.addClass(this.verifiedResend,"hide");dojo.addClass(this.verified,"hide");}));_87c.addErrback(dojo.hitch(this,function(err){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["email"]}]);}));},_onModelMessage:function(msg){if(msg.eventType=="loaded"){this.infoWidget.setValue(this.model.data.email);this.editWidget.emailEdit.value=this.model.data.email;if(this.model.data.emailVerified){dojo.addClass(this.verified,"hide");dojo.addClass(this.verifiedResend,"hide");dojo.addClass(this.verifiedResent,"hide");}else{dojo.removeClass(this.verified,"hide");dojo.addClass(this.verifiedResend,"hide");dojo.addClass(this.verifiedResent,"hide");}}}});dojo.declare("ag.widget.user.account.MaintainEmailEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<span class=\"title\">Email Address:</span>\n\t<input type=\"text\" class=\"value\" dojoAttachPoint=\"emailEdit\"\n\t\t\tid=\"${id}_usernameEdit\" name=\"emailEdit\"></input>\n\t<div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdateEmail\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdateEmail\">Cancel</a>\n        <br class=\"clearFloat\" />\n\t</div>\n</div>\n",onUpdateEmail:function(){this.parent._updateEmail();},onCancelUpdateEmail:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();}});}if(!dojo._hasResource["ag.widget.validation.GenderValidationRules"]){dojo._hasResource["ag.widget.validation.GenderValidationRules"]=true;dojo.provide("ag.widget.validation.GenderValidationRules");dojo.declare("ag.widget.validation.GenderValidationRules",null,{rules:[]});}if(!dojo._hasResource["ag.widget.user.account.MaintainGender"]){dojo._hasResource["ag.widget.user.account.MaintainGender"]=true;dojo.provide("ag.widget.user.account.MaintainGender");dojo.declare("ag.widget.user.account.MaintainGender",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"Gender: ",link:"edit"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainGenderEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this.infoWidget.setValue(this._getSelectedGenderText(this.model.data.gender));this._changeState(this.infoWidget);},_showEdit:function(){this._changeState(this.editWidget);this.editWidget._setChecked(this.model.data.gender);},_updateGender:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _881=new qi.validation.Validator(new ag.widget.validation.GenderValidationRules());var _882=this.editWidget._getSelectedGender();var _883={gender:_882};var _884=_881.validate(_883);if(!_884.isValid()){dojo.publish(this.model.topic,[{eventType:"error-account",message:_884.fields["gender"]}]);}else{if(this.editWidget._getSelectedGender()==this.model.data.gender||(this.editWidget._getSelectedGender()==""&&this.model.data.gender==null)){this._showInfo();}else{ag.user.LoggedInUser.mixinSessionUserUuid(_883);var _885=new ag.services.JsonServiceFactory("userService.changeMyGender").method(_883);_885.addCallback(dojo.hitch(this,function(_886){this.model.data.gender=null;this.model.updateModel(_886);dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"Gender updated"}]);this._showInfo();}));_885.addErrback(dojo.hitch(this,function(err){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["gender"]}]);}));}}},_onModelMessage:function(msg){if(msg.eventType=="loaded"){this.editWidget._setChecked(this.model.data.gender);this.infoWidget.setValue(this._getSelectedGenderText(this.model.data.gender));}},_getSelectedGenderText:function(_889){if(_889=="M"){return "Male";}else{if(_889=="F"){return "Female";}else{return "Not Specified";}}}});dojo.declare("ag.widget.user.account.MaintainGenderEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<span class=\"title\">Gender:</span>\n\t<span class=\"value\">\n\t\t<input dojoAttachPoint=\"genderMale\"\n\t\t\t\tname=\"gender\"\n\t\t\t\tid=\"${id}_gender_male\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tvalue=\"M\">\n\t\t</input>\n\t\t<label for=\"${id}_gender_male\">Male</label>\n\t\t<input dojoAttachPoint=\"genderFemale\"\n\t\t\t\tname=\"gender\"\n\t\t\t\tid=\"${id}_gender_female\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tvalue=\"F\">\n\t\t</input>\n\t\t<label for=\"${id}_gender_female\">Female</label>\n\t</span>\n\t<div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdateGender\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdateGender\">Cancel</a>\n        <br class=\"clearFloat\" />\n\t</div>\n</div>\n",widgetsInTemplate:true,onUpdateGender:function(){this.parent._updateGender();},onClear:function(){this.genderMale.checked=false;this.genderFemale.checked=false;},onCancelUpdateGender:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();},_setChecked:function(_88b){if("M"==_88b){this.genderFemale.checked=false;this.genderMale.checked=true;}else{if("F"==_88b){this.genderMale.checked=false;this.genderFemale.checked=true;}else{this.genderMale.checked=false;this.genderFemale.checked=false;}}},_getSelectedGender:function(){if(this.genderMale.checked){return "M";}else{if(this.genderFemale.checked){return "F";}else{return "";}}}});}if(!dojo._hasResource["ag.widget.validation.ChangePasswordValidationRules"]){dojo._hasResource["ag.widget.validation.ChangePasswordValidationRules"]=true;dojo.provide("ag.widget.validation.ChangePasswordValidationRules");dojo.declare("ag.widget.validation.ChangePasswordValidationRules",function(){this.rules=[new qi.validation.Required("currentPassword","Current password is required."),new qi.validation.Required("password","A password is required."),new qi.validation.Length("password",4,20,"Your password must be between 4 and 20 characters in length."),new qi.validation.Required("verifypassword","You must confirm your password"),new qi.validation.Equal("verifypassword","password","The passwords you typed do not match, please try again."),new qi.validation.Required("uuid","You must be logged in to change your password")];},{});}if(!dojo._hasResource["ag.widget.user.account.MaintainPassword"]){dojo._hasResource["ag.widget.user.account.MaintainPassword"]=true;dojo.provide("ag.widget.user.account.MaintainPassword");dojo.declare("ag.widget.user.account.MaintainPassword",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"*Password: ",link:"edit",help:"*Note: Your email address and password will never appear on your profile"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainPasswordEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this.infoWidget.setValue("********");this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget._reset();this._changeState(this.editWidget);},_updatePassword:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _88c=new qi.validation.Validator(new ag.widget.validation.ChangePasswordValidationRules());var _88d={currentPassword:this.editWidget.passwordEdit.value,password:this.editWidget.passwordNew.value,verifypassword:this.editWidget.passwordVerify.value};ag.user.LoggedInUser.mixinSessionUserUuid(_88d);var _88e=_88c.validate(_88d);if(!_88e.isValid()){if(null!=_88e.fields["currentPassword"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:_88e.fields["currentPassword"]}]);}else{if(null!=_88e.fields["password"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:_88e.fields["password"]}]);}else{if(null!=_88e.fields["verifypassword"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:_88e.fields["verifypassword"]}]);}}}this.model.updateModel(_88e);}else{ag.user.LoggedInUser.mixinSessionUserUuid(_88d);var _88f=new ag.services.JsonServiceFactory("userService.changePassword").method(_88d);_88f.addCallback(dojo.hitch(this,function(_890){this.model.updateModel(_890);dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"Password updated"}]);this._showInfo();}));_88f.addErrback(dojo.hitch(this,function(err){if(null!=err.errorObject.error.fields["currentPassword"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["currentPassword"]}]);}else{if(null!=err.errorObject.error.fields["password"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["password"]}]);}else{if(null!=err.errorObject.error.fields["verifypassword"]){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["verifypassword"]}]);}else{dojo.publish(this.model.topic,[{eventType:"error-account",message:"Unknown Error"}]);}}}}));}},_onModelMessage:function(msg){}});dojo.declare("ag.widget.user.account.MaintainPasswordEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<div class=\"entry\">\n\t\t<span class=\"title\">Current Password: </span>\n\t\t<input type=\"password\" class=\"value\" dojoAttachPoint=\"passwordEdit\"\n\t\t\t\tid=\"${id}_passwordEdit\" name=\"passwordEdit\" type=\"password\" size=\"10\"></input>  \n\t</div>\n    <div class=\"entry\">\n\t\t<span class=\"title\">New Password: </span>\n\t\t<input type=\"password\" class=\"value\" dojoAttachPoint=\"passwordNew\"\n\t\t\t\tid=\"${id}_passwordEdit\" name=\"passwordEdit\" type=\"password\" size=\"10\"></input>\n\t</div>\n    <div class=\"entry\">\n\t\t<span class=\"title\">Verify Password: </span>\n\t\t<input type=\"password\" class=\"value\" dojoAttachPoint=\"passwordVerify\"\n\t\t\t\tid=\"${id}_passwordEdit\" name=\"passwordEdit\" type=\"password\" size=\"10\"></input>\n\t</div>\n\t<div class=\"editButtons\">\n\t\t<a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdatePassword\">OK</a>\n\t\t<a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdatePassword\">Cancel</a>\n        <br class=\"clearFloat\" />\n\t</div>\n</div>\n",onUpdatePassword:function(){this.parent._updatePassword();},onCancelUpdatePassword:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();},_reset:function(){this.passwordEdit.value="";this.passwordNew.value="";this.passwordVerify.value="";}});}if(!dojo._hasResource["dojo.cldr.supplemental"]){dojo._hasResource["dojo.cldr.supplemental"]=true;dojo.provide("dojo.cldr.supplemental");dojo.cldr.supplemental.getFirstDayOfWeek=function(_894){var _895={mv:5,ae:6,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,lb:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6,as:0,au:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0,il:0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,za:0,zw:0,et:0,mw:0,ng:0,tj:0,sy:4};var _896=dojo.cldr.supplemental._region(_894);var dow=_895[_896];return (dow===undefined)?1:dow;};dojo.cldr.supplemental._region=function(_898){_898=dojo.i18n.normalizeLocale(_898);var tags=_898.split("-");var _89a=tags[1];if(!_89a){_89a={de:"de",en:"us",es:"es",fi:"fi",fr:"fr",hu:"hu",it:"it",ja:"jp",ko:"kr",nl:"nl",pt:"br",sv:"se",zh:"cn"}[tags[0]];}else{if(_89a.length==4){_89a=tags[2];}}return _89a;};dojo.cldr.supplemental.getWeekend=function(_89b){var _89c={eg:5,il:5,sy:5,"in":0,ae:4,bh:4,dz:4,iq:4,jo:4,kw:4,lb:4,ly:4,ma:4,om:4,qa:4,sa:4,sd:4,tn:4,ye:4};var _89d={ae:5,bh:5,dz:5,iq:5,jo:5,kw:5,lb:5,ly:5,ma:5,om:5,qa:5,sa:5,sd:5,tn:5,ye:5,af:5,ir:5,eg:6,il:6,sy:6};var _89e=dojo.cldr.supplemental._region(_89b);var _89f=_89c[_89e];var end=_89d[_89e];if(_89f===undefined){_89f=6;}if(end===undefined){end=0;}return {start:_89f,end:end};};}if(!dojo._hasResource["dojo.date.locale"]){dojo._hasResource["dojo.date.locale"]=true;dojo.provide("dojo.date.locale");(function(){function formatPattern(_8a1,_8a2,_8a3){return _8a3.replace(/([a-z])\1*/ig,function(_8a4){var s,pad;var c=_8a4.charAt(0);var l=_8a4.length;var _8a9=["abbr","wide","narrow"];switch(c){case "G":s=_8a2[(l<4)?"eraAbbr":"eraNames"][_8a1.getFullYear()<0?0:1];break;case "y":s=_8a1.getFullYear();switch(l){case 1:break;case 2:s=String(s);s=s.substr(s.length-2);break;default:pad=true;}break;case "Q":case "q":s=Math.ceil((_8a1.getMonth()+1)/3);pad=true;break;case "M":case "L":var m=_8a1.getMonth();var _8ab;switch(l){case 1:case 2:s=m+1;pad=true;break;case 3:case 4:case 5:_8ab=_8a9[l-3];break;}if(_8ab){var _8ac=(c=="L")?"standalone":"format";var _8ad=["months",_8ac,_8ab].join("-");s=_8a2[_8ad][m];}break;case "w":var _8ae=0;s=dojo.date.locale._getWeekOfYear(_8a1,_8ae);pad=true;break;case "d":s=_8a1.getDate();pad=true;break;case "D":s=dojo.date.locale._getDayOfYear(_8a1);pad=true;break;case "E":case "e":case "c":var d=_8a1.getDay();var _8b0;switch(l){case 1:case 2:if(c=="e"){var _8b1=dojo.cldr.supplemental.getFirstDayOfWeek(options.locale);d=(d-_8b1+7)%7;}if(c!="c"){s=d+1;pad=true;break;}case 3:case 4:case 5:_8b0=_8a9[l-3];break;}if(_8b0){var _8b2=(c=="c")?"standalone":"format";var _8b3=["days",_8b2,_8b0].join("-");s=_8a2[_8b3][d];}break;case "a":var _8b4=(_8a1.getHours()<12)?"am":"pm";s=_8a2[_8b4];break;case "h":case "H":case "K":case "k":var h=_8a1.getHours();switch(c){case "h":s=(h%12)||12;break;case "H":s=h;break;case "K":s=(h%12);break;case "k":s=h||24;break;}pad=true;break;case "m":s=_8a1.getMinutes();pad=true;break;case "s":s=_8a1.getSeconds();pad=true;break;case "S":s=Math.round(_8a1.getMilliseconds()*Math.pow(10,l-3));break;case "v":case "z":s=dojo.date.getTimezoneName(_8a1);if(s){break;}l=4;case "Z":var _8b6=_8a1.getTimezoneOffset();var tz=[(_8b6<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_8b6)/60),2),dojo.string.pad(Math.abs(_8b6)%60,2)];if(l==4){tz.splice(0,0,"GMT");tz.splice(3,0,":");}s=tz.join("");break;default:throw new Error("dojo.date.locale.format: invalid pattern char: "+_8a3);}if(pad){s=dojo.string.pad(s,l);}return s;});};dojo.date.locale.format=function(_8b8,_8b9){_8b9=_8b9||{};var _8ba=dojo.i18n.normalizeLocale(_8b9.locale);var _8bb=_8b9.formatLength||"short";var _8bc=dojo.date.locale._getGregorianBundle(_8ba);var str=[];var _8be=dojo.hitch(this,formatPattern,_8b8,_8bc);if(_8b9.selector=="year"){var year=_8b8.getFullYear();if(_8ba.match(/^zh|^ja/)){year+="\u5e74";}return year;}if(_8b9.selector!="time"){var _8c0=_8b9.datePattern||_8bc["dateFormat-"+_8bb];if(_8c0){str.push(_processPattern(_8c0,_8be));}}if(_8b9.selector!="date"){var _8c1=_8b9.timePattern||_8bc["timeFormat-"+_8bb];if(_8c1){str.push(_processPattern(_8c1,_8be));}}var _8c2=str.join(" ");return _8c2;};dojo.date.locale.regexp=function(_8c3){return dojo.date.locale._parseInfo(_8c3).regexp;};dojo.date.locale._parseInfo=function(_8c4){_8c4=_8c4||{};var _8c5=dojo.i18n.normalizeLocale(_8c4.locale);var _8c6=dojo.date.locale._getGregorianBundle(_8c5);var _8c7=_8c4.formatLength||"short";var _8c8=_8c4.datePattern||_8c6["dateFormat-"+_8c7];var _8c9=_8c4.timePattern||_8c6["timeFormat-"+_8c7];var _8ca;if(_8c4.selector=="date"){_8ca=_8c8;}else{if(_8c4.selector=="time"){_8ca=_8c9;}else{_8ca=_8c8+" "+_8c9;}}var _8cb=[];var re=_processPattern(_8ca,dojo.hitch(this,_buildDateTimeRE,_8cb,_8c6,_8c4));return {regexp:re,tokens:_8cb,bundle:_8c6};};dojo.date.locale.parse=function(_8cd,_8ce){var info=dojo.date.locale._parseInfo(_8ce);var _8d0=info.tokens,_8d1=info.bundle;var re=new RegExp("^"+info.regexp+"$");var _8d3=re.exec(_8cd);if(!_8d3){return null;}var _8d4=["abbr","wide","narrow"];var _8d5=new Date(1972,0);var _8d6={};var amPm="";var _8d8=dojo.every(_8d3,function(v,i){if(!i){return true;}var _8db=_8d0[i-1];var l=_8db.length;switch(_8db.charAt(0)){case "y":if(l!=2&&_8ce.strict){_8d5.setFullYear(v);_8d6.year=v;}else{if(v<100){v=Number(v);var year=""+new Date().getFullYear();var _8de=year.substring(0,2)*100;var _8df=Number(year.substring(2,4));var _8e0=Math.min(_8df+20,99);var num=(v<_8e0)?_8de+v:_8de-100+v;_8d5.setFullYear(num);_8d6.year=num;}else{if(_8ce.strict){return false;}_8d5.setFullYear(v);_8d6.year=v;}}break;case "M":if(l>2){var _8e2=_8d1["months-format-"+_8d4[l-3]].concat();if(!_8ce.strict){v=v.replace(".","").toLowerCase();_8e2=dojo.map(_8e2,function(s){return s.replace(".","").toLowerCase();});}v=dojo.indexOf(_8e2,v);if(v==-1){return false;}}else{v--;}_8d5.setMonth(v);_8d6.month=v;break;case "E":case "e":var days=_8d1["days-format-"+_8d4[l-3]].concat();if(!_8ce.strict){v=v.toLowerCase();days=dojo.map(days,"".toLowerCase);}v=dojo.indexOf(days,v);if(v==-1){return false;}break;case "d":_8d5.setDate(v);_8d6.date=v;break;case "D":_8d5.setMonth(0);_8d5.setDate(v);break;case "a":var am=_8ce.am||_8d1.am;var pm=_8ce.pm||_8d1.pm;if(!_8ce.strict){var _8e7=/\./g;v=v.replace(_8e7,"").toLowerCase();am=am.replace(_8e7,"").toLowerCase();pm=pm.replace(_8e7,"").toLowerCase();}if(_8ce.strict&&v!=am&&v!=pm){return false;}amPm=(v==pm)?"p":(v==am)?"a":"";break;case "K":if(v==24){v=0;}case "h":case "H":case "k":if(v>23){return false;}_8d5.setHours(v);break;case "m":_8d5.setMinutes(v);break;case "s":_8d5.setSeconds(v);break;case "S":_8d5.setMilliseconds(v);}return true;});if(!_8d8||(_8d6.year&&_8d5.getFullYear()!=_8d6.year)||(_8d6.month&&_8d5.getMonth()!=_8d6.month)||(_8d6.date&&_8d5.getDate()!=_8d6.date)){return null;}var _8e8=_8d5.getHours();if(amPm==="p"&&_8e8<12){_8d5.setHours(_8e8+12);}else{if(amPm==="a"&&_8e8==12){_8d5.setHours(0);}}return _8d5;};function _processPattern(_8e9,_8ea,_8eb,_8ec){var _8ed=function(x){return x;};_8ea=_8ea||_8ed;_8eb=_8eb||_8ed;_8ec=_8ec||_8ed;var _8ef=_8e9.match(/(''|[^'])+/g);var _8f0=false;dojo.forEach(_8ef,function(_8f1,i){if(!_8f1){_8ef[i]="";}else{_8ef[i]=(_8f0?_8eb:_8ea)(_8f1);_8f0=!_8f0;}});return _8ec(_8ef.join(""));};function _buildDateTimeRE(_8f3,_8f4,_8f5,_8f6){_8f6=dojo.regexp.escapeString(_8f6);if(!_8f5.strict){_8f6=_8f6.replace(" a"," ?a");}return _8f6.replace(/([a-z])\1*/ig,function(_8f7){var s;var c=_8f7.charAt(0);var l=_8f7.length;var p2="",p3="";if(_8f5.strict){if(l>1){p2="0"+"{"+(l-1)+"}";}if(l>2){p3="0"+"{"+(l-2)+"}";}}else{p2="0?";p3="0{0,2}";}switch(c){case "y":s="\\d{2,4}";break;case "M":s=(l>2)?"\\S+":p2+"[1-9]|1[0-2]";break;case "D":s=p2+"[1-9]|"+p3+"[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]";break;case "d":s=p2+"[1-9]|[12]\\d|3[01]";break;case "w":s=p2+"[1-9]|[1-4][0-9]|5[0-3]";break;case "E":s="\\S+";break;case "h":s=p2+"[1-9]|1[0-2]";break;case "k":s=p2+"\\d|1[01]";break;case "H":s=p2+"\\d|1\\d|2[0-3]";break;case "K":s=p2+"[1-9]|1\\d|2[0-4]";break;case "m":case "s":s="[0-5]\\d";break;case "S":s="\\d{"+l+"}";break;case "a":var am=_8f5.am||_8f4.am||"AM";var pm=_8f5.pm||_8f4.pm||"PM";if(_8f5.strict){s=am+"|"+pm;}else{s=am+"|"+pm;if(am!=am.toLowerCase()){s+="|"+am.toLowerCase();}if(pm!=pm.toLowerCase()){s+="|"+pm.toLowerCase();}}break;default:s=".*";}if(_8f3){_8f3.push(_8f7);}return "("+s+")";}).replace(/[\xa0 ]/g,"[\\s\\xa0]");};})();(function(){var _8ff=[];dojo.date.locale.addCustomFormats=function(_900,_901){_8ff.push({pkg:_900,name:_901});};dojo.date.locale._getGregorianBundle=function(_902){var _903={};dojo.forEach(_8ff,function(desc){var _905=dojo.i18n.getLocalization(desc.pkg,desc.name,_902);_903=dojo.mixin(_903,_905);},this);return _903;};})();dojo.date.locale.addCustomFormats("dojo.cldr","gregorian");dojo.date.locale.getNames=function(item,type,use,_909){var _90a;var _90b=dojo.date.locale._getGregorianBundle(_909);var _90c=[item,use,type];if(use=="standAlone"){_90a=_90b[_90c.join("-")];}_90c[1]="format";return (_90a||_90b[_90c.join("-")]).concat();};dojo.date.locale.isWeekend=function(_90d,_90e){var _90f=dojo.cldr.supplemental.getWeekend(_90e);var day=(_90d||new Date()).getDay();if(_90f.end<_90f.start){_90f.end+=7;if(day<_90f.start){day+=7;}}return day>=_90f.start&&day<=_90f.end;};dojo.date.locale._getDayOfYear=function(_911){return dojo.date.difference(new Date(_911.getFullYear(),0,1),_911)+1;};dojo.date.locale._getWeekOfYear=function(_912,_913){if(arguments.length==1){_913=0;}var _914=new Date(_912.getFullYear(),0,1).getDay();var adj=(_914-_913+7)%7;var week=Math.floor((dojo.date.locale._getDayOfYear(_912)+adj-1)/7);if(_914==_913){week++;}return week;};}if(!dojo._hasResource["ag.widget.user.account.MaintainDOB"]){dojo._hasResource["ag.widget.user.account.MaintainDOB"]=true;dojo.provide("ag.widget.user.account.MaintainDOB");dojo.declare("ag.widget.user.account.MaintainDOB",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget\">\n\t<span class=\"title\">Age:</span>\n\t<span class=\"value\" dojoAttachPoint=\"dob\"></span>\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n    <div style=\"clear:left\"/>\n</div>\n",widgetsInTemplate:true,postCreate:function(){this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));},_onModelMessage:function(msg){if("loaded"==msg.eventType){this._loadField(msg);}},_loadField:function(msg){var age=this.model.data.age;this.dob.innerHTML=age;}});}if(!dojo._hasResource["ag.widget.validation.AboutMeValidationRules"]){dojo._hasResource["ag.widget.validation.AboutMeValidationRules"]=true;dojo.provide("ag.widget.validation.AboutMeValidationRules");dojo.declare("ag.widget.validation.AboutMeValidationRules",null,{rules:[new qi.validation.Required("aboutMe","About Me text is required."),new qi.validation.Length("aboutMe",0,255,"About Me cannot be more than 255 characters.")]});}if(!dojo._hasResource["ag.widget.user.account.MaintainAboutMe"]){dojo._hasResource["ag.widget.user.account.MaintainAboutMe"]=true;dojo.provide("ag.widget.user.account.MaintainAboutMe");dojo.declare("ag.widget.user.account.MaintainAboutMe",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"About Me",link:"edit",createText:"Add info about yourself!"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainAboutMeEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this.infoWidget.setValue(this.model.data.aboutMe);this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget.edit.value=this.model.data.aboutMe;this._changeState(this.editWidget);},_loadField:function(msg){this.aboutMe.innerHTML=this.model.data.aboutMe;},_update:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _91b=new qi.validation.Validator(new ag.widget.validation.AboutMeValidationRules());var _91c={aboutMe:this.editWidget.edit.value};var _91d=_91b.validate(_91c);if(!_91d.isValid()){dojo.publish(this.model.topic,[{eventType:"error-account",message:_91d.fields["aboutMe"]}]);}else{if(this.editWidget.edit.value==this.model.data.aboutMe){this._showInfo();}else{var _91e=new ag.services.XstreamJsonServiceFactory("profileService.setAboutMe").method(_91c);_91e.addCallback(dojo.hitch(this,function(_91f){this.model.data.aboutMe=null;if(!_91f.response||_91f.returnCode!="Ok"){dojo.publish(this.model.topic,[{eventType:"error-account",message:"An error was encountered while setting About Me"}]);return;}if(_91f.response.result!="Ok"){dojo.publish(this.model.topic,[{eventType:"error-account",message:_91f.response.message}]);return;}this.model.data.aboutMe=this.editWidget.edit.value;dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"About Me updated"}]);this._showInfo();}));}}},_onModelMessage:function(msg){if(msg.eventType=="loaded"){this.infoWidget.setValue(this.model.data.aboutMe);this.editWidget.edit.value=this.model.data.aboutMe;}}});dojo.declare("ag.widget.user.account.MaintainAboutMeEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<span class=\"title\">About Me:</span>\n\t<textarea class=\"value\" dojoAttachPoint=\"edit\"></textarea>\n\t<div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdate\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdate\">Cancel</a>\n        <br class=\"clearFloat\" />\n\t</div>\n</div>\n",onUpdate:function(){this.parent._update();},onCancelUpdate:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();}});}if(!dojo._hasResource["qi.validation.Name"]){dojo._hasResource["qi.validation.Name"]=true;dojo.provide("qi.validation.Name");dojo.declare("qi.validation.Name",null,{constructor:function(key,_923,_924){this._key=key;this._message=_923;this._allowSpace=_924;},validate:function(_925,_926){var _927=_925[this._key];var _928=this._allowSpace?/[a-zA-Z ]*$/:/[a-zA-Z ]*$/;if(_928.test(_927)==false){_926.addFieldMessage(this._key,this._message);return;}if(_927.indexOf(" ")!=_927.lastIndexOf(" ")){_926.addFieldMessage(this._key,this._message);return;}}});}if(!dojo._hasResource["ag.widget.validation.NameValidationRules"]){dojo._hasResource["ag.widget.validation.NameValidationRules"]=true;dojo.provide("ag.widget.validation.NameValidationRules");dojo.declare("ag.widget.validation.NameValidationRules",null,{constructor:function(){this.rules=[new qi.validation.Required("firstName","A first name is required"),new qi.validation.Name("firstName","Name can only contain alphabets",false),new qi.validation.Required("lastName","A last name is required"),new qi.validation.Name("lastName","Name can only contain alphabets",true),new qi.validation.Length("firstName",1,30,"First name must be between 2 and 30 characters."),new qi.validation.Length("lastName",1,30,"Last name must be between 1 and 30 characters.")];}});}if(!dojo._hasResource["ag.widget.user.account.MaintainName"]){dojo._hasResource["ag.widget.user.account.MaintainName"]=true;dojo.provide("ag.widget.user.account.MaintainName");dojo.declare("ag.widget.user.account.MaintainName",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"First & Last Name: ",link:"edit",help:"Use your real name so that friends can find you in search. "+"Don't worry; it will not appear on your profile.",createText:"Add your name!"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainNameEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){this._loadField();this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget.firstName.value=this.model.data.firstName;this.editWidget.lastName.value=this.model.data.lastName;this._changeState(this.editWidget);},_onModelMessage:function(msg){if("loaded"==msg.eventType){this._loadField();}},_loadField:function(){var name="";if(this.model.data.firstName){name=this.model.data.firstName+" ";}if(this.model.data.lastName){name+=this.model.data.lastName;}this.infoWidget.setValue(name);},_update:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _92b=new qi.validation.Validator(new ag.widget.validation.NameValidationRules());var _92c={firstName:this.editWidget.firstName.value,lastName:this.editWidget.lastName.value};var _92d=_92b.validate(_92c);if(!_92d.isValid()){var _92e=_92d.fields["firstName"]?_92d.fields["firstName"]:_92d.fields["lastName"];dojo.publish(this.model.topic,[{eventType:"error-account",message:_92e}]);}else{if(this.editWidget.firstName.value==this.model.data.firstName&&this.editWidget.lastName.value==this.model.data.lastName){this._showInfo();}else{var _92f=new ag.services.XstreamJsonServiceFactory("profileService.setName").method(_92c);_92f.addCallback(dojo.hitch(this,function(_930){if(!_930.response||_930.returnCode!="Ok"){dojo.publish(this.model.topic,[{eventType:"error-account",message:"An error was encountered while setting your name"}]);return;}if(_930.response.result!="Ok"){dojo.publish(this.model.topic,[{eventType:"error-account",message:_930.response.message}]);return;}this.model.data.firstName=this.editWidget.firstName.value;this.model.data.lastName=this.editWidget.lastName.value;this.model.updateModel(_930);dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"Name updated"}]);this._showInfo();}));_92f.addErrback(dojo.hitch(this,function(err){dojo.publish(this.model.topic,[{eventType:"error-account",message:err.errorObject.error.fields["name"]}]);}));}}}});dojo.declare("ag.widget.user.account.MaintainNameEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<div class=\"entry\">\n\t\t<span class=\"title\">First Name: </span>\n\t\t<input type=\"text\" class=\"value\" dojoAttachPoint=\"firstName\"\n\t\t\t\tid=\"${id}_firstName\" name=\"firstName\" size=\"20\"></input>\n\t</div>\n\t<div class=\"entry\">\n\t\t<span class=\"title\">Last Name: </span>\n\t\t<input type=\"text\" class=\"value\" dojoAttachPoint=\"lastName\"\n\t\t\t\tid=\"${id}_lastName\" name=\"lastName\" size=\"20\"></input>\n\t</div>\n\t<div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdate\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancelUpdate\">Cancel</a>\n        <br class=\"clearFloat\" />\n  \t</div>\n</div>\n",onUpdate:function(){this.parent._update();},onCancelUpdate:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();},_reset:function(){this.firstName.value="";this.lastName.value="";}});}if(!dojo._hasResource["ag.widget.validation.ProfilePathValidationRules"]){dojo._hasResource["ag.widget.validation.ProfilePathValidationRules"]=true;dojo.provide("ag.widget.validation.ProfilePathValidationRules");dojo.declare("ag.widget.validation.ProfilePathValidationRules",null,{rules:[new qi.validation.Required("profileUrlPath","A profile path is required."),new qi.validation.Length("profileUrlPath",4,50,"Profile path must be between 4 and 50 characters."),new qi.validation.Regexp("profileUrlPath","you can only use alphanumeric characters",/[\w]*/),new qi.validation.Required("profileUrlPathConf","Please confirm your profile path."),new qi.validation.Equal("profileUrlPath","profileUrlPathConf","Your path and confirm path do not match.")]});}if(!dojo._hasResource["ag.widget.user.account.MaintainUrl"]){dojo._hasResource["ag.widget.user.account.MaintainUrl"]=true;dojo.provide("ag.widget.user.account.MaintainUrl");dojo.declare("ag.widget.user.account.MaintainUrl",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<div class=\"accWidget\">\n\t<span dojoType=\"qi.widget.TopicSubscription\" dojoAttachPoint=\"subscriptions\"></span>\n</div>\n",widgetsInTemplate:true,shouldDestroyOldChildState:function(){return false;},postCreate:function(){this.infoWidget=new ag.widget.user.account.ShowInfo({parent:this,title:"My URL: ",link:"edit",createText:"Select a URL for your AG profile to send to your friends!"},document.createElement("span"));this.editWidget=new ag.widget.user.account.MaintainUrlEdit({parent:this},document.createElement("span"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));this._showInfo();},_showInfo:function(){var url=null;if(this.model.data.profilePathSet){url=this._getUrl(this.model.data.profilePath);this.infoWidget.setValueUrl(url,url);dojo.style(this.infoWidget.infoLink,"display","none");}else{this.infoWidget.setValueUrl(url,url);}this._changeState(this.infoWidget);},_showEdit:function(){this.editWidget.hostname0.innerHTML=this.editWidget.hostname1.innerHTML="http://"+window.location.hostname+"/profile/";this._changeState(this.editWidget);},_update:function(){dojo.publish(this.model.topic,[{eventType:"clearmessages"}]);var _934=new qi.validation.Validator(new ag.widget.validation.ProfilePathValidationRules());var _935={profileUrlPath:this.editWidget.profilePath.value,profileUrlPathConf:this.editWidget.profilePathConf.value};var _936=_934.validate(_935);if(!_936.isValid()){dojo.publish(this.model.topic,[{eventType:"error-account",message:_936.fields["profileUrlPath"]}]);}else{if(this.editWidget.profilePath.value==this.model.data.profilePath){this._showInfo();}else{delete (_935.profileUrlPathConf);var _937=new ag.services.XstreamJsonServiceFactory("profileService.setProfilePath").method(_935);_937.addCallback(dojo.hitch(this,function(_938){if(!_938.response||_938.returnCode!="Ok"){location.hash="errorAnchor";dojo.publish(this.model.topic,[{eventType:"error-account",message:"An error was encountered while updating your profile path"}]);return;}if(_938.response.result!="Ok"){location.hash="errorAnchor";dojo.publish(this.model.topic,[{eventType:"error-account",message:_938.response.message}]);return;}this.model.data.profilePath=this.editWidget.profilePath.value;this.model.data.profilePathSet=true;dojo.publish(this.model.topic,[{eventType:"loaded"}]);dojo.publish(this.model.topic,[{eventType:"update-account",message:"URL updated"}]);this._showInfo();}));}}},_onModelMessage:function(msg){if("loaded"==msg.eventType){this._showInfo();}},_getUrl:function(path){return "http://"+window.location.hostname+"/profile/"+this.model.data.profilePath;}});dojo.declare("ag.widget.user.account.MaintainUrlEdit",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"border\">\n\t<div class=\"subsection\">\n        <div class=\"left\">\n            <span class=\"bold\">My URL:</span>\n        </div>\n\n        <div class=\"center\">\n            <div class=\"value\">Pick Your Own AG URL</div>\n        </div>\n        <br class=\"clearfloat\"/>\n        <div class=\"help\">\n            Create your very own AG URL to send to your friends! Your URL may be different from your username. You may change your username as often as you like, but you cannot change your AG URL, so choose carefully!\n        </div>            \n    </div>\n\n    <div class=\"subsection\">\n        <span class=\"bold\">Pick your AG URL: </span><br/>\n        <span dojoAttachPoint=\"hostname0\"></span><input type=\"text\" class=\"profilePath\" dojoAttachPoint=\"profilePath\" id=\"${id}_url\" name=\"url\" size=\"20\"></input>\n        &nbsp;&nbsp;&nbsp;<a href=\"javascript:;\" dojoAttachEvent=\"onclick:onSuggest\">Suggest a URL</a>\n        <br class=\"clearfloat\"/>\n    </div>\n    \n    <div class=\"subsection\">\n        <span class=\"bold\">Confirm your AG URL: </span><br/>\n        <span dojoAttachPoint=\"hostname1\"></span><input type=\"text\" class=\"profilePath\" dojoAttachPoint=\"profilePathConf\" id=\"${id}_url\" name=\"url\" size=\"20\"></input>\n        <br class=\"clearfloat\"/>    \n    </div>\n\n    <div class=\"editButtons\">\n        <a class=\"button_standard float first\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onUpdate\">OK</a>\n        <a class=\"button_inactive float\" href=\"javascript:;\" dojoAttachEvent=\"onclick:onCancel\">Cancel</a>\n        <br class=\"clearFloat\" />\n  \t</div>\n</div>\n",onUpdate:function(){this.parent._update();},onCancel:function(e){e.preventDefault();dojo.publish(this.parent.model.topic,[{eventType:"clearmessages"}]);this.parent._showInfo();},onSuggest:function(){var _93c={};var _93d=new ag.services.XstreamJsonServiceFactory("profileService.suggestProfilePath").method(_93c);_93d.addCallback(dojo.hitch(this,function(_93e){if(!_93e.response||_93e.returnCode!="Ok"){dojo.publish(this.parent.model.topic,[{eventType:"error-account",message:"An error was encountered while suggesting your profile path"}]);return;}this.profilePath.value=_93e.response.suggestedUrl;this.profilePathConf.value="";}));}});}if(!dojo._hasResource["ag.services.XstreamJsonService"]){dojo._hasResource["ag.services.XstreamJsonService"]=true;dojo.provide("ag.services.XstreamJsonService");dojo.declare("ag.services.XstreamJsonService",dojo.rpc.RpcService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(_93f,_940){var _941=new dojo.Deferred();this.bind(_93f,_940,_941);return _941;},bind:function(_942,_943,_944,url){var def=dojo.rawXhrPost({url:url||this.serviceUrl,postData:this.createRequest(_942,_943),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"});def.addCallbacks(this.resultCallback(_944),this.errorCallback(_944));},createRequest:function(_947,_948){var _949=new Object();for(var i=0;i<_948.length;i++){_949=dojo.mixin(_949,_948[i]);}_949["methodName"]=_947;_949["id"]=++this.lastSubmissionId;var data=dojo.toJson({"request-array":{"request":[_949]}});return data;},parseResults:function(obj){if(dojo.isObject(obj)){if("response-array" in obj){return obj["response-array"][0];}}return obj;}});}if(!dojo._hasResource["ag.services.XstreamJsonServiceFactory"]){dojo._hasResource["ag.services.XstreamJsonServiceFactory"]=true;dojo.provide("ag.services.XstreamJsonServiceFactory");dojo.declare("ag.services.XstreamJsonServiceFactory",null,{constructor:function(_94d){var _94e=""+dojo.moduleUrl("agdynamic","xservices");var _94f={serviceURL:_94e,methods:[{name:_94d}],timeout:20000};this.service=new ag.services.XstreamJsonService(_94f);this.method=this.service[_94d];}});}if(!dojo._hasResource["ag.widget.user.account.MyAccountModel"]){dojo._hasResource["ag.widget.user.account.MyAccountModel"]=true;dojo.provide("ag.widget.user.account.MyAccountModel");dojo.declare("ag.widget.user.account.MyAccountModel",null,{topic:"/myaccountmodel",constructor:function(){this.data={};this._state="new";},loaded:function(){return "loaded"==this._state;},lazyLoad:function(){if("new"==this._state){this.loadAcctDetails();}},loadAcctDetails:function(){this._state="loading";var args={userId:parseInt(ag.user.LoggedInUser.getUserId())};var _951=new ag.services.XstreamJsonServiceFactory("profileService.getPrivateProfile").method(args);_951.addCallback(dojo.hitch(this,function(data){if(!data.response){dojo.publish(this.topic,[{eventType:"error-account",message:"There was an error retrieving your account"}]);return;}dojo.mixin(this.data,data.response);this._state="loaded";dojo.publish(this.topic,[{eventType:"loaded",data:data}]);}));_951.addErrback(dojo.hitch(this,function(err){this._state="error";this.data={};}));},updateModel:function(data){dojo.mixin(this.data,data);dojo.publish(this.topic,[{eventType:"loaded",data:data}]);}});(function(){var _955=new ag.widget.user.account.MyAccountModel();ag.widget.user.account.MyAccountModel.getInstance=function(){if(ag.user.LoggedInUser.isUserLoggedIn()){return _955;}return null;};})();}if(!dojo._hasResource["ag.widget.user.account.CancelMyAccount"]){dojo._hasResource["ag.widget.user.account.CancelMyAccount"]=true;dojo.provide("ag.widget.user.account.CancelMyAccount");dojo.declare("ag.widget.user.account.CancelMyAccount",[dijit._Widget,qi.widget.StatePatternContainer],{postCreate:function(){this._showIntroMsg();},_showIntroMsg:function(){var _956=new ag.widget.user.account.CancelMyAccountInfo({parent:this},document.createElement("span"));this._changeState(_956);},cancelAccount:function(){var _957=new ag.widget.user.account.ConfirmCancelMyAccount({parent:this},document.createElement("span"));this._changeState(_957);},doNotCancelAccount:function(){this._showIntroMsg();}});dojo.declare("ag.widget.user.account.CancelMyAccountInfo",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget\">\n\t<span class=\"title\">Cancel Account:</span>\n    <a class=\"create\" href=\"javascript:;\" dojoAttachPoint=\"createLink\" dojoAttachEvent=\"onclick:cancelAccount\">\n     You may cancel your AddictingGames account at any time\n    </a>\n</div>\n",cancelAccount:function(e){e.preventDefault();this.parent.cancelAccount();}});dojo.declare("ag.widget.user.account.ConfirmCancelMyAccount",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"accWidget border\">\n\t<form>\n\t\t<div>\n\t\t\tAre you sure you want to cancel your account?\n\t\t\tKeep in mind you will permanently lose all of your favorite games and other\n\t\t\tinformation you have saved on the site.\n\t\t\tWe're sorry to see you go.\n\t\t</div>\n\t\t<br/>\n\t\t<div>\n\t\t\tPlease enter your password below. We need to make sure it\u2019s really you canceling this account.\n\t\t</div>\n\t\t<br/>\n\t\t<div>\n\t\t\t<label for=\"${id}_password\">Password: </label>\n\t\t\t<input id=\"${id}_password\" type=\"password\" name=\"password\" dojoAttachPoint=\"password\"/>\n\t\t</div>\n\t\t<br/>\n\t\t<div>\n\t\t\t<a href=\"#\" dojoAttachEvent=\"onclick:onCancelMyAccount\">Yes</a>, I want to cancel my account.<br/><br/>\n\t\t\t<a href=\"#\" dojoAttachEvent=\"onclick:onDoNotCancelAccount\">No</a>, I would like to keep my account.\n\t\t</div>\n\t\t<div dojoType=\"qi.widget.validation.ValidationMessages\" dojoAttachPoint=\"messages\"></div>\n\t</form>\n</div>\n",widgetsInTemplate:true,validator:new qi.validation.Validator({rules:[new qi.validation.Required("password","Please enter your password")]}),onDoNotCancelAccount:function(e){e.preventDefault();this.parent.doNotCancelAccount();},onCancelMyAccount:function(e){e.preventDefault();this.messages.clear();var _95b={password:this.password.value};var cb=dojo.hitch(this.messages,this.messages.addMessage);var _95d=new qi.validation.ResultDispatcher().addMappedCallback("password",cb).addCallback(cb);var _95e=this.validator.validate(_95b);_95d.dispatch(_95e);if(_95e.isValid()){var _95f=ag.widget.user.account.MyAccountModel.getInstance().topic;var _960=new ag.services.JsonServiceFactory("userService.cancelMyAccount").method;var args={};dojo.mixin(args,_95b);ag.user.LoggedInUser.mixinSessionUserUuid(args);var _95e=_960(args);_95e.addCallback(dojo.hitch(this,function(res){dojo.publish(_95f,[{eventType:"update-account",message:"Your AddictingGames account has been canceled. "+"You may sign up for another account at any time."}]);window.setTimeout(dojo.hitch(this,function(){window.top.location.replace("/");}),5000);}));_95e.addErrback(dojo.hitch(this,function(err){_95d.dispatch(err);}));}}});}if(!dojo._hasResource["ag.widget.user.account.AccountInfo"]){dojo._hasResource["ag.widget.user.account.AccountInfo"]=true;dojo.provide("ag.widget.user.account.AccountInfo");dojo.declare("ag.widget.user.account.AccountInfo",[dijit._Widget],{postCreate:function(){if(!ag.user.LoggedInUser.isUserLoggedIn()){ag.widget.user.LoginPopup.showPopup();return;}this.subscriptions=new qi.widget.TopicSubscription({},document.getElementById("subscriptions"));this.contentMessages=new dijit.layout.ContentPane({},document.getElementById("contentMessages"));this.model=ag.widget.user.account.MyAccountModel.getInstance();this.subscriptions.subscribe(this.model.topic,dojo.hitch(this,"_onModelMessage"));new ag.widget.user.account.MaintainUsername({},document.getElementById("maintainUsername"));new ag.widget.user.account.MaintainEmail({},document.getElementById("maintainEmail"));new ag.widget.user.account.MaintainGender({},document.getElementById("maintainGender"));new ag.widget.user.account.MaintainPassword({},document.getElementById("maintainPassword"));new ag.widget.user.account.MaintainDOB({},document.getElementById("maintainDOB"));new ag.widget.user.account.MaintainAboutMe({},document.getElementById("maintainAboutMe"));new ag.widget.user.account.MaintainName({},document.getElementById("maintainName"));new ag.widget.user.account.MaintainUrl({},document.getElementById("maintainUrl"));new ag.widget.user.account.CancelMyAccount({},document.getElementById("cancelMyAccount"));this.model.lazyLoad();},_onModelMessage:function(msg){if(msg.eventType=="error-account"){dojo.removeClass(this.contentMessages.domNode,"valid");dojo.addClass(this.contentMessages.domNode,"errorMsg");this.contentMessages.setContent(msg.message);}else{if(msg.eventType=="clearmessages"){dojo.removeClass(this.contentMessages.domNode,"errorMsg");this.contentMessages.setContent("");}else{if(msg.eventType=="update-account"){dojo.removeClass(this.contentMessages.domNode,"errorMsg");dojo.addClass(this.contentMessages.domNode,"valid");this.contentMessages.setContent(msg.message);}}}}});}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 _966=new ag.services.JsonServiceFactory("userService.cancelAccountByUuid").method;var _967=_966({uuid:uuid});_967.addCallback(dojo.hitch(this,function(_968){this._changeState(new ag.widget.user.CancelAcctSuccess({successUrl:this.successUrl},document.createElement("span")));}));_967.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.ConfirmEmail"]){dojo._hasResource["ag.widget.user.ConfirmEmail"]=true;dojo.provide("ag.widget.user.ConfirmEmail");dojo.declare("ag.widget.user.ConfirmEmail",[dijit._Widget,dijit._Templated],{templateString:"<div>\n    <div dojoAttachPoint=\"errorMsg\" class=\"hidden\"></div>\n\n    <div dojoAttachPoint=\"successMsg\" class=\"hidden\">\n        Your email address has been verified. Have fun on the site!\n    </div>\n    <div dojoAttachPoint=\"alreadyConfirmedMsg\" class=\"hidden\">\n        You have already confirmed your account. Have fun!\n    </div>\n    <div dojoAttachPoint=\"buttonDiv\" class=\"hidden\">\n        <div class='button_single'>\n            <a dojoAttachEvent=\"onclick:onOk\" class='button_standard float first'>Ok</a>\n        </div>\n    </div>\n\n</div>\n",widgetsInTemplate:true,emailUuidParam:"emailuuid",redirectPathParam:"redirect",constructor:function(args){dojo.mixin(this,args);},postCreate:function(){this.waitDiv=document.getElementById("waitDiv");var _96c=qi.util.getQueryStringValue(this.emailUuidParam);this.redirectPath=qi.util.getQueryStringValue(this.redirectPathParam);if(null!=_96c){var _96d=new ag.services.JsonServiceFactory("userService.confirmEmail").method;var _96e=_96d({emailuuid:_96c});_96e.addCallback(dojo.hitch(this,function(_96f){this.profilePath=_96f.profileUrl;dojo.addClass(this.waitDiv,"hidden");dojo.removeClass(this.buttonDiv,"hidden");if(_96f.status=="Already confirmed"){dojo.removeClass(this.alreadyConfirmedMsg,"hidden");}else{dojo.removeClass(this.successMsg,"hidden");}}));_96e.addErrback(dojo.hitch(this,function(err){var msgs=new qi.widget.validation.ValidationMessages({},this.errorMsg);new qi.validation.ResultDispatcher().addCallback(dojo.hitch(msgs,msgs.addMessage)).dispatch(err);dojo.addClass(this.waitDiv,"hidden");dojo.removeClass(this.errorMsg,"hidden");}));}else{dojo.addClass(this.waitDiv,"hidden");dojo.removeClass(this.errorMsg,"hidden");this.errorMsg.innerHTML="Missing request parameter";}},onOk:function(e){e.preventDefault();if(this.redirectPath){window.top.location=unescape(this.redirectPath);}else{if(this.profilePath){window.top.location.replace("/profile/"+this.profilePath+"?pageAction=startPhotoUpload");}else{window.top.location="/";}}}});}if(!dojo._hasResource["ag.widget.user.LoggedInUser"]){dojo._hasResource["ag.widget.user.LoggedInUser"]=true;dojo.provide("ag.widget.user.LoggedInUser");dojo.declare("ag.widget.user.LoggedInUser",[dijit._Widget,dijit._Templated,qi.widget.StatePatternContainer],{templateString:"<span><span dojoAttachPoint='content'></span></span>",content:{},postCreate:function(){if(ag.user.LoggedInUser.isUserLoggedIn()){this.onLogIn();}this._subscriptions=[ag.event.EventBus.APPLICATION.LOGIN.subscribe(this,"onLogIn"),ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,"onLogOut")];},destroy:function(){dojo.forEach(this._subscriptions,function(sub){dojo.unsubscribe(sub);});ag.widget.user.LoggedInUser.superclass.destroy.apply(this,arguments);},onLogIn:function(){this._changeState(new ag.widget.user.LoggedIn({},this.content));},onLogOut:function(){this._changeState(new ag.widget.user.LoggedOut({},this.content));}});dojo.declare("ag.widget.user.LoggedIn",[dijit._Widget,dijit._Templated],{templateString:"<span>\nHello ${username}!\n</span>\n",username:"",_maxUsernameLength:18,_ellipses:"...",postMixInProperties:function(){var _974=ag.user.LoggedInUser.getSessionUsername();if(_974.length<=this._maxUsernameLength){this.username=_974;}else{this.username=_974.substring(0,(this._maxUsernameLength-this._ellipses.length))+this._ellipses;}}});dojo.declare("ag.widget.user.LoggedOut",[dijit._Widget,dijit._Templated],{templateString:"<span></span>"});}if(!dojo._hasResource["ag.widget.user.RedirectNotLoggedInUser"]){dojo._hasResource["ag.widget.user.RedirectNotLoggedInUser"]=true;dojo.provide("ag.widget.user.RedirectNotLoggedInUser");dojo.declare("ag.widget.user.RedirectNotLoggedInUser",[dijit._Widget],{subscriptions:new qi.widget.TopicSubscription(),logoutURL:"/",postCreate:function(){if(ag.user.LoggedInUser.isUserLoggedIn()==false){this._onLogout();}else{this.subscriptions.addSubscription(ag.event.EventBus.APPLICATION.LOGOUT.subscribe(this,this._onLogout));}},_onLogout:function(){window.top.location.replace(this.logoutURL);}});}dojo.i18n._preloadLocalizations("dojo.nls.ag",["xx","ROOT","en","en-us"]);
