/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

/*
	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["joost.config"]){
dojo._hasResource["joost.config"]=true;
dojo.provide("joost.config");
dojo.mixin(joost.config,{ttShowDelay:500,defaultAvatar:{"MALE":dojo.moduleUrl("joost.resources","images/default_profile_male_lrg.jpg"),"FEMALE":dojo.moduleUrl("joost.resources","images/default_profile_female_lrg.jpg")},SWFUploadUrl:dojo.moduleUrl("joost.resources","SWFUpload_v2.2.0.1_Core/Flash/swfupload.swf"),maxFirstNameChars:50,maxLastNameChars:50,maxEmailChars:255});
}
if(!dojo._hasResource["joost.util"]){
dojo._hasResource["joost.util"]=true;
dojo.provide("joost.util");
(function(d,j){
j.addBeacon=function(){
var _1=joost.user.current.dobYear;
var _2=["<img src='",window.location.protocol,"//",dojo.config.adurls.beacon,j.util.adoptions(),"' width='1' height='1' border='0'/>"].join("");
return d.place(_2,d.body());
};
d.mixin(j.util,{propercase:function(_3){
return _3.charAt(0).toUpperCase()+_3.substr(1);
},fix:function(_4){
return _4.match(/#(.*)/)[1].replace(/%20/," ");
},page:function(_5,_6){
return [_5.slice(0,_6),_5.slice(_6)];
},adoptions:function(){
var _7=j.user.current.dobyear;
return ["&rnd=",+new Date(),"&g=",(j.user.current.gender||"U").substr(0,1).toLowerCase(),(_7?"&yb="+_7:"")].join("");
}});
})(dojo,joost);
}
if(!dojo._hasResource["joost._Nls"]){
dojo._hasResource["joost._Nls"]=true;
dojo.provide("joost._Nls");
dojo.declare("joost._Nls",null,{constructor:function(_8,_9){
this.strings={};
},postMixInProperties:function(){
this.inherited(arguments);
if(dojo.isArray(this.bundles)){
dojo.forEach(this.bundles,function(n){
this.strings[n.bundle]=dojo.i18n.getLocalization(n.module,n.bundle);
},this);
}
},i18n:function(_a,_b,_c){
var b=this.strings[_a];
if(!b){
return "";
}
var s=b[_b];
if(s&&_c){
s=dojo.string.substitute(s,_c);
}
return s;
}});
}
if(!dojo._hasResource["joost.Widget"]){
dojo._hasResource["joost.Widget"]=true;
dojo.provide("joost.Widget");
joost.kill=function(w){
if(w&&w.destroyRecursive){
w.destroyRecursive();
}else{
if(w&&w.destroy){
w.destroy();
}
}
};
dojo.extend(dijit._Widget,{query:function(q){
return dojo.query(q,this.domNode);
}});
dojo.declare("joost.Widget",[dijit._Widget,dijit._Templated],{adopt:function(_d,_e,_f){
var x=new _d(_e,_f);
this._addItem(x);
return x;
},_addItem:function(){
this._addedItems=this._addedItems||[];
this._addedItems.push.apply(this._addedItems,arguments);
},orphan:function(_10,_11){
this._addedItems=this._addedItems||[];
var i=dojo.indexOf(this._addedItems,_10);
if(i>=0){
this._addedItems.splice(i,1);
}
_11&&joost.kill(_10);
},destroy:function(){
dojo.forEach(this._addedItems,joost.kill);
this.inherited(arguments);
}});
dojo.declare("joost.NlsWidget",[joost.Widget,joost._Nls],{});
}
if(!dojo._hasResource["joost.html"]){
dojo._hasResource["joost.html"]=true;
dojo.provide("joost.html");
dojo._mixin(joost,{re:{"url":/https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.\-]*(\?\S+)?)?)?/g,"email":/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/},show:function(_12,how){
if(how===undefined){
if(dojo.hasAttr(_12,"_jDisplay")){
how=dojo.attr(_12,"_jDisplay");
}else{
how="block";
}
}
dojo.style(_12,"display",how);
},hide:function(_13){
if(dojo.style(_13,"display")!="none"){
dojo.attr(_13,"_jDisplay",dojo.style(_13,"display"));
}
dojo.style(_13,"display","none");
},toggle:function(_14,_15,how){
joost[(_15?"show":"hide")](_14,how);
},hasTag:function(tag,_16){
return _16&&_16.tagName&&(_16.tagName.toLowerCase()==tag.toLowerCase());
},hasTagAndClass:function(tag,_17,_18){
return joost.hasTag(tag,_18)&&dojo.hasClass(_18,_17);
},closest:function(_19,_1a){
var doc=dojo.doc;
while(_19&&!_1a(_19)&&_19!==doc){
_19=_19.parentNode;
}
return _19;
},ellipsis:function(_1b,_1c,_1d,_1e){
if(!(_1b&&dojo.isString(_1b))){
return "";
}
var _1f=parseInt(_1c,10),_20=parseInt(_1e,10);
_1d=_1d||"absolute";
var _21={word:10,sentence:25,paragraph:50};
var sE="…";
var _22=0;
if(_1d==="word"){
_22=_21.word;
}
if(_1d==="sentence"){
_22=_21.sentence;
}
if(_1d==="paragraph"){
_22=_21.paragraph;
}
if(!isNaN(_20)){
_22=_20;
}
var _23,_24,_25;
if(_1b.length>_1f+_22&&_1f!=0){
if(_1d=="absolute"){
_23=_1b.substring(0,_1f+_22)+sE;
return _23;
}
if(_1d=="paragraph"){
_24=/\n/;
_25=_1b.substring(_1f,_1f+_22).search(_24);
if(_25==-1){
_25=-1-_1b.substring(_1f-_22,_1f).split("").reverse().join("").search(_24);
if(_25==0){
_1d="sentence";
}
}
if(_1d=="paragraph"){
_23=_1b.substring(0,_1f+_25).replace(/\n$/," ")+sE;
return _23;
}
}
if(_1d=="sentence"){
_24=/\W\s/;
_25=_1b.substring(_1f,_1f+_22).search(_24);
if(_25==-1){
_25=-1-_1b.substring(_1f-_22,_1f).split("").reverse().join("").search(_24);
if(_25==0){
_1d="word";
}
}
if(_1d=="sentence"){
_23=_1b.substring(0,_1f+_25+1)+sE;
return _23;
}
}
if(_1d=="word"){
_24=/\W|\s/;
_25=_1b.substring(_1f,_1f+_22).search(_24);
if(_25==-1){
_25=-1-_1b.substring(_1f-_22,_1f).split("").reverse().join("").search(_24);
}
_23=_1b.substring(0,_1f+_25)+sE;
return _23;
}
}else{
return _1b;
}
},ellipsisAppendA:function(_26,_27,_28,_29){
var _2a=joost.ellipsis(_26,_27,_28,_29),_2b=joost.re["url"],_2c=_26.match(_2b);
if(_2c!=null&&_26.search(_2b)>_2a.length){
_2a=_2a+" "+_2c[0];
}
return _2a;
},deXSS:function(_2d){
if(!(_2d&&dojo.isString(_2d))){
return "";
}
var _2e=/&/g,_2f=/</g,_30=/>/g,_31=/'/g,_32=/"/g;
var ret=_2d.replace(_2e,"&amp;").replace(_2f,"&lt;").replace(_30,"&gt;").replace(_32,"&quot;").replace(_31,"&#39;");
return ret;
},formatP:function(_33){
if(!(_33&&dojo.isString(_33))){
return "";
}
_33=_33.replace(/\\n/g,"\n");
_33=dojo.trim(_33.replace(/\n\n+/g,"\n"));
if(_33===""){
return "";
}
return "<p>"+_33.replace(/\n/gi,"</p><p>")+"</p>";
},formatA:function(_34){
if(!(_34&&dojo.isString(_34))){
return "";
}
_34=_34.replace(joost.re.url,function(_35){
var out=_35.match(/([^\w\/]$)/g);
if(out){
_35=_35.replace(/([^\w\/]$)/g,"");
return "<a href=\""+_35+"\" rel=\"nofollow\" target=\"_blank\">"+_35+"</a>"+out;
}
return "<a href=\""+_35+"\" rel=\"nofollow\" target=\"_blank\">"+_35+"</a>";
});
return _34;
},validateEmail:function(_36){
return _36&&dojo.isString(_36)&&joost.re.email.test(_36);
},validateUrl:function(url){
return url&&dojo.isString(url)&&joost.re.url.test(url);
}});
}
if(!dojo._hasResource["dojo.hash"]){
dojo._hasResource["dojo.hash"]=true;
dojo.provide("dojo.hash");
(function(){
dojo.hash=function(_37,_38){
if(!arguments.length){
return _39();
}
if(_37.charAt(0)=="#"){
_37=_37.substring(1);
}
if(_38){
_3a(_37);
}else{
location.href="#"+_37;
}
return _37;
};
var _3b=null,_3c=null,_3d=dojo.config.hashPollFrequency||100;
function _39(){
var h=location.href,i=h.indexOf("#");
return (i>=0)?h.substring(i+1):"";
};
function _3e(){
dojo.publish("/dojo/hashchange",[_39()]);
};
function _3f(){
if(_39()===_3b){
return;
}
_3b=_39();
_3e();
};
function _3a(_40){
if(_3c){
if(_3c.isTransitioning()){
setTimeout(dojo.hitch(null,_3a,_40),_3d);
return;
}
var _41=_3c.iframe.location.href;
var _42=_41.indexOf("?");
_3c.iframe.location.replace(_41.substring(0,_42)+"?"+_40);
return;
}
location.replace("#"+_40);
_3f();
};
function _43(){
var ifr=document.createElement("iframe"),_44="dojo-hash-iframe",_45=dojo.config.dojoBlankHtmlUrl||dojo.moduleUrl("dojo","resources/blank.html");
ifr.id=_44;
ifr.src=_45+"?"+_39();
ifr.style.display="none";
document.body.appendChild(ifr);
this.iframe=dojo.global[_44];
var _46,_47,_48,_49,_4a,_4b=this.iframe.location,_4c=dojo.global.location;
function _4d(){
_3b=_4c.hash;
_46=_4a?_3b:_4b.search;
_47=false;
_48=null;
};
this.isTransitioning=function(){
return _47;
};
this.pollLocation=function(){
if(!_4a){
try{
_4b.search;
if(document.title!=_49){
_49=this.iframe.document.title=document.title;
}
}
catch(e){
_4a=true;
console.error("dojo.hash: Error adding history entry. Server unreachable.");
}
}
if(_47&&_3b===_4c.hash){
if(_4a||_4b.search===_48){
_4d();
_3e();
}else{
setTimeout(dojo.hitch(this,this.pollLocation),0);
return;
}
}else{
if(_3b===_4c.hash&&(_4a||_46===_4b.search)){
}else{
if(_3b!==_4c.hash){
_3b=_4c.hash;
_47=true;
_48="?"+_39();
ifr.src=_45+_48;
_4a=false;
setTimeout(dojo.hitch(this,this.pollLocation),0);
return;
}else{
if(!_4a){
_4c.href="#"+_4b.search.substring(1);
_4d();
_3e();
}
}
}
}
setTimeout(dojo.hitch(this,this.pollLocation),_3d);
};
_4d();
setTimeout(dojo.hitch(this,this.pollLocation),_3d);
};
dojo.addOnLoad(function(){
if("onhashchange" in dojo.global&&(!dojo.isIE||(dojo.isIE>=8&&document.compatMode!="BackCompat"))){
dojo.connect(dojo.global,"onhashchange",_3e);
}else{
if(document.addEventListener){
_3b=_39();
setInterval(_3f,_3d);
}else{
if(document.attachEvent){
_3c=new _43();
}
}
}
});
})();
}
if(!dojo._hasResource["joost.actions"]){
dojo._hasResource["joost.actions"]=true;
dojo.provide("joost.actions");
(function(){
function _4e(h){
var _4f=h.indexOf("?");
var _50="",_51="";
if(_4f>-1){
_50=h.substring(0,_4f);
_51=dojo.queryToObject(h.substring(_4f+1));
}else{
_50=h;
}
return {path:_50,query:_51};
};
function _52(){
var h=dojo.hash()||"";
dojo.publish("/joost/receive-state",[_4e(h)]);
};
dojo.addOnLoad(function(){
dojo.subscribe("/dojo/hashchange",_52);
setTimeout(function(){
if(dojo.hash()!==""){
_52();
}
},0);
});
joost.stateChange=function(){
var _53={path:null,query:{}};
dojo.publish("/joost/provide-state",[_53]);
var qs=dojo.objectToQuery(_53.query);
var h=dojo.hash();
if(_53.path===null){
_53.path=_4e(dojo.hash()).path;
}
var _54=_53.path+(qs?"?"+qs:"");
if(_54!==h){
dojo.hash(_54);
}
};
var _55=false;
joost.scrollIntoView=function(_56,off){
_55&&_55.stop();
_56=dojo.byId(_56);
var p=(_56&&_56.nodeType==1)?dojo.coords(_56):{t:0,l:0},o=dojo.query(".gusWrapper").style("height")[0],_57=Math.max(0,p.t-o-(off||10)),_58=dojo.isWebKit?dojo.body():dojo.doc.documentElement,now=_58.scrollTop,end=_57<100?0:_57,_59=Math.abs(end-now)||0,pps=_59?(_59/(dojo.config.scrollRate||1500))*1000:0;
if(pps){
_55=new dojo._Animation({curve:[now,end],onAnimate:function(val){
window.scrollTo(0,val);
},duration:Math.min(pps*2,2000),easing:dojo.fx.easing.quintOut}).play();
}
};
})();
}
if(!dojo._hasResource["dojo.regexp"]){
dojo._hasResource["dojo.regexp"]=true;
dojo.provide("dojo.regexp");
dojo.regexp.escapeString=function(str,_5a){
return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){
if(_5a&&_5a.indexOf(ch)!=-1){
return ch;
}
return "\\"+ch;
});
};
dojo.regexp.buildGroupRE=function(arr,re,_5b){
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("|"),_5b);
};
dojo.regexp.group=function(_5c,_5d){
return "("+(_5d?"?:":"")+_5c+")";
};
}
if(!dojo._hasResource["dojo.cookie"]){
dojo._hasResource["dojo.cookie"]=true;
dojo.provide("dojo.cookie");
dojo.cookie=function(_5e,_5f,_60){
var c=document.cookie;
if(arguments.length==1){
var _61=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(_5e)+"=([^;]*)"));
return _61?decodeURIComponent(_61[1]):undefined;
}else{
_60=_60||{};
var exp=_60.expires;
if(typeof exp=="number"){
var d=new Date();
d.setTime(d.getTime()+exp*24*60*60*1000);
exp=_60.expires=d;
}
if(exp&&exp.toUTCString){
_60.expires=exp.toUTCString();
}
_5f=encodeURIComponent(_5f);
var _62=_5e+"="+_5f,_63;
for(_63 in _60){
_62+="; "+_63;
var _64=_60[_63];
if(_64!==true){
_62+="="+_64;
}
}
document.cookie=_62;
}
};
dojo.cookie.isSupported=function(){
if(!("cookieEnabled" in navigator)){
this("__djCookieTest__","CookiesAllowed");
navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";
if(navigator.cookieEnabled){
this("__djCookieTest__","",{expires:-1});
}
}
return navigator.cookieEnabled;
};
}
if(!dojo._hasResource["dojox.rpc.Service"]){
dojo._hasResource["dojox.rpc.Service"]=true;
dojo.provide("dojox.rpc.Service");
dojo.declare("dojox.rpc.Service",null,{constructor:function(smd,_65){
var url;
var _66=this;
function _67(smd){
smd._baseUrl=new dojo._Url((dojo.isBrowser?location.href:dojo.config.baseUrl),url||".")+"";
_66._smd=smd;
for(var _68 in _66._smd.services){
var _69=_68.split(".");
var _6a=_66;
for(var i=0;i<_69.length-1;i++){
_6a=_6a[_69[i]]||(_6a[_69[i]]={});
}
_6a[_69[_69.length-1]]=_66._generateService(_68,_66._smd.services[_68]);
}
};
if(smd){
if((dojo.isString(smd))||(smd instanceof dojo._Url)){
if(smd instanceof dojo._Url){
url=smd+"";
}else{
url=smd;
}
var _6b=dojo._getText(url);
if(!_6b){
throw new Error("Unable to load SMD from "+smd);
}else{
_67(dojo.fromJson(_6b));
}
}else{
_67(smd);
}
}
this._options=(_65?_65:{});
this._requestId=0;
},_generateService:function(_6c,_6d){
if(this[_6d]){
throw new Error("WARNING: "+_6c+" already exists for service. Unable to generate function");
}
_6d.name=_6c;
var _6e=dojo.hitch(this,"_executeMethod",_6d);
var _6f=dojox.rpc.transportRegistry.match(_6d.transport||this._smd.transport);
if(_6f.getExecutor){
_6e=_6f.getExecutor(_6e,_6d,this);
}
var _70=_6d.returns||(_6d._schema={});
var _71="/"+_6c+"/";
_70._service=_6e;
_6e.servicePath=_71;
_6e._schema=_70;
_6e.id=dojox.rpc.Service._nextId++;
return _6e;
},_getRequest:function(_72,_73){
var smd=this._smd;
var _74=dojox.rpc.envelopeRegistry.match(_72.envelope||smd.envelope||"NONE");
var _75=(_72.parameters||[]).concat(smd.parameters||[]);
if(_74.namedParams){
if((_73.length==1)&&dojo.isObject(_73[0])){
_73=_73[0];
}else{
var _76={};
for(var i=0;i<_72.parameters.length;i++){
if(typeof _73[i]!="undefined"||!_72.parameters[i].optional){
_76[_72.parameters[i].name]=_73[i];
}
}
_73=_76;
}
if(_72.strictParameters||smd.strictParameters){
for(i in _73){
var _77=false;
for(var j=0;j<_75.length;j++){
if(_75[i].name==i){
_77=true;
}
}
if(!_77){
delete _73[i];
}
}
}
for(i=0;i<_75.length;i++){
var _78=_75[i];
if(!_78.optional&&_78.name&&!_73[_78.name]){
if(_78["default"]){
_73[_78.name]=_78["default"];
}else{
if(!(_78.name in _73)){
throw new Error("Required parameter "+_78.name+" was omitted");
}
}
}
}
}else{
if(_75&&_75[0]&&_75[0].name&&(_73.length==1)&&dojo.isObject(_73[0])){
if(_74.namedParams===false){
_73=dojox.rpc.toOrdered(_75,_73);
}else{
_73=_73[0];
}
}
}
if(dojo.isObject(this._options)){
_73=dojo.mixin(_73,this._options);
}
var _79=_72._schema||_72.returns;
var _7a=_74.serialize.apply(this,[smd,_72,_73]);
_7a._envDef=_74;
var _7b=(_72.contentType||smd.contentType||_7a.contentType);
return dojo.mixin(_7a,{sync:dojox.rpc._sync,contentType:_7b,headers:{},target:_7a.target||dojox.rpc.getTarget(smd,_72),transport:_72.transport||smd.transport||_7a.transport,envelope:_72.envelope||smd.envelope||_7a.envelope,timeout:_72.timeout||smd.timeout,callbackParamName:_72.callbackParamName||smd.callbackParamName,schema:_79,handleAs:_7a.handleAs||"auto",preventCache:_72.preventCache||smd.preventCache,frameDoc:this._options.frameDoc||undefined});
},_executeMethod:function(_7c){
var _7d=[];
var i;
for(i=1;i<arguments.length;i++){
_7d.push(arguments[i]);
}
var _7e=this._getRequest(_7c,_7d);
var _7f=dojox.rpc.transportRegistry.match(_7e.transport).fire(_7e);
dojo.publish("/joost/rpc/start",[_7f]);
_7f.addBoth(function(_80){
dojo.publish("/joost/rpc/stop");
return _7e._envDef.deserialize.call(this,_80);
});
return _7f;
}});
dojox.rpc.getTarget=function(smd,_81){
var _82=smd._baseUrl;
if(smd.target){
_82=new dojo._Url(_82,smd.target)+"";
}
if(_81.target){
_82=new dojo._Url(_82,_81.target)+"";
}
return _82;
};
dojox.rpc.toOrdered=function(_83,_84){
if(dojo.isArray(_84)){
return _84;
}
var _85=[];
for(var i=0;i<_83.length;i++){
_85.push(_84[_83[i].name]);
}
return _85;
};
dojox.rpc.transportRegistry=new dojo.AdapterRegistry(true);
dojox.rpc.envelopeRegistry=new dojo.AdapterRegistry(true);
dojox.rpc.envelopeRegistry.register("URL",function(str){
return str=="URL";
},{serialize:function(smd,_86,_87){
var d=dojo.objectToQuery(_87);
return {data:d,transport:"POST"};
},deserialize:function(_88){
return _88;
},namedParams:true});
dojox.rpc.envelopeRegistry.register("JSON",function(str){
return str=="JSON";
},{serialize:function(smd,_89,_8a){
var d=dojo.toJson(_8a);
return {data:d,handleAs:"json",contentType:"application/json"};
},deserialize:function(_8b){
return _8b;
}});
dojox.rpc.envelopeRegistry.register("PATH",function(str){
return str=="PATH";
},{serialize:function(smd,_8c,_8d){
var i;
var _8e=dojox.rpc.getTarget(smd,_8c);
if(dojo.isArray(_8d)){
for(i=0;i<_8d.length;i++){
_8e+="/"+_8d[i];
}
}else{
for(i in _8d){
_8e+="/"+i+"/"+_8d[i];
}
}
return {data:"",target:_8e};
},deserialize:function(_8f){
return _8f;
}});
dojox.rpc.transportRegistry.register("POST",function(str){
return str=="POST";
},{fire:function(r){
r.url=r.target;
r.postData=r.data;
return dojo.rawXhrPost(r);
}});
dojox.rpc.transportRegistry.register("GET",function(str){
return str=="GET";
},{fire:function(r){
r.url=r.target+(r.data?"?"+r.data:"");
return dojo.xhrGet(r);
}});
dojox.rpc.transportRegistry.register("JSONP",function(str){
return str=="JSONP";
},{fire:function(r){
r.url=r.target+((r.target.indexOf("?")==-1)?"?":"&")+r.data;
r.callbackParamName=r.callbackParamName||"callback";
return dojo.io.script.get(r);
}});
dojox.rpc.Service._nextId=1;
dojo._contentHandlers.auto=function(xhr){
var _90=dojo._contentHandlers;
var _91=xhr.getResponseHeader("Content-Type");
var _92=!_91?_90.text(xhr):_91.match(/\/.*json.*; *x-json-ref=1/)?_90.jsonref(xhr):_91.match(/\/.*json/)?_90.json(xhr):_91.match(/\/javascript/)?_90.javascript(xhr):_91.match(/\/xml/)?_90.xml(xhr):_90.text(xhr);
return _92;
};
}
if(!dojo._hasResource["dojox.json.ref"]){
dojo._hasResource["dojox.json.ref"]=true;
dojo.provide("dojox.json.ref");
dojox.json.ref={resolveJson:function(_93,_94){
_94=_94||{};
var _95=_94.idAttribute||"id";
var _96=this.refAttribute;
var _97=_94.idAsRef;
var _98=_94.idPrefix||"";
var _99=_94.assignAbsoluteIds;
var _9a=_94.index||{};
var _9b=_94.timeStamps;
var ref,_9c=[];
var _9d=/^(.*\/)?(\w+:\/\/)|[^\/\.]+\/\.\.\/|^.*\/(\/)/;
var _9e=this._addProp;
var F=function(){
};
function _9f(it,_a0,_a1,_a2,_a3,_a4){
var i,_a5,val,id=_95 in it?it[_95]:_a1;
if(_95 in it||((id!==undefined)&&_a2)){
id=(_98+id).replace(_9d,"$2$3");
}
var _a6=_a4||it;
if(id!==undefined){
if(_99){
it.__id=id;
}
if(_94.schemas&&(!(it instanceof Array))&&(val=id.match(/^(.+\/)[^\.\[]*$/))){
_a3=_94.schemas[val[1]];
}
if(_9a[id]&&((it instanceof Array)==(_9a[id] instanceof Array))){
_a6=_9a[id];
delete _a6.$ref;
delete _a6._loadObject;
_a5=true;
}else{
var _a7=_a3&&_a3.prototype;
if(_a7){
F.prototype=_a7;
_a6=new F();
}
}
_9a[id]=_a6;
if(_9b){
_9b[id]=_94.time;
}
}
while(_a3){
var _a8=_a3.properties;
if(_a8){
for(i in it){
var _a9=_a8[i];
if(_a9&&_a9.format=="date-time"&&typeof it[i]=="string"){
it[i]=dojo.date.stamp.fromISOString(it[i]);
}
}
}
_a3=_a3["extends"];
}
var _aa=it.length;
for(i in it){
if(i==_aa){
break;
}
if(it.hasOwnProperty(i)){
val=it[i];
if((typeof val=="object")&&val&&!(val instanceof Date)&&i!="__parent"){
ref=val[_96]||(_97&&val[_95]);
if(!ref||!val.__parent){
val.__parent=it;
}
if(ref){
delete it[i];
var _ab=ref.toString().replace(/(#)([^\.\[])/,"$1.$2").match(/(^([^\[]*\/)?[^#\.\[]*)#?([\.\[].*)?/);
if((ref=(_ab[1]=="$"||_ab[1]=="this"||_ab[1]=="")?_93:_9a[(_98+_ab[1]).replace(_9d,"$2$3")])){
if(_ab[3]){
_ab[3].replace(/(\[([^\]]+)\])|(\.?([^\.\[]+))/g,function(t,a,b,c,d){
ref=ref&&ref[b?b.replace(/[\"\'\\]/,""):d];
});
}
}
if(ref){
val=ref;
}else{
if(!_a0){
var _ac;
if(!_ac){
_9c.push(_a6);
}
_ac=true;
val=_9f(val,false,val[_96],true,_a9);
val._loadObject=_94.loader;
}
}
}else{
if(!_a0){
val=_9f(val,_9c==it,id===undefined?undefined:_9e(id,i),false,_a9,_a6!=it&&typeof _a6[i]=="object"&&_a6[i]);
}
}
}
it[i]=val;
if(_a6!=it&&!_a6.__isDirty){
var old=_a6[i];
_a6[i]=val;
if(_a5&&val!==old&&!_a6._loadObject&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")&&i!="$ref"&&!(val instanceof Date&&old instanceof Date&&val.getTime()==old.getTime())&&!(typeof val=="function"&&typeof old=="function"&&val.toString()==old.toString())&&_9a.onUpdate){
_9a.onUpdate(_a6,i,old,val);
}
}
}
}
if(_a5&&(_95 in it)){
for(i in _a6){
if(!_a6.__isDirty&&_a6.hasOwnProperty(i)&&!it.hasOwnProperty(i)&&!(i.charAt(0)=="_"&&i.charAt(1)=="_")&&!(_a6 instanceof Array&&isNaN(i))){
if(_9a.onUpdate&&i!="_loadObject"&&i!="_idAttr"){
_9a.onUpdate(_a6,i,_a6[i],undefined);
}
delete _a6[i];
while(_a6 instanceof Array&&_a6.length&&_a6[_a6.length-1]===undefined){
_a6.length--;
}
}
}
}else{
if(_9a.onLoad){
_9a.onLoad(_a6);
}
}
return _a6;
};
if(_93&&typeof _93=="object"){
_93=_9f(_93,false,_94.defaultId,true);
_9f(_9c,false);
}
return _93;
},fromJson:function(str,_ad){
function ref(_ae){
var _af={};
_af[this.refAttribute]=_ae;
return _af;
};
try{
var _b0=eval("("+str+")");
}
catch(e){
throw new SyntaxError("Invalid JSON string: "+e.message+" parsing: "+str);
}
if(_b0){
return this.resolveJson(_b0,_ad);
}
return _b0;
},toJson:function(it,_b1,_b2,_b3){
var _b4=this._useRefs;
var _b5=this._addProp;
var _b6=this.refAttribute;
_b2=_b2||"";
var _b7={};
var _b8={};
function _b9(it,_ba,_bb){
if(typeof it=="object"&&it){
var _bc;
if(it instanceof Date){
return "\""+dojo.date.stamp.toISOString(it,{zulu:true})+"\"";
}
var id=it.__id;
if(id){
if(_ba!="#"&&((_b4&&!id.match(/#/))||_b7[id])){
var ref=id;
if(id.charAt(0)!="#"){
if(it.__clientId==id){
ref="cid:"+id;
}else{
if(id.substring(0,_b2.length)==_b2){
ref=id.substring(_b2.length);
}else{
ref=id;
}
}
}
var _bd={};
_bd[_b6]=ref;
return _b9(_bd,"#");
}
_ba=id;
}else{
it.__id=_ba;
_b8[_ba]=it;
}
_b7[_ba]=it;
_bb=_bb||"";
var _be=_b1?_bb+dojo.toJsonIndentStr:"";
var _bf=_b1?"\n":"";
var sep=_b1?" ":"";
if(it instanceof Array){
var res=dojo.map(it,function(obj,i){
var val=_b9(obj,_b5(_ba,i),_be);
if(typeof val!="string"){
val="undefined";
}
return _bf+_be+val;
});
return "["+res.join(","+sep)+_bf+_bb+"]";
}
var _c0=[];
for(var i in it){
if(it.hasOwnProperty(i)){
var _c1;
if(typeof i=="number"){
_c1="\""+i+"\"";
}else{
if(typeof i=="string"&&(i.charAt(0)!="_"||i.charAt(1)!="_")){
_c1=dojo._escapeString(i);
}else{
continue;
}
}
var val=_b9(it[i],_b5(_ba,i),_be);
if(typeof val!="string"){
continue;
}
_c0.push(_bf+_be+_c1+":"+sep+val);
}
}
return "{"+_c0.join(","+sep)+_bf+_bb+"}";
}else{
if(typeof it=="function"&&dojox.json.ref.serializeFunctions){
return it.toString();
}
}
return dojo.toJson(it);
};
var _c2=_b9(it,"#","");
if(!_b3){
for(var i in _b8){
delete _b8[i].__id;
}
}
return _c2;
},_addProp:function(id,_c3){
return id+(id.match(/#/)?id.length==1?"":".":"#")+_c3;
},refAttribute:"$ref",_useRefs:false,serializeFunctions:false};
}
if(!dojo._hasResource["dijit.Tooltip"]){
dojo._hasResource["dijit.Tooltip"]=true;
dojo.provide("dijit.Tooltip");
dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"),postCreate:function(){
dojo.body().appendChild(this.domNode);
this.bgIframe=new dijit.BackgroundIframe(this.domNode);
this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});
this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});
},show:function(_c4,_c5,_c6){
if(this.aroundNode&&this.aroundNode===_c5){
return;
}
if(this.fadeOut.status()=="playing"){
this._onDeck=arguments;
return;
}
this.containerNode.innerHTML=_c4;
this.domNode.style.top=(this.domNode.offsetTop+1)+"px";
var pos=dijit.placeOnScreenAroundElement(this.domNode,_c5,dijit.getPopupAroundAlignment((_c6&&_c6.length)?_c6:dijit.Tooltip.defaultPosition,this.isLeftToRight()),dojo.hitch(this,"orient"));
dojo.style(this.domNode,"opacity",0);
this.fadeIn.play();
this.isShowingNow=true;
this.aroundNode=_c5;
},_orientMap:{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft","TR-TL":"dijitTooltipRight","TL-TR":"dijitTooltipLeft"},orient:function(_c7,_c8,_c9){
_c7.className="dijitTooltip "+this._orientMap[_c8+"-"+_c9];
},_onShow:function(){
if(dojo.isIE){
this.domNode.style.filter="";
}
},hide:function(_ca){
if(this._onDeck&&this._onDeck[1]==_ca){
this._onDeck=null;
}else{
if(this.aroundNode===_ca){
this.fadeIn.stop();
this.isShowingNow=false;
this.aroundNode=null;
this.fadeOut.play();
}else{
}
}
},_onHide:function(){
this.domNode.style.cssText="";
if(this._onDeck){
this.show.apply(this,this._onDeck);
this._onDeck=null;
}
}});
dijit.showTooltip=function(_cb,_cc,_cd){
if(!dijit._masterTT){
dijit._masterTT=new dijit._MasterTooltip();
}
return dijit._masterTT.show(_cb,_cc,_cd);
};
dijit.hideTooltip=function(_ce){
if(!dijit._masterTT){
dijit._masterTT=new dijit._MasterTooltip();
}
return dijit._masterTT.hide(_ce);
};
dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],constructor:function(){
this._nodeConnectionsById={};
},_setConnectIdAttr:function(_cf){
for(var _d0 in this._nodeConnectionsById){
this.removeTarget(_d0);
}
dojo.forEach(dojo.isArrayLike(_cf)?_cf:[_cf],this.addTarget,this);
},_getConnectIdAttr:function(){
var ary=[];
for(var id in this._nodeConnectionsById){
ary.push(id);
}
return ary;
},addTarget:function(id){
var _d1=dojo.byId(id);
if(!_d1){
return;
}
if(_d1.id in this._nodeConnectionsById){
return;
}
this._nodeConnectionsById[_d1.id]=[this.connect(_d1,"onmouseenter","_onTargetMouseEnter"),this.connect(_d1,"onmouseleave","_onTargetMouseLeave"),this.connect(_d1,"onfocus","_onTargetFocus"),this.connect(_d1,"onblur","_onTargetBlur")];
if(dojo.isIE&&!_d1.style.zoom){
_d1.style.zoom=1;
}
},removeTarget:function(_d2){
var id=_d2.id||_d2;
if(id in this._nodeConnectionsById){
dojo.forEach(this._nodeConnectionsById[id],this.disconnect,this);
delete this._nodeConnectionsById[id];
}
},postCreate:function(){
dojo.addClass(this.domNode,"dijitTooltipData");
},startup:function(){
this.inherited(arguments);
var ids=this.connectId;
dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this);
},_onTargetMouseEnter:function(e){
this._onHover(e);
},_onTargetMouseLeave:function(e){
this._onUnHover(e);
},_onTargetFocus:function(e){
this._focus=true;
this._onHover(e);
},_onTargetBlur:function(e){
this._focus=false;
this._onUnHover(e);
},_onHover:function(e){
if(!this._showTimer){
var _d3=e.target;
this._showTimer=setTimeout(dojo.hitch(this,function(){
this.open(_d3);
}),this.showDelay);
}
},_onUnHover:function(e){
if(this._focus){
return;
}
if(this._showTimer){
clearTimeout(this._showTimer);
delete this._showTimer;
}
this.close();
},open:function(_d4){
if(this._showTimer){
clearTimeout(this._showTimer);
delete this._showTimer;
}
if(this._connectNode){
return;
}
dijit.showTooltip(this.label||this.domNode.innerHTML,_d4,this.position);
this._connectNode=_d4;
this.onShow(_d4,this.position);
},close:function(){
if(this._connectNode){
dijit.hideTooltip(this._connectNode);
delete this._connectNode;
this.onHide();
}
if(this._showTimer){
clearTimeout(this._showTimer);
delete this._showTimer;
}
},onShow:function(_d5,_d6){
},onHide:function(){
},uninitialize:function(){
this.close();
this.inherited(arguments);
}});
dijit.Tooltip.defaultPosition=["after","before"];
}
if(!dojo._hasResource["joost.monkey"]){
dojo._hasResource["joost.monkey"]=true;
dojo.provide("joost.monkey");
(function(){
dojo.objectToQuery=function(map){
var enc=encodeURIComponent,_d7=[],_d8={},_d9=dojo;
for(var _da in map){
var _db=map[_da];
if(_db!=_d8[_da]){
var _dc=enc(_da)+"=";
if(_d9.isArray(_db)){
for(var i=0;i<_db.length;i++){
_d7.push(_dc+enc(_db[i]));
}
}else{
_d7.push(_dc+enc(_db));
}
}
}
return _d7.sort().join("&");
};
var _dd=dijit._MasterTooltip.prototype.show;
dijit._MasterTooltip.prototype.show=function(_de,_df,_e0){
_dd.apply(this,arguments);
var t=dojo.style(this.domNode,"top");
var tp=parseInt(t,10);
tp+=(_df.offsetHeight/2);
dojo.style(this.domNode,"top",tp+"px");
};
dojo.flatCompare=function(a,b){
return dojo.objectToQuery(a)===dojo.objectToQuery(b);
};
})();
}
if(!dojo._hasResource["joost.api"]){
dojo._hasResource["joost.api"]=true;
dojo.provide("joost.api");
joost.api._myticket=null;
joost.api.getCurrentAuthToken=function(){
var t=joost.user.current.token||joost.api._myticket;
if(t){
t=t.replace(/"/g,"");
}
return t;
};
(function(d){
var _e1=window._joostCache&&_joostCache.smd;
if(!_e1){
dojo.xhrGet({url:"/b/smd",load:function(smd){
_e1=smd;
},error:function(err){
console.error("Could not load SMD",err);
},handleAs:"json",sync:true});
}
if(!_e1){
console.error("No SMD to build services from!!");
}
var _e2=window.location.search;
if(_e2&&_e2.substring(0,1)=="?"){
_e2=_e2.substring(1);
}
_e2=dojo.trim(_e2);
var _e3;
if(_e2){
var _e4=dojo.queryToObject(_e2);
if(_e4&&_e4.forceCountry){
_e3={forceCountry:_e4.forceCountry};
}
}
for(var i in _e1){
joost.api[i]=new dojox.rpc.Service(_e1[i],_e3);
}
joost.api._myticket=dojo.cookie(dojo.config.tokenName||"_auth");
dojo.subscribe("/joost/command/changeuser",function(usr){
joost.api._myticket=usr.token||null;
});
d._contentHandlers["jsonref"]=function(xhr){
var dt={format:"date-time"};
var _e5={properties:{date:dt}};
var _e6={idAttribute:"refid",schemas:{"/entity/":{properties:{publicationDate:dt,validTo:dt,validFrom:dt}},"/shout/":_e5,"/review/":_e5,"/tag/":_e5,"/event/":_e5}};
return dojox.json.ref.fromJson(xhr.responseText||null,_e6);
};
dojox.rpc.envelopeRegistry.register("AUTHURL",function(str){
return str=="AUTHURL";
},{serialize:function(smd,_e7,_e8){
_e8.authToken=joost.api.getCurrentAuthToken();
var o=d.objectToQuery(_e8);
return {data:o,transport:"POST"};
},deserialize:function(_e9){
return _e9;
},namedParams:true});
})(dojo);
}
if(!dojo._hasResource["joost.sitemap"]){
dojo._hasResource["joost.sitemap"]=true;
dojo.provide("joost.sitemap");
dojo.declare("joost.SiteMap",null,{current:null,root:{label:"Home",action:"home",path:"/",items:[{label:"Shows",id:"/shows",action:"shows",genre:"",filter:[{label:"Venues",id:"/shows/venues",items:[{id:"/shows/venue/shows",label:"Shows",action:"shows",selected:true},{id:"/shows/venue/film",label:"Films",action:"film"},{id:"/shows/venue/music",label:"Music",action:"music"}]},{label:"Type",id:"/shows/type",items:[{id:"/shows/type/all",label:"All",action:"all"},{id:"/shows/type/featured",label:"Featured",action:"featured",selected:true}]}]},{label:"Films",id:"/film",action:"film",genre:"",filter:[{label:"Venues",id:"/film/venues",items:[{id:"/film/venues/shows",label:"Shows",action:"shows"},{id:"/film/venues/film",label:"Films",action:"film",selected:true},{id:"/film/venues/music",label:"Music",action:"music"}]},{label:"Type",id:"/film/type",items:[{id:"/film/type/all",label:"All",action:"all"},{id:"/film/type/featured",label:"Featured",action:"featured",selected:true}]}]},{label:"Music",action:"music",id:"/music",genre:"",filter:[{label:"Venues",id:"/music/venues",items:[{id:"/music/venues/shows",label:"Shows",action:"shows"},{id:"/music/venues/film",label:"Films",action:"film"},{id:"/music/venues/music",label:"Music",selected:true,action:"music"}]},{label:"Type",id:"/music/type",items:[{id:"/music/type/all",label:"All",action:"all"},{id:"/music/type/featured",label:"Featured",action:"featured",selected:true}]}]},{label:"Search",action:"search"},{label:"My Profile",action:"profile",requireUser:true},{label:"Settings",action:"settings",requireUser:true}]},genres:null,constructor:function(){
this.topics=[dojo.subscribe("/joost/provide-state",this,"provideState"),dojo.subscribe("/joost/receive-state",this,"receiveState")];
this._pathMap={"/":this.root};
this._buildPaths(this.root.items,"/");
if(dojo.exists("_joostCache.genres")){
this.genres=_joostCache.genres;
}else{
var _ea=dojox.rpc._sync;
dojox.rpc._sync=true;
joost.api.epg.genresList().addCallback(this,function(_eb){
this.genres=_eb.genres;
});
dojox.rpc._sync=_ea;
}
dojo.forEach(this.genres,function(g){
var _ec=this.find(g.id);
_ec.filter.push({label:"Genres",tree:g.children});
},this);
this._buildPaths(this.genres);
this._epgTopLevel={"/shows":1,"/film":1,"/music":1};
this.current={item:this.root,args:null};
},_buildPaths:function(_ed,_ee){
dojo.forEach(_ed,function(n){
n.path=n.path||n.id||_ee+n.action;
if(!this._pathMap[n.path]){
this._pathMap[n.path]=n;
}
var _ef=n.path+"/";
if(n.items){
this._buildPaths(n.items,_ef);
}
if(n.children){
this._buildPaths(n.children,_ef);
}
if(n.filter){
this._buildPaths(n.filter,_ef);
}
if(n.tree){
this._buildPaths(n.tree,_ef);
}
},this);
},destroy:function(){
dojo.forEach(this.topics,dojo.unsubscribe);
},getUrl:function(){
return window.location.href;
},go:function(_f0,_f1){
_f0=_f0||this.current.item.path;
_f1=(_f1=="current"?this.current.args:_f1)||{};
var _f2={item:this.find(_f0),args:_f1||null};
var ca=this.current.args||{};
_f1.listType=_f1.listType||ca.listType;
_f1.sortOrder=_f1.sortOrder||ca.sortOrder;
_f1.viewmode=_f1.viewmode||ca.viewmode;
if(!_f2.item){
this.current={item:{path:_f0},args:_f1};
dojo.publish("/joost/page",["change",{item:{path:_f0}}]);
return;
}
if(!(_f2.args&&_f2.args.noScroll)){
setTimeout(function(){
var f=arguments.callee;
if(!("callCount" in f)){
f.callCount=1;
}
if(f.callCount++>5){
return;
}
if(dojo.byId("browserPanelWrapper")){
joost.scrollIntoView("browserPanelWrapper");
}else{
setTimeout(arguments.callee,200);
}
},200);
}
if(_f2.item.path==this.current.item.path&&dojo.flatCompare(_f2.args,this.current.args)){
return;
}
if(!("type" in _f2.args)&&_f2.item.path in this._epgTopLevel){
_f2.args.type="featured";
}
this.current=_f2;
dojo.publish("/joost/page",["change",this.current]);
joost.stateChange();
},parent:function(_f3){
if(!_f3||_f3=="/"){
return null;
}
var li=_f3.lastIndexOf("/");
if(li==0){
return this.root;
}
return this.find(_f3.substring(0,li));
},chain:function(_f4){
var c=[];
if(_f4=="/"){
return c;
}
var i=_f4.indexOf("/",1),bit;
while(i>0){
bit=this.find(_f4.substring(0,i));
if(bit){
c.push(bit);
}else{
break;
}
i=_f4.indexOf("/",i+1);
}
bit=this.find(_f4);
if(bit){
c.push(bit);
}
return c;
},receiveState:function(_f5){
this.go(_f5.path||"/",_f5.query);
},provideState:function(map){
var p=this.current||{item:{path:"/"},args:{}};
map.path=p.item.path;
dojo.mixin(map.query,p.args);
},find:function(_f6){
_f6=_f6||"/";
return this._pathMap[_f6];
},goBack:function(){
if(this.current==null){
return;
}
var p=this.current.item.path,_f7=p.lastIndexOf("/"),_f8=_f7<1?"/":p.substring(0,_f7);
this.go(_f8);
},getGenre:function(map){
map=map||this.current.item;
return map.genre||"";
},getFilter:function(map){
map=map||this.current.item;
if(map.filter){
for(var i=0;i<map.filter[1].items.length;i++){
if(map.filter[1].items[i].selected){
return map.filter[1].items[i].action;
}
}
}
return "";
}});
joost.sitemap=new joost.SiteMap();
}
if(!dojo._hasResource["joost.link"]){
dojo._hasResource["joost.link"]=true;
dojo.provide("joost.link");
joost.link=function(_f9,id){
var ret="",_fa={video:"/",embed:"/embed/",channel:"/",genre:"/epg",user:"/users/",users:"/users/",group:"/group/",playlist:"/playlist/",tag:"/search?q=tag:"};
_f9=(""+_f9).toLowerCase();
if(_fa[_f9]){
ret=_fa[_f9]+id;
if(ret.substring(ret.length-1)!="/"){
ret+="/";
}
}
return ret;
};
joost.buildlink=function(_fb,id,cls,_fc){
cls=cls||"";
var jl=joost.link(_fb,id);
return "<a class='trap "+cls+"' href='"+jl+"' joost-action='"+jl+"'>"+_fc+"</a>";
};
joost._linkTrapper=function(evt){
var n=joost.closest(evt.target,dojo.partial(joost.hasTagAndClass,"a","trap"));
if(n){
var _fd=n.getAttribute("joost-action");
if(_fd){
evt.preventDefault();
}
}
};
joost.traplink=function(_fe){
return dojo.connect(_fe,"onclick",joost._linkTrapper);
};
joost.abslink=function(_ff,id,host){
var rel=joost.link(_ff,id);
host=host||dojo.config.linkRoot||window.location.hostname;
var l=window.location;
return l.protocol+"//"+host+(l.port?":"+l.port:"")+rel;
};
}
if(!dojo._hasResource["joost.ui.TextBoxHelper"]){
dojo._hasResource["joost.ui.TextBoxHelper"]=true;
dojo.provide("joost.ui.TextBoxHelper");
dojo.declare("joost.ui.TextBoxHelper",null,{helperText:"",hasHelperText:true,postCreate:function(){
this.inherited(arguments);
this._setupHelper();
this.connect(this.domNode,"onclick","_onFocus");
},_setHelperTextAttr:function(v){
this.helperText=v;
if(!this._focused){
this._setupHelper();
}
dojo.attr(this.helperNode,"title",v);
},_onFocus:function(e){
this.inherited(arguments);
var v=this.textbox.value;
if(v==this.helperText){
this.textbox.value="";
}
dojo.removeClass(this.helperNode,"preFocus");
this.textbox.focus&&this.textbox.focus();
},_onBlur:function(e){
this.inherited(arguments);
this._setupHelper();
},_setValueAttr:function(v){
this.inherited(arguments);
v=dojo.trim(v);
if(v!=""||this._focused){
dojo.removeClass(this.helperNode,"preFocus");
}else{
if(this.hasHelperText){
dojo.addClass(this.helperNode,"preFocus");
}
this.textbox.value=this.helperText;
}
},_getValueAttr:function(){
var v=this.inherited(arguments);
if(v==this.helperText){
return "";
}
return v;
},_setupHelper:function(){
var v=dojo.trim(this.textbox.value);
if(v==""){
this.textbox.value=this.helperText;
if(this.hasHelperText){
dojo.addClass(this.helperNode,"preFocus");
}
}
},_onInput:function(e){
if(dojo.hasClass(this.helperNode,"preFocus")){
return;
}
this.inherited(arguments);
}});
}
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:"",selectOnClick:false,templateString:dojo.cache("dijit.form","templates/TextBox.html","<input class=\"dijit dijitReset dijitLeft\" dojoAttachPoint='textbox,focusNode'\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse'\n\tautocomplete=\"off\" type=\"${type}\" ${nameAttrSetting}\n\t/>\n"),baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),_getValueAttr:function(){
return this.parse(this.attr("displayedValue"),this.constraints);
},_setValueAttr:function(_100,_101,_102){
var _103;
if(_100!==undefined){
_103=this.filter(_100);
if(typeof _102!="string"){
if(_103!==null&&((typeof _103!="number")||!isNaN(_103))){
_102=this.filter(this.format(_103,this.constraints));
}else{
_102="";
}
}
}
if(_102!=null&&_102!=undefined&&((typeof _102)!="number"||!isNaN(_102))&&this.textbox.value!=_102){
this.textbox.value=_102;
}
this.inherited(arguments,[_103,_101]);
},displayedValue:"",getDisplayedValue:function(){
dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use attr('displayedValue') instead.","","2.0");
return this.attr("displayedValue");
},_getDisplayedValueAttr:function(){
return this.filter(this.textbox.value);
},setDisplayedValue:function(_104){
dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use attr('displayedValue', ...) instead.","","2.0");
this.attr("displayedValue",_104);
},_setDisplayedValueAttr:function(_105){
if(_105===null||_105===undefined){
_105="";
}else{
if(typeof _105!="string"){
_105=String(_105);
}
}
this.textbox.value=_105;
this._setValueAttr(this.attr("value"),undefined,_105);
},format:function(_106,_107){
return ((_106==null||_106==undefined)?"":(_106.toString?_106.toString():_106));
},parse:function(_108,_109){
return _108;
},_refreshState:function(){
},_onInput:function(e){
if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){
switch(e.keyCode){
case dojo.keys.SHIFT:
case dojo.keys.ALT:
case dojo.keys.CTRL:
case dojo.keys.TAB:
return;
}
}
if(this.intermediateChanges){
var _10a=this;
setTimeout(function(){
_10a._handleOnChange(_10a.attr("value"),false);
},0);
}
this._refreshState();
},postCreate:function(){
this.textbox.setAttribute("value",this.textbox.value);
this.inherited(arguments);
if(dojo.isMoz||dojo.isOpera){
this.connect(this.textbox,"oninput",this._onInput);
}else{
this.connect(this.textbox,"onkeydown",this._onInput);
this.connect(this.textbox,"onkeyup",this._onInput);
this.connect(this.textbox,"onpaste",this._onInput);
this.connect(this.textbox,"oncut",this._onInput);
}
},_blankValue:"",filter:function(val){
if(val===null){
return this._blankValue;
}
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;
},_setBlurValue:function(){
this._setValueAttr(this.attr("value"),true);
},_onBlur:function(e){
if(this.disabled){
return;
}
this._setBlurValue();
this.inherited(arguments);
if(this._selectOnClickHandle){
this.disconnect(this._selectOnClickHandle);
}
if(this.selectOnClick&&dojo.isMoz){
this.textbox.selectionStart=this.textbox.selectionEnd=undefined;
}
},_onFocus:function(by){
if(this.disabled||this.readOnly){
return;
}
if(this.selectOnClick&&by=="mouse"){
this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){
this.disconnect(this._selectOnClickHandle);
var _10b;
if(dojo.isIE){
var _10c=dojo.doc.selection.createRange();
var _10d=_10c.parentElement();
_10b=_10d==this.textbox&&_10c.text.length==0;
}else{
_10b=this.textbox.selectionStart==this.textbox.selectionEnd;
}
if(_10b){
dijit.selectInputText(this.textbox);
}
});
}
this._refreshState();
this.inherited(arguments);
},reset:function(){
this.textbox.value="";
this.inherited(arguments);
}});
dijit.selectInputText=function(_10e,_10f,stop){
var _110=dojo.global;
var _111=dojo.doc;
_10e=dojo.byId(_10e);
if(isNaN(_10f)){
_10f=0;
}
if(isNaN(stop)){
stop=_10e.value?_10e.value.length:0;
}
dijit.focus(_10e);
if(_111["selection"]&&dojo.body()["createTextRange"]){
if(_10e.createTextRange){
var _112=_10e.createTextRange();
with(_112){
collapse(true);
moveStart("character",-99999);
moveStart("character",_10f);
moveEnd("character",stop-_10f);
select();
}
}
}else{
if(_110["getSelection"]){
if(_10e.setSelectionRange){
_10e.setSelectionRange(_10f,stop);
}
}
}
};
}
if(!dojo._hasResource["joost.ui.TextBox"]){
dojo._hasResource["joost.ui.TextBox"]=true;
dojo.provide("joost.ui.TextBox");
dojo.declare("joost.ui.TextBox",[dijit.form.TextBox,joost.ui.TextBoxHelper],{attributeMap:dojo.delegate(dijit.form.TextBox.prototype.attributeMap,{style:"focusNode"}),baseClass:"joostTextBox",templateString:dojo.cache("joost.ui","templates/textbox.html","<div dojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\"\n     dojoAttachPoint=\"helperNode\"><span><input type=\"${type}\"\n                                               dojoAttachPoint=\"textbox,focusNode\"\n                                               ${nameAttrSetting} /></span></div>\n"),isError:false,isValid:false,on:"light",width:0,size:"",_setIsErrorAttr:function(v){
v=!!v;
this.isError=v;
dojo.toggleClass(this.domNode,"error",v);
},_setIsValidAttr:function(v){
v=!!v;
this.isValid=v;
dojo.toggleClass(this.domNode,"valid",v);
},_setOnAttr:function(v){
if(v=="dark"){
this.on="dark";
}else{
this.on="light";
}
dojo.toggleClass(this.domNode,"dark",this.on=="dark");
},_setWidthAttr:function(v){
if(v&&v!=0){
dojo.style(this.textbox,"width",v+"px");
}
},postCreate:function(){
this.inherited(arguments);
if(this.size=="large"){
dojo.addClass(this.domNode,"lgTextInput");
}else{
dojo.addClass(this.domNode,"textInput");
}
}});
}
if(!dojo._hasResource["joost.ui.Button"]){
dojo._hasResource["joost.ui.Button"]=true;
dojo.provide("joost.ui.Button");
dojo.declare("joost.ui.Link",joost.Widget,{templateString:dojo.cache("joost.ui","templates/link.html","<a href=\"#\" \n   dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"containerNode\"></a>\n"),attributeMap:{label:{node:"containerNode",type:"innerHTML"}},isDisabled:false,isDisabledOnClick:false,href:"",target:"",label:"",uninitialize:function(){
if(this._enabler){
clearTimeout(this._enabler);
}
this.inherited(arguments);
},postCreate:function(){
if(this.isDisabled){
this._setDisabled(true);
}
if(this.href&&this.href!=""&&this.href!="#"){
dojo.attr(this.domNode,"href",this.href);
}
if(this.target&&this.target!=""){
dojo.attr(this.domNode,"target",this.target);
}
},_setDisabledAttr:function(){
this._setDisabled.apply(this,arguments);
},_setDisabled:function(_113){
this.isDisabled=_113;
dojo.toggleClass(this.domNode,"disabled",_113);
},_reEnable:function(){
this._enabler=setTimeout(dojo.hitch(this,"_setDisabled",false),10);
},_onClick:function(e){
if(this.isDisabled){
e.preventDefault();
}else{
if(!(this.href&&this.href!=""&&this.href!="#")){
e.preventDefault();
}
this.onClick(e);
this.isDisabledOnClick&&this._setDisabled(true);
}
},onClick:function(e){
}});
dojo.declare("joost.ui.XLink",joost.ui.Link,{templateString:dojo.cache("joost.ui","templates/xlink.html","<a href=\"#\" \n   class=\"xLink\"\n   dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"containerNode\"></a>\n")});
dojo.declare("joost.ui.Button",joost.ui.Link,{templateString:dojo.cache("joost.ui","templates/button.html","<a href=\"#\" \n   dojoAttachEvent=\"onclick:_onClick\"><span><em dojoAttachPoint=\"containerNode\"></em></span></a>\n"),stacked:false,baseClass:"whiteButton",iconClass:"",onDark:false,postCreate:function(){
this.inherited(arguments);
dojo.addClass(this.domNode,this.baseClass);
if(this.stacked){
dojo.addClass(this.domNode,"stacked");
}
if(this.iconClass){
dojo.addClass(this.domNode,this.iconClass);
}
if(this.onDark){
dojo.addClass(this.domNode,"greyButton");
}
dojo.setSelectable(this.domNode,false);
}});
dojo.declare("joost.ui.ButtonFeedback",joost.Widget,{templateString:dojo.cache("joost.ui","templates/button_feedback.html","<span class=\"feedback\"><em dojoAttachPoint=\"containerNode\"></em></span>\n"),stacked:false,iconClass:"",attributeMap:{label:{node:"containerNode",type:"innerHTML"}},postCreate:function(){
if(this.stacked){
dojo.addClass(this.domNode,"stacked");
}
if(this.iconClass){
dojo.addClass(this.domNode,this.iconClass);
}
}});
dojo.declare("joost.ui.ButtonIcon",joost.ui.Link,{templateString:dojo.cache("joost.ui","templates/button_icon.html","<a href=\"#\" \n   dojoAttachEvent=\"onclick:_onClick\"><span></span><em dojoAttachPoint=\"containerNode\"></em></a>\n"),baseClass:"",iconClass:"",label:"",postCreate:function(){
dojo.addClass(this.domNode,this.baseClass);
if(this.iconClass){
dojo.addClass(this.domNode,this.iconClass);
}
dojo.setSelectable(this.domNode,false);
}});
dojo.declare("joost.ui.ButtonUi",[joost.ui.Link,joost._Nls],{templateString:dojo.cache("joost.ui","templates/button_ui.html","<a href=\"#\" \n   dojoAttachEvent=\"onclick:_onClick\"><span dojoAttachPoint=\"containerNode\"></span></a>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],iconClass:"",hasTitle:true,postCreate:function(){
if(this.hasTitle){
dojo.attr(this.domNode,"title",this.containerNode.innerHTML);
}
if(this.iconClass){
dojo.addClass(this.domNode,this.iconClass);
}
dojo.setSelectable(this.domNode,false);
}});
dojo.declare("joost.ui.ViewPicker",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/viewpicker.html","<div class=\"viewPicker\">\n  <ul dojoAttachPoint=\"containerNode\"></ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],attributeMap:{container:{node:"containerNode",type:"innerHTML"}},viewPicker:"",container:"",postCreate:function(){
dojo.forEach(this.viewPicker,function(view,i,ar){
var last=!!(i==ar.length-1);
var _114=this.adopt(joost.ui.ViewPickerView,{icon:view.icon,label:this.i18n("Button","VIEW_"+view.icon.toUpperCase()),selected:view.selected,last:last});
this.connect(_114,"onClick","onViewChanged");
_114.placeAt(this.containerNode);
},this);
dojo.setSelectable(this.domNode,false);
},onViewChanged:function(_115){
}});
dojo.declare("joost.ui.ViewPickerView",joost.Widget,{templateString:dojo.cache("joost.ui","templates/viewpicker_view.html","<li dojoAttachPoint=\"viewNode\"><a dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"hrefNode\"><span dojoAttachPoint=\"labelNode\"></span></a></li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"}},view:"",icon:"",postCreate:function(){
dojo.addClass(this.domNode,this.icon);
if(this.selected){
dojo.addClass(this.domNode,"selected");
}
if(this.last){
dojo.addClass(this.domNode,"last");
}
dojo.attr(this.hrefNode,"title",this.label);
dojo.setSelectable(this.domNode,false);
},_onClick:function(e){
e.preventDefault();
if(!this.selected){
this.onClick(this.icon);
}
},onClick:function(_116){
}});
dojo.declare("joost.ui.Tags",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/tags.html","<div class=\"tags\">\n  <div dojoAttachPoint=\"newTagsNode\"></div>\n  <div class=\"list\" dojoAttachPoint=\"tagsContainerNode\">\n    <h5 dojoAttachPoint=\"titleNode\">${strings.Button.TAGS}</h5>\n    <span dojoAttachPoint=\"tagsNode\"></span>\n    <a dojoAttachPoint=\"moreNode\" class=\"moreLink\" href=\"#\"></a>\n    <span dojoAttachPoint=\"addNode\"></span>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],maxVisible:7,nl:[],moreCount:0,hasTitle:false,postCreate:function(){
if(!this.hasTitle){
dojo.destroy(this.titleNode);
}
var nl=this.nl=new dojo.NodeList();
dojo.forEach(this.tags,function(tag,i){
var _117=this.adopt(joost.ui.Tag,tag);
this.connect(_117.removeNode,"onclick","_shiftTags");
_117.placeAt(this.tagsNode);
_117.oWidth=dojo.coords(_117.domNode).w;
if(i>=this.maxVisible){
_117._collapseTag();
this.moreCount++;
}
nl.push(_117);
},this);
this._moreLink();
this.tagsInput=this.adopt(joost.ui.TextBox,{helperText:this.i18n("Button","ADDTAGINPUT")}).placeAt(this.newTagsNode);
this.tagsSubmit=this.adopt(joost.ui.Button,{label:this.i18n("Button","ADDTAGSUBMIT")}).placeAt(this.newTagsNode);
this.connect(this.tagsSubmit,"onClick","_submitTag");
this._collapseNewTagsNode();
var _118=this.adopt(joost.ui.ButtonUi,{iconClass:"addBtn",label:this.i18n("Button","ADDTAGS")},this.addNode);
this.connect(_118,"onClick",this,function(){
this[(this.oNewTagsShowing?"_hide":"_show")+"NewTagsNode"]();
});
dojo.setSelectable(this.tagsContainerNode,false);
},_moreLink:function(){
this.moreCount=0;
for(var i=0;i<this.nl.length;i++){
var tag=this.nl[i];
if(!tag.oVisible&&!tag.oRemoved){
this.moreCount++;
}
}
joost.hide(this.moreNode);
if(this.moreCount>0){
this.moreNode.innerHTML=this.i18n("Button","TAGSMORE",{n:this.moreCount});
joost.show(this.moreNode);
}
},_shiftTags:function(){
for(var i=0;i<this.nl.length;i++){
var tag=this.nl[i];
if(!tag.oVisible&&!tag.oRemoved){
tag._showTag();
break;
}
}
this._moreLink();
},_unshiftTags:function(){
var n=0;
for(var i=0;i<this.nl.length;i++){
var tag=this.nl[i];
if(tag.oVisible&&!tag.oRemoved){
n++;
if(n>this.maxVisible){
tag._hideTag();
}
}
}
this._moreLink();
},_collapseNewTagsNode:function(){
this.oNewTagsShowing=false;
this.oNewTagsHeight=dojo.coords(this.newTagsNode).h;
dojo.style(this.newTagsNode,{height:0,opacity:0});
},_showNewTagsNode:function(){
this.oNewTagsShowing=true;
dojo.anim(this.newTagsNode,{opacity:1,height:this.oNewTagsHeight});
},_hideNewTagsNode:function(){
this.oNewTagsShowing=false;
dojo.anim(this.newTagsNode,{opacity:0,height:0});
},_submitTag:function(){
var v=this.tagsInput.attr("value");
if(v!=""&&v.length>1){
setTimeout(dojo.hitch(this,"_addTag",v),500);
}
},_addTag:function(tag){
var _119={tag:tag,mine:true};
var _11a=this.adopt(joost.ui.Tag,_119);
this.connect(_11a.removeNode,"onclick","_shiftTags");
this.nl.unshift(_11a);
dojo.place(_11a.domNode,this.tagsNode,"first");
_11a.oWidth=dojo.coords(_11a.domNode).w;
_11a._collapseTag();
_11a._showTag();
this._unshiftTags();
}});
dojo.declare("joost.ui.Tag",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/tag.html","<span>\n  <div class=\"tag\" dojoAttachPoint=\"tagNode\"><div><a dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"hrefNode\">Luc Besson</a><a title=\"Delete\" class=\"x\" dojoAttachPoint=\"removeNode\"><span dojoAttachPoint=\"removeLabelNode\">Delete</span></a></div></div>\n</span>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],tag:"",mine:false,oVisible:true,oRemoved:false,postCreate:function(){
this.hrefNode.innerHTML=this.tag;
dojo.attr(this.hrefNode,"href",joost.link("tag",this.tag));
if(this.mine){
this.removeLabelNode.innerHTML=this.i18n("Button","DELETE");
dojo.attr(this.removeNode,"title",this.i18n("Button","DELETE"));
this.connect(this.removeNode,"onclick","_removeTag");
dojo.addClass(this.tagNode,"mine");
}else{
dojo.destroy(this.removeNode);
}
dojo.setSelectable(this.domNode,false);
},_collapseTag:function(){
this.oVisible=false;
joost.hide(this.domNode);
dojo.style(this.tagNode,{width:0,opacity:0});
},_showTag:function(){
this.oVisible=true;
joost.show(this.domNode);
dojo.anim(this.tagNode,{opacity:1,width:this.oWidth});
},_hideTag:function(){
this.oVisible=false;
var anim=dojo.anim(this.tagNode,{opacity:0,width:0});
dojo.connect(anim,"onEnd",this,"_collapseTag");
},_removeTag:function(){
this.oVisible=false;
this.oRemoved=true;
var anim=dojo.anim(this.tagNode,{opacity:0,width:0});
dojo.connect(anim,"onEnd",this,"destroy");
},_onClick:function(e){
e.preventDefault();
this.onClick(e);
},onClick:function(e){
}});
}
if(!dojo._hasResource["dijit._HasDropDown"]){
dojo._hasResource["dijit._HasDropDown"]=true;
dojo.provide("dijit._HasDropDown");
dojo.declare("dijit._HasDropDown",null,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouse:function(e){
if(e.type=="click"&&!this._seenKeydown){
return;
}
this._seenKeydown=false;
if(e.type=="mousedown"){
this._docHandler=this.connect(dojo.doc,"onmouseup","_onDropDownMouseup");
}
if(this.disabled||this.readOnly){
return;
}
if(this._stopClickEvents){
dojo.stopEvent(e);
}
this.toggleDropDown();
if(e.type=="click"||e.type=="keypress"){
this._onDropDownMouseup();
}
},_onDropDownMouseup:function(e){
if(e&&this._docHandler){
this.disconnect(this._docHandler);
}
var _11b=this.dropDown,_11c=false;
if(e&&this._opened){
var c=dojo.position(this._buttonNode,true);
if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){
var t=e.target;
while(t&&!_11c){
if(dojo.hasClass(t,"dijitPopup")){
_11c=true;
}else{
t=t.parentNode;
}
}
if(_11c){
t=e.target;
if(_11b.onItemClick){
var _11d;
while(t&&!(_11d=dijit.byNode(t))){
t=t.parentNode;
}
if(_11d&&_11d.onClick&&_11d.getParent){
_11d.getParent().onItemClick(_11d,e);
}
}
return;
}
}
}
if(this._opened&&_11b.focus){
window.setTimeout(dojo.hitch(_11b,"focus"),1);
}
},_setupDropdown:function(){
this._buttonNode=this._buttonNode||this.focusNode||this.domNode;
this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;
this._aroundNode=this._aroundNode||this.domNode;
this.connect(this._buttonNode,"onmousedown","_onDropDownMouse");
this.connect(this._buttonNode,"onclick","_onDropDownMouse");
this.connect(this._buttonNode,"onkeydown","_onDropDownKeydown");
this.connect(this._buttonNode,"onblur","_onDropDownBlur");
this.connect(this._buttonNode,"onkeypress","_onKey");
if(this._setStateClass){
this.connect(this,"openDropDown","_setStateClass");
this.connect(this,"closeDropDown","_setStateClass");
}
var _11e={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";
dojo.addClass(this._arrowWrapperNode||this._buttonNode,"dijit"+_11e+"ArrowButton");
},postCreate:function(){
this._setupDropdown();
this.inherited(arguments);
},destroyDescendants:function(){
if(this.dropDown){
if(!this.dropDown._destroyed){
this.dropDown.destroyRecursive();
}
delete this.dropDown;
}
this.inherited(arguments);
},_onDropDownKeydown:function(e){
this._seenKeydown=true;
},_onKeyPress:function(e){
if(this._opened&&e.charOrCode==dojo.keys.ESCAPE&&!e.shiftKey&&!e.ctrlKey&&!e.altKey){
this.toggleDropDown();
dojo.stopEvent(e);
return;
}
this.inherited(arguments);
},_onDropDownBlur:function(e){
this._seenKeydown=false;
},_onKey:function(e){
if(this.disabled||this.readOnly){
return;
}
var d=this.dropDown;
if(d&&this._opened&&d.handleKey){
if(d.handleKey(e)===false){
return;
}
}
if(d&&this._opened&&e.keyCode==dojo.keys.ESCAPE){
this.toggleDropDown();
return;
}
if(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.charOrCode==" "){
this._onDropDownMouse(e);
}
},_onBlur:function(){
this.closeDropDown();
this.inherited(arguments);
},isLoaded:function(){
return true;
},loadDropDown:function(_11f){
_11f();
},toggleDropDown:function(){
if(this.disabled||this.readOnly){
return;
}
this.focus();
var _120=this.dropDown;
if(!_120){
return;
}
if(!this._opened){
if(!this.isLoaded()){
this.loadDropDown(dojo.hitch(this,"openDropDown"));
return;
}else{
this.openDropDown();
}
}else{
this.closeDropDown();
}
},openDropDown:function(){
var _121=this.dropDown;
var _122=_121.domNode;
var self=this;
if(!this._preparedNode){
dijit.popup.moveOffScreen(_122);
this._preparedNode=true;
if(_122.style.width){
this._explicitDDWidth=true;
}
if(_122.style.height){
this._explicitDDHeight=true;
}
}
if(this.maxHeight||this.forceWidth||this.autoWidth){
var _123={display:"",visibility:"hidden"};
if(!this._explicitDDWidth){
_123.width="";
}
if(!this._explicitDDHeight){
_123.height="";
}
dojo.style(_122,_123);
var mb=dojo.marginBox(_122);
var _124=(this.maxHeight&&mb.h>this.maxHeight);
dojo.style(_122,{overflow:_124?"auto":"hidden"});
if(this.forceWidth){
mb.w=this.domNode.offsetWidth;
}else{
if(this.autoWidth){
mb.w=Math.max(mb.w,this.domNode.offsetWidth);
}else{
delete mb.w;
}
}
if(_124){
mb.h=this.maxHeight;
if("w" in mb){
mb.w+=16;
}
}else{
delete mb.h;
}
delete mb.t;
delete mb.l;
if(dojo.isFunction(_121.resize)){
_121.resize(mb);
}else{
dojo.marginBox(_122,mb);
}
}
var _125=dijit.popup.open({parent:this,popup:_121,around:this._aroundNode,orient:dijit.getPopupAroundAlignment((this.dropDownPosition&&this.dropDownPosition.length)?this.dropDownPosition:["below"],this.isLeftToRight()),onExecute:function(){
self.closeDropDown(true);
},onCancel:function(){
self.closeDropDown(true);
},onClose:function(){
dojo.attr(self._popupStateNode,"popupActive",false);
dojo.removeClass(self._popupStateNode,"dijitHasDropDownOpen");
self._opened=false;
self.state="";
}});
dojo.attr(this._popupStateNode,"popupActive","true");
dojo.addClass(self._popupStateNode,"dijitHasDropDownOpen");
this._opened=true;
this.state="Opened";
return _125;
},closeDropDown:function(_126){
if(this._opened){
dijit.popup.close(this.dropDown);
if(_126){
this.focus();
}
this._opened=false;
this.state="";
}
}});
}
if(!dojo._hasResource["dijit.form.Button"]){
dojo._hasResource["dijit.form.Button"]=true;
dojo.provide("dijit.form.Button");
dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:dojo.cache("dijit.form","templates/Button.html","<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachEvent=\"onclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"\n\t><span class=\"dijitReset dijitRight dijitInline\"\n\t\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\t\t${nameAttrSetting} type=\"${type}\" value=\"${value}\" waiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\"\n\t\t\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#10003;</span\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\t\tid=\"${id}_label\"\n\t\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t\t></span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n"),attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){
if(this.disabled){
return false;
}
this._clicked();
return this.onClick(e);
},_onButtonClick:function(e){
if(this._onClick(e)===false){
e.preventDefault();
}else{
if(this.type=="submit"&&!this.focusNode.form){
for(var node=this.domNode;node.parentNode;node=node.parentNode){
var _127=dijit.byNode(node);
if(_127&&typeof _127._onSubmit=="function"){
_127._onSubmit(e);
break;
}
}
}
}
},_setValueAttr:function(_128){
var attr=this.attributeMap.value||"";
if(this[attr.node||attr||"domNode"].tagName=="BUTTON"){
if(_128!=this.value){
}
}
},_fillContent:function(_129){
if(_129&&(!this.params||!("label" in this.params))){
this.attr("label",_129.innerHTML);
}
},postCreate:function(){
dojo.setSelectable(this.focusNode,false);
this.inherited(arguments);
},_setShowLabelAttr:function(val){
if(this.containerNode){
dojo.toggleClass(this.containerNode,"dijitDisplayNone",!val);
}
this.showLabel=val;
},onClick:function(e){
return true;
},_clicked:function(e){
},setLabel:function(_12a){
dojo.deprecated("dijit.form.Button.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");
this.attr("label",_12a);
},_setLabelAttr:function(_12b){
this.containerNode.innerHTML=this.label=_12b;
if(this.showLabel==false&&!this.params.title){
this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");
}
}});
dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container,dijit._HasDropDown],{baseClass:"dijitDropDownButton",templateString:dojo.cache("dijit.form","templates/DropDownButton.html","<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachPoint=\"_buttonNode\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"\n\t><span class='dijitReset dijitRight dijitInline'\n\t\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\t\t${nameAttrSetting} type=\"${type}\" value=\"${value}\"\n\t\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\"\n\t\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\t\tid=\"${id}_label\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\">&thinsp;</span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n"),_fillContent:function(){
if(this.srcNodeRef){
var _12c=dojo.query("*",this.srcNodeRef);
dijit.form.DropDownButton.superclass._fillContent.call(this,_12c[0]);
this.dropDownContainer=this.srcNodeRef;
}
},startup:function(){
if(this._started){
return;
}
if(!this.dropDown){
var _12d=dojo.query("[widgetId]",this.dropDownContainer)[0];
this.dropDown=dijit.byNode(_12d);
delete this.dropDownContainer;
}
dijit.popup.moveOffScreen(this.dropDown.domNode);
this.inherited(arguments);
},isLoaded:function(){
var _12e=this.dropDown;
return (!_12e.href||_12e.isLoaded);
},loadDropDown:function(){
var _12f=this.dropDown;
if(!_12f){
return;
}
if(!this.isLoaded()){
var _130=dojo.connect(_12f,"onLoad",this,function(){
dojo.disconnect(_130);
this.openDropDown();
});
_12f.refresh();
}else{
this.openDropDown();
}
},isFocusable:function(){
return this.inherited(arguments)&&!this._mouseDown;
}});
dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:dojo.cache("dijit.form","templates/ComboButton.html","<table class='dijit dijitReset dijitInline dijitLeft'\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\"><button id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachEvent=\"onclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse,onkeypress:_onButtonKeyPress\"  dojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></button></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onkeypress:_onArrowKeyPress\"\n\t\t\tstateModifier=\"DownArrow\"\n\t\t\ttitle=\"${optionsTitle}\" ${nameAttrSetting}\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\">&thinsp;</div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"],title:"titleNode"}),optionsTitle:"",baseClass:"dijitComboButton",_focusedNode:null,postCreate:function(){
this.inherited(arguments);
this._focalNodes=[this.titleNode,this._popupStateNode];
var isIE=dojo.isIE;
dojo.forEach(this._focalNodes,dojo.hitch(this,function(node){
this.connect(node,isIE?"onactivate":"onfocus",this._onNodeFocus);
this.connect(node,isIE?"ondeactivate":"onblur",this._onNodeBlur);
}));
if(isIE&&(isIE<8||dojo.isQuirks)){
with(this.titleNode){
style.width=scrollWidth+"px";
this.connect(this.titleNode,"onresize",function(){
setTimeout(function(){
style.width=scrollWidth+"px";
},0);
});
}
}
},_onNodeFocus:function(evt){
this._focusedNode=evt.currentTarget;
var fnc=this._focusedNode==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";
dojo.addClass(this._focusedNode,fnc);
},_onNodeBlur:function(evt){
var fnc=evt.currentTarget==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";
dojo.removeClass(evt.currentTarget,fnc);
},_onBlur:function(){
this.inherited(arguments);
this._focusedNode=null;
},_onButtonKeyPress:function(evt){
if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){
dijit.focus(this._popupStateNode);
dojo.stopEvent(evt);
}
},_onArrowKeyPress:function(evt){
if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){
dijit.focus(this.titleNode);
dojo.stopEvent(evt);
}
},focus:function(_131){
dijit.focus(_131=="start"?this.titleNode:this._popupStateNode);
}});
dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){
this.attr("checked",!this.checked);
},_setCheckedAttr:function(_132){
this.checked=_132;
dojo.attr(this.focusNode||this.domNode,"checked",_132);
dijit.setWaiState(this.focusNode||this.domNode,"pressed",_132);
this._setStateClass();
this._handleOnChange(_132,true);
},setChecked:function(_133){
dojo.deprecated("setChecked("+_133+") is deprecated. Use attr('checked',"+_133+") instead.","","2.0");
this.attr("checked",_133);
},reset:function(){
this._hasBeenBlurred=false;
this.attr("checked",this.params.checked||false);
}});
}
if(!dojo._hasResource["dijit.form.CheckBox"]){
dojo._hasResource["dijit.form.CheckBox"]=true;
dojo.provide("dijit.form.CheckBox");
dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:dojo.cache("dijit.form","templates/CheckBox.html","<div class=\"dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onmouseover:_onMouse,onmouseout:_onMouse,onclick:_onClick\"\n/></div>\n"),baseClass:"dijitCheckBox",type:"checkbox",value:"on",readOnly:false,attributeMap:dojo.delegate(dijit.form.ToggleButton.prototype.attributeMap,{readOnly:"focusNode"}),_setReadOnlyAttr:function(_134){
this.readOnly=_134;
dojo.attr(this.focusNode,"readOnly",_134);
dijit.setWaiState(this.focusNode,"readonly",_134);
this._setStateClass();
},_setValueAttr:function(_135){
if(typeof _135=="string"){
this.value=_135;
dojo.attr(this.focusNode,"value",_135);
_135=true;
}
if(this._created){
this.attr("checked",_135);
}
},_getValueAttr:function(){
return (this.checked?this.value:false);
},postMixInProperties:function(){
if(this.value==""){
this.value="on";
}
this.checkedAttrSetting=this.checked?"checked":"";
this.inherited(arguments);
},_fillContent:function(_136){
},reset:function(){
this._hasBeenBlurred=false;
this.attr("checked",this.params.checked||false);
this.value=this.params.value||"on";
dojo.attr(this.focusNode,"value",this.value);
},_onFocus:function(){
if(this.id){
dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");
}
},_onBlur:function(){
if(this.id){
dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");
}
},_onClick:function(e){
if(this.readOnly){
return false;
}
return this.inherited(arguments);
}});
dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(_137){
this.inherited(arguments);
if(!this._created){
return;
}
if(_137){
var _138=this;
dojo.query("INPUT[type=radio]",this.focusNode.form||dojo.doc).forEach(function(_139){
if(_139.name==_138.name&&_139!=_138.focusNode&&_139.form==_138.focusNode.form){
var _13a=dijit.getEnclosingWidget(_139);
if(_13a&&_13a.checked){
_13a.attr("checked",false);
}
}
});
}
},_clicked:function(e){
if(!this.checked){
this.attr("checked",true);
}
}});
}
if(!dojo._hasResource["dijit._KeyNavContainer"]){
dojo._hasResource["dijit._KeyNavContainer"]=true;
dojo.provide("dijit._KeyNavContainer");
dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_13b,_13c){
var _13d=(this._keyNavCodes={});
var prev=dojo.hitch(this,this.focusPrev);
var next=dojo.hitch(this,this.focusNext);
dojo.forEach(_13b,function(code){
_13d[code]=prev;
});
dojo.forEach(_13c,function(code){
_13d[code]=next;
});
this.connect(this.domNode,"onkeypress","_onContainerKeypress");
this.connect(this.domNode,"onfocus","_onContainerFocus");
},startupKeyNavChildren:function(){
dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));
},addChild:function(_13e,_13f){
dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);
this._startupChild(_13e);
},focus:function(){
this.focusFirstChild();
},focusFirstChild:function(){
var _140=this._getFirstFocusableChild();
if(_140){
this.focusChild(_140);
}
},focusNext:function(){
var _141=this._getNextFocusableChild(this.focusedChild,1);
this.focusChild(_141);
},focusPrev:function(){
var _142=this._getNextFocusableChild(this.focusedChild,-1);
this.focusChild(_142,true);
},focusChild:function(_143,last){
if(this.focusedChild&&_143!==this.focusedChild){
this._onChildBlur(this.focusedChild);
}
_143.focus(last?"end":"start");
this.focusedChild=_143;
},_startupChild:function(_144){
_144.attr("tabIndex","-1");
this.connect(_144,"_onFocus",function(){
_144.attr("tabIndex",this.tabIndex);
});
this.connect(_144,"_onBlur",function(){
_144.attr("tabIndex","-1");
});
},_onContainerFocus:function(evt){
if(evt.target!==this.domNode){
return;
}
this.focusFirstChild();
dojo.attr(this.domNode,"tabIndex","-1");
},_onBlur:function(evt){
if(this.tabIndex){
dojo.attr(this.domNode,"tabIndex",this.tabIndex);
}
this.inherited(arguments);
},_onContainerKeypress:function(evt){
if(evt.ctrlKey||evt.altKey){
return;
}
var func=this._keyNavCodes[evt.charOrCode];
if(func){
func();
dojo.stopEvent(evt);
}
},_onChildBlur:function(_145){
},_getFirstFocusableChild:function(){
return this._getNextFocusableChild(null,1);
},_getNextFocusableChild:function(_146,dir){
if(_146){
_146=this._getSiblingOfChild(_146,dir);
}
var _147=this.getChildren();
for(var i=0;i<_147.length;i++){
if(!_146){
_146=_147[(dir>0)?0:(_147.length-1)];
}
if(_146.isFocusable()){
return _146;
}
_146=this._getSiblingOfChild(_146,dir);
}
return null;
}});
}
if(!dojo._hasResource["dijit.MenuItem"]){
dojo._hasResource["dijit.MenuItem"]=true;
dojo.provide("dijit.MenuItem");
dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\">\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\">\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_148){
if(_148&&!("label" in this.params)){
this.attr("label",_148.innerHTML);
}
},postCreate:function(){
dojo.setSelectable(this.domNode,false);
var _149=this.id+"_text";
dojo.attr(this.containerNode,"id",_149);
if(this.accelKeyNode){
dojo.attr(this.accelKeyNode,"id",this.id+"_accel");
_149+=" "+this.id+"_accel";
}
dijit.setWaiState(this.domNode,"labelledby",_149);
},_onHover:function(){
dojo.addClass(this.domNode,"dijitMenuItemHover");
this.getParent().onItemHover(this);
},_onUnhover:function(){
dojo.removeClass(this.domNode,"dijitMenuItemHover");
this.getParent().onItemUnhover(this);
},_onClick:function(evt){
this.getParent().onItemClick(this,evt);
dojo.stopEvent(evt);
},onClick:function(evt){
},focus:function(){
try{
if(dojo.isIE==8){
this.containerNode.focus();
}
dijit.focus(this.focusNode);
}
catch(e){
}
},_onFocus:function(){
this._setSelected(true);
this.getParent()._onItemFocus(this);
this.inherited(arguments);
},_setSelected:function(_14a){
dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_14a);
},setLabel:function(_14b){
dojo.deprecated("dijit.MenuItem.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");
this.attr("label",_14b);
},setDisabled:function(_14c){
dojo.deprecated("dijit.Menu.setDisabled() is deprecated.  Use attr('disabled', bool) instead.","","2.0");
this.attr("disabled",_14c);
},_setDisabledAttr:function(_14d){
this.disabled=_14d;
dojo[_14d?"addClass":"removeClass"](this.domNode,"dijitMenuItemDisabled");
dijit.setWaiState(this.focusNode,"disabled",_14d?"true":"false");
},_setAccelKeyAttr:function(_14e){
this.accelKey=_14e;
this.accelKeyNode.style.display=_14e?"":"none";
this.accelKeyNode.innerHTML=_14e;
dojo.attr(this.containerNode,"colSpan",_14e?"1":"2");
}});
}
if(!dojo._hasResource["dijit.PopupMenuItem"]){
dojo._hasResource["dijit.PopupMenuItem"]=true;
dojo.provide("dijit.PopupMenuItem");
dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){
if(this.srcNodeRef){
var _14f=dojo.query("*",this.srcNodeRef);
dijit.PopupMenuItem.superclass._fillContent.call(this,_14f[0]);
this.dropDownContainer=this.srcNodeRef;
}
},startup:function(){
if(this._started){
return;
}
this.inherited(arguments);
if(!this.popup){
var node=dojo.query("[widgetId]",this.dropDownContainer)[0];
this.popup=dijit.byNode(node);
}
dojo.body().appendChild(this.popup.domNode);
this.popup.domNode.style.display="none";
if(this.arrowWrapper){
dojo.style(this.arrowWrapper,"visibility","");
}
dijit.setWaiState(this.focusNode,"haspopup","true");
},destroyDescendants:function(){
if(this.popup){
if(!this.popup._destroyed){
this.popup.destroyRecursive();
}
delete this.popup;
}
this.inherited(arguments);
}});
}
if(!dojo._hasResource["dijit.CheckedMenuItem"]){
dojo._hasResource["dijit.CheckedMenuItem"]=true;
dojo.provide("dijit.CheckedMenuItem");
dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:dojo.cache("dijit","templates/CheckedMenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\">\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t</td>\n</tr>\n"),checked:false,_setCheckedAttr:function(_150){
dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_150);
dijit.setWaiState(this.domNode,"checked",_150);
this.checked=_150;
},onChange:function(_151){
},_onClick:function(e){
if(!this.disabled){
this.attr("checked",!this.checked);
this.onChange(this.checked);
}
this.inherited(arguments);
}});
}
if(!dojo._hasResource["dijit.MenuSeparator"]){
dojo._hasResource["dijit.MenuSeparator"]=true;
dojo.provide("dijit.MenuSeparator");
dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuSeparator.html","<tr class=\"dijitMenuSeparator\">\n\t<td colspan=\"4\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"),postCreate:function(){
dojo.setSelectable(this.domNode,false);
},isFocusable:function(){
return false;
}});
}
if(!dojo._hasResource["dijit.Menu"]){
dojo._hasResource["dijit.Menu"]=true;
dojo.provide("dijit.Menu");
dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){
if(this._started){
return;
}
dojo.forEach(this.getChildren(),function(_152){
_152.startup();
});
this.startupKeyNavChildren();
this.inherited(arguments);
},onExecute:function(){
},onCancel:function(_153){
},_moveToPopup:function(evt){
if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){
this.focusedChild._onClick(evt);
}else{
var _154=this._getTopMenu();
if(_154&&_154._isMenuBar){
_154.focusNext();
}
}
},_onPopupHover:function(evt){
if(this.currentPopup&&this.currentPopup._pendingClose_timer){
var _155=this.currentPopup.parentMenu;
if(_155.focusedChild){
_155.focusedChild._setSelected(false);
}
_155.focusedChild=this.currentPopup.from_item;
_155.focusedChild._setSelected(true);
this._stopPendingCloseTimer(this.currentPopup);
}
},onItemHover:function(item){
if(this.isActive){
this.focusChild(item);
if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){
this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);
}
}
if(this.focusedChild){
this.focusChild(item);
}
this._hoveredChild=item;
},_onChildBlur:function(item){
this._stopPopupTimer();
item._setSelected(false);
var _156=item.popup;
if(_156){
this._stopPendingCloseTimer(_156);
_156._pendingClose_timer=setTimeout(function(){
_156._pendingClose_timer=null;
if(_156.parentMenu){
_156.parentMenu.currentPopup=null;
}
dijit.popup.close(_156);
},this.popupDelay);
}
},onItemUnhover:function(item){
if(this.isActive){
this._stopPopupTimer();
}
if(this._hoveredChild==item){
this._hoveredChild=null;
}
},_stopPopupTimer:function(){
if(this.hover_timer){
clearTimeout(this.hover_timer);
this.hover_timer=null;
}
},_stopPendingCloseTimer:function(_157){
if(_157._pendingClose_timer){
clearTimeout(_157._pendingClose_timer);
_157._pendingClose_timer=null;
}
},_stopFocusTimer:function(){
if(this._focus_timer){
clearTimeout(this._focus_timer);
this._focus_timer=null;
}
},_getTopMenu:function(){
for(var top=this;top.parentMenu;top=top.parentMenu){
}
return top;
},onItemClick:function(item,evt){
if(item.disabled){
return false;
}
if(typeof this.isShowingNow=="undefined"){
this._markActive();
}
this.focusChild(item);
if(item.popup){
this._openPopup();
}else{
this.onExecute();
item.onClick(evt);
}
},_openPopup:function(){
this._stopPopupTimer();
var _158=this.focusedChild;
if(!_158){
return;
}
var _159=_158.popup;
if(_159.isShowingNow){
return;
}
if(this.currentPopup){
this._stopPendingCloseTimer(this.currentPopup);
dijit.popup.close(this.currentPopup);
}
_159.parentMenu=this;
_159.from_item=_158;
var self=this;
dijit.popup.open({parent:this,popup:_159,around:_158.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR","BR":"BL","BL":"BR"}:{"TL":"TR","TR":"TL","BL":"BR","BR":"BL"}),onCancel:function(){
self.focusChild(_158);
self._cleanUp();
_158._setSelected(true);
self.focusedChild=_158;
},onExecute:dojo.hitch(this,"_cleanUp")});
this.currentPopup=_159;
_159.connect(_159.domNode,"onmouseenter",dojo.hitch(self,"_onPopupHover"));
if(_159.focus){
_159._focus_timer=setTimeout(dojo.hitch(_159,function(){
this._focus_timer=null;
this.focus();
}),0);
}
},_markActive:function(){
this.isActive=true;
dojo.addClass(this.domNode,"dijitMenuActive");
dojo.removeClass(this.domNode,"dijitMenuPassive");
},onOpen:function(e){
this.isShowingNow=true;
this._markActive();
},_markInactive:function(){
this.isActive=false;
dojo.removeClass(this.domNode,"dijitMenuActive");
dojo.addClass(this.domNode,"dijitMenuPassive");
},onClose:function(){
this._stopFocusTimer();
this._markInactive();
this.isShowingNow=false;
this.parentMenu=null;
},_closeChild:function(){
this._stopPopupTimer();
if(this.focusedChild){
this.focusedChild._setSelected(false);
this.focusedChild._onUnhover();
this.focusedChild=null;
}
if(this.currentPopup){
dijit.popup.close(this.currentPopup);
this.currentPopup=null;
}
},_onItemFocus:function(item){
if(this._hoveredChild&&this._hoveredChild!=item){
this._hoveredChild._onUnhover();
}
},_onBlur:function(){
this._cleanUp();
this.inherited(arguments);
},_cleanUp:function(){
this._closeChild();
if(typeof this.isShowingNow=="undefined"){
this._markInactive();
}
}});
dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){
this._bindings=[];
},templateString:dojo.cache("dijit","templates/Menu.html","<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"),targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,_contextMenuWithMouse:false,postCreate:function(){
if(this.contextMenuForWindow){
this.bindDomNode(dojo.body());
}else{
dojo.forEach(this.targetNodeIds,this.bindDomNode,this);
}
var k=dojo.keys,l=this.isLeftToRight();
this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW;
this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW;
this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]);
},_onKeyPress:function(evt){
if(evt.ctrlKey||evt.altKey){
return;
}
switch(evt.charOrCode){
case this._openSubMenuKey:
this._moveToPopup(evt);
dojo.stopEvent(evt);
break;
case this._closeSubMenuKey:
if(this.parentMenu){
if(this.parentMenu._isMenuBar){
this.parentMenu.focusPrev();
}else{
this.onCancel(false);
}
}else{
dojo.stopEvent(evt);
}
break;
}
},_iframeContentWindow:function(_15a){
var win=dijit.getDocumentWindow(this._iframeContentDocument(_15a))||this._iframeContentDocument(_15a)["__parent__"]||(_15a.name&&dojo.doc.frames[_15a.name])||null;
return win;
},_iframeContentDocument:function(_15b){
var doc=_15b.contentDocument||(_15b.contentWindow&&_15b.contentWindow.document)||(_15b.name&&dojo.doc.frames[_15b.name]&&dojo.doc.frames[_15b.name].document)||null;
return doc;
},bindDomNode:function(node){
node=dojo.byId(node);
var cn;
if(node.tagName.toLowerCase()=="iframe"){
var _15c=node,win=this._iframeContentWindow(_15c);
cn=dojo.withGlobal(win,dojo.body);
}else{
cn=(node==dojo.body()?dojo.doc.documentElement:node);
}
var _15d={node:node,iframe:_15c};
dojo.attr(node,"_dijitMenu"+this.id,this._bindings.push(_15d));
var _15e=dojo.hitch(this,function(cn){
return [dojo.connect(cn,(this.leftClickToOpen)?"onclick":"oncontextmenu",this,function(evt){
this._openMyself(evt,cn,_15c);
}),dojo.connect(cn,"onkeydown",this,"_contextKey"),dojo.connect(cn,"onmousedown",this,"_contextMouse")];
});
_15d.connects=cn?_15e(cn):[];
if(_15c){
_15d.onloadHandler=dojo.hitch(this,function(){
var win=this._iframeContentWindow(_15c);
cn=dojo.withGlobal(win,dojo.body);
_15d.connects=_15e(cn);
});
if(_15c.addEventListener){
_15c.addEventListener("load",_15d.onloadHandler,false);
}else{
_15c.attachEvent("onload",_15d.onloadHandler);
}
}
},unBindDomNode:function(_15f){
var node;
try{
node=dojo.byId(_15f);
}
catch(e){
return;
}
var _160="_dijitMenu"+this.id;
if(node&&dojo.hasAttr(node,_160)){
var bid=dojo.attr(node,_160)-1,b=this._bindings[bid];
dojo.forEach(b.connects,dojo.disconnect);
var _161=b.iframe;
if(_161){
if(_161.removeEventListener){
_161.removeEventListener("load",b.onloadHandler,false);
}else{
_161.detachEvent("onload",b.onloadHandler);
}
}
dojo.removeAttr(node,_160);
delete this._bindings[bid];
}
},_contextKey:function(e){
this._contextMenuWithMouse=false;
if(e.keyCode==dojo.keys.F10){
dojo.stopEvent(e);
if(e.shiftKey&&e.type=="keydown"){
var _162={target:e.target,pageX:e.pageX,pageY:e.pageY};
_162.preventDefault=_162.stopPropagation=function(){
};
window.setTimeout(dojo.hitch(this,function(){
this._openMyself(_162);
}),1);
}
}
},_contextMouse:function(e){
this._contextMenuWithMouse=true;
},_openMyself:function(e,node,_163){
if(this.leftClickToOpen&&e.button>0){
return;
}
dojo.stopEvent(e);
var x,y;
if(dojo.isSafari||this._contextMenuWithMouse){
x=e.pageX;
y=e.pageY;
if(_163){
var od=e.target.ownerDocument,ifc=dojo.position(_163,true),win=this._iframeContentWindow(_163),_164=dojo.withGlobal(win,"_docScroll",dojo);
var cs=dojo.getComputedStyle(_163),tp=dojo._toPixelValue,left=(dojo.isIE&&dojo.isQuirks?0:tp(_163,cs.paddingLeft))+(dojo.isIE&&dojo.isQuirks?tp(_163,cs.borderLeftWidth):0),top=(dojo.isIE&&dojo.isQuirks?0:tp(_163,cs.paddingTop))+(dojo.isIE&&dojo.isQuirks?tp(_163,cs.borderTopWidth):0);
x+=ifc.x+left-_164.x;
y+=ifc.y+top-_164.y;
}
}else{
var _165=dojo.position(e.target,true);
x=_165.x+10;
y=_165.y+10;
}
var self=this;
var _166=dijit.getFocus(this);
function _167(){
if(self.refocus){
dijit.focus(_166);
}
dijit.popup.close(self);
};
dijit.popup.open({popup:this,x:x,y:y,onExecute:_167,onCancel:_167,orient:this.isLeftToRight()?"L":"R"});
this.focus();
this._onBlur=function(){
this.inherited("_onBlur",arguments);
dijit.popup.close(this);
};
},uninitialize:function(){
dojo.forEach(this._bindings,function(b){
if(b){
this.unBindDomNode(b.node);
}
},this);
this.inherited(arguments);
}});
}
if(!dojo._hasResource["joost.ui.DropDown"]){
dojo._hasResource["joost.ui.DropDown"]=true;
dojo.provide("joost.ui.DropDown");
dojo._mixin(joost.ui,{createDropDown:function(args){
var menu=new joost.ui.Menu({vscroll:args.vscroll});
dojo.forEach(args.menuItems,function(n){
menu.addChild(new joost.ui.MenuItem({label:n.label,selected:n.selected,value:n.value}));
},this);
return new joost.ui.DropDownButton({label:args.label,layoutClass:args.layoutClass,dropDown:menu});
}});
dojo.declare("joost.ui.DropDownButton",dijit.form.DropDownButton,{templateString:dojo.cache("joost.ui","templates/button_dropdown.html","<a class=\"dropdown\" \n   dojoAttachPoint=\"_buttonNode,focusNode,titleNode\"\n   dojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"\n   waiRole=\"button\"\n   waiState=\"labelledby-${id}_label,haspopup-true\"\n   ><span dojoAttachPoint=\"_popupStateNode,_arrowWrapperNode\"\n          stateModifier=\"DownArrow\"\n          ${nameAttrSetting}\n          ><em id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></em\n    ></span\n></a>\n"),baseClass:"joostDropDown",vscroll:false,postCreate:function(){
this.inherited(arguments);
this.connect(this.dropDown,"onItemClick","_updateLabel");
if(this.layoutClass){
dojo.addClass(this.domNode,this.layoutClass);
}
},_updateLabel:function(item){
var _168=item.attr("label"),_169=item.attr("value");
this.attr("label",_168);
this.attr("value",_169);
this.onChange(_168,_169);
},_setIsErrorAttr:function(v){
v=!!v;
this.isError=v;
dojo.toggleClass(this.domNode,"error",v);
},_setValueAttr:function(_16a){
this.value=_16a;
dojo.forEach(this.dropDown.getChildren(),function(_16b){
var _16c=_16b.attr("value")==_16a;
_16b.attr("selected",_16c);
_16c&&this.attr("label",_16b.attr("label"));
},this);
},onChange:function(_16d,_16e){
}});
dojo.declare("joost.ui.Menu",dijit.Menu,{templateString:dojo.cache("joost.ui","templates/dropdown_menu.html","<div class=\"dropdown\" tabIndex=\"${tabIndex}\" waiRole=\"menu\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n  <div class=\"top\">\n    <div class=\"r\">\n      <ul dojoAttachPoint=\"containerNode\"></ul>\n    </div>\n  </div>\n  <div class=\"bot\"><div class=\"r\"></div></div>\n</div>\n"),postCreate:function(){
this.inherited(arguments);
if(this.vscroll){
dojo.addClass(this.domNode,"vscroll");
}
},onItemClick:function(item,evt){
dojo.forEach(this.getChildren(),function(k){
k.attr("selected",false);
});
item.attr("selected",true);
this.inherited(arguments);
},onOpen:function(){
dojo.style(this.domNode.parentNode,"zIndex",9999999);
this.inherited(arguments);
}});
dojo.declare("joost.ui.MenuItem",dijit.MenuItem,{templateString:dojo.cache("joost.ui","templates/menu_item.html","<li><a href=\"#\" \n   dojoAttachPoint=\"focusNode\" \n   waiRole=\"menuitem\" \n   tabIndex=\"-1\"\n   dojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n  <span dojoAttachPoint=\"containerNode\"></span>\n</a></li>\n"),selected:false,_setSelectedAttr:function(v){
dojo.toggleClass(this.focusNode,"selected",!!v);
}});
dojo.declare("joost.ui.MenuText",joost.Widget,{templateString:dojo.cache("joost.ui","templates/dropdown_menu.html","<div class=\"dropdown\" tabIndex=\"${tabIndex}\" waiRole=\"menu\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n  <div class=\"top\">\n    <div class=\"r\">\n      <ul dojoAttachPoint=\"containerNode\"></ul>\n    </div>\n  </div>\n  <div class=\"bot\"><div class=\"r\"></div></div>\n</div>\n"),width:200,tabIndex:null,menuItems:[],postCreate:function(){
dojo.addClass(this.domNode,"paddedContent");
dojo.style(this.domNode,{width:this.width+"px"});
dojo.forEach(this.menuItems,function(n){
this.adopt(joost.ui.MenuTextItem,{label:n.label,title:n.title,name:n.name,checked:n.checked}).placeAt(this.containerNode);
},this);
},_onKeyPress:function(){
}});
dojo.declare("joost.ui.MenuTextItem",joost.Widget,{templateString:dojo.cache("joost.ui","templates/menu_text_item.html","<li>\n  <h4 dojoAttachPoint=\"titleNode\"></h4>\n  <input dojoAttachPoint=\"checkNode\" type=\"checkbox\" dojoType=\"dijit.form.CheckBox\" dojoAttachEvent=\"onClick:_onCheckBoxClick\" />\n  <label dojoAttachPoint=\"labelNode\"></label>\n</li>\n\n"),widgetsInTemplate:true,attributeMap:{title:{node:"titleNode",type:"innerHTML"},label:{node:"labelNode",type:"innerHTML"}},label:"",title:"",postCreate:function(){
if(this.checked){
dojo.attr(this.checkNode,"value","true");
}
dojo.attr(this.checkNode,"name",this.name);
dojo.attr(this.labelNode,"for",this.checkNode.id);
if(!this.title){
dojo.destroy(this.titleNode);
}
},_onCheckBoxClick:function(e){
e.preventDefault();
this.onCheckBoxClick(this.name,this.checkNode.attr("value"));
},onCheckBoxClick:function(name,_16f){
}});
}
if(!dojo._hasResource["dojo.number"]){
dojo._hasResource["dojo.number"]=true;
dojo.provide("dojo.number");
dojo.number.format=function(_170,_171){
_171=dojo.mixin({},_171||{});
var _172=dojo.i18n.normalizeLocale(_171.locale);
var _173=dojo.i18n.getLocalization("dojo.cldr","number",_172);
_171.customs=_173;
var _174=_171.pattern||_173[(_171.type||"decimal")+"Format"];
if(isNaN(_170)||Math.abs(_170)==Infinity){
return null;
}
return dojo.number._applyPattern(_170,_174,_171);
};
dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;
dojo.number._applyPattern=function(_175,_176,_177){
_177=_177||{};
var _178=_177.customs.group;
var _179=_177.customs.decimal;
var _17a=_176.split(";");
var _17b=_17a[0];
_176=_17a[(_175<0)?1:0]||("-"+_17b);
if(_176.indexOf("%")!=-1){
_175*=100;
}else{
if(_176.indexOf("‰")!=-1){
_175*=1000;
}else{
if(_176.indexOf("¤")!=-1){
_178=_177.customs.currencyGroup||_178;
_179=_177.customs.currencyDecimal||_179;
_176=_176.replace(/\u00a4{1,3}/,function(_17c){
var prop=["symbol","currency","displayName"][_17c.length-1];
return _177[prop]||_177.currency||"";
});
}else{
if(_176.indexOf("E")!=-1){
throw new Error("exponential notation not supported");
}
}
}
}
var _17d=dojo.number._numberPatternRE;
var _17e=_17b.match(_17d);
if(!_17e){
throw new Error("unable to find a number expression in pattern: "+_176);
}
if(_177.fractional===false){
_177.places=0;
}
return _176.replace(_17d,dojo.number._formatAbsolute(_175,_17e[0],{decimal:_179,group:_178,places:_177.places,round:_177.round}));
};
dojo.number.round=function(_17f,_180,_181){
var _182=10/(_181||10);
return (_182*+_17f).toFixed(_180)/_182;
};
if((0.9).toFixed()==0){
(function(){
var _183=dojo.number.round;
dojo.number.round=function(v,p,m){
var d=Math.pow(10,-p||0),a=Math.abs(v);
if(!v||a>=d||a*Math.pow(10,p+1)<5){
d=0;
}
return _183(v,p,m)+(v>0?d:-d);
};
})();
}
dojo.number._formatAbsolute=function(_184,_185,_186){
_186=_186||{};
if(_186.places===true){
_186.places=0;
}
if(_186.places===Infinity){
_186.places=6;
}
var _187=_185.split(".");
var _188=(_186.places>=0)?_186.places:(_187[1]&&_187[1].length)||0;
if(!(_186.round<0)){
_184=dojo.number.round(_184,_188,_186.round);
}
var _189=String(Math.abs(_184)).split(".");
var _18a=_189[1]||"";
if(_186.places){
var _18b=dojo.isString(_186.places)&&_186.places.indexOf(",");
if(_18b){
_186.places=_186.places.substring(_18b+1);
}
_189[1]=dojo.string.pad(_18a.substr(0,_186.places),_186.places,"0",true);
}else{
if(_187[1]&&_186.places!==0){
var pad=_187[1].lastIndexOf("0")+1;
if(pad>_18a.length){
_189[1]=dojo.string.pad(_18a,pad,"0",true);
}
var _18c=_187[1].length;
if(_18c<_18a.length){
_189[1]=_18a.substr(0,_18c);
}
}else{
if(_189[1]){
_189.pop();
}
}
}
var _18d=_187[0].replace(",","");
pad=_18d.indexOf("0");
if(pad!=-1){
pad=_18d.length-pad;
if(pad>_189[0].length){
_189[0]=dojo.string.pad(_189[0],pad);
}
if(_18d.indexOf("#")==-1){
_189[0]=_189[0].substr(_189[0].length-pad);
}
}
var _18e=_187[0].lastIndexOf(",");
var _18f,_190;
if(_18e!=-1){
_18f=_187[0].length-_18e-1;
var _191=_187[0].substr(0,_18e);
_18e=_191.lastIndexOf(",");
if(_18e!=-1){
_190=_191.length-_18e-1;
}
}
var _192=[];
for(var _193=_189[0];_193;){
var off=_193.length-_18f;
_192.push((off>0)?_193.substr(off):_193);
_193=(off>0)?_193.slice(0,off):"";
if(_190){
_18f=_190;
delete _190;
}
}
_189[0]=_192.reverse().join(_186.group||",");
return _189.join(_186.decimal||".");
};
dojo.number.regexp=function(_194){
return dojo.number._parseInfo(_194).regexp;
};
dojo.number._parseInfo=function(_195){
_195=_195||{};
var _196=dojo.i18n.normalizeLocale(_195.locale);
var _197=dojo.i18n.getLocalization("dojo.cldr","number",_196);
var _198=_195.pattern||_197[(_195.type||"decimal")+"Format"];
var _199=_197.group;
var _19a=_197.decimal;
var _19b=1;
if(_198.indexOf("%")!=-1){
_19b/=100;
}else{
if(_198.indexOf("‰")!=-1){
_19b/=1000;
}else{
var _19c=_198.indexOf("¤")!=-1;
if(_19c){
_199=_197.currencyGroup||_199;
_19a=_197.currencyDecimal||_19a;
}
}
}
var _19d=_198.split(";");
if(_19d.length==1){
_19d.push("-"+_19d[0]);
}
var re=dojo.regexp.buildGroupRE(_19d,function(_19e){
_19e="(?:"+dojo.regexp.escapeString(_19e,".")+")";
return _19e.replace(dojo.number._numberPatternRE,function(_19f){
var _1a0={signed:false,separator:_195.strict?_199:[_199,""],fractional:_195.fractional,decimal:_19a,exponent:false};
var _1a1=_19f.split(".");
var _1a2=_195.places;
if(_1a1.length==1||_1a2===0){
_1a0.fractional=false;
}else{
if(_1a2===undefined){
_1a2=_195.pattern?_1a1[1].lastIndexOf("0")+1:Infinity;
}
if(_1a2&&_195.fractional==undefined){
_1a0.fractional=true;
}
if(!_195.places&&(_1a2<_1a1[1].length)){
_1a2+=","+_1a1[1].length;
}
_1a0.places=_1a2;
}
var _1a3=_1a1[0].split(",");
if(_1a3.length>1){
_1a0.groupSize=_1a3.pop().length;
if(_1a3.length>1){
_1a0.groupSize2=_1a3.pop().length;
}
}
return "("+dojo.number._realNumberRegexp(_1a0)+")";
});
},true);
if(_19c){
re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_1a4,_1a5,_1a6,_1a7){
var prop=["symbol","currency","displayName"][_1a6.length-1];
var _1a8=dojo.regexp.escapeString(_195[prop]||_195.currency||"");
_1a5=_1a5?"[\\s\\xa0]":"";
_1a7=_1a7?"[\\s\\xa0]":"";
if(!_195.strict){
if(_1a5){
_1a5+="*";
}
if(_1a7){
_1a7+="*";
}
return "(?:"+_1a5+_1a8+_1a7+")?";
}
return _1a5+_1a8+_1a7;
});
}
return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_199,decimal:_19a,factor:_19b};
};
dojo.number.parse=function(_1a9,_1aa){
var info=dojo.number._parseInfo(_1aa);
var _1ab=(new RegExp("^"+info.regexp+"$")).exec(_1a9);
if(!_1ab){
return NaN;
}
var _1ac=_1ab[1];
if(!_1ab[1]){
if(!_1ab[2]){
return NaN;
}
_1ac=_1ab[2];
info.factor*=-1;
}
_1ac=_1ac.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");
return _1ac*info.factor;
};
dojo.number._realNumberRegexp=function(_1ad){
_1ad=_1ad||{};
if(!("places" in _1ad)){
_1ad.places=Infinity;
}
if(typeof _1ad.decimal!="string"){
_1ad.decimal=".";
}
if(!("fractional" in _1ad)||/^0/.test(_1ad.places)){
_1ad.fractional=[true,false];
}
if(!("exponent" in _1ad)){
_1ad.exponent=[true,false];
}
if(!("eSigned" in _1ad)){
_1ad.eSigned=[true,false];
}
var _1ae=dojo.number._integerRegexp(_1ad);
var _1af=dojo.regexp.buildGroupRE(_1ad.fractional,function(q){
var re="";
if(q&&(_1ad.places!==0)){
re="\\"+_1ad.decimal;
if(_1ad.places==Infinity){
re="(?:"+re+"\\d+)?";
}else{
re+="\\d{"+_1ad.places+"}";
}
}
return re;
},true);
var _1b0=dojo.regexp.buildGroupRE(_1ad.exponent,function(q){
if(q){
return "([eE]"+dojo.number._integerRegexp({signed:_1ad.eSigned})+")";
}
return "";
});
var _1b1=_1ae+_1af;
if(_1af){
_1b1="(?:(?:"+_1b1+")|(?:"+_1af+"))";
}
return _1b1+_1b0;
};
dojo.number._integerRegexp=function(_1b2){
_1b2=_1b2||{};
if(!("signed" in _1b2)){
_1b2.signed=[true,false];
}
if(!("separator" in _1b2)){
_1b2.separator="";
}else{
if(!("groupSize" in _1b2)){
_1b2.groupSize=3;
}
}
var _1b3=dojo.regexp.buildGroupRE(_1b2.signed,function(q){
return q?"[-+]":"";
},true);
var _1b4=dojo.regexp.buildGroupRE(_1b2.separator,function(sep){
if(!sep){
return "(?:\\d+)";
}
sep=dojo.regexp.escapeString(sep);
if(sep==" "){
sep="\\s";
}else{
if(sep==" "){
sep="\\s\\xa0";
}
}
var grp=_1b2.groupSize,grp2=_1b2.groupSize2;
if(grp2){
var _1b5="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";
return ((grp-grp2)>0)?"(?:"+_1b5+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_1b5;
}
return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";
},true);
return _1b3+_1b4;
};
}
if(!dojo._hasResource["joost.panels._base"]){
dojo._hasResource["joost.panels._base"]=true;
dojo.provide("joost.panels._base");
dojo.declare("joost.panels.Base",joost.NlsWidget,{constructor:function(args){
this.args=args;
if(args&&args.tab){
this.selectedTab=args.tab;
}
}});
}
if(!dojo._hasResource["joost.script"]){
dojo._hasResource["joost.script"]=true;
dojo.provide("joost.script");
(function(d,j){
var h=d.doc.getElementsByTagName("head")[0],re=/complete|loaded/,_1b6=/(\w+)=\?/,_1b7=0;
j.addScript=function(src,_1b8,_1b9){
if(_1b6.test(src)){
j._getJsonp.apply(this,arguments);
}else{
var s=d.create("script",{src:src},h),c=d.connect(s,s.readyState?"onreadystatechange":"load",function(e){
if(e.type=="load"||re.test(s.readyState)){
d.disconnect(c);
_1b8&&_1b8.call(s,e);
if(!_1b9){
h.removeChild(s);
}
}
});
}
};
d._getJsonp=function(src,_1ba,_1bb){
var id="cb"+(++_1b7);
j.addScript[id]=_1ba;
src=src.replace(_1b6,function(_1bc,b){
return b+"="+d._scopeName+".addScript."+id;
});
j.addScript(src,function(){
delete j.addScript[id];
},_1bb);
};
})(dojo,joost);
}
if(!dojo._hasResource["joost.Tracker"]){
dojo._hasResource["joost.Tracker"]=true;
dojo.provide("joost.Tracker");
(function(d,j){
if(typeof (_gaq)=="undefined"){
j.trackPage=j.trackEvent=j.trackFakeEvent=function(){
};
return;
}
function _1bd(){
dojo.global.pageTracker=_gaq._getAsyncTracker();
j.trackPage=function(id){
dojo.global.pageTracker._trackPageview(id);
};
j.trackEvent=function(c,a,l,v){
dojo.global.pageTracker._trackEvent(c,a,l,v);
};
};
j.trackPage=function(id){
_gaq.push(["_trackPageview",id]);
};
j.trackEvent=function(_1be,_1bf,_1c0,_1c1){
_gaq.push(["_trackEvent",_1be,_1bf,_1c0,_1c1]);
};
j.trackFakeEvent=function(_1c2,_1c3,_1c4){
var s="_event/"+_1c2+"/"+_1c3+"/";
if(_1c4){
s+=_1c4+"/";
}
j.trackPage(s);
};
_gaq.push(_1bd);
})(dojo,joost);
}
if(!dojo._hasResource["joost.facebook"]){
dojo._hasResource["joost.facebook"]=true;
dojo.provide("joost.facebook");
if(dojo.config.enableFacebook==="true"){
(function(jf){
function _1c5(){
if(!dojo.config.fbckey){
joost.api.config.get().addCallback(function(r){
if(!(r&&r.fbckey)){
console.error("could not find facebook api key");
return;
}
dojo.config.fbckey=r.fbckey;
_1c5();
});
return;
}
if(!dojo.byId("FB_HiddenContainer")){
dojo.place("<div id=\"FB_HiddenContainer\" style=\"position:absolute; top:-10000px; left:-10000px; width:0px; height:0px;\" ></div>",dojo.body());
}
var url=dojo.config.facebookSrc||"http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
joost.addScript(url,_1c6,true);
_1c7="loading";
};
var _1c7="init";
var _1c8={load:function(){
},err:function(){
}};
function _1c6(evt){
_1c7="loaded";
if(!("FB" in dojo.global)){
_1c7="fail";
_1c8.err();
_1c8=null;
jf.hook=function(cb,eb){
eb();
};
console.error("facebook failed to load..");
return;
}
FB_RequireFeatures(["XFBML","Api","Connect"]);
FB.init(dojo.config.fbckey,"/xd_receiver.htm");
FB.ensureInit(function(){
var fbc=FB.Connect;
_1c7="ready";
_1c8.load();
_1c8=null;
jf.hook=function(cb,eb){
cb();
};
var _1c9=FB.ConnectState,_1ca;
var _1cb=fbc.get_status().result;
switch(_1cb){
case _1c9.connected:
_1ca="connected";
break;
case _1c9.appNotAuthorized:
_1ca="not-authorized";
break;
case _1c9.userNotLoggedIn:
_1ca="not-logged-in";
break;
default:
_1ca="unknown";
break;
}
joost.trackFakeEvent("facebook","load",_1ca);
if(fbc.get_status().result==_1c9.connected){
var u=joost.user.current;
if(u.anonymous||u.identities.FACEBOOK!=fbc.get_loggedInUser()){
fbc.requireSession(function(){
joost.api.login.validateFacebook().addCallback(joost.user,"switchUser");
},function(){
},false);
}
}
fbc.ifUserConnected(function(uid){
dojo.publish("/facebook/status",["connected"]);
joost.trackFakeEvent("facebook","monitor","connected");
},function(uid){
dojo.publish("/facebook/status",["disconnected"]);
joost.trackFakeEvent("facebook","monitor","disconnected");
});
setInterval(function(){
fbc.forceSessionRefresh();
},1000*60*3);
});
};
jf.hook=function(cb,eb){
return [dojo.connect(_1c8,"load",cb),dojo.connect(_1c8,"err",eb)];
};
jf.unhook=function(_1cc){
dojo.forEach(_1cc,dojo.disconnect);
};
jf.status=function(){
if(!(dojo.exists("FB.Connect"))){
return "unavailable";
}
return FB.Connect.get_status().result==FB.ConnectState.connected?"connected":"disconnected";
};
dojo.addOnLoad(_1c5);
})(joost.facebook);
}
}
if(!dojo._hasResource["joost.user"]){
dojo._hasResource["joost.user"]=true;
dojo.provide("joost.user");
(function(ju){
var anon={anonymous:true,displayName:"Stranger",favorites:{},identities:{},notifications:{},token:false};
ju.current=anon;
ju.switchUser=function(usr){
usr.anonymous=false;
ju.current=usr;
dojo.publish("/joost/command/changeuser",[ju.current]);
};
ju.logout=function(_1cd){
var _1ce=function(){
ju.current=anon;
var l=window.location;
window.location.href=l.protocol+"//"+l.host+"/";
};
if(_1cd){
joost.api.registration.disconnect().addCallback(this,function(){
if(dojo.exists("FB.Connect")){
FB.Connect.forceSessionRefresh();
}
joost.api.login.logout({}).addBoth(_1ce);
});
}else{
if(dojo.exists("FB.Connect")&&FB.Connect.get_status().result==FB.ConnectState.connected&&FB.Connect.get_loggedInUser()==joost.user.current.identities.FACEBOOK){
FB.Connect.logout(function(){
joost.api.login.logout({}).addBoth(_1ce);
});
}else{
joost.api.login.logout({}).addBoth(_1ce);
}
}
};
if(window._joostCache&&window._joostCache.user){
ju.current=_joostCache.user;
ju.current.anonymous=false;
}
})(joost.user);
}
if(!dojo._hasResource["joost.facebook.connect"]){
dojo._hasResource["joost.facebook.connect"]=true;
dojo.provide("joost.facebook.connect");
if(dojo.config.enableFacebook==="true"){
(function(jf){
function _1cf(){
joost.trackFakeEvent("facebook","connect","connected");
if(joost.user.current.anonymous){
var def=joost.api.registration.connect();
def.addCallback(function(r){
if(!r||r.success===false){
console.error("Cound not connect",r);
joost.trackFakeEvent("facebook","connect","denied");
return;
}
if(r.action=="login"){
joost.user.switchUser(r.user);
joost.trackFakeEvent("facebook","connect","connected-existing");
}else{
if(r.action=="register"){
dojo["require"]("joost.ui.DialogRegistration");
joost.trackFakeEvent("facebook","connect","connected-register");
dojo.addOnLoad(function(){
joost.trackFakeEvent("facebook","connect","start-register");
var dlg=new joost.ui.DialogRegistration({});
dlg.viaFacebook(r);
});
}
}
});
return def;
}else{
return joost.api.registration.connectExisting().addCallback(function(){
});
}
};
function _1d0(){
joost.trackFakeEvent("facebook","connect","refusal");
};
jf.connect=function(){
var def=new dojo.Deferred();
if(!dojo.exists("FB.Connect.requireSession")){
console.error("Facebook not available for Connect");
def.errback("Facebook not available for Connect");
return def;
}
var u=joost.user.current;
if(FB.Connect.get_status().result==FB.ConnectState.connected&&u.identities.FACEBOOK==FB.Connect.get_loggedInUser()){
def.callback(u);
return def;
}
def.addCallback(_1cf);
def.addErrback(_1d0);
joost.trackFakeEvent("facebook","connect","start");
FB.Connect.requireSession(dojo.hitch(def,function(){
this.callback();
if(dojo.byId("playerErr")){
location.reload();
}
}),dojo.hitch(def,"errback"),true);
return def;
};
jf.hasExtendedPerms=function(){
var args=dojo._toArray(arguments);
var r={};
var bs=new FB.BatchSequencer();
var def=new dojo.Deferred();
dojo.forEach(args,function(n){
r[n]=FB.Facebook.apiClient.users_hasAppPermission(n,bs);
});
bs.execute(function(){
var res={has:[],missing:[]};
dojo.forEach(args,function(n){
if(r[n].result==1){
res.has.push(n);
}else{
res.missing.push(n);
}
});
def.callback(res);
});
return def;
};
})(joost.facebook);
}
}
if(!dojo._hasResource["joost.panels.Root"]){
dojo._hasResource["joost.panels.Root"]=true;
dojo.provide("joost.panels.Root");
dojo.declare("joost.panels.Root",joost.panels.Base,{widgetsInTemplate:true,templateString:dojo.cache("joost.panels","templates/root.html","<div>\n  <iframe id=\"brick_iframe\" width=\"650\" height=\"980\" src=\"http://${iframeSrc}\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"></iframe>\n</div>\n"),staticroot:dojo.moduleUrl("joost","resources").toString(),iframeSrc:dojo.config.adurls.brick+joost.util.adoptions(),_jpad:function(e){
e&&e.preventDefault();
joost.trackFakeEvent("root-panel","appstore-redirect");
setTimeout(function(){
window.location.href="http://ad.amgdgt.com/ads/?t=c&s=AAAAAQAU.F8iaXKaQVhv8toWPUfJ.r7dV.BjLDI1NTM1MyxwYyw0NTUyNCxhYywxMDQ5MjksbCwzNjk4NAo-&clkurl=http://itunes.apple.com/us/app/id295977505?mt=8";
},275);
}});
}
if(!dojo._hasResource["dijit.form.HorizontalRule"]){
dojo._hasResource["dijit.form.HorizontalRule"]=true;
dojo.provide("dijit.form.HorizontalRule");
dojo.declare("dijit.form.HorizontalRule",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH\"></div>",count:3,container:"containerNode",ruleStyle:"",_positionPrefix:"<div class=\"dijitRuleMark dijitRuleMarkH\" style=\"left:",_positionSuffix:"%;",_suffix:"\"></div>",_genHTML:function(pos,ndx){
return this._positionPrefix+pos+this._positionSuffix+this.ruleStyle+this._suffix;
},_isHorizontal:true,postCreate:function(){
var _1d1;
if(this.count==1){
_1d1=this._genHTML(50,0);
}else{
var i;
var _1d2=100/(this.count-1);
if(!this._isHorizontal||this.isLeftToRight()){
_1d1=this._genHTML(0,0);
for(i=1;i<this.count-1;i++){
_1d1+=this._genHTML(_1d2*i,i);
}
_1d1+=this._genHTML(100,this.count-1);
}else{
_1d1=this._genHTML(100,0);
for(i=1;i<this.count-1;i++){
_1d1+=this._genHTML(100-_1d2*i,i);
}
_1d1+=this._genHTML(0,this.count-1);
}
}
this.domNode.innerHTML=_1d1;
}});
}
if(!dojo._hasResource["dijit.form.HorizontalRuleLabels"]){
dojo._hasResource["dijit.form.HorizontalRuleLabels"]=true;
dojo.provide("dijit.form.HorizontalRuleLabels");
dojo.declare("dijit.form.HorizontalRuleLabels",dijit.form.HorizontalRule,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH\"></div>",labelStyle:"",labels:[],numericMargin:0,minimum:0,maximum:1,constraints:{pattern:"#%"},_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerH\" style=\"left:",_labelPrefix:"\"><span class=\"dijitRuleLabel dijitRuleLabelH\">",_suffix:"</span></div>",_calcPosition:function(pos){
return pos;
},_genHTML:function(pos,ndx){
return this._positionPrefix+this._calcPosition(pos)+this._positionSuffix+this.labelStyle+this._labelPrefix+this.labels[ndx]+this._suffix;
},getLabels:function(){
var _1d3=this.labels;
if(!_1d3.length){
_1d3=dojo.query("> li",this.srcNodeRef).map(function(node){
return String(node.innerHTML);
});
}
this.srcNodeRef.innerHTML="";
if(!_1d3.length&&this.count>1){
var _1d4=this.minimum;
var inc=(this.maximum-_1d4)/(this.count-1);
for(var i=0;i<this.count;i++){
_1d3.push((i<this.numericMargin||i>=(this.count-this.numericMargin))?"":dojo.number.format(_1d4,this.constraints));
_1d4+=inc;
}
}
return _1d3;
},postMixInProperties:function(){
this.inherited(arguments);
this.labels=this.getLabels();
this.count=this.labels.length;
}});
}
if(!dojo._hasResource["joost.formatDate"]){
dojo._hasResource["joost.formatDate"]=true;
dojo.provide("joost.formatDate");
(function(){
var _1d5,_1d6=1,_1d7=60,hour=60*60,day=24*hour,week=7*day,_1d8=30*day,year=365*day;
function _1d9(){
if(!_1d5){
_1d5=dojo.i18n.getLocalization("joost.ui","FormatDate");
}
return _1d5;
};
function _1da(dt,_1db,_1dc){
if(!(dt instanceof Date)){
dt=new Date(dt.timestamp);
}
if(_1db===undefined){
_1db=new Date();
}else{
if(!(_1db instanceof Date)){
_1db=new Date(_1db.timestamp);
}
}
var str="";
var _1dd=(_1dc=="TIMEAGO")?_1db.getTime()-dt.getTime():dt.getTime()-_1db.getTime();
_1dd=Math.floor(_1dd/1000);
function _1de(s,m){
s=_1d9()["DATE"+_1dc+s];
if(s===undefined){
return "";
}
if(m){
s=dojo.string.substitute(s,m);
}
return s;
};
if(_1dd<0){
return _1de("OOPS");
}
if(_1dd<=_1d6){
return _1de("SECOND1");
}
if(_1dd<_1d7){
return _1de("SECOND",{i:_1dd});
}
if(_1dd<2*_1d7){
return _1de("MINUTE1");
}
if(_1dd<hour){
return _1de("MINUTE",{i:Math.floor(_1dd/_1d7)});
}
if(_1dd<2*hour){
return _1de("HOUR1");
}
if(_1dd<day){
return _1de("HOUR",{i:Math.floor(_1dd/hour)});
}
if(_1dd<2*day){
return _1de("DAY1");
}
if(_1dd<week){
return _1de("DAY",{i:Math.floor(_1dd/day)});
}
if(_1dd<2*week){
return _1de("WEEK1");
}
if(_1dd<_1d8){
return _1de("WEEK",{i:Math.floor(_1dd/week)});
}
if(_1dd<2*_1d8){
return _1de("MONTH1");
}
if(_1dd<year){
return _1de("MONTH",{i:Math.floor(_1dd/_1d8)});
}
if(_1dd<year+_1d8){
return _1de("YEAR1");
}
return _1de("YEAR");
};
joost.formatDateFuture=function(o,_1df){
return _1da(o,_1df,"FUTURE");
};
joost.formatDatePast=function(o,_1e0){
return _1da(o,_1e0,"TIMEAGO");
};
joost.formatDuration=function(secs){
var _1e1=Math.floor(secs/3600);
secs=secs%3600;
var mins=Math.floor(secs/60);
secs=Math.round(secs%60);
if(secs==60){
secs=0;
mins++;
}
if(mins==60){
mins=0;
_1e1++;
}
return (_1e1?_1e1+":":"")+(mins<10?"0"+mins:mins)+":"+(secs<10?"0"+secs:secs);
};
})();
}
if(!dojo._hasResource["joost.register"]){
dojo._hasResource["joost.register"]=true;
dojo.provide("joost.register");
joost.register=function(){
dojo["require"]("joost.ui.DialogRegistration");
var dlg=new joost.ui.DialogRegistration({loc:document.location});
joost.trackFakeEvent("registration","start");
return joost._initDeferred(dlg);
};
joost.acceptTOS=function(_1e2){
dojo["require"]("joost.ui.DialogRegistration");
var dlg=new joost.ui.DialogRegistration({"prefilledData":_1e2,completeMissingData:true,showResendActivation:false,loc:document.location});
joost.trackFakeEvent("registration","resume");
return joost._initDeferred(dlg);
};
joost.confirm=function(_1e3){
dojo["require"]("joost.ui.DialogResendActivation");
var dlg=new joost.ui.DialogResendActivation({"userData":_1e3,loc:document.location});
joost.trackFakeEvent("registration","resend-popup");
var def=new dojo.Deferred();
var _1e4=dojo.connect(dlg,"onClose",function(){
dojo.disconnect(_1e4);
joost.trackFakeEvent("registration","resent");
def.callback(joost.user.current);
});
return def;
};
joost._initDeferred=function(dlg){
var def=new dojo.Deferred();
var _1e5=dojo.connect(dlg,"onClose",function(){
dojo.disconnect(_1e5);
if(joost.user.current.anonymous){
joost.trackFakeEvent("registration","fail");
def.errback();
}else{
joost.trackFakeEvent("registration","success");
def.callback(joost.user.current);
}
});
return def;
};
joost.requireUser=function(){
if(joost.user.current.anonymous){
return joost.register();
}else{
var d=new dojo.Deferred();
d.callback(joost.user.current);
return d;
}
};
joost.login=function(){
dojo.publish("/joost/popup/guslogin");
};
}
if(!dojo._hasResource["dojo.dnd.common"]){
dojo._hasResource["dojo.dnd.common"]=true;
dojo.provide("dojo.dnd.common");
dojo.dnd.getCopyKeyState=dojo.isCopyKeyPressed;
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.position(n,true);
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-t.x,ry=e.pageY-t.y,dx=0,dy=0;
if(dojo.isWebKit||dojo.isOpera){
rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop;
}
if(rx>0&&rx<b.w){
if(rx<w){
dx=-w;
}else{
if(rx>b.w-w){
dx=w;
}
}
}
if(ry>0&&ry<b.h){
if(ry<h){
dy=-h;
}else{
if(ry>b.h-h){
dy=h;
}
}
}
var _1e6=n.scrollLeft,_1e7=n.scrollTop;
n.scrollLeft=n.scrollLeft+dx;
n.scrollTop=n.scrollTop+dy;
if(_1e6!=n.scrollLeft||_1e7!=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,_1e8=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.body,"onselectstart",dojo.stopEvent),_1e8];
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});
dojo.stopEvent(e);
},onMouseUp:function(e){
if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){
this.destroy();
}
dojo.stopEvent(e);
},onFirstMove:function(){
var s=this.node.style,l,t,h=this.host;
switch(s.position){
case "relative":
case "absolute":
l=Math.round(parseFloat(s.left));
t=Math.round(parseFloat(s.top));
break;
default:
s.position="absolute";
var m=dojo.marginBox(this.node);
var b=dojo.doc.body;
var bs=dojo.getComputedStyle(b);
var bm=dojo._getMarginBox(b,bs);
var bc=dojo._getContentBox(b,bs);
l=m.l-(bc.l-bm.l);
t=m.t-(bc.t-bm.t);
break;
}
this.marginBox.l=l-this.marginBox.l;
this.marginBox.t=t-this.marginBox.t;
if(h&&h.onFirstMove){
h.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=this.host=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,_1e9){
this.node=dojo.byId(node);
if(!_1e9){
_1e9={};
}
this.handle=_1e9.handle?dojo.byId(_1e9.handle):null;
if(!this.handle){
this.handle=this.node;
}
this.delay=_1e9.delay>0?_1e9.delay:0;
this.skip=_1e9.skip;
this.mover=_1e9.mover?_1e9.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(_1ea,node){
return new dojo.dnd.Moveable(node,_1ea);
},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"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));
this._lastX=e.pageX;
this._lastY=e.pageY;
}else{
this.onDragDetected(e);
}
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);
this.onDragDetected(e);
}
dojo.stopEvent(e);
},onMouseUp:function(e){
for(var i=0;i<2;++i){
dojo.disconnect(this.events.pop());
}
dojo.stopEvent(e);
},onSelectStart:function(e){
if(!this.skip||!dojo.dnd.isFormElement(e)){
dojo.stopEvent(e);
}
},onDragDetected:function(e){
new this.mover(this.node,e,this);
},onMoveStart:function(_1eb){
dojo.publish("/dnd/move/start",[_1eb]);
dojo.addClass(dojo.body(),"dojoMove");
dojo.addClass(this.node,"dojoMoveItem");
},onMoveStop:function(_1ec){
dojo.publish("/dnd/move/stop",[_1ec]);
dojo.removeClass(dojo.body(),"dojoMove");
dojo.removeClass(this.node,"dojoMoveItem");
},onFirstMove:function(_1ed){
},onMove:function(_1ee,_1ef){
this.onMoving(_1ee,_1ef);
var s=_1ee.node.style;
s.left=_1ef.l+"px";
s.top=_1ef.t+"px";
this.onMoved(_1ee,_1ef);
},onMoving:function(_1f0,_1f1){
},onMoved:function(_1f2,_1f3){
}});
}
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(_1f4,node){
return new dojo.dnd.move.constrainedMoveable(node,_1f4);
},constructor:function(node,_1f5){
if(!_1f5){
_1f5={};
}
this.constraints=_1f5.constraints;
this.within=_1f5.within;
},onFirstMove:function(_1f6){
var c=this.constraintBox=this.constraints.call(this,_1f6);
c.r=c.l+c.w;
c.b=c.t+c.h;
if(this.within){
var mb=dojo.marginBox(_1f6.node);
c.r-=mb.w;
c.b-=mb.h;
}
},onMove:function(_1f7,_1f8){
var c=this.constraintBox,s=_1f7.node.style;
s.left=(_1f8.l<c.l?c.l:c.r<_1f8.l?c.r:_1f8.l)+"px";
s.top=(_1f8.t<c.t?c.t:c.b<_1f8.t?c.b:_1f8.t)+"px";
}});
dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_1f9,node){
return new dojo.dnd.move.boxConstrainedMoveable(node,_1f9);
},constructor:function(node,_1fa){
var box=_1fa&&_1fa.box;
this.constraints=function(){
return box;
};
}});
dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_1fb,node){
return new dojo.dnd.move.parentConstrainedMoveable(node,_1fb);
},constructor:function(node,_1fc){
var area=_1fc&&_1fc.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,_1fd){
dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead");
var _1fe=function(node,e,_1ff){
dojo.dnd.Mover.call(this,node,e,_1ff);
};
dojo.extend(_1fe,dojo.dnd.Mover.prototype);
dojo.extend(_1fe,{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);
c.r=c.l+c.w;
c.b=c.t+c.h;
if(_1fd){
var mb=dojo.marginBox(this.node);
c.r-=mb.w;
c.b-=mb.h;
}
}});
return _1fe;
};
dojo.dnd.move.boxConstrainedMover=function(box,_200){
dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead");
return dojo.dnd.move.constrainedMover(function(){
return box;
},_200);
};
dojo.dnd.move.parentConstrainedMover=function(area,_201){
dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead");
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,_201);
};
dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;
dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;
dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;
}
if(!dojo._hasResource["dijit.form.HorizontalSlider"]){
dojo._hasResource["dijit.form.HorizontalSlider"]=true;
dojo.provide("dijit.form.HorizontalSlider");
dojo.declare("dijit.form.HorizontalSlider",[dijit.form._FormValueWidget,dijit._Container],{templateString:dojo.cache("dijit.form","templates/HorizontalSlider.html","<table class=\"dijit dijitReset dijitSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset\" style=\"text-align:center;width:100%;\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\" style=\"right:0px;\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset\" style=\"text-align:center;\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"),value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:dijit.defaultDuration,widgetsInTemplate:true,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{id:""}),baseClass:"dijitSlider",_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_startingPixelCount:"l",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){
if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){
return;
}
this._setValueAttr(this.value,true);
},_onKeyPress:function(e){
if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){
return;
}
switch(e.charOrCode){
case dojo.keys.HOME:
this._setValueAttr(this.minimum,false);
break;
case dojo.keys.END:
this._setValueAttr(this.maximum,false);
break;
case ((this._descending||this.isLeftToRight())?dojo.keys.RIGHT_ARROW:dojo.keys.LEFT_ARROW):
case (this._descending===false?dojo.keys.DOWN_ARROW:dojo.keys.UP_ARROW):
case (this._descending===false?dojo.keys.PAGE_DOWN:dojo.keys.PAGE_UP):
this.increment(e);
break;
case ((this._descending||this.isLeftToRight())?dojo.keys.LEFT_ARROW:dojo.keys.RIGHT_ARROW):
case (this._descending===false?dojo.keys.UP_ARROW:dojo.keys.DOWN_ARROW):
case (this._descending===false?dojo.keys.PAGE_UP:dojo.keys.PAGE_DOWN):
this.decrement(e);
break;
default:
return;
}
dojo.stopEvent(e);
},_onHandleClick:function(e){
if(this.disabled||this.readOnly){
return;
}
if(!dojo.isIE){
dijit.focus(this.sliderHandle);
}
dojo.stopEvent(e);
},_isReversed:function(){
return !this.isLeftToRight();
},_onBarClick:function(e){
if(this.disabled||this.readOnly||!this.clickSelect){
return;
}
dijit.focus(this.sliderHandle);
dojo.stopEvent(e);
var _202=dojo.position(this.sliderBarContainer,true);
var _203=e[this._mousePixelCoord]-_202[this._startingPixelCoord];
this._setPixelValue(this._isReversed()?(_202[this._pixelCount]-_203):_203,_202[this._pixelCount],true);
this._movable.onMouseDown(e);
},_setPixelValue:function(_204,_205,_206){
if(this.disabled||this.readOnly){
return;
}
_204=_204<0?0:_205<_204?_205:_204;
var _207=this.discreteValues;
if(_207<=1||_207==Infinity){
_207=_205;
}
_207--;
var _208=_205/_207;
var _209=Math.round(_204/_208);
this._setValueAttr((this.maximum-this.minimum)*_209/_207+this.minimum,_206);
},_setValueAttr:function(_20a,_20b){
this.valueNode.value=this.value=_20a;
dijit.setWaiState(this.focusNode,"valuenow",_20a);
this.inherited(arguments);
var _20c=(_20a-this.minimum)/(this.maximum-this.minimum);
var _20d=(this._descending===false)?this.remainingBar:this.progressBar;
var _20e=(this._descending===false)?this.progressBar:this.remainingBar;
if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){
this._inProgressAnim.stop(true);
}
if(_20b&&this.slideDuration>0&&_20d.style[this._progressPixelSize]){
var _20f=this;
var _210={};
var _211=parseFloat(_20d.style[this._progressPixelSize]);
var _212=this.slideDuration*(_20c-_211/100);
if(_212==0){
return;
}
if(_212<0){
_212=0-_212;
}
_210[this._progressPixelSize]={start:_211,end:_20c*100,units:"%"};
this._inProgressAnim=dojo.animateProperty({node:_20d,duration:_212,onAnimate:function(v){
_20e.style[_20f._progressPixelSize]=(100-parseFloat(v[_20f._progressPixelSize]))+"%";
},onEnd:function(){
delete _20f._inProgressAnim;
},properties:_210});
this._inProgressAnim.play();
}else{
_20d.style[this._progressPixelSize]=(_20c*100)+"%";
_20e.style[this._progressPixelSize]=((1-_20c)*100)+"%";
}
},_bumpValue:function(_213,_214){
if(this.disabled||this.readOnly){
return;
}
var s=dojo.getComputedStyle(this.sliderBarContainer);
var c=dojo._getContentBox(this.sliderBarContainer,s);
var _215=this.discreteValues;
if(_215<=1||_215==Infinity){
_215=c[this._pixelCount];
}
_215--;
var _216=(this.value-this.minimum)*_215/(this.maximum-this.minimum)+_213;
if(_216<0){
_216=0;
}
if(_216>_215){
_216=_215;
}
_216=_216*(this.maximum-this.minimum)/_215+this.minimum;
this._setValueAttr(_216,_214);
},_onClkBumper:function(val){
if(this.disabled||this.readOnly||!this.clickSelect){
return;
}
this._setValueAttr(val,true);
},_onClkIncBumper:function(){
this._onClkBumper(this._descending===false?this.minimum:this.maximum);
},_onClkDecBumper:function(){
this._onClkBumper(this._descending===false?this.maximum:this.minimum);
},decrement:function(e){
this._bumpValue(e.charOrCode==dojo.keys.PAGE_DOWN?-this.pageIncrement:-1);
},increment:function(e){
this._bumpValue(e.charOrCode==dojo.keys.PAGE_UP?this.pageIncrement:1);
},_mouseWheeled:function(evt){
dojo.stopEvent(evt);
var _217=!dojo.isMozilla;
var _218=evt[(_217?"wheelDelta":"detail")]*(_217?1:-1);
this._bumpValue(_218<0?-1:1,true);
},startup:function(){
dojo.forEach(this.getChildren(),function(_219){
if(this[_219.container]!=this.containerNode){
this[_219.container].appendChild(_219.domNode);
}
},this);
},_typematicCallback:function(_21a,_21b,e){
if(_21a==-1){
this._setValueAttr(this.value,true);
}else{
this[(_21b==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e);
}
},postCreate:function(){
if(this.showButtons){
this.incrementButton.style.display="";
this.decrementButton.style.display="";
this._connects.push(dijit.typematic.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500));
this._connects.push(dijit.typematic.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));
}
this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":"DOMMouseScroll","_mouseWheeled");
var _21c=dojo.declare(dijit.form._SliderMover,{widget:this});
this._movable=new dojo.dnd.Moveable(this.sliderHandle,{mover:_21c});
var _21d=dojo.query("label[for=\""+this.id+"\"]");
if(_21d.length){
_21d[0].id=(this.id+"_label");
dijit.setWaiState(this.focusNode,"labelledby",_21d[0].id);
}
dijit.setWaiState(this.focusNode,"valuemin",this.minimum);
dijit.setWaiState(this.focusNode,"valuemax",this.maximum);
this.inherited(arguments);
this._layoutHackIE7();
},destroy:function(){
this._movable.destroy();
if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){
this._inProgressAnim.stop(true);
}
this._supportingWidgets=dijit.findWidgets(this.domNode);
this.inherited(arguments);
}});
dojo.declare("dijit.form._SliderMover",dojo.dnd.Mover,{onMouseMove:function(e){
var _21e=this.widget;
var _21f=_21e._abspos;
if(!_21f){
_21f=_21e._abspos=dojo.position(_21e.sliderBarContainer,true);
_21e._setPixelValue_=dojo.hitch(_21e,"_setPixelValue");
_21e._isReversed_=_21e._isReversed();
}
var _220=e[_21e._mousePixelCoord]-_21f[_21e._startingPixelCoord];
_21e._setPixelValue_(_21e._isReversed_?(_21f[_21e._pixelCount]-_220):_220,_21f[_21e._pixelCount],false);
},destroy:function(e){
dojo.dnd.Mover.prototype.destroy.apply(this,arguments);
var _221=this.widget;
_221._abspos=null;
_221._setValueAttr(_221.value,true);
}});
}
if(!dojo._hasResource["joost.ui.HorizontalSlider"]){
dojo._hasResource["joost.ui.HorizontalSlider"]=true;
dojo.provide("joost.ui.HorizontalSlider");
dojo.declare("joost.ui.HorizontalSlider",dijit.form.HorizontalSlider,{templateString:dojo.cache("joost.ui","templates/horizontalslider.html","<table class=\"dijit dijitReset dijitSlider\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n  <tr class=\"dijitReset\">\n    <td dojoAttachPoint=\"containerNode,topDecoration\" class=\"dijitReset\"></td>\n  </tr>\n  <tr class=\"dijitReset\">\n    <td class=\"dijitReset\">\n      <input dojoAttachPoint=\"valueNode\" type=\"hidden\"  ${nameAttrSetting} />\n      <div class=\"dijitSliderBarContainerH\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\">\n        <div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\">\n          <div>\n            <div class=\"dijitSliderMoveable dijitSliderMoveableH\">\n              <div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div>\n            </div>\n          </div>\n        </div>\n        <div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\">\n          <div></div>\n        </div>\n      </div>\n    </td>\n  </tr>\n  <tr class=\"dijitReset\">\n    <td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset\" style=\"text-align:center;\"></td>\n    <td colspan=\"2\" class=\"dijitReset\"/>\n  </tr>\n</table>\n"),postCreate:function(){
this.inherited(arguments);
dojo.setSelectable(this.sliderHandle,false);
}});
}
if(!dojo._hasResource["joost.ui.Pager"]){
dojo._hasResource["joost.ui.Pager"]=true;
dojo.provide("joost.ui.Pager");
dojo.declare("joost.ui.Pager",joost.Widget,{templateString:dojo.cache("joost.ui","templates/pager.html","<div dojoAttachPoint=\"pagNode\" class=\"pag ${type}\" dojoAttachEvent=\"onclick:_detect\">\n  <a class=\"leftBtn\" href=\"#\" dojoAttachPoint=\"prevNode\" dojoAttachEvent=\"onclick:_onPrev\">Left Button</a>\n  <a class=\"rightBtn\" href=\"#\" dojoAttachPoint=\"nextNode\" dojoAttachEvent=\"onclick:_onNext\">Right Button</a>\n</div>\n"),_created:false,type:"num",uninitialize:function(){
this.inherited(arguments);
this.paged=null;
},_lastPage:-1,currentPage:0,_setCurrentPageAttr:function(v){
v=parseInt(v,10);
if(isNaN(v)){
throw new Error("Invalid page number: "+String(v));
}
if(v==this.currentPage){
return;
}
this._lastPage=this.currentPage;
this.currentPage=v;
if(this.paged){
this.paged.gotoPage(v);
}
this.update();
},disabled:true,_setDisabledAttr:function(v){
this.disabled=!!v;
this.domNode&&dojo.toggleClass(this.domNode,"disabled",this.disabled);
},_buildPage:function(p,cls,txt){
var _222=txt||(this.type==="num"?1+p:this.type==="dot"?"&#183;":"");
var _223="<a href='#' class='${cls}' rel='page-${pageNum}'>${translatedPageNum}</a>";
var _224="page"+(p==this.currentPage?" selected":"");
if(cls){
_224+=" "+cls;
}
_223=dojo.string.substitute(_223,{cls:_224,translatedPageNum:_222,pageNum:p});
return _223;
},_buildPageSet:function(_225,last){
var _226,_227,_228="";
for(var i=_225;i<last;i++){
_228+=this._buildPage(i);
}
return _228;
},_buildPages:function(){
var _229="",_22a,_22b;
if(this.paged&&this.type!="blank"){
var _22c=this.paged.pages();
this._lastPages=_22c;
if(_22c<2){
}else{
if(_22c<8){
_229=this._buildPageSet(0,_22c);
}else{
if(this.currentPage<5){
_229=this._buildPageSet(0,5);
_229+=this._buildPage(5,"ell","…");
_229+=this._buildPage(_22c-1,"jump");
}else{
if(this.currentPage>_22c-6){
_229=this._buildPage(0,"jump");
_229+=this._buildPage(_22c-6,"ell","…");
_229+=this._buildPageSet(_22c-5,_22c);
}else{
var _22d;
if(this._center){
_22d=this._center;
}else{
if(this._lastPage>-1&&this.currentPage==(this._lastPage+1)){
_22d=this.currentPage+2;
}else{
if(this._lastPage>-1&&this.currentPage==(this._lastPage-1)){
_22d=this.currentPage-2;
}else{
_22d=this.currentPage;
}
}
}
_229=this._buildPage(0,"jump");
if(0!=_22d-3){
_229+=this._buildPage(_22d-3,"ell","…");
}
_229+=this._buildPageSet(_22d-2,_22d+3);
if(_22d+3!=_22c-1){
_229+=this._buildPage(_22d+3,"ell","…");
}
_229+=this._buildPage(_22c-1,"jump");
}
}
}
}
}
this._center=null;
var _22e=function(p){
if(dojo.hasClass(p,"leftBtn")||dojo.hasClass(p,"rightBtn")){
return;
}
dojo.destroy(p);
};
dojo.query("a",this.domNode).forEach(_22e);
if(_229!=""){
dojo.place(_229,this.prevNode,"after");
}
},postCreate:function(){
this.inherited(arguments);
this._created=true;
this.update();
},paged:null,_setPagedAttr:function(_22f){
this.paged=_22f;
if(this._pagedConn){
this.disconnect(this._pagedConn);
}
if(this.paged&&this.paged.onPagesChanged){
this._pagedConn=this.connect(this.paged,"onPagesChanged","update");
}
this._pagedUpdate();
},_pagedUpdate:function(){
if(this._destroyed){
return;
}
this.attr("disabled",!(this.paged&&this.paged.pages()>1));
if(this.paged&&this.currentPage>=this.paged.pages()){
this.attr("currentPage",this.paged.pages()-1);
}
if(this.paged&&this.paged.pages()>4&&this.type=="dot"){
this._oldType="dot";
this.type="blank";
this._buildPages();
}else{
if(this.paged&&this.paged.pages()<=4&&this._oldType=="dot"){
this.type="dot";
this._buildPages();
delete this._oldType;
}
}
},next:function(){
if(!this.paged){
return;
}
var _230=Math.min(this.currentPage+1,this.paged.pages()-1);
this.attr("currentPage",_230);
},prev:function(){
if(!this.paged){
return;
}
var _231=Math.max(this.currentPage-1,0);
this.attr("currentPage",_231);
},hasPrev:function(){
return this.currentPage>0;
},hasNext:function(){
return this.paged&&this.currentPage<(this.paged.pages()-1);
},_onPrev:function(e){
e.preventDefault();
if(this.disabled){
return;
}
this.prev();
},_onNext:function(e){
e.preventDefault();
if(this.disabled){
return;
}
this.next();
},_highlight:function(){
var _232=false;
dojo.query("a.page",this.domNode).forEach(function(n){
if(dojo.hasClass(n,"ell")||dojo.hasClass(n,"jump")){
return;
}
var p=this._getPageFromRel(n);
dojo.toggleClass(n,"selected",p==this.currentPage);
_232=_232||(p==this.currentPage);
},this);
return _232;
},update:function(){
if(!this._created){
return;
}
if(this._destroyed){
return;
}
this._pagedUpdate();
this._update();
},_update:function(){
if(this._destroyed){
return;
}
if(!this._highlight()||(this.paged&&this.paged.pages()!==this._lastPages)){
this._buildPages();
}
if(!this.hasPrev()){
dojo.addClass(this.prevNode,"prevdis");
}else{
dojo.removeClass(this.prevNode,"prevdis");
}
if(!this.hasNext()){
dojo.addClass(this.nextNode,"nextdis");
}else{
dojo.removeClass(this.nextNode,"nextdis");
}
},_getPageFromRel:function(n){
var page=dojo.attr(n,"rel");
if(page){
return parseInt(page.replace(/^page-/,""),10);
}
return NaN;
},_detect:function(e){
e.preventDefault();
if(!this.paged||this.disabled){
return;
}
if(dojo.hasClass(e.target,"page")){
var page=this._getPageFromRel(e.target);
if(!isNaN(page)){
if(dojo.hasClass(e.target,"ell")){
if(page>this.currentPage){
this._center=page+2;
}else{
this._center=page-2;
}
}
this.attr("currentPage",page);
}
}
}});
}
if(!dojo._hasResource["dijit.form.SimpleTextarea"]){
dojo._hasResource["dijit.form.SimpleTextarea"]=true;
dojo.provide("dijit.form.SimpleTextarea");
dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){
if(!this.value&&this.srcNodeRef){
this.value=this.srcNodeRef.value;
}
this.inherited(arguments);
},filter:function(_233){
if(_233){
_233=_233.replace(/\r/g,"");
}
return this.inherited(arguments);
},postCreate:function(){
this.inherited(arguments);
if(dojo.isIE&&this.cols){
dojo.addClass(this.textbox,"dijitTextAreaCols");
}
},_previousValue:"",_onInput:function(e){
if(this.maxLength){
var _234=parseInt(this.maxLength);
var _235=this.textbox.value.replace(/\r/g,"");
var _236=_235.length-_234;
if(_236>0){
if(e){
dojo.stopEvent(e);
}
var _237=this.textbox;
if(_237.selectionStart){
var pos=_237.selectionStart;
var cr=0;
if(dojo.isOpera){
cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;
}
this.textbox.value=_235.substring(0,pos-_236-cr)+_235.substring(pos-cr);
_237.setSelectionRange(pos-_236,pos-_236);
}else{
if(dojo.doc.selection){
_237.focus();
var _238=dojo.doc.selection.createRange();
_238.moveStart("character",-_236);
_238.text="";
_238.select();
}
}
}
this._previousValue=this.textbox.value;
}
this.inherited(arguments);
}});
}
if(!dojo._hasResource["dijit.form.Textarea"]){
dojo._hasResource["dijit.form.Textarea"]=true;
dojo.provide("dijit.form.Textarea");
dojo.declare("dijit.form.Textarea",dijit.form.SimpleTextarea,{cols:"",_previousNewlines:0,_strictMode:(dojo.doc.compatMode!="BackCompat"),_getHeight:function(_239){
var newH=_239.scrollHeight;
if(dojo.isIE){
newH+=_239.offsetHeight-_239.clientHeight-((dojo.isIE<8&&this._strictMode)?dojo._getPadBorderExtents(_239).h:0);
}else{
if(dojo.isMoz){
newH+=_239.offsetHeight-_239.clientHeight;
}else{
if(dojo.isWebKit&&!(dojo.isSafari<4)){
newH+=dojo._getBorderExtents(_239).h;
}else{
newH+=dojo._getPadBorderExtents(_239).h;
}
}
}
return newH;
},_estimateHeight:function(_23a){
_23a.style.maxHeight="";
_23a.style.height="auto";
_23a.rows=(_23a.value.match(/\n/g)||[]).length+1;
},_needsHelpShrinking:dojo.isMoz||dojo.isWebKit,_onInput:function(){
this.inherited(arguments);
if(this._busyResizing){
return;
}
this._busyResizing=true;
var _23b=this.textbox;
if(_23b.scrollHeight&&_23b.offsetHeight&&_23b.clientHeight){
var newH=this._getHeight(_23b)+"px";
if(_23b.style.height!=newH){
_23b.style.maxHeight=_23b.style.height=newH;
}
if(this._needsHelpShrinking){
if(this._setTimeoutHandle){
clearTimeout(this._setTimeoutHandle);
}
this._setTimeoutHandle=setTimeout(dojo.hitch(this,"_shrink"),0);
}
}else{
this._estimateHeight(_23b);
}
this._busyResizing=false;
},_busyResizing:false,_shrink:function(){
this._setTimeoutHandle=null;
if(this._needsHelpShrinking&&!this._busyResizing){
this._busyResizing=true;
var _23c=this.textbox;
var _23d=false;
if(_23c.value==""){
_23c.value=" ";
_23d=true;
}
var _23e=_23c.scrollHeight;
if(!_23e){
this._estimateHeight(_23c);
}else{
var _23f=_23c.style.paddingBottom;
var _240=dojo._getPadExtents(_23c);
_240=_240.h-_240.t;
_23c.style.paddingBottom=_240+1+"px";
var newH=this._getHeight(_23c)-1+"px";
if(_23c.style.maxHeight!=newH){
_23c.style.paddingBottom=_240+_23e+"px";
_23c.scrollTop=0;
_23c.style.maxHeight=this._getHeight(_23c)-_23e+"px";
}
_23c.style.paddingBottom=_23f;
}
if(_23d){
_23c.value="";
}
this._busyResizing=false;
}
},resize:function(){
this._onInput();
},_setValueAttr:function(){
this.inherited(arguments);
this.resize();
},postCreate:function(){
this.inherited(arguments);
dojo.style(this.textbox,{overflowY:"hidden",overflowX:"auto",boxSizing:"border-box",MsBoxSizing:"border-box",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box"});
this.connect(this.textbox,"onscroll",this._onInput);
this.connect(this.textbox,"onresize",this._onInput);
this.connect(this.textbox,"onfocus",this._onInput);
setTimeout(dojo.hitch(this,"resize"),0);
}});
}
if(!dojo._hasResource["joost.ui.Textarea"]){
dojo._hasResource["joost.ui.Textarea"]=true;
dojo.provide("joost.ui.Textarea");
dojo.declare("joost.ui.Textarea",[dijit.form.Textarea,joost.ui.TextBoxHelper],{attributeMap:dojo.delegate(dijit.form.TextBox.prototype.attributeMap,{style:"focusNode"}),baseClass:"joostTextarea",templateString:null,templateString:dojo.cache("joost.ui","templates/textarea.html","<div dojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\"\n  dojoAttachPoint=\"helperNode\">\n  <div class=\"tl\"><div class=\"tr\"></div></div>\n  <div class=\"ta\">\n    <textarea ${nameAttrSetting} dojoAttachPoint=\"focusNode,containerNode,textbox\" autocomplete=\"off\"></textarea>\n    <div dojoType=\"dijit.form.Textarea\" width=\"250\" helperText=\"Type here...\"></div>\t\t\t\n  </div>\n  <div class=\"bl\"><div class=\"br\"></div></div>\n</div>\n"),isError:false,width:0,minHeight:null,_setIsErrorAttr:function(v){
v=!!v;
this.isError=v;
dojo.toggleClass(this.domNode,"error",v);
},_setWidthAttr:function(v){
if(v&&v!=0){
dojo.style(this.domNode,{width:v+"px"});
}
},postCreate:function(){
this.inherited(arguments);
dojo.addClass(this.domNode,"textArea");
if(this.minHeight){
this._forceMinHeight();
this.textbox.style.minHeight=parseInt(this.minHeight)+"px";
this.connect(this,"_onInput","_forceMinHeight");
this.connect(this,"_shrink","_forceMinHeight");
}
},_forceMinHeight:function(){
if(parseInt(this.textbox.style.height)<parseInt(this.minHeight)){
dojo.style(this.textbox,{height:parseInt(this.minHeight)+"px",maxHeight:parseInt(this.minHeight)+"px",minHeight:parseInt(this.minHeight)+"px"});
}
}});
}
if(!dojo._hasResource["joost.player"]){
dojo._hasResource["joost.player"]=true;
dojo.provide("joost.player");
(function(){
var _241=["onReady","onVideoChange","onVideoStart","onVideoNearlyComplete","onVideoEnd","onAdvertStart","onAdvertEnd","onFailure","onPlaylistEmpty","onFullscreenToggled","onCompanionAd","coAdStart","coAdEnd","onOverlayStart","onOverlayEnd","onAddToQueue","onSeeked","onShowUI"];
dojo.forEach(_241,function(n){
this[n]=function(){
dojo.publish("/player/"+n,arguments);
};
},joost.player);
dojo.connect(joost.player,"onFailure",function(err,_242){
console.error("player::Failure to play %s",_242,err);
});
joost.player.fns=["playVideo","version","src","duration","isPaused","isReady","setPaused","canSeek","seek","addEntry","getEntry","removeEntry","nextEntry","playlistCount","playlistIndex","playCurrentEntry","setValue","currentTime","fullscreen","src","joostTitle","joostDescription","duration","poster","addShout","setViewingMode"];
dojo.forEach(joost.player.fns,function(n){
this[n]=function(){
var p=dojo.byId("joostplayer");
if(!(p&&p.version)){
return null;
}
return p[n].apply(p,arguments);
};
},joost.player);
joost.player.available=function(){
var p=dojo.byId("joostplayer");
return !!(p&&p.isReady&&p.isReady());
};
dojo.subscribe("/joost/command/change-page-mode",function(mode){
if(mode!="full"){
joost.player.setViewingMode(mode);
}else{
joost.player.fullscreen();
}
});
dojo.connect(joost.player,"onShowUI",function(_243,user){
switch(_243){
case "user_profile":
joost.sitemap.go("/profile",{username:user});
break;
}
});
})();
}
if(!dojo._hasResource["joost.storage"]){
dojo._hasResource["joost.storage"]=true;
dojo.provide("joost.storage");
(function(win){
var impl={};
if(win.localStorage){
impl._get=function(k){
return localStorage[k];
};
impl._set=function(k,v){
try{
localStorage[k]=v;
}
catch(e){
console.error("Could not persist queue using localStorage. Ignoring for now.",e);
}
};
}else{
if(win.globalStorage){
impl._get=function(k){
return String(globalStorage[window.location.hostname][k]);
};
impl._set=function(k,v){
try{
globalStorage[window.location.hostname][k]=v;
}
catch(e){
console.error("Could not persist queue using globalStorage. Ignoring for now.",e);
}
};
}else{
if(dojo.isIE){
impl._ieGetStorageNode=function(){
var s=dojo.byId("__ie_storage");
if(!s){
s=dojo.create("div",{style:{height:"0px",width:"0px",display:"none"}});
dojo.place(s,dojo.body(),"last");
s.addBehavior("#default#userData");
}
s.load("cache");
return s;
};
impl._get=function(k){
var s=impl._ieGetStorageNode();
if(!s){
return;
}
return s.getAttribute(k);
};
impl._set=function(k,v){
var s=impl._ieGetStorageNode();
if(!s){
return;
}
try{
s.setAttribute(k,v);
s.save("cache");
}
catch(e){
console.error("Could not persist queue using userData store. Ignoring for now.",e);
}
};
}else{
impl._get=function(k){
return this.store&&this.store[k];
};
impl._set=function(k,v){
if(!this.store){
this.store={};
}
this.store[k]=v;
};
}
}
}
var dt={format:"date-time"};
var _244={properties:{date:dt}};
var args={idAttribute:"refid",schemas:{"/entity/":{properties:{publicationDate:dt,validTo:dt,validFrom:dt}},"/shout/":_244,"/review/":_244,"/tag/":_244}};
dojo.mixin(joost.storage,{get:function(key){
var v=impl._get(key);
return v&&dojox.json.ref.fromJson(v,args);
},set:function(key,_245){
impl._set(key,dojox.json.ref.toJson(_245,args));
}});
})(window);
}
if(!dojo._hasResource["dojox.encoding.digests._base"]){
dojo._hasResource["dojox.encoding.digests._base"]=true;
dojo.provide("dojox.encoding.digests._base");
(function(){
var d=dojox.encoding.digests;
d.outputTypes={Base64:0,Hex:1,String:2,Raw:3};
d.addWords=function(a,b){
var l=(a&65535)+(b&65535);
var m=(a>>16)+(b>>16)+(l>>16);
return (m<<16)|(l&65535);
};
var _246=8;
var mask=(1<<_246)-1;
d.stringToWord=function(s){
var wa=[];
for(var i=0,l=s.length*_246;i<l;i+=_246){
wa[i>>5]|=(s.charCodeAt(i/_246)&mask)<<(i%32);
}
return wa;
};
d.wordToString=function(wa){
var s=[];
for(var i=0,l=wa.length*32;i<l;i+=_246){
s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));
}
return s.join("");
};
d.wordToHex=function(wa){
var h="0123456789abcdef",s=[];
for(var i=0,l=wa.length*4;i<l;i++){
s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&15)+h.charAt((wa[i>>2]>>((i%4)*8))&15));
}
return s.join("");
};
d.wordToBase64=function(wa){
var p="=",tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=[];
for(var i=0,l=wa.length*4;i<l;i+=3){
var t=(((wa[i>>2]>>8*(i%4))&255)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&255)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&255);
for(var j=0;j<4;j++){
if(i*8+j*6>wa.length*32){
s.push(p);
}else{
s.push(tab.charAt((t>>6*(3-j))&63));
}
}
}
return s.join("");
};
})();
}
if(!dojo._hasResource["dojox.encoding.digests.SHA1"]){
dojo._hasResource["dojox.encoding.digests.SHA1"]=true;
dojo.provide("dojox.encoding.digests.SHA1");
(function(){
var dxd=dojox.encoding.digests;
var _247=8,mask=(1<<_247)-1;
function R(n,c){
return (n<<c)|(n>>>(32-c));
};
function FT(t,b,c,d){
if(t<20){
return (b&c)|((~b)&d);
}
if(t<40){
return b^c^d;
}
if(t<60){
return (b&c)|(b&d)|(c&d);
}
return b^c^d;
};
function KT(t){
return (t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;
};
function core(x,len){
x[len>>5]|=128<<(24-len%32);
x[((len+64>>9)<<4)+15]=len;
var w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;
for(var i=0;i<x.length;i+=16){
var olda=a,oldb=b,oldc=c,oldd=d,olde=e;
for(var j=0;j<80;j++){
if(j<16){
w[j]=x[i+j];
}else{
w[j]=R(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);
}
var t=dxd.addWords(dxd.addWords(R(a,5),FT(j,b,c,d)),dxd.addWords(dxd.addWords(e,w[j]),KT(j)));
e=d;
d=c;
c=R(b,30);
b=a;
a=t;
}
a=dxd.addWords(a,olda);
b=dxd.addWords(b,oldb);
c=dxd.addWords(c,oldc);
d=dxd.addWords(d,oldd);
e=dxd.addWords(e,olde);
}
return [a,b,c,d,e];
};
function hmac(data,key){
var wa=_248(key);
if(wa.length>16){
wa=core(wa,key.length*_247);
}
var ipad=new Array(16),opad=new Array(16);
for(var i=0;i<16;i++){
ipad[i]=wa[i]^909522486;
opad[i]=wa[i]^1549556828;
}
var hash=core(ipad.concat(_248(data)),512+data.length*_247);
return core(opad.concat(hash),512+160);
};
function _248(s){
var wa=[];
for(var i=0,l=s.length*_247;i<l;i+=_247){
wa[i>>5]|=(s.charCodeAt(i/_247)&mask)<<(32-_247-i%32);
}
return wa;
};
function _249(wa){
var h="0123456789abcdef",s=[];
for(var i=0,l=wa.length*4;i<l;i++){
s.push(h.charAt((wa[i>>2]>>((3-i%4)*8+4))&15),h.charAt((wa[i>>2]>>((3-i%4)*8))&15));
}
return s.join("");
};
function _24a(wa){
var s=[];
for(var i=0,l=wa.length*32;i<l;i+=_247){
s.push(String.fromCharCode((wa[i>>5]>>>(32-_247-i%32))&mask));
}
return s.join("");
};
function _24b(wa){
var p="=",tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=[];
for(var i=0,l=wa.length*4;i<l;i+=3){
var t=(((wa[i>>2]>>8*(3-i%4))&255)<<16)|(((wa[i+1>>2]>>8*(3-(i+1)%4))&255)<<8)|((wa[i+2>>2]>>8*(3-(i+2)%4))&255);
for(var j=0;j<4;j++){
if(i*8+j*6>wa.length*32){
s.push(p);
}else{
s.push(tab.charAt((t>>6*(3-j))&63));
}
}
}
return s.join("");
};
dxd.SHA1=function(data,_24c){
var out=_24c||dxd.outputTypes.Base64;
var wa=core(_248(data),data.length*_247);
switch(out){
case dxd.outputTypes.Raw:
return wa;
case dxd.outputTypes.Hex:
return _249(wa);
case dxd.outputTypes.String:
return _24a(wa);
default:
return _24b(wa);
}
};
dxd.SHA1._hmac=function(data,key,_24d){
var out=_24d||dxd.outputTypes.Base64;
var wa=hmac(data,key);
switch(out){
case dxd.outputTypes.Raw:
return wa;
case dxd.outputTypes.Hex:
return _249(wa);
case dxd.outputTypes.String:
return _24a(wa);
default:
return _24b(wa);
}
};
})();
}
if(!dojo._hasResource["dojo.DeferredList"]){
dojo._hasResource["dojo.DeferredList"]=true;
dojo.provide("dojo.DeferredList");
dojo.declare("dojo.DeferredList",dojo.Deferred,{constructor:function(list,_24e,_24f,_250,_251){
this.list=list;
this.resultList=new Array(this.list.length);
this.chain=[];
this.id=this._nextId();
this.fired=-1;
this.paused=0;
this.results=[null,null];
this.canceller=_251;
this.silentlyCancelled=false;
if(this.list.length===0&&!_24e){
this.callback(this.resultList);
}
this.finishedCount=0;
this.fireOnOneCallback=_24e;
this.fireOnOneErrback=_24f;
this.consumeErrors=_250;
dojo.forEach(this.list,function(d,_252){
d.addCallback(this,function(r){
this._cbDeferred(_252,true,r);
return r;
});
d.addErrback(this,function(r){
this._cbDeferred(_252,false,r);
return r;
});
},this);
},_cbDeferred:function(_253,_254,_255){
this.resultList[_253]=[_254,_255];
this.finishedCount+=1;
if(this.fired!==0){
if(_254&&this.fireOnOneCallback){
this.callback([_253,_255]);
}else{
if(!_254&&this.fireOnOneErrback){
this.errback(_255);
}else{
if(this.finishedCount==this.list.length){
this.callback(this.resultList);
}
}
}
}
if(!_254&&this.consumeErrors){
_255=null;
}
return _255;
},gatherResults:function(_256){
var d=new dojo.DeferredList(_256,false,true,false);
d.addCallback(function(_257){
var ret=[];
dojo.forEach(_257,function(_258){
ret.push(_258[1]);
});
return ret;
});
return d;
}});
}
if(!dojo._hasResource["joost.queue"]){
dojo._hasResource["joost.queue"]=true;
dojo.provide("joost.queue");
(function(){
var Q=joost.queue;
var _259=false;
var _25a=null;
var _25b=[];
var _25c=-1;
var _25d=null;
function _25e(usr){
if(usr.anonymous){
return "queue-anon";
}else{
return "queue-"+dojox.encoding.digests.SHA1(usr.id,dojox.encoding.digests.outputTypes.Hex);
}
};
function _25f(rv){
_25b=(rv&&rv.items)||[];
_25c=-1;
dojo.publish("/joost/queue",["load"]);
_259=true;
if(_25a){
dojo.forEach(_25a,function(n){
n();
});
_25a=null;
}
setTimeout(function(){
if(joost.player.src&&joost.player.src()){
_260(joost.player.src());
}
},0);
};
function load(){
if(joost.user.current.anonymous){
var k=_25e(joost.user.current);
var f=joost.storage.get(k);
_25f(f);
}else{
var def=joost.api.queue.get({start:0,count:"all"});
def.addCallback(_25f);
}
};
function save(){
if(joost.user.current.anonymous){
var f={items:_25b};
joost.storage.set(_25e(joost.user.current),f);
}
};
dojo.subscribe("/joost/command/changeuser",function(usr){
load();
_25c=-1;
});
dojo.subscribe("/joost/user/logout",function(){
});
dojo.addOnLoad(function(){
window.setTimeout(load,0);
});
Q.addOnLoad=function(fn){
if(_259){
fn();
}else{
_25a=_25a||[];
_25a.push(fn);
}
};
function _261(_262,rv){
var _263=rv.items;
var _264=_25b.length;
var _265=dojo.map(_263,function(item,i){
var ctx=_262;
if(!ctx&&item.series){
ctx={type:"channel",label:item.series.title,id:item.series.id};
}
if(!ctx&&item.containers&&item.containers[0]){
ctx={type:"channel",label:item.containers[0].title,id:item.containers[0].id};
}
var _266={video:item,seen:false,context:ctx};
_25b.push(_266);
return _266;
});
if(_25c!==(_25b.length-1)){
_25d=null;
}
save();
dojo.publish("/joost/queue",["add",_265,_264]);
return {items:_265,index:_264};
};
dojo.subscribe("/joost/command/play",_267);
dojo.subscribe("/joost/command/playFromQueue",_268);
dojo.subscribe("/player/onVideoChange",_260);
dojo.subscribe("/player/onVideoStart",_260);
dojo.subscribe("/player/onFailure",_269);
function _267(id){
var d=Q.add(id);
d.addCallback(function(o){
_268(o.index);
});
};
function play(_26a){
if(_26a==_25c){
return null;
}
var item=_25b[_26a];
if(item){
_25c=_26a;
save();
dojo.publish("/joost/queue",["playing",_25c]);
Q.show(_25c);
_26b();
return item;
}
return null;
};
var _26c;
function _26b(){
if(_26c){
_26c.cancel();
_26c=null;
}
if(_25c===(_25b.length-1)){
_26d();
}else{
_25d=null;
}
};
function _26d(){
var item=_25b[_25c];
var vid=item.video;
_26c=joost.api.epg.upNext({id:vid.id,context:(item.context&&item.context.id),ctype:(item.context&&item.context.type)});
_26c.addCallback(_26e);
};
function _26e(r){
if(r&&r.video){
_25d=r;
dojo.publish("/joost/queue/upnext",[_25d]);
_26f();
}
};
function _268(_270){
var item=play(_270);
if(item){
dojo.publish("/joost/command/startvideo",[item.video.id]);
}
};
function _269(err){
_25c=-1;
dojo.publish("/joost/queue",["playing",_25c]);
};
function _260(id){
if(!id){
var s=_25b[_25c+1];
if(s){
Q.play(_25c+1);
}else{
_25c=-1;
_26b();
dojo.publish("/joost/queue",["empty"]);
}
return;
}
var p=_25b[_25c];
if(p&&p.video.id==id){
_26f();
return;
}
if(_271&&_271.id==id){
_26f();
return;
}
var _272=_25b[_25c+1];
if(_272&&_272.video.id==id){
play(_25c+1);
return;
}
var _273=_25b[_25b.length-1];
if(_25c==-1&&_273&&_273.video.id==id){
play(_25b.length-1);
return;
}
var def=Q.add(id);
def.addCallback(function(arg){
play(arg.index);
return arg;
});
};
function _26f(){
var p=joost.player;
if(!p||!p.available()){
return;
}
var _274=_25c==-1?null:_25b[_25c+1];
if(_25c===(_25b.length-1)&&_25d){
_274=_25d;
}
for(var i=(p.playlistCount()-1)||0,c=p.playlistIndex()||0;i>c;i--){
p.removeEntry(i);
}
if(_274){
p.addEntry(_274.video.id);
}
};
dojo.subscribe("/joost/queue",_26f);
Q.playing=function(){
return _25c;
};
var _271=null;
function _275(ctx1,ctx2){
if(ctx1==ctx2){
return true;
}
if(!ctx1||!ctx2){
return false;
}
return ctx1.id==ctx2.id&&ctx1.type==ctx2.type;
};
Q.add=function(id,_276,_277){
_276=_276||null;
var d;
if(_271&&_271.id==(id.id||id)&&_275(_271.context,_276)){
return _271.def;
}
if(joost.user.current.anonymous){
d=(id.type=="video")?new dojo.Deferred():joost.api.epg.singleVideo({id:id,wrap:"full"});
d.addCallback(function(n){
return {start:_277,items:[n]};
});
if(id.type=="video"){
d.callback(id);
}
}else{
var args={video:id.id||id};
if(_276){
args.context=_276.id;
}
d=joost.api.queue.add(args);
}
_271={id:id.id||id,context:_276,def:d};
d.addCallback(function(r){
return _261(_276,r);
});
d.addBoth(function(r){
_271=null;
});
return d;
};
Q.addAndPlay=function(id){
var d=Q.add(id);
d.addCallback(function(n){
Q.play(n.index);
return n;
});
return d;
};
Q.addContainer=function(id,_278){
var d;
if(joost.user.current.anonymous){
d=joost.api.epg.container({id:id,start:0,count:_278||"all",wrap:"full"});
}else{
d=joost.api.queue.addContainer({id:id,count:_278||1000});
}
d.addCallback(function(r){
var ctrs=r.items&&r.items[0].containers,ctx;
if(ctrs){
for(var i=0;i<ctrs.length;i++){
if(ctrs[i].id==id){
ctx={type:"channel",label:ctrs[i].title,id:ctrs[i].id};
break;
}
}
}
return _261(ctx,r);
});
return d;
};
Q.addAndPlayContainer=function(id,_279){
var d=Q.addContainer(id,_279);
d.addCallback(function(n){
Q.play(n.index);
return n;
});
return d;
};
Q.addAndPlayFirstInContainer=function(id){
var _27a=joost.api.epg.container({id:id,start:0,count:1});
var _27b=joost.api.epg.singleContainer({id:id,wrap:"min"});
var dl=new dojo.DeferredList([_27a,_27b]);
dl.addCallback(function(arr){
var vid=arr[0].items[0];
var ctr=arr[1];
Q.add(arr[0].items[0],{id:ctr.id,label:ctr.title,type:"container"}).addCallback(function(n){
Q.play(n.index);
});
});
return dl;
};
Q.show=function(_27c){
if(_27c>-1&&_27c<_25b.length){
dojo.publish("/joost/queue",["show",_27c]);
}else{
console.error("trying to show %s which is outside the bounds of the queue",_27c);
}
};
Q.upnext=function(){
return _25d;
};
function _27d(_27e){
_25b.splice(_27e,1);
if(_27e<_25c){
_25c--;
}
save();
dojo.publish("/joost/queue",["remove",_27e]);
};
Q.remove=function(_27f){
var d=new dojo.Deferred();
if(_27f<0||_27f>=_25b.length){
d.errback(new Error("invalid index "+_27f+" to remove from queue"));
return d;
}
if(_27f==_25c){
d.errback(new Error("cannot remove playing item"));
return d;
}
_27d(_27f);
_26b();
if(!joost.user.current.anonymous){
joost.api.queue.remove({index:_27f});
}
d.callback();
return d;
};
Q.play=function(_280){
_268(_280);
};
Q.playNow=function(_281){
var _282=_25b[_25b.length-1];
if(_282&&_282.video.id==_281){
_268(_25b.length-1);
return;
}
Q.addAndPlay(_281);
};
Q.visit=function(fn,_283,_284){
if(_283===undefined){
_283=0;
}
if(_283>=_25b.length||_283<0){
return;
}
if(_284===undefined){
_284=_25b.length-_283;
}
var _285=_283+_284;
_285=Math.min(Math.max(-1,_285),_25b.length);
var step=(_284>0?1:-1);
for(var i=_283;i!=_285;i+=step){
fn(_25b[i],i);
}
};
Q.get=function(_286){
return _25b[_286];
};
Q.getPlaying=function(){
return _25b[_25c]||null;
};
Q.length=function(){
return _25b.length;
};
Q._reset=function(){
_25b=[];
_25c=-1;
_25d=null;
save();
dojo.publish("/joost/queue",["empty"]);
};
Q.clear=function(){
var cur=Q.getPlaying();
var _287=_25c;
if(!cur){
Q._reset();
if(!joost.user.current.anonymous){
joost.api.queue.clear();
}
return;
}
_25b=[cur];
_25c=0;
_26b();
save();
dojo.publish("/joost/queue",["clear"]);
dojo.publish("/joost/queue",["show",0]);
if(!joost.user.current.anonymous){
joost.api.queue.clear({exclude:_287});
}
};
Q.clearViewed=function(){
var _288=[];
for(var i=_25b.length-1;i>=0;i--){
if(i!==_25c&&_25b[i].seen){
_288.push(i);
}
}
dojo.forEach(_288,_27d);
if(!joost.user.current.anonymous){
joost.api.queue.clearSet({ids:_288.join(",")});
}
if(_25c>-1){
_26b();
dojo.publish("/joost/queue",["show",_25c]);
}
};
Q.setSeen=function(idx,v){
var item=_25b[idx];
if(!item){
return;
}
item.seen=v;
save();
dojo.publish("/joost/queue",["seen",idx]);
};
dojo.connect(joost.player,"onAddToQueue",Q,Q.add);
})();
dojo.declare("joost.queue.VideoMixin",null,{isNotQueueAble:false,postCreate:function(){
this.inherited(arguments);
if(this.isNotQueueAble&&this.addToQueueNode){
dojo.destroy(this.addToQueueNode);
delete this.addToQueueNode;
}
},_onAddToQueue:function(e){
e.preventDefault();
this.attr("loading",true);
var def=joost.queue.add(this.videoId,this.context);
def.addBoth(this,function(r){
this.attr("loading",false);
return r;
});
def.addErrback(this,function(r){
console.error("trying to add %s to queue: %o",this.videoId,r);
return r;
});
},_onRemoveFromQueue:function(e){
e&&e.preventDefault();
this.attr("loading",true);
var idx=(this.queueIndex!==null?this.queueIndex:(this.position-1));
var def=joost.queue.remove(idx);
def.addBoth(this,function(r){
this.attr("loading",false);
});
},queueIndex:null,_setQueueIndexAttr:function(v){
this.queueIndex=v;
if(!isNaN(v)&&v>-1){
if(this.addToQueueNode){
dojo.style(this.addToQueueNode,"display","none");
}
if(this.removeFromQueueNode){
dojo.style(this.removeFromQueueNode,"display",this.playing?"none":"inline");
}
}else{
if(this.addToQueueNode){
dojo.style(this.addToQueueNode,"display","inline");
}
if(this.removeFromQueueNode){
dojo.style(this.removeFromQueueNode,"display","none");
}
}
},playing:false,_setPlayingAttr:function(v){
this.playing=v;
if(this.queueIndex!==null){
this.addToQueueNode&&dojo.style(this.addToQueueNode,"display","none");
this.removeFromQueueNode&&dojo.style(this.removeFromQueueNode,"display",v?"none":"inline");
}
},_playInQueue:function(){
setTimeout(joost.scrollIntoView,200);
if(this.queueIndex!==null){
joost.queue.play(this.queueIndex);
}else{
var d=joost.queue.addAndPlay(this.videoId);
d.addCallback(function(v){
joost.queue.show(v.index);
return v;
});
}
}});
dojo.declare("joost.queue.ChannelMixin",null,{_onAddAllToQueue:function(e){
e.preventDefault();
this.attr("loading",true);
var def=joost.queue.addContainer(this.channelId);
def.addBoth(this,function(r){
this.attr("loading",false);
return r;
});
def.addErrback(function(r){
console.error("trying to add %s to queue: %o",this.channelId,r);
return r;
});
}});
}
if(!dojo._hasResource["joost.fx"]){
dojo._hasResource["joost.fx"]=true;
dojo.provide("joost.fx");
joost.fx.counter=function(args){
args.curve=[args.countStart,args.countEnd];
if(!("duration" in args)){
args.countRate=args.countRate||1000;
args.duration=(Math.abs(args.countEnd-args.countStart)*1000)/args.countRate;
if(args.minDuration){
args.duration=Math.max(args.duration,args.minDuration);
}
if(args.maxDuration){
args.duration=Math.min(args.duration,args.maxDuration);
}
}
args.onAnimate=function(i){
args.node.innerHTML=Math.floor(i);
};
args.easing=args.easing||dojo.fx.easing.linear;
return new dojo.Animation(args);
};
joost.fx.CrossFader=function(_289,_28a){
this._conns=[dojo.connect(_289,"onmouseenter",dojo.hitch(this,"fade","in")),dojo.connect(_289,"onmouseleave",dojo.hitch(this,"fade","out"))];
this._playing=null;
var _28b=dojo.hitch(this,function(){
this._playing=null;
});
this._anims={"in":dojo.fadeIn({node:_28a,onEnd:_28b,duration:250}),"out":dojo.fadeOut({node:_28a,onEnd:_28b,duration:250})};
};
dojo.extend(joost.fx.CrossFader,{fade:function(_28c){
if(this._playing){
this._playing.stop();
}
this._playing=this._anims[_28c].play(1,true);
},destroy:function(){
dojo.forEach(this._conns,dojo.disconnect);
delete this._conns;
}});
}
if(!dojo._hasResource["joost.ui.Thumbnail"]){
dojo._hasResource["joost.ui.Thumbnail"]=true;
dojo.provide("joost.ui.Thumbnail");
dojo.declare("joost.ui.VideoThumbnail",[joost.NlsWidget,joost.queue.VideoMixin],{templateString:dojo.cache("joost.ui","templates/thumbnail_video.html","<div dojoAttachPoint=\"baseNode\" class=\"thumb\">\n  <a href=\"#\" class=\"thumbnail age${age}\" dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"thumbHrefNode\">\n    <img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" />\n    <span class=\"overlay\"></span>\n    <span class=\"badge\"></span>\n  </a>\n  <div class=\"vidLength\" dojoAttachPoint=\"lengthContainerNode\"><span dojoAttachPoint=\"lengthNode\"></span></div>\n  <div dojoAttachPoint=\"fullFlagNode\"></div>\n  <a dojoAttachPoint=\"addToQueueNode\" dojoAttachEvent=\"onclick:_onAddToQueue\" href=\"#addToMyQueue\" class=\"addToQ\" title=\"${strings.Queue.ADDTOQUEUE}\"><span>${strings.Queue.ADDTOQUEUE}</span></a>\n  <a dojoAttachPoint=\"removeFromQueueNode\" dojoAttachEvent=\"onclick:_onRemoveFromQueue\" title=\"${strings.Queue.REMOVEFROMQUEUE}\" class=\"removeFromQ\" href=\"#removeFromMyQueue\" style=\"display:none\"><span>${strings.Queue.REMOVEFROMQUEUE}</span></a>\n  <a href=\"#\" class=\"primary\" dojoAttachPoint=\"titleNode\" dojoAttachEvent=\"onclick:_onTitleClick\"></a>\n  <span class=\"secondary\" dojoAttachPoint=\"upNextNode\">${strings.Thumbnail.UPNEXT}</span><a href=\"#\" class=\"secondary\"\n  dojoAttachPoint=\"channelNode\" dojoAttachEvent=\"onclick:_onContainerClick\"></a>\n\n  <div class=\"overIcons\" dojoAttachPoint=\"moreInfoNode\">\n    <a href=\"#info\" class=\"moreInfo\" title=\"${strings.Thumbnail.MOREINFO}\" dojoAttachEvent=\"onclick:_onTitleClick\"><span>${strings.Thumbnail.MOREINFO}</span></a>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"},{module:"joost.ui",bundle:"Queue"}],constructor:function(args,node){
var v=args.data;
if(v){
var vc=(v.containers&&v.containers[0])||{};
dojo._mixin(this,{channelId:vc?vc.id:null,channel:vc?vc.title:null,videoId:v.id,title:v.title,channels:v.containers,genres:v.genres,description:v.description,expires:v.validTo&&v.validTo.valueOf(),length:v.duration,src:(v.images&&(v.images.thumb_large||v.images.thumbnail))||this.src,full:!v.clip,seen:v.seen||false,isPublished:v.published});
this.age=v.ageRating;
}
if(args.context){
this.channel=args.context.label;
this.channelId=args.context.id;
}
},uninitialize:function(){
if(this._fader){
this._fader.destroy();
delete this._fader;
}
this.inherited(arguments);
},attributeMap:{title:{node:"titleNode",type:"innerHTML"},channel:{node:"channelNode",type:"innerHTML"},length:{node:"lengthNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},full:{node:"fullNode",type:"attribute"},moreInfo:{node:"moreInfoNode",type:"attribute"},upNext:{node:"upNextNode",type:"attribute"}},review:"",views:"",size:"small",src:dojo.config.staticImg,videoId:"",title:"",channelId:"",channel:"",description:"",upNext:"",seen:false,full:false,postMixInProperties:function(){
this.inherited(arguments);
var now=new Date();
if(!this.isPublished||(this.expires-now.getTime()<=0)){
this.isExpired=true;
}
if(this.isExpired||this.isGeoRestricted){
this.isNotQueueAble=true;
}
},postCreate:function(){
this.inherited(arguments);
if(!this.isExpired&&!this.isGeoRestricted){
this.lengthNode.innerHTML=joost.formatDuration(this.length);
}else{
if(this.isExpired&&!this.isGeoRestricted){
this.lengthNode.innerHTML=this.i18n("Thumbnail","VIDEOISEXPIRED");
dojo.addClass(this.baseNode,"expired");
}
if(this.isGeoRestricted){
this.lengthNode.innerHTML=this.i18n("Thumbnail","VIDEOISGEORESTRICTED");
dojo.addClass(this.baseNode,"georestrict");
}
}
this.titleNode.innerHTML=joost.ellipsis(this.title,this.tTitle,"word");
dojo.attr(this.titleNode,"title",this.title);
if(this.size!="large"){
dojo.attr(this.thumbHrefNode,"title",this.title);
}
var link=joost.link("video",this.videoId);
dojo.attr(this.titleNode,"href",link);
dojo.attr(this.thumbHrefNode,"href",link);
dojo.style(this.moreInfoNode,"opacity",0);
this._setChannel();
this._setSrcAttr();
this._setUpNextAttr(this.upNext);
this._setSeenAttr(this.seen);
this._fader=new joost.fx.CrossFader(this.domNode,this.moreInfoNode);
if(this.size=="large"){
if(!this.isThumbOnly){
dijit.Tooltip.defaultPosition=["before","after"];
var _28d=this.adopt(joost.ui.VideoTooltip,{title:this.title,description:this.description,review:this.review,views:this.views,expires:this.expires,isExpired:this.isExpired,isGeoRestricted:this.isGeoRestricted});
this._tooltip=this.adopt(dijit.Tooltip,{connectId:[this.thumbHrefNode],showDelay:joost.config.ttShowDelay,label:_28d.domNode.innerHTML});
}else{
dojo.attr(this.thumbHrefNode,"title",this.title);
}
}else{
dojo.attr(this.thumbHrefNode,"title",this.title);
}
if(this.isThumbOnly){
dojo.forEach(["titleNode","upNextNode","channelNode"],function(m){
dojo.destroy(this[m]);
},this);
if(!this.preserveInfoLink){
dojo.destroy(this.moreInfoNode);
}
if(this.size!="large"){
dojo.destroy(this.lengthContainerNode);
}
}
},_setChannel:function(){
this.channelNode.innerHTML=joost.ellipsis(this.channel,this.tChannel,"word",4);
dojo.attr(this.channelNode,{title:this.channel,href:joost.link("channel",this.channelId)});
},_setSizeAttr:function(v){
var s=v=="small";
dojo.mixin(this,{size:s?v:"large",tTitle:s?55:45,tChannel:s?16:25});
dojo.addClass(this.baseNode,s?"tVideoSm":"tVideoLrg");
},_setSrcAttr:function(){
if(this.delaySrcLoad){
setTimeout(dojo.hitch(this,function(){
if(this.thumbNode){
this.thumbNode.src=this.src;
}
}),1000);
}else{
if(this.thumbNode){
this.thumbNode.src=this.src;
}
}
},_setFullAttr:function(v){
if(!v){
dojo.style(this.fullFlagNode,"display","none");
}
},_setLoadingAttr:function(v){
this.loading=v;
dojo.toggleClass(this.baseNode,"loading",v);
},_setPlayingAttr:function(v){
this.inherited(arguments);
dojo.toggleClass(this.baseNode,"playing",v);
},_setLastColAttr:function(v){
this.lastCol=v;
dojo.toggleClass(this.baseNode,"lastCol",v);
},_setUpNextAttr:function(v){
this.upNext=v;
dojo.toggleClass(this.baseNode,"next",v);
dojo.style(this.upNextNode,"display",v?"inline":"none");
},_setSeenAttr:function(v){
this.seen=v;
dojo.toggleClass(this.baseNode,"seen",v);
},_onClick:function(e){
e.preventDefault();
if(!this.isExpired&&!this.isGeoRestricted){
this._playInQueue();
}
},_onTitleClick:function(e){
e.preventDefault();
dojo.publish("/joost/command/show-video-info",[this.videoId]);
},_onContainerClick:function(e){
e.preventDefault();
joost.sitemap.go("/",{container_info:this.channelId});
}});
dojo.declare("joost.ui.VideoThumbnailHybrid",joost.ui.VideoThumbnail,{templateString:dojo.cache("joost.ui","templates/thumbnail_video_hybrid.html","<div class=\"hybrid\">\n  <div dojoAttachPoint=\"baseNode\" class=\"thumb\">\n    <a href=\"#\" class=\"thumbnail age${age}\" dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"thumbHrefNode\">\n      <img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" />\n      <span class=\"overlay\"></span>\n      <span class=\"badge\"></span>\n    </a>\n    <div class=\"vidLength\" dojoAttachPoint=\"lengthContainerNode\"><span dojoAttachPoint=\"lengthNode\"></span></div>\n    <div dojoAttachPoint=\"fullFlagNode\"></div>\n    <a dojoAttachPoint=\"addToQueueNode\" dojoAttachEvent=\"onclick:_onAddToQueue\" href=\"#addToMyQueue\" class=\"addToQ\" title=\"${strings.Queue.ADDTOQUEUE}\"><span>${strings.Queue.ADDTOQUEUE}</span></a>\n    <a dojoAttachPoint=\"removeFromQueueNode\" dojoAttachEvent=\"onclick:_onRemoveFromQueue\" title=\"${strings.Queue.REMOVEFROMQUEUE}\" class=\"removeFromQ\" href=\"#removeFromMyQueue\" style=\"display:none\"><span>${strings.Queue.REMOVEFROMQUEUE}</span></a>\n    <span class=\"secondary\" dojoAttachPoint=\"upNextNode\">${strings.Thumbnail.UPNEXT}</span><a href=\"#\" class=\"secondary\"\n  dojoAttachPoint=\"channelNode\" dojoAttachEvent=\"onclick:_onContainerClick\"></a>\n  \n    <div class=\"overIcons\" dojoAttachPoint=\"moreInfoNode\">\n      <a href=\"#info\" class=\"moreInfo\" dojoAttachEvent=\"onclick:_onTitleClick\" title=\"${strings.Thumbnail.MOREINFO}\"><span>${strings.Thumbnail.MOREINFO}</span></a>\n    </div>\n  </div>\n  <div class=\"desc\">\n    <a href=\"#\" class=\"primary\" dojoAttachPoint=\"titleNode\" dojoAttachEvent=\"onclick:_onTitleClick\"></a>\n    <div dojoAttachPoint=\"descriptionNode\"></div>\n    <ul class=\"smallH secondary\">\n      <li dojoAttachPoint=\"channelsNode\"></li>\n      <li dojoAttachPoint=\"genresNode\"></li>\n    </ul>\n  </div>\n  <br class=\"clear\"/>\n</div>\n"),size:"large",postCreate:function(){
this.inherited(arguments);
this.descriptionNode.innerHTML=joost.formatP(this.description);
this._setChannels();
this._setGenres();
},_setChannel:function(){
dojo.destroy(this.channelNode);
},_handleChannelClick:function(e){
e.preventDefault();
joost.sitemap.go("/",{container_info:e.target.getAttribute("channelid")});
},_handleGenreClick:function(e){
e.preventDefault();
joost.sitemap.go(e.target.getAttribute("genreid"));
},_setChannels:function(){
var ftw=false;
if(this.channels.length){
dojo.create("span",{innerHTML:this.i18n("Thumbnail","CHANNEL"+(this.channels.length>1?"S":""))},this.channelsNode);
ftw=dojo.every(this.channels,function(_28e,i){
if(!_28e.title){
return false;
}
if(i){
dojo.create("span",{innerHTML:", "},this.channelsNode);
}
var n=dojo.create("a",{href:joost.link("channel",_28e.id),innerHTML:_28e.title},this.channelsNode);
n.setAttribute("channelid",_28e.id);
this.connect(n,"onclick","_handleChannelClick");
return true;
},this);
}
!ftw&&dojo.destroy(this.channelsNode);
},_setGenres:function(){
var ftw=false;
if(this.genres.length){
dojo.create("span",{innerHTML:this.i18n("Thumbnail","GENRE"+(this.genres.length>1?"S":""))},this.genresNode);
ftw=dojo.every(this.genres,function(_28f,i){
if(!_28f.name){
return false;
}
if(i){
dojo.create("span",{innerHTML:", "},this.genresNode);
}
var n=dojo.create("a",{href:joost.link("genre",_28f.id),innerHTML:_28f.name},this.genresNode);
n.setAttribute("genreid",_28f.id);
this.connect(n,"onclick","_handleGenreClick");
return true;
},this);
}
!ftw&&dojo.destroy(this.genresNode);
}});
dojo.declare("joost.ui.VideoTooltip",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_videotooltip.html","<div>\n  <h4 dojoAttachPoint=\"titleNode\"></h4>\n  <div dojoAttachPoint=\"descriptionNode\"></div> \n  <ul>\n    <li dojoAttachPoint=\"reviewNode\">${strings.Thumbnail.TOOLTIPAVGREVIEW}</li>\n    <li dojoAttachPoint=\"viewsNode\">${strings.Thumbnail.TOOLTIPVIEWS}</li>\n    <li dojoAttachPoint=\"expiresNode\">${strings.Thumbnail.TOOLTIPEXPIRES}</li>\n  </ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},sDescription:{node:"descriptionNode",type:"innerHTML"},sReview:{node:"reviewNode",type:"innerHTML"},sViews:{node:"viewsNode",type:"innerHTML"},sExpires:{node:"expiresNode",type:"innerHTML"}},review:0,sReview:"",views:0,sViews:"",expires:0,sExpires:"",postMixInProperties:function(){
this.inherited(arguments);
this.sDescription=joost.formatP(joost.ellipsis(this.description,200,"paragraph"));
this.sReview=this.i18n("Thumbnail","TOOLTIPAVGREVIEW",{sReview:dojo.number.format(dojo.number.round(this.review,1))});
this.sViews=this.i18n("Thumbnail","TOOLTIPVIEWS",{sViews:dojo.number.format(this.views)});
if(!this.isExpired){
this.sExpires=this.i18n("Thumbnail","TOOLTIPEXPIRES",{sExpires:joost.formatDateFuture({timestamp:this.expires})});
}else{
this.sExpires=this.i18n("Thumbnail","TOOLTIPEXPIRED");
}
},postCreate:function(){
!this.review&&dojo.destroy(this.reviewNode);
!this.views&&dojo.destroy(this.viewsNode);
!this.expires&&dojo.destroy(this.expiresNode);
}});
dojo.declare("joost.ui.ThumbnailMiniGraph",joost.Widget,{templateString:dojo.cache("joost.ui","templates/thumbnail_minigraph.html","<ul class=\"minigraph\"><li><span dojoAttachPoint=\"miniGraphNode\" style=\"width: 8%\">50</span></li></ul>\n"),attributeMap:{sVal:{node:"miniGraphNode",type:"innerHTML"}},postMixInProperties:function(){
this.inherited(arguments);
this.sVal=dojo.number.format(this.iVal);
},postCreate:function(){
this.rVal=parseInt(((this.iVal/this.iMax)*91)+8,10);
dojo.style(this.miniGraphNode,"width",this.rVal+"%");
}});
dojo.declare("joost.ui.ChannelThumbnail",[joost.NlsWidget,joost.queue.ChannelMixin],{templateString:dojo.cache("joost.ui","templates/thumbnail_channel.html","<div dojoAttachPoint=\"baseNode\" class=\"thumb\">\n  <a href=\"#\" class=\"thumbnail\" dojoAttachPoint=\"thumbHrefNode\" dojoAttachEvent=\"onclick:_onTitleClick\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\"/></a>\n  <a dojoAttachPoint=\"addAllToQueueNode\" dojoAttachEvent=\"onclick:_onAddAllToQueue\" href=\"#\" class=\"addToQ\" title=\"${strings.Queue.ADDALLTOQUEUE}\"><span>${strings.Queue.ADDALLTOQUEUE}</span></a>\n  <a class=\"primary\" href=\"#\" dojoAttachEvent=\"onclick:_onTitleClick\" dojoAttachPoint=\"titleNode\"></a>\n  <a class=\"secondary\" href=\"#\" dojoAttachEvent=\"onclick:_onVideoCountClick\" dojoAttachPoint=\"videoCountNode\" title=\"${strings.Thumbnail.VIEWALL}\"></a>\n\n  <div class=\"overIcons\" dojoAttachPoint=\"playAllNode\">\n    <a title=\"${strings.Thumbnail.PLAYALL}\" class=\"playAll\" href=\"#\"><span>${strings.Thumbnail.PLAYALL}</span></a>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"},{module:"joost.ui",bundle:"Queue"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},videoCount:{node:"videoCountNode",type:"innerHTML"}},size:"small",review:0,channelId:"",title:"",videoCount:0,sVideoCount:"",src:dojo.config.staticImg,constructor:function(args,node){
var v=args.data;
if(v){
this.channelId=v.id;
this.title=v.title;
this.description=v.description;
this.src=(v.images&&(v.images.logo_medium||v.images.logo))||this.src;
this.genres=v.genres;
this.videoCount=parseInt(v.size,10);
}
},uninitialize:function(){
if(this._fader){
this._fader.destroy();
delete this._fader;
}
this.inherited(arguments);
},postMixInProperties:function(){
this.inherited(arguments);
if(this.videoCount){
this.sVideoCount=this.i18n("Thumbnail","CHANNELVIDEOCOUNT"+(this.videoCount==1?"1":""),{videoCount:dojo.number.format(this.videoCount)});
}
},postCreate:function(){
this.titleNode.innerHTML=joost.ellipsis(this.title,this.tTitle,"word");
var c=joost.link("channel",this.channelId);
dojo.attr(this.titleNode,{title:this.title,href:c});
dojo.attr(this.thumbHrefNode,"href",c);
dojo.attr(this.videoCountNode,"href",c);
dojo.style(this.playAllNode,"opacity",0);
this._fader=new joost.fx.CrossFader(this.domNode,this.playAllNode);
if(this.videoCount==0){
dojo.destroy(this.videoCountNode);
}
if(this.size=="large"){
if(!this.isThumbOnly){
dijit.Tooltip.defaultPosition=["before","after"];
var _290=this._tooltipLabel=this.adopt(joost.ui.ChannelTooltip,{title:this.title,description:this.description,review:this.review,videos:this.videoCount});
this._tooltip=this.adopt(dijit.Tooltip,{connectId:[this.thumbHrefNode],showDelay:joost.config.ttShowDelay,label:_290.domNode.innerHTML});
}else{
dojo.attr(this.thumbHrefNode,"title",this.title);
}
}else{
dojo.attr(this.thumbHrefNode,"title",this.title);
}
if(this.isThumbOnly){
dojo.destroy(this.titleNode);
dojo.destroy(this.videoCountNode);
dojo.destroy(this.playAllNode);
}else{
this.connect(this.playAllNode,"onclick","_onPlayAll");
}
if(this.isNotQueueAble){
dojo.destroy(this.addAllToQueueNode);
}
},_setVideoCountAttr:function(){
if(this.videoCount>0){
this.videoCountNode.innerHTML=this.sVideoCount;
}
},_onTitleClick:function(e){
e.preventDefault();
joost.sitemap.go("/",{container_info:this.channelId});
},_onVideoCountClick:function(e){
e.preventDefault();
joost.sitemap.go("/",{container_info:this.channelId});
},_onPlayAll:function(e){
e.preventDefault();
this.attr("loading",true);
var def=joost.queue.addAndPlayContainer(this.channelId);
def.addBoth(this,function(r){
this.attr("loading",false);
joost.scrollIntoView();
return r;
});
},_setSizeAttr:function(v){
if(v=="small"){
this.size=v;
this.tTitle=60;
dojo.addClass(this.baseNode,"tChanSm");
}else{
dojo.addClass(this.baseNode,"tChanLrg");
this.tTitle=30;
this.size="large";
}
},_setSrcAttr:function(){
if(this.delaySrcLoad){
setTimeout(dojo.hitch(this,function(){
if(this.thumbNode){
this.thumbNode.src=this.src;
}
}),1000);
}else{
if(this.thumbNode){
this.thumbNode.src=this.src;
}
}
},_setLastColAttr:function(v){
this.lastCol=v;
this.baseNode&&dojo.toggleClass(this.baseNode,"lastCol",v);
},_setLoadingAttr:function(v){
this.loading=v;
this.baseNode&&dojo.toggleClass(this.baseNode,"loading",v);
}});
dojo.declare("joost.ui.ChannelThumbnailHybrid",joost.ui.ChannelThumbnail,{templateString:dojo.cache("joost.ui","templates/thumbnail_channel_hybrid.html","<div class=\"hybrid\">\n  <div dojoAttachPoint=\"baseNode\" class=\"thumb\">\n    <a href=\"#\" class=\"thumbnail\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\"/></a>\n    <a dojoAttachPoint=\"addAllToQueueNode\" dojoAttachEvent=\"onclick:_onAddAllToQueue\" href=\"#\" class=\"addToQ\" title=\"${strings.Queue.ADDALLTOQUEUE}\"><span>${strings.Queue.ADDALLTOQUEUE}</span></a>\n    <div class=\"overIcons\" dojoAttachPoint=\"playAllNode\">\n      <a title=\"${strings.Thumbnail.PLAYALL}\" class=\"playAll\" href=\"#\"><span>${strings.Thumbnail.PLAYALL}</span></a>\n    </div>\n  </div>\n  <div class=\"desc\">\n    <a class=\"primary\" href=\"#\" dojoAttachEvent=\"onclick:_onTitleClick\" dojoAttachPoint=\"titleNode\"></a>\n    <div dojoAttachPoint=\"descriptionNode\"></div>\n    <ul class=\"smallH secondary\">\n      <li><a class=\"secondary\" href=\"#\" dojoAttachEvent=\"onclick:_onVideoCountClick\" dojoAttachPoint=\"videoCountNode\"></a></li>\n      <li dojoAttachPoint=\"genresNode\"></li>\n    </ul>\n  </div>\n  <br class=\"clear\"/>\n</div>\n"),size:"large",postCreate:function(){
this.inherited(arguments);
this.descriptionNode.innerHTML=joost.formatP(this.description);
this._setGenres();
},_setGenres:function(){
if(this.genres&&this.genres.length){
dojo.create("span",{innerHTML:this.i18n("Thumbnail","GENRE"+(this.genres.length>1?"S":""))},this.genresNode);
dojo.forEach(this.genres,function(_291,i){
if(i){
dojo.create("span",{innerHTML:", "},this.genresNode);
}
dojo.create("a",{href:joost.link("genre",_291.id),innerHTML:_291.name},this.genresNode);
},this);
}else{
dojo.destroy(this.genresNode);
}
}});
dojo.declare("joost.ui.ChannelTooltip",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_channeltooltip.html","<div>\n  <h4 dojoAttachPoint=\"titleNode\"></h4>\n  <div dojoAttachPoint=\"descriptionNode\"></div> \n  <ul>\n    <li dojoAttachPoint=\"reviewNode\">${strings.Thumbnail.TOOLTIPAVGREVIEW}</li>\n    <li dojoAttachPoint=\"videoNode\">${strings.Thumbnail.TOOLTIPVIDEOS}</li>\n  </ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},sDescription:{node:"descriptionNode",type:"innerHTML"},sReview:{node:"reviewNode",type:"innerHTML"},sVideo:{node:"videoNode",type:"innerHTML"}},review:0,sReview:"",videos:0,sVideos:"",postMixInProperties:function(){
this.inherited(arguments);
this.sDescription=joost.formatP(joost.ellipsis(this.description,200,"paragraph"));
this.sReview=this.i18n("Thumbnail","TOOLTIPAVGREVIEW",{sReview:dojo.number.format(dojo.number.round(this.review,1))});
this.sVideo=this.i18n("Thumbnail","TOOLTIPVIDEOS",{sVideos:dojo.number.format(this.videos)});
},postCreate:function(){
!this.review&&dojo.destroy(this.reviewNode);
!this.videos&&dojo.destroy(this.videoNode);
}});
dojo.declare("joost.ui.UserThumbnail",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_user.html","<div class=\"thumb\">\n  <a class=\"thumbnail\" href=\"#\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" /></a>\n  <div class=\"meFlag\" dojoAttachPoint=\"meFlagNode\"></div>\n  <a href=\"#\" class=\"primary\" dojoAttachPoint=\"fullNameNode\"></a>\n  <a href=\"#\" class=\"secondary\" dojoAttachPoint=\"followersCountNode\"></a>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{fullName:{node:"fullNameNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},me:{node:"meFlagNode",type:"attribute"}},userId:"",fullName:"",followersCount:0,sFollowersCount:"",me:false,isThumbOnly:false,mode:"",size:"small",src:dojo.config.staticImg,gender:"male",constructor:function(args){
if(args&&args.data){
var d=args.data;
this.fullName=d.displayName;
this.userId=d.id;
this.followersCount=d.followerCount;
this.me=(this.userId==joost.user.current.id);
if(d.thumbnail){
this.src=d.thumbnail;
}
if(d.gender){
this.gender=d.gender.toLowerCase();
}
}
this.data=args.data;
},postMixInProperties:function(){
this.inherited(arguments);
var fc=this.followersCount;
if(fc){
this.sFollowersCount=this.i18n("Thumbnail","USERFOLLOWERSCOUNT"+(fc==1?"1":""),{followersCount:dojo.number.format(fc)});
}
},postCreate:function(){
var _292=joost.deXSS(this.fullName),href=joost.link("users",this.userId);
this.fullNameNode.innerHTML=joost.ellipsis(_292,this.tFullName,"word");
var fnh={title:_292,href:href};
dojo.attr(this.thumbHrefNode,fnh);
dojo.attr(this.fullNameNode,fnh);
dojo.attr(this.followersCountNode,"href",href);
this.connect(this.thumbHrefNode,"onclick",function(e){
e&&e.preventDefault();
joost.sitemap.go("/profile",{username:this.userId});
});
!this.me&&dojo.destroy(this.meFlagNode);
!this.followersCount&&dojo.destroy(this.followersCountNode);
this._setSrcAttr();
if(this.isThumbOnly){
dojo.destroy(this.fullNameNode);
dojo.destroy(this.followersCountNode);
}
},_setFollowersCountAttr:function(){
if(this.followersCount){
this.followersCountNode.innerHTML=this.sFollowersCount;
}
},_setSizeAttr:function(v){
switch(v){
case "small":
this.size=v;
this.tFullName=60;
if(this.mode&&this.mode=="alternate"){
this.tFullName=20;
}
dojo.addClass(this.domNode,"tCommSm");
break;
case "xlarge":
this.size=v;
this.tFullName=35;
dojo.addClass(this.domNode,"tCommXL");
break;
default:
this.tFullName=20;
dojo.addClass(this.domNode,"tCommLrg");
this.size="large";
break;
}
},_setSrcAttr:function(){
if(this.src==dojo.config.staticImg){
var img="images/default_profile_"+(this.gender&&this.gender.toLowerCase()||"male")+"_"+(this.size=="xlarge"?"x":"")+"lrg.jpg";
this.src=dojo.moduleUrl("joost.resources",img).toString();
}
dojo.attr(this.thumbNode,"src",this.src);
},lastCol:false,_setLastColAttr:function(v){
this.lastCol=v;
dojo.toggleClass(this.domNode,"lastCol",v);
}});
dojo.declare("joost.ui.UserThumbnailBarGraph",joost.Widget,{templateString:dojo.cache("joost.ui","templates/thumbnail_userBarGraph.html","<div class=\"thumb\">\n  <div dojoAttachPoint=\"barGraphNode\" style=\"width: 99%;\" class=\"rightbar\"></div>\n  <a class=\"thumbnail\" href=\"#\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" /></a>\n  <div class=\"meFlag\" dojoAttachPoint=\"meFlagNode\"></div>\n  <a href=\"#\" class=\"primary\" dojoAttachPoint=\"fullNameHrefNode\"><span dojoAttachPoint=\"fullNameNode\"></span></a>\n</div>\n\n"),attributeMap:{fullName:{node:"fullNameNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},me:{node:"meFlagNode",type:"attribute"}},userId:"",fullName:"",me:false,iMax:0,iVal:0,rVal:0,_thumbBase:dojo.moduleUrl("joost","resources/images/").toString(),postCreate:function(){
this.rVal=parseInt(((this.iVal/this.iMax)*86)+13);
this.fullNameNode.innerHTML=joost.ellipsis(joost.deXSS(this.fullName),25,"word");
dojo.style(this.barGraphNode,"width",this.rVal+"%");
var user=joost.link("user",this.userId),_293=joost.deXSS(this.fullName);
dojo.attr(this.thumbHrefNode,{title:_293,href:user});
dojo.attr(this.fullNameHrefNode,{title:_293,href:user});
this.connect(this.thumbNode,"onerror",this,"_hideThumb");
if(!this.me){
dojo.destroy(this.meFlagNode);
}
this._setSrcAttr();
},_setFollowersCountAttr:function(){
if(this.followersCount>0){
this.followersCountNode.innerHTML=this.sFollowersCount;
}
},src:dojo.config.staticImg,gender:"",_setSrcAttr:function(){
if(this.src==dojo.config.staticImg){
var img="images/default_profile_"+(this.gender&&this.gender.toLowerCase()||"male")+"_"+(this.size=="xlarge"?"x":"")+"lrg.jpg";
this.src=dojo.moduleUrl("joost.resources",img).toString();
}
dojo.attr(this.thumbNode,"src",this.src);
dojo.style(this.thumbNode,"visibility","visible");
},_hideThumb:function(evt){
dojo.style(this.thumbNode,"visibility","hidden");
}});
dojo.declare("joost.ui.UserGUSThumbnail",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_userGUS.html","<div class=\"thumb\">\n  <a class=\"thumbnail\" href=\"#\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" /></a>\n  <span class=\"primary\"><a href=\"#\" class=\"boldLink\" dojoAttachPoint=\"fullNameNode\">Johnny California</a> \n   ${strings.Thumbnail.USERISWATCHING}\n  <a href=\"#\" dojoAttachPoint=\"titleNode\">CSI New York: The Big Bang</a></span>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},fullName:{node:"fullNameNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},me:{node:"meFlagNode",type:"attribute"}},videoId:"",userId:"",title:"",fullName:"",me:false,src:dojo.config.staticImg,gender:"",postCreate:function(){
dojo.attr(this.titleNode,"title",this.title);
dojo.attr(this.thumbHrefNode,"title",joost.deXSS(this.fullName));
dojo.attr(this.fullNameNode,"title",joost.deXSS(this.fullName));
dojo.attr(this.titleNode,"href",joost.link("video",this.videoId));
dojo.attr(this.thumbHrefNode,"href",joost.link("user",this.userId));
dojo.attr(this.fullNameNode,"href",joost.link("user",this.userId));
this._setSrcAttr();
},_setSrcAttr:function(){
if(this.src==""){
if(this.gender=="female"){
if(this.size=="xlarge"){
this.src="../../resources/images/default_profile_female_xlrg.jpg";
}else{
this.src="../../resources/images/default_profile_female_lrg.jpg";
}
}else{
if(this.size=="xlarge"){
this.src="../../resources/images/default_profile_male_xlrg.jpg";
}else{
this.src="../../resources/images/default_profile_male_lrg.jpg";
}
}
}
dojo.attr(this.thumbNode,"src",this.src);
dojo.attr(this.thumbNode,"onerror","this.style.visibility='invisible'");
}});
dojo.declare("joost.ui.UserNotifications",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_userNotifications.html","<div class=\"thumb\">\n  <span class=\"notification\" dojoAttachPoint=\"notificationTypeNode\"></span>\n  <span class=\"primary\">\n    <span dojoAttachPoint=\"notificationBodyNode\"><a href=\"#\" class=\"boldLink\">Munish</a> accepted your friend request.</span>\n    <span class=\"secondary\" dojoAttachPoint=\"notificationTimeNode\">(2 h ago)</span>\n  </span>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{type:{node:"notificationTypeNode",type:"innerHTML"},sBody:{node:"notificationBodyNode",type:"innerHTML"},sTime:{node:"notificationTimeNode",type:"innerHTML"}},type:"",time:"",postMixInProperties:function(){
this.inherited(arguments);
this.sBody=this.i18n("Thumbnail",this.itemType,this.itemArg);
this.sTime=this.i18n("Thumbnail","GUSNOTETIME",{time:joost.formatDatePast({timestamp:this.time})});
},postCreate:function(){
this._setTypeAttr(this.type);
},_setTypeAttr:function(v){
dojo.addClass(this.notificationTypeNode,v);
}});
dojo.declare("joost.ui.GroupThumbnail",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_group.html","<div class=\"thumb\">\n  <a class=\"thumbnail\" href=\"#\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" /></a>\n  <div class=\"mineFlag\" dojoAttachPoint=\"mineFlagNode\"></div>\n  <a href=\"#\" class=\"primary\" dojoAttachPoint=\"groupNameNode\"></a>\n  <a href=\"#\" class=\"secondary\" dojoAttachPoint=\"membersCountNode\"></a>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{groupName:{node:"groupNameNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},mine:{node:"mineFlagNode",type:"attribute"}},groupId:"",fullName:"",groupName:"",membersCount:0,sMembersCount:"",mine:false,isThumbOnly:false,lastCol:false,size:"small",src:dojo.config.staticImg,gender:"",postMixInProperties:function(){
this.inherited(arguments);
if(this.membersCount>0){
if(this.membersCount==1){
this.sMembersCount=this.i18n("Thumbnail","GROUPMEMBERSCOUNT1",{membersCount:dojo.number.format(this.membersCount)});
}else{
this.sMembersCount=this.i18n("Thumbnail","GROUPMEMBERSCOUNT",{membersCount:dojo.number.format(this.membersCount)});
}
}
},postCreate:function(){
this.groupNameNode.innerHTML=joost.ellipsis(joost.deXSS(this.groupName),this.tGroupName,"word");
if(this.size!="large"&&this.size!="xlarge"){
dojo.attr(this.thumbHrefNode,"title",joost.deXSS(this.groupName));
}
var link=joost.link("group",this.groupId);
dojo.attr(this.thumbHrefNode,"href",link);
dojo.attr(this.groupNameNode,"href",link);
dojo.attr(this.membersCountNode,"href",link);
!this.mine&&dojo.destroy(this.mineFlagNode);
if(this.membersCount==0){
dojo.destroy(this.membersCountNode);
}
this._setSrcAttr();
if(this.size=="large"||this.size=="xlarge"){
if(!this.isThumbOnly){
dijit.Tooltip.defaultPosition=["before","after"];
var _294=new joost.ui.GroupTooltip({title:this.groupName,description:this.description,fullName:this.fullName,membersCount:this.membersCount});
this._tooltip=new dijit.Tooltip({connectId:[this.thumbHrefNode],showDelay:joost.config.ttShowDelay,label:_294.domNode.innerHTML});
this._addItem(_294,this._tooltip);
}else{
dojo.attr(this.thumbHrefNode,"title",joost.deXSS(this.groupName));
}
}else{
dojo.attr(this.thumbHrefNode,"title",joost.deXSS(this.groupName));
}
if(this.isThumbOnly){
dojo.destroy(this.groupNameNode);
dojo.destroy(this.membersCountNode);
}
},_setMembersCountAttr:function(){
if(this.membersCount>0){
this.membersCountNode.innerHTML=this.sMembersCount;
}
},_setSizeAttr:function(v){
switch(v){
case "small":
this.size=v;
this.tGroupName=60;
dojo.addClass(this.domNode,"tCommSm");
break;
case "xlarge":
this.size=v;
this.tGroupName=35;
dojo.addClass(this.domNode,"tCommXL");
break;
default:
this.tGroupName=20;
dojo.addClass(this.domNode,"tCommLrg");
this.size="large";
break;
}
},_setSrcAttr:function(){
if(this.src==dojo.config.staticImg){
if(this.size=="xlarge"){
this.src=dojo.moduleUrl("joost.resources","images/default_groups_xlrg.jpg");
}else{
this.src=dojo.moduleUrl("joost.resources","images/default_groups_lrg.jpg");
}
}
dojo.attr(this.thumbNode,"src",this.src);
dojo.attr(this.thumbNode,"onerror","this.style.visibility='invisible'");
},_setLastColAttr:function(v){
this.lastCol=v;
dojo.toggleClass(this.domNode,"lastCol",v);
}});
dojo.declare("joost.ui.GroupTooltip",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_grouptooltip.html","<div>\n  <h4 dojoAttachPoint=\"titleNode\"></h4>\n  <div dojoAttachPoint=\"descriptionNode\"></div> \n  <ul>\n    <li dojoAttachPoint=\"fullNameNode\">${strings.Thumbnail.TOOLTIPCREATOR}</li>\n    <li dojoAttachPoint=\"membersCountNode\">${strings.Thumbnail.TOOLTIPMEMBERS}</li>\n  </ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{sTitle:{node:"titleNode",type:"innerHTML"},sDescription:{node:"descriptionNode",type:"innerHTML"},sFullName:{node:"fullNameNode",type:"innerHTML"},sMembersCount:{node:"membersCountNode",type:"innerHTML"}},fullName:"",membersCount:0,sMembersCount:"",postMixInProperties:function(){
this.inherited(arguments);
this.sTitle=joost.deXSS(this.title);
this.sDescription=joost.formatP(joost.ellipsis(joost.deXSS(this.description),200,"paragraph"));
this.sFullName=this.i18n("Thumbnail","TOOLTIPCREATOR",{sFullName:joost.ellipsis(joost.deXSS(this.fullName),20,"word")});
this.sMembersCount=this.i18n("Thumbnail","TOOLTIPMEMBERS",{sMembersCount:dojo.number.format(this.membersCount)});
},postCreate:function(){
if(!this.membersCount){
dojo.destroy(this.membersCountNode);
}
}});
dojo.declare("joost.ui.PlaylistThumbnail",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_playlist.html","<div class=\"thumb\">\n  <a href=\"#\" class=\"thumbnail\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\"/></a>\n  <a dojoAttachPoint=\"addAllToQueueNode\" dojoAttachEvent=\"onclick:_onAddAllToQueue\" href=\"#\" class=\"addToQ\" title=\"${strings.Queue.ADDALLTOQUEUE}\"><span>${strings.Queue.ADDALLTOQUEUE}</span></a>\n  <div class=\"mineFlag\" dojoAttachPoint=\"mineFlagNode\"></div>\n  <a class=\"primary\" href=\"#\" dojoAttachPoint=\"titleNode\"></a>\n  <span class=\"secondary\">${strings.Thumbnail.PLAYLISTBY}<a href=\"#\" dojoAttachPoint=\"fullNameNode\"></a></span>\n\n  <div class=\"overIcons\" dojoAttachPoint=\"playAllNode\">\n    <a title=\"${strings.Thumbnail.PLAYALL}\" class=\"playAll\" href=\"#\"><span>${strings.Thumbnail.PLAYALL}</span></a>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},fullName:{node:"fullNameNode",type:"innerHTML"},src:{node:"thumbNode",type:"attribute"},mine:{node:"mineFlagNode",type:"attribute"}},playlistId:"",userId:"",title:"",fullName:"",mine:false,size:"small",src:dojo.config.staticImg,lastCol:false,loading:false,postCreate:function(){
var _295=joost.deXSS(this.fullName),_296=joost.deXSS(this.title),link=joost.link("playlist",this.playlistId);
this.titleNode.innerHTML=joost.ellipsis(_296,this.tTitle,"word");
this.fullNameNode.innerHTML=joost.ellipsis(_295,this.tFullName,"word",4);
dojo.attr(this.titleNode,"title",_296);
dojo.attr(this.thumbHrefNode,"title",_296);
dojo.attr(this.fullNameNode,"title",_295);
dojo.attr(this.thumbHrefNode,"href",link);
dojo.attr(this.titleNode,"href",link);
dojo.attr(this.fullNameNode,"href",link);
dojo.style(this.playAllNode,"opacity",0);
this._fader=new joost.fx.CrossFader(this.domNode,this.playAllNode);
this._addItem(this._fader);
if(!this.mine){
dojo.destroy(this.mineFlagNode);
}
this._setSrcAttr();
},_onAddAllToQueue:function(e){
e.preventDefault();
this.attr("loading",true);
var def=joost.api.queue.add(this.playlistId);
def.addBoth(this,function(r){
this.attr("loading",false);
return r;
});
},_setSizeAttr:function(v){
switch(v){
case "small":
this.size=v;
this.tTitle=60;
this.tFullName=25;
dojo.addClass(this.domNode,"tCommSm");
break;
case "xlarge":
this.size=v;
this.tTitle=35;
this.tFullName=20;
dojo.addClass(this.domNode,"tCommXL");
break;
default:
dojo.addClass(this.domNode,"tCommLrg");
this.tTitle=20;
this.tFullName=8;
this.size="large";
break;
}
},_setSrcAttr:function(){
if(this.src==dojo.config.staticImg){
if(this.size=="xlarge"){
this.src=dojo.moduleUrl("joost.resources","images/default_playlist_xlrg.jpg");
}else{
this.src=dojo.moduleUrl("joost.resources","images/default_playlist_lrg.jpg");
}
}
dojo.attr(this.thumbNode,"src",this.src);
dojo.attr(this.thumbNode,"onerror","this.style.visibility='invisible'");
},_setLastColAttr:function(v){
this.lastCol=v;
dojo.toggleClass(this.domNode,"lastCol",v);
},_setLoadingAttr:function(v){
this.loading=v;
dojo.toggleClass(this.domNode,"loading",v);
}});
dojo.declare("joost.ui.GroupThemeThumbnail",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/thumbnail_grouptheme.html","<div class=\"thumb tGrpTheme\">\n  <a class=\"thumbnail\" href=\"#\" dojoAttachEvent=\"onclick:_onClick\" dojoAttachPoint=\"thumbHrefNode\"><img dojoAttachPoint=\"thumbNode\" src=\"${src}\" alt=\"\" /></a>\n  <span class=\"overlay\" dojoAttachPoint=\"selectedNode\"/>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Thumbnail"}],attributeMap:{src:{node:"thumbNode",type:"attribute"}},src:dojo.config.staticImg,groupThemeId:"",selected:false,postCreate:function(){
if(!this.selected){
dojo.destroy(this.selectedNode);
}else{
dojo.addClass(this.domNode,"selected");
}
this._setSrcAttr();
},_setSrcAttr:function(){
dojo.attr(this.thumbNode,"src",this.src);
dojo.attr(this.thumbNode,"onerror","this.style.visibility='invisible'");
},_onClick:function(e){
e.preventDefault();
this.onClick(e);
},onClick:function(e){
}});
}
if(!dojo._hasResource["joost.ui.Ui"]){
dojo._hasResource["joost.ui.Ui"]=true;
dojo.provide("joost.ui.Ui");
dojo.declare("joost.ui.Box",joost.Widget,{templateString:dojo.cache("joost.ui","templates/box.html","<div>\n  <div class=\"tl\"><div class=\"tr\"></div></div>\n  <div class=\"mid\" dojoAttachPoint=\"containerNode\"></div>\n  <div class=\"bl\"><div class=\"br\"></div></div>\n</div>\n"),attributeMap:{container:{node:"containerNode",type:"innerHTML"}},color:"",postCreate:function(){
dojo.addClass(this.domNode,this.color+"Box");
if(this.width){
dojo.style(this.domNode,{width:this.width+"px"});
}
if(this.height){
dojo.style(this.containerNode,{height:this.height+"px"});
}
}});
dojo.declare("joost.ui.Throbber",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"throbber lrg zapper\"></div>",postCreate:function(){
dojo.setSelectable(this.domNode,false);
},hide:function(){
dojo.deprecated("Throbber::hide replaced by simply destroying the widget");
this.destroy();
}});
}
if(!dojo._hasResource["joost.ui.Review"]){
dojo._hasResource["joost.ui.Review"]=true;
dojo.provide("joost.ui.Review");
dojo.declare("joost.ui.ReviewHeader",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Review"}],templateString:dojo.cache("joost.ui","templates/review_header.html","<div class=\"header primaryHeader lightText\">\n  <ul class=\"left\">\n    <li><h2 dojoAttachPoint=\"averageNode\"></h2></li>\n    <li dojoAttachPoint=\"countNode\"></li>\n  </ul>\n  <div class=\"right\">\n    <span dojoAttachPoint=\"itemsPerPageNode\"></span>\n    <a href=\"#\" dojoAttachPoint=\"writeNode\" isDisabledOnClick=\"true\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick:_onOpenWrite\">${strings.Review.WRITEREVIEW}</a>\n  </div>\n  <div class=\"clear\"></div>\n</div>\n"),widgetsInTemplate:true,average:0,count:0,itemsPerPage:5,itemId:"",postCreate:function(){
if(this.count>0){
this._setCountAttr(this.count);
this._setAverageAttr(this.average);
this._createDropdowns();
}else{
this._setNoReviewsYet();
}
!joost.user.current.anonymous&&joost.api.reviews.canAdd({id:this.itemId}).addBoth(this,function(r){
if(!r||!r.success){
this.writeNode._setDisabled(true);
}
});
},_setNoReviewsYet:function(v){
this.averageNode.innerHTML=this.i18n("Review","NOREVIEWSYET");
},_setAverageAttr:function(v){
this.averageNode.innerHTML=this.i18n("Review","AVERAGESCORE",{score:dojo.number.format(dojo.number.round(v,1))});
},_setCountAttr:function(v){
if(this.count>0){
this.countNode.innerHTML=this.i18n("Review","TOTALREVIEWS",{count:dojo.number.format(v)});
}else{
dojo.empty(this.countNode);
}
},_createDropdowns:function(){
this.itemsPerpageDropDown=joost.ui.createDropDown({menuItems:[{label:5,value:5,selected:(this.itemsPerPage==5?true:false)},{label:10,value:10,selected:(this.itemsPerPage==10?true:false)},{label:20,value:20,selected:(this.itemsPerPage==20?true:false)},{label:50,value:50,selected:(this.itemsPerPage==50?true:false)}],label:this.itemsPerPage,layoutClass:"whiteButton",vscroll:false});
var _297=dojo.create("span",{innerHTML:this.i18n("Review","ITEMSPERPAGE")});
dojo.place(_297,this.itemsPerPageNode);
this.connect(this.itemsPerpageDropDown,"onChange",function(_298,_299){
this.onItemsPerPageChange(_299);
});
dojo.place(this.itemsPerpageDropDown.domNode,this.itemsPerPageNode);
this._addItem(this.itemsPerpageDropDown);
},onItemsPerPageChange:function(_29a){
},_onCloseWrite:function(){
this.writeNode._setDisabled(false);
if(this._writeConns){
dojo.forEach(this._writeConns,this.disconnect,this);
this._writeConns=null;
}
this.orphan(this.newReview,true);
this.newReview=null;
this.onCloseWrite();
},onCloseWrite:function(){
},_onOpenWrite:function(e){
e.preventDefault();
joost.requireUser().addCallback(this,function(){
joost.api.reviews.canAdd({id:this.itemId}).addCallback(this,function(r){
if(r.success){
if(!this.newReview){
this.newReview=this.adopt(joost.ui.ReviewCreate,{itemId:this.itemId}).placeAt(this.domNode,"after");
this._writeConns=[this.connect(this.newReview,"onClose","_onCloseWrite"),this.connect(this.newReview,"onWaitForPost","_onWaitForPost"),this.connect(this.newReview,"onNewReview","onNewReview")];
this.newReview._initiateBox();
}
this.newReview._expand();
}else{
dojo.publish("/joost/emergency",["You have already reviewed this Video"]);
}
}).addErrback(console,"warn");
});
this.onOpenWrite(e);
},onOpenWrite:function(e){
},_onWaitForPost:function(){
var _29b=this.adopt(joost.ui.Throbber);
dojo.place(_29b.domNode,this.domNode,"after");
this.onWaitForPost();
},onWaitForPost:function(e){
},onNewReview:function(e){
}});
dojo.declare("joost.ui.ReviewRating",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Review"}],templateString:dojo.cache("joost.ui","templates/review_rating.html","<div class=\"ratingValue\">\n  <span>${strings.Review.RATING}</span><strong dojoAttachPoint=\"containerNode\"></strong>\n</div>\n"),rating:0,postCreate:function(){
this._setRating();
dojo.setSelectable(this.domNode,false);
},_setRating:function(){
var num=dojo.number.round(this.rating,1);
var fNum=num;
if(num<10){
fNum=dojo.number.format(num,{pattern:"0.0"});
}
this.containerNode.innerHTML=fNum;
},setRating:function(_29c){
this.rating=_29c;
this._setRating();
}});
dojo.declare("joost.ui.ReviewItemBody",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Review"},{module:"joost.ui",bundle:"Button"}],templateString:dojo.cache("joost.ui","templates/review_item_body.html","<dd>\n  <div dojoAttachPoint=\"containerNode\"></div>\n  <p class=\"help\">\n    <span class=\"shy\" dojoAttachPoint=\"helpfulNode\">\n      ${strings.Review.WASTHISHELPFUL}\n      <a href=\"#\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick:_helpfulYes\">${strings.Button.YES}</a>\n      <a href=\"#\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick:_helpfulNo\">${strings.Button.NO}</a>\n    </span>\n    <span dojoAttachPoint=\"helpfulledNode\">${strings.Review.CLICKHELPFUL}</span>\n    <span dojoAttachPoint=\"flagNode\" class=\"shy\">    \n      <a class=\"flag\" title=\"${strings.Review.FLAGLONG}\" dojoAttachEvent=\"onclick:_flag\">${strings.Review.FLAG}</a>\n    </span>\n    <span dojoAttachPoint=\"flaggedNode\" class=\"flag active\">${strings.Review.FLAGGED}</span>\n  </p>\n</dd>\n"),widgetsInTemplate:true,isHelpfulled:false,isFlagged:false,bodyText:"",constructor:function(args,node){
if(args.data){
this.data=args.data;
var v=args.data;
this.itemId=v.target;
this.bodyText=v.body;
}
},postCreate:function(){
this.containerNode.innerHTML=joost.formatP(joost.deXSS(this.bodyText));
this._updateHelp();
if(this.data&&this.data.owner.id==joost.user.current.id){
dojo.addClass(this.domNode,"mine");
}
},_updateHelp:function(){
joost.hide(this.helpfulNode);
joost.hide(this.helpfulledNode);
joost.hide(this.flagNode);
joost.hide(this.flaggedNode);
if(!this.isHelpfulled){
joost.show(this.helpfulNode);
}
if(this.isHelpfulled){
joost.show(this.helpfulledNode);
}
if(!this.isFlagged){
joost.show(this.flagNode);
}
if(this.isFlagged){
joost.show(this.flaggedNode);
}
},_helpfulYes:function(e){
e.preventDefault();
joost.api.reviews.helpful({id:this.data.id,helpful:true});
this._markHelpfulled();
},_helpfulNo:function(e){
e.preventDefault();
joost.api.reviews.helpful({id:this.data.id,helpful:false});
this._markHelpfulled();
},_flag:function(e){
e.preventDefault();
joost.api.reviews.flag({id:this.data.id});
this._markFlagged();
},_markHelpfulled:function(){
this.isHelpfulled=true;
this._updateHelp();
},_markFlagged:function(){
this.isFlagged=true;
this._updateHelp();
}});
dojo.declare("joost.ui.ReviewItemHeader",joost.Widget,{templateString:dojo.cache("joost.ui","templates/review_item_header.html","<dt>\n  <div dojoType=\"joost.ui.Box\" color=\"gray\">\n    <div dojoAttachPoint=\"containerNode\"></div>\n  </div>\n</dt>\n"),widgetsInTemplate:true,src:"",me:false,gender:"",title:"",userId:"",helpfullCount:0,notHelpfullCount:0,posted:0,rating:0,constructor:function(args,node){
if(args.data){
var v=this.data=args.data;
this.title=v.title;
this.itemId=v.target;
this.owner=v.owner;
this.posted=v.date;
this.rating=v.score;
this.me=this.owner.id==joost.user.current.id;
}
},postCreate:function(){
var own=this.owner||{};
var _29d=this.adopt(joost.ui.UserThumbnail,{userId:own.id,src:own.thumbnail||"",size:"small",me:own.id==joost.user.current.id,fullName:own.displayName,gender:own.gender,isThumbOnly:true});
var _29e=this.adopt(joost.ui.ReviewItemHeaderTitle,{title:this.title,userId:own.id,fullName:own.displayName,posted:this.posted,helpfullCount:this.helpfullCount,notHelpfullCount:this.notHelpfullCount});
var _29f=this.adopt(joost.ui.ReviewRating,{rating:this.rating});
var _2a0=dojo.create("div");
dojo.addClass(_2a0,"header");
dojo.place(_29d.domNode,_2a0);
dojo.place(_29e.domNode,_2a0);
dojo.place(_29f.domNode,_2a0);
dojo.place(_2a0,this.containerNode);
}});
dojo.declare("joost.ui.ReviewItemHeaderTitle",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Review"},{module:"joost.ui",bundle:"Button"}],templateString:dojo.cache("joost.ui","templates/review_item_header_title.html","<div>\n  <div class=\"reviewTitle\">\n    <h4 dojoAttachPoint=\"titleNode\"></h4>\n    <ul class=\"smallH\"\n      ><li><span>${strings.Review.POSTEDBY}<a href=\"#\" dojoAttachPoint=\"fullNameNode\"></a></span></li\n      ><li dojoAttachPoint=\"postedNode\"></li\n      ><li dojoAttachPoint=\"helpfullNode\"></li\n    ></ul>\n  </div>\n</div>\n"),title:"",userId:"",fullName:"",helpfullCount:0,notHelpfullCount:0,posted:0,_goUser:function(e){
e&&e.preventDefault();
joost.sitemap.go("/profile",{username:this.userId});
},postCreate:function(){
this.fullNameNode.innerHTML=joost.ellipsis(joost.deXSS(this.fullName),25,"word");
dojo.attr(this.fullNameNode,{"title":joost.deXSS(this.fullName),"href":joost.link("users",this.userId)});
this.connect(this.fullNameNode,"onclick","_goUser");
this.titleNode.innerHTML=joost.ellipsis(joost.deXSS(this.title),80,"word");
this.postedNode.innerHTML=joost.formatDatePast({timestamp:this.posted});
this._updateHelpfull();
},_updateHelpfull:function(){
this.totalCount=parseInt(this.helpfullCount)+parseInt(this.notHelpfullCount);
joost.hide(this.helpfullNode);
if(this.totalCount>0){
this.helpfullNode.innerHTML=this.i18n("Review","FOUNDTHISHELPFULL",{helpfullCount:this.helpfullCount,totalCount:this.totalCount});
joost.show(this.helpfullNode);
}
}});
dojo.declare("joost.ui.ReviewCreate",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Review"},{module:"joost.ui",bundle:"Button"}],templateString:dojo.cache("joost.ui","templates/review_create.html","<div class=\"ugc review create\">\n  <div dojoType=\"joost.ui.Box\" color=\"yellow\">\n\n    <form onsubmit=\"return false;\">\n      <h5 dojoAttachPoint=\"errorNode\" class=\"error\"></h5>\n      <div>\n        <label for=\"rating\" style=\"padding-top:25px;\">${strings.Review.LABELRATING}</label>\n        <div dojoAttachPoint=\"reviewSliderNode\"></div>\n        <div dojoAttachPoint=\"reviewRatingNode\"></div>\n      </div>\n      \n      <div>\n        <label dojoAttachPoint=\"titleLabelNode\">${strings.Review.LABELTITLE}</label>\n        <div dojoType=\"joost.ui.TextBox\" type=\"text\" class=\"strong\" maxLength=\"80\" name=\"title\" width=\"545\" dojoAttachPoint=\"titleNode\"></div>\n      </div>\n\n      <div>                    \n        <label dojoAttachPoint=\"reviewLabelNode\">${strings.Review.LABELREVIEW}</label>\n        <div dojoAttachPoint=\"reviewNode\" dojoType=\"joost.ui.Textarea\" maxLength=\"3000\" minHeight=\"60\" name=\"review\"></div>\n      </div>\n      \n      <div>\n        <div class=\"left\"><p class=\"help\">${strings.Review.MAXCHARS}</p></div>\n        <div class=\"right\"><a href=\"#\" dojoType=\"joost.ui.XLink\" dojoAttachEvent=\"onClick:_clickCancel\">${strings.Button.CANCEL}</a><a href=\"#\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick:_clickSubmit\">${strings.Review.POST}</a></div>\n      </div>\n      \n      <div>\n        <p class=\"secondary\">${strings.Review.FOOTNOTE}</p>\n      </div>\n\n      <a href=\"#\" dojoType=\"joost.ui.ButtonUi\" iconClass=\"ui close lrg drk\" dojoAttachEvent=\"onClick:_clickCancel\">${strings.Button.CLOSE}</a>\n\n    </form>\n\n\n  </div>\n</div>\n"),widgetsInTemplate:true,rating:7,itemId:"",postCreate:function(){
this._errorRemoveMessage();
this._createRating();
this._initiateBox();
dojo.attr(this.titleLabelNode,"for",this.titleNode.id);
dojo.attr(this.reviewLabelNode,"for",this.reviewNode.id);
},_createRating:function(){
this.reviewSlider=this.adopt(joost.ui.HorizontalSlider,{value:this.rating,minimum:1,maximum:10,intermediateChanges:true,showButtons:false,style:"width:468px;"});
var _2a1=this.adopt(dijit.form.HorizontalRuleLabels,{labels:["1","2","3","4","5","6","7","8","9","10"]},this.reviewSlider.bottomDecoration);
dojo.place(this.reviewSlider.domNode,this.reviewSliderNode);
this.connect(this.reviewSlider,"onChange","_updateRating");
this.reviewRating=this.adopt(joost.ui.ReviewRating,{rating:this.rating},this.reviewRatingNode);
},_updateRating:function(_2a2){
this.rating=dojo.number.round(_2a2,1);
this.reviewRating.setRating(this.rating);
},_initiateBox:function(){
dojo.style(this.domNode,{height:"auto"});
this.targetHeight=dojo.marginBox(this.domNode).h;
dojo.style(this.domNode,{overflow:"hidden",height:0});
},_expand:function(){
var anim=dojo.anim(this.domNode,{height:this.targetHeight,opacity:1});
var c=dojo.connect(anim,"onEnd",this,function(){
dojo.disconnect(c);
dojo.style(this.domNode,{overflow:"",height:"auto"});
});
},_collapse:function(){
dojo.style(this.domNode,{overflow:"hidden"});
var anim=dojo.anim(this.domNode,{height:0,opacity:0});
},_clickSubmit:function(e){
e.preventDefault();
this._errorRemoveMessage();
this.titleNode.attr("isError",true);
if(this.titleNode.value){
this.titleNode.attr("isError",dojo.string.trim(this.titleNode.value)=="");
}
this.reviewNode.attr("isError",true);
if(this.reviewNode.value){
this.reviewNode.attr("isError",dojo.string.trim(this.reviewNode.value)=="");
}
if(this.titleNode&&dojo.string.trim(this.titleNode.value)!=""&&this.reviewNode.value&&dojo.string.trim(this.reviewNode.value)){
this._collapse();
this.onWaitForPost();
var body={id:this.itemId,title:this.titleNode.value,body:this.reviewNode.value,score:this.rating};
var def=joost.api.reviews.add(body);
def.addCallback(this,function(r){
var eDef=joost.api.epg.singleEntity({id:this.itemId});
eDef.addCallback(function(ent){
dojo.publish("/joost/event/review_added",[ent,body,r]);
});
});
def.addErrback(this,"_addFailed");
def.addCallback(this,"onNewReview");
}else{
this._errorDisplayMessage(this.i18n("Review","ERRORFIELDS"));
}
},_addFailed:function(e){
},_clickCancel:function(e){
e.preventDefault();
this._collapse();
this.onClose();
},_errorRemoveMessage:function(){
joost.hide(this.errorNode);
},_errorDisplayMessage:function(_2a3){
this._errorRemoveMessage();
if(_2a3){
this.errorNode.innerHTML=_2a3;
joost.show(this.errorNode);
}
},onClose:function(){
},onWaitForPost:function(){
},onNewReview:function(){
}});
dojo.declare("joost.ui.ReviewList",joost.Widget,{templateString:dojo.cache("joost.ui","templates/review_list.html","<div>\n  <dl class=\"review ugc\" dojoAttachPoint=\"containerNode\"></dl>\n</div>\n")});
dojo.declare("joost.ui.ReviewTab",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/review_tab.html","<div>\n  <div dojoAttachPoint=\"containerNode\"></div>\n  <div class=\"clear\"></div>\n  <div class=\"pagination\" dojoAttachPoint=\"pagerNode\"></div>\n</div>\n"),reviewsStart:0,itemsPerPage:5,itemId:"",postCreate:function(){
this._getReviews();
},_buildReviews:function(r){
dojo.empty(this.containerNode);
this.reviews=r.items;
(r.count)?this.reviewsCount=r.count:this.reviewsCount=0;
(r.average)?this.reviewsAverage=r.average:this.reviewsAverage=0;
this.currentPage=Math.round(this.reviewsStart/this.itemsPerPage);
this.numPages=Math.ceil(this.reviewsCount/this.itemsPerPage);
var _2a4=this.adopt(joost.ui.ReviewHeader,{average:this.reviewsAverage,count:this.reviewsCount,itemsPerPage:this.itemsPerPage,itemId:this.itemId});
this.connect(_2a4,"onItemsPerPageChange","onItemsPerPageChange");
this.connect(_2a4,"onNewReview","onNewReview");
dojo.place(_2a4.domNode,this.containerNode);
this.itemList=this.adopt(joost.ui.ReviewList);
dojo.forEach(this.reviews,function(_2a5,i){
var _2a6=this.adopt(joost.ui.ReviewItemHeader,{data:_2a5});
var _2a7=this.adopt(joost.ui.ReviewItemBody,{data:_2a5});
dojo.place(_2a6.domNode,this.itemList.containerNode);
dojo.place(_2a7.domNode,this.itemList.containerNode);
},this);
dojo.place(this.itemList.domNode,this.containerNode);
if(this.reviewsCount>this.itemsPerPage){
dojo.addClass(this.pagerNode,"thinBorderTop");
this.pager=this.adopt(joost.ui.Pager,{paged:this,currentPage:this.currentPage});
dojo.place(this.pager.domNode,this.pagerNode,"only");
}
},_getReviews:function(){
var _2a8=this.adopt(joost.ui.Throbber);
dojo.place(_2a8.domNode,this.containerNode,"only");
dojo.empty(this.pagerNode);
dojo.removeClass(this.pagerNode,"thinBorderTop");
joost.api.reviews.get({id:this.itemId,start:this.reviewsStart,count:this.itemsPerPage}).addCallback(this,"_buildReviews");
},onItemsPerPageChange:function(_2a9){
if(this.itemsPerPage!=_2a9){
this.itemsPerPage=_2a9;
this.reviewsStart=0;
this._getReviews();
}
},onNewReview:function(){
this.reviewsStart=0;
this._getReviews();
},pages:function(){
return this.numPages;
},gotoPage:function(p){
this.reviewsStart=this.itemsPerPage*p;
this._getReviews();
},onPagesChanged:function(){
}});
}
if(!dojo._hasResource["joost.panels.Profile"]){
dojo._hasResource["joost.panels.Profile"]=true;
dojo.provide("joost.panels.Profile");
dojo.declare("joost.panels.Profile",joost.panels.Base,{templateString:dojo.cache("joost.panels","templates/profile.html","<div>\n    <!-- profile header stuff -->\n    <div class=\"profileInfo user\">\n        <div class=\"thumb tCommXL profile\">\n            <a href=\"#/settings\" class=\"thumbnail noclick\"><img dojoAttachPoint=\"avatarNode\" alt=\"User Name\" /></a>\n        </div>\n        <div class=\"desc\">\n            <h2><span dojoAttachPoint=\"nameNode\"></span> <em dojoAttachPoint=\"moodNode\"></em> \n                <span class=\"secondary\" dojoAttachPoint=\"updatedNode\"></span></h2>\n            <div class=\"left\">\n                <p dojoAttachPoint=\"ageSexNode\"></p>\n                <p dojoAttachPoint=\"currentWrapper\">\n                    <strong>Last Watched:</strong><br/>\n                    <a href=\"#\" dojoAttachPoint=\"currentNode\"></a>\n                </p>\n            </div>\n            <div class=\"right\">\n                <p dojoAttachPoint=\"bioNode\"></p>\n                <p dojoAttachPoint=\"url1Wrapper\"><strong>Website:</strong> <a dojoAttachPoint=\"url1Node\" href=\"#\"></a></p>\n                <p dojoAttachPoint=\"url2Wrapper\"><strong>Blog:</strong> <a dojoAttachPoint=\"url2Node\" href=\"#\"></a></p>\n            </div>\n        </div>\n    </div>\n\n    <!-- section navigation -->\n    <div dojoAttachPoint=\"sectionTabsNode\"></div>\n\n    <!-- updated by clicking on the navigation above -->\n    <div dojoAttachPoint=\"reviewsPanel\"></div>\n    <div dojoAttachPoint=\"feedsPanel\" class=\"dnone\"><!-- always hidden. has to stay for mysettings links --></div>\n    <div class=\"listing\" dojoAttachPoint=\"favoritesPanel\"></div>\n    \n</div>\n"),requireAuth:true,bundles:[{module:"joost.panels",bundle:"Profile"}],defaultAvatar:joost.config.defaultAvatar,editable:false,selectedTab:"favorites",constructor:function(args){
this.username=args.username||joost.user.current.displayName;
if(!joost.user.current.anonymous&&(this.username==joost.user.current.displayName||this.username==joost.user.current.id)){
this.isMe=this.editable=true;
}
this._seen={};
},postCreate:function(){
this._fetch(this.username);
this._visibility("hidden");
this.connect(this.domNode,"onclick",function(e){
if(dojo.hasClass(e.target,"noclick")||dojo.hasClass(e.currentTarget,"noclick")){
dojo.stopEvent(e);
}
});
},_fetch:function(){
var dfd;
if(joost.user.current.anonymous||!this.isMe){
dfd=joost.api.users.singleUser({id:this.username}).addCallback(this,"_render");
}else{
if(this.data){
this._render(this.data);
}else{
dfd=joost.api.profile.get().addCallback(this,"_render");
}
}
dfd&&dfd.addErrback(this,"_whoops");
},_render:function(data){
var d=this.data=data,_2aa=joost.deXSS;
var src=d.thumbnail||this.defaultAvatar[d.gender||"MALE"];
dojo.attr(this.avatarNode,"src",src+"");
dojo.attr(this.avatarNode,"alt",_2aa(d.displayName));
var lw=d.lastWatched;
if(lw&&lw.video){
if(this.lwConnect){
this.disconnect(this.lwConnect);
}
this.lwConnect=this.connect(this.currentNode,"onclick",function(e){
e&&e.preventDefault();
dojo.publish("/joost/command/show-video-info",[lw.video.id]);
});
dojo.attr(this.currentNode,{href:"/"+lw.video.id,innerHTML:lw.video.title});
}else{
dojo.style(this.currentWrapper,"display","none");
}
this.nameNode.innerHTML=_2aa(d.displayName);
var _2ab=[];
if(d.gender){
_2ab.push(_2aa(joost.util.propercase(d.gender.toLowerCase())));
}
if(d.age){
_2ab.push(d.age);
}
if(d.countryName){
_2ab.push(d.countryName);
}
if(_2ab.length){
this.ageSexNode.innerHTML=_2ab.join(_2ab.length>1?", ":" ");
}
dojo.forEach(["url1","url2"],function(url){
if(d[url]){
dojo.attr(this[url+"Node"],{innerHTML:d[url],href:d[url]});
}else{
dojo.style(this[url+"Wrapper"],"display","none");
}
},this);
this.adopt(joost.panels._MoreLess,{text:_2aa(d.aboutMe)},this.bioNode);
var i18n=dojo.hitch(this,"i18n","Profile"),_2ac=this.adopt(joost.ui.SectionTabs,{type:"container",selected:this.selectedTab,tabs:[{label:i18n("TABFAVORITES"),panel:this.favoritesPanel,onTabClick:this._tabsLoadFavorites,tabLabel:"favorites"},{label:i18n("TABREVIEWS"),panel:this.reviewsPanel,onTabClick:this._tabsLoadReviews,tabLabel:"reviews"},{label:i18n("MYSETTINGS"),onTabClick:function(){
joost.sitemap.go("/settings");
},tabLabel:"settings",panel:this.feedsPanel}]}).placeAt(this.sectionTabsNode);
this.connect(_2ac,"onTabClick",function(e,cb,tab,tabs){
dojo.forEach(tabs.tabs,function(item){
dojo.style(item.panel,"display",item.panel==tab.panel?"block":"none");
},this);
cb&&cb.call(this,e,tab.label);
});
_2ac.triggerSelected();
this._visibility("visible");
},_tabsLoadReviews:function(){
this._reviewsTab&&this.orphan(this._reviewsTab,true);
this._reviewsTab=this.adopt(joost.panels._UserReviewTab,{userId:this.data.id}).placeAt(this.reviewsPanel,"only");
},_tabsLoadFavorites:function(){
this._favoritesTab&&this.orphan(this._favoritesTab,true);
this._favoritesTab=this.adopt(joost.panels._UserFavoritesTab,{userId:this.isMe?0:this.data.id}).placeAt(this.favoritesPanel);
},_visibility:function(_2ad){
dojo.style(this.domNode,"visibility",_2ad);
},_whoops:function(e){
var d=e&&e.responseText&&dojo.fromJson(e.responseText);
var out=this.i18n("Profile","PROFILELOADERROR")+": ";
if(d&&d.msg){
out+="<strong>"+d.msg+"</strong>";
}
dojo.place("<p>"+out+"</p>",this.domNode,"only");
this._visibility("visible");
}});
dojo.declare("joost.panels._MoreLess",joost.Widget,{text:"",textLimit:256,templateString:dojo.cache("joost.panels","templates/more_less.html","<p>\n    <span dojoAttachPoint=\"textNode\"></span>\n    <a dojoAttachPoint=\"toggler\" dojoAttachEvent=\"onclick: _click\" href=\"#\">more</a>\n</p>\n"),_setTextAttr:function(text){
this.text=this._longText=text||"";
if(this.text.length>this.textLimit){
this.text=joost.ellipsis(this.text,this.textLimit,"word");
dojo.style(this.toggler,"display","");
}else{
dojo.style(this.toggler,"display","none");
}
this.textNode.innerHTML=this.text;
},_click:function(e){
e&&e.preventDefault();
this.toggler.innerHTML=this._expanded?"more":"less";
this.textNode.innerHTML=this[this._expanded?"text":"_longText"];
this._expanded=!this._expanded;
}});
dojo.declare("joost.panels._UserReviewTab",joost.ui.ReviewTab,{userId:0,bundles:[{module:"joost.panels",bundle:"Profile"}],_getReviews:function(){
joost.api.reviews.byUser({user:this.userId}).addCallback(this,"_buildReviews").addErrback(this,"_error");
},_buildReviews:function(data){
var _2ae=data.items;
if(_2ae.length){
this.reviewsCount=data.count||0;
this.reviewsAverage=data.average||0;
this.itemList=this.adopt(joost.ui.ReviewList);
dojo.forEach(_2ae,function(_2af,i){
try{
var _2b0=this.adopt(joost.panels._UserReviewItemHeader,{data:_2af});
}
catch(e){
}
var _2b1=this.adopt(joost.ui.ReviewItemBody,{data:_2af});
dojo.place(_2b0.domNode,this.itemList.containerNode);
dojo.place(_2b1.domNode,this.itemList.containerNode);
},this);
this.itemList.placeAt(this.containerNode);
if(this.reviewsCount>this.itemsPerPage){
dojo.addClass(this.pagerNode,"thinBorderTop");
this.pager=this.adopt(joost.ui.Pager,{paged:this,currentPage:this.currentPage});
this.pager.placeAt(this.pagerNode,"only");
}
}else{
dojo.place("<p>"+this.i18n("Profile","REVIEWSEMPTY")+"</p>",this.domNode,"only");
}
},_error:function(e){
}});
dojo.declare("joost.panels._UserReviewItemHeader",joost.ui.ReviewItemHeader,{postCreate:function(){
var own=this.owner;
var _2b2=this.adopt(joost.ui[(this.data.video.type=="video"?"Video":"Channel")+"Thumbnail"],{data:this.data.video,size:"large",isThumbOnly:true,preserveInfoLink:true});
var isme=own.id==joost.user.current.id;
var _2b3=this.adopt(joost.ui.ReviewItemHeaderTitle,{title:this.title,userId:own.id,me:isme,fullName:isme?"you":own.displayName,posted:this.posted,helpfullCount:this.helpfullCount,notHelpfullCount:this.notHelpfullCount});
var _2b4=this.adopt(joost.ui.ReviewRating,{rating:this.rating});
var _2b5=dojo.create("div"),list=dojo.create("ul"),li=dojo.place("<li></li>",list);
_2b2.placeAt(li);
dojo.style(list,{"width":"170px"});
dojo.addClass(_2b5,"header profilepane");
dojo.place(list,_2b5);
dojo.place(_2b3.domNode,_2b5);
dojo.place(_2b4.domNode,_2b5);
dojo.place(_2b5,this.containerNode);
}});
dojo.declare("joost.panels._UserFavoritesTab",joost.NlsWidget,{templateString:dojo.cache("joost.panels","templates/profile_favorites.html","<div>\n    <div dojoAttachPoint=\"videoNode\"></div><br class=\"clear\">\n    <div dojoAttachPoint=\"videoContainer\" class='textContent'></div>\n    \n    <div dojoAttachPoint=\"channelNode\"></div><br class=\"clear\">\n    <div dojoAttachPoint=\"channelContainer\" class='textContent'></div>\n</div>\n"),bundles:[{module:"joost.panels",bundle:"Profile"}],userId:0,postCreate:function(){
var dfd;
if(this.userId){
dfd=joost.api.favorites.forUser({id:this.userId});
}else{
dfd=joost.api.favorites.get();
}
dfd.addCallback(this,"_render");
},_render:function(data){
if(data&&data.count){
var tmp={videos:[],channels:[]};
dojo.forEach(data.items,function(item){
var _2b6=item.type=="video";
tmp[(_2b6?"videos":"channels")].push(item);
});
if(tmp.videos.length){
var _2b7=dojo.hitch(this,"_togglePane",this.videoContainer);
this.videosGroup=this.adopt(joost.ui.UiGroupHeader,{title:"Videos",isExpanded:true,expand:_2b7,collapse:_2b7},this.videoNode);
dojo.style(this.videosGroup.containerNode,"display","none");
dojo.forEach(tmp.videos,function(item,i){
this.adopt(joost.ui.VideoThumbnail,{data:item,size:"large",lastCol:(i+1)%4===0}).placeAt(this.videoContainer);
},this);
}
if(tmp.channels.length){
var _2b8=dojo.hitch(this,"_togglePane",this.channelContainer);
this.channelsGroup=this.adopt(joost.ui.UiGroupHeader,{title:"Channels",isExpanded:true,expand:_2b8,collapse:_2b8},this.channelNode);
dojo.style(this.channelsGroup.containerNode,"display","none");
dojo.forEach(tmp.channels,function(item,i){
this.adopt(joost.ui.ChannelThumbnail,{data:item,size:"large",lastCol:(i+1)%5===0}).placeAt(this.channelContainer);
},this);
}
}else{
dojo.place("<p>"+this.i18n("Profile","FAVORITESEMPTY")+"</p>",this.domNode,"only");
}
},_togglePane:function(n){
n&&dojo.toggleClass(n,"dnone",!dojo.hasClass(n,"dnone"));
}});
}
if(!dojo._hasResource["joost.panels.EPG"]){
dojo._hasResource["joost.panels.EPG"]=true;
dojo.provide("joost.panels.EPG");
dojo.declare("joost.panels.EPG",joost.panels.Base,{widgetsInTemplate:true,pageLayout:"listing",isPageVenue:false,pageSortOrder:"",pageListView:"",pageListType:"",pageItemsPerPage:20,templateString:dojo.cache("joost.panels","templates/epg.html","<div class=\"epg\">\n  <div dojoAttachPoint=\"containerNode\"></div>\n  <div class=\"clear\"></div>\n</div>\n"),constructor:function(){
var _2b9=joost.sitemap.current,args=_2b9.args;
if(_2b9){
this.pagePath=_2b9.item.path;
this.pageType=args&&args.type?args.type:"all";
this.pageName=_2b9.item.label||_2b9.item.name||"";
this.pageVenue=_2b9.item.path.split("/")[1];
this.isPageVenue=!!(this.pagePath=="/"+this.pageVenue);
this.pageListType=args&&args.listType?args.listType:this.pageVenue=="shows"?"containers":"videos";
this.pageSortOrder=args&&args.sortOrder?args.sortOrder:"popularity";
this.pageListView=args&&args.viewmode?args.viewmode:"thumbnail";
this.pageStart=args&&args.start?args.start:0;
if(this.pageType=="featured"){
this.pageLayout=this.isPageVenue?"featured":"all";
}
}
},postCreate:function(){
var _2ba="EPGFeatured",_2bb={pagePath:this.pagePath,pageLayout:this.pageLayout,isPageVenue:this.isPageVenue,pageListView:this.pageListView,pageType:this.pageType,pageVenue:this.pageVenue,pageName:this.pageName};
if(this.pageLayout!="featured"){
_2ba="EPGListing";
dojo.mixin(_2bb,{pageSortOrder:this.pageSortOrder,pageListType:this.pageListType,pageStart:this.pageStart,pageItemsPerPage:this.pageItemsPerPage});
}
this.adopt(joost.panels[_2ba],_2bb).placeAt(this.containerNode);
}});
dojo.declare("joost.panels.EPGListing",joost.panels.Base,{templateString:dojo.cache("joost.panels","templates/epg_listing.html","<div>\n  <div class=\"header stripeBorderTop lightText\">\n    <ul class=\"left\">\n      <li><h2 dojoAttachPoint=\"nameNode\"></h2></li>\n      <li dojoAttachPoint=\"listTypeNode\"></li>\n      <li>${strings.EPG.SORTBY} <span dojoAttachPoint=\"sortOrderNode\"></span></li>\n    </ul>\n    <div class=\"right legalOnWhite\">\n      <div dojoAttachPoint=\"viewPickerNode\"></div>\n    </div>\n    <div class=\"clear\"></div>\n  </div>\n  \n  <div class=\"clear\"></div>\n  \n  <div dojoAttachPoint=\"setContainerNode\">\n    <div dojoType=\"joost.ui.Throbber\"></div>\n  </div>\n\n  <div dojoAttachPoint=\"paginationNode\" class=\"pagination\"></div>\n\n</div>\n\n  \n"),bundles:[{module:"joost.panels",bundle:"EPG"}],widgetsInTemplate:true,pagePath:"",pageLayout:"listing",isPageVenue:false,pageSortOrder:"",pageListView:"",pageType:"",pageVenue:"",pageListType:"",pageName:"",pageStart:0,pageItemsPerPage:20,numItems:0,numPages:1,currentPage:0,hasPagination:false,postCreate:function(){
this._setTitle();
this._getItems();
this._buildSortOrder();
this._buildViewPicker();
this._buildListType();
},_setTitle:function(){
this.nameNode.innerHTML=this.pageName;
},_getItems:function(){
var def;
if(this.pageType!="featured"){
if(this.pageListType=="videos"){
def=joost.api.epg.genre({id:this.pagePath,start:this.pageStart,count:this.pageItemsPerPage,sort:this.pageSortOrder});
}
if(this.pageListType=="containers"){
if(this.pageSortOrder=="title"&&this.pageListView=="text"){
def=joost.api.epg.genreContainers({id:this.pagePath,start:this.pageStart,count:"all",sort:this.pageSortOrder,wrap:"min"});
}else{
def=joost.api.epg.genreContainers({id:this.pagePath,start:this.pageStart,count:this.pageItemsPerPage,sort:this.pageSortOrder});
}
}
}
if(this.pageType=="featured"){
if(this.pageListType=="videos"){
def=joost.api.epg.featured({id:this.pagePath,start:this.pageStart,count:this.pageItemsPerPage,sort:this.pageSortOrder});
}
if(this.pageListType=="containers"){
def=joost.api.epg.featuredContainers({id:this.pagePath,start:this.pageStart,count:this.pageItemsPerPage,sort:this.pageSortOrder});
}
}
def&&def.addCallback(this,function(r){
if(this.pageSortOrder=="title"&&this.pageListView=="text"){
this._buildTextItems(r);
}else{
this._buildItems(r);
}
});
},_buildItems:function(r){
if((r.count>this.pageItemsPerPage&&this.pageType!="featured")||(r.count>this.pageItemsPerPage&&!this.isPageVenue)){
this.hasPagination=true;
this.numItems=r.count;
}
if(!this.pagination){
this._buildPagination();
}
if(this.pageListView=="thumbnail"){
this.itemSetContainer=this.adopt(joost.ui.BrowserPanelListing,{hasPagination:this.hasPagination});
}
if(this.pageListView=="hybrid"){
this.itemSetContainer=this.adopt(joost.ui.BrowserPanelListing,{hasPagination:this.hasPagination,hasRowBorder:true});
}
this.itemSetContainer&&this._addItem(this.itemSetContainer);
dojo.forEach(r.items,function(item,i){
var _2bc,t;
if(this.pageListType=="videos"){
_2bc=(i%4==3);
if(this.pageListView=="thumbnail"){
t=new joost.ui.VideoThumbnail({data:item,size:"large",lastCol:_2bc});
}else{
if(this.pageListView=="hybrid"){
t=new joost.ui.VideoThumbnailHybrid({data:item});
}
}
}
if(this.pageListType=="containers"){
_2bc=(i%5==4)?true:false;
if(this.pageListView=="thumbnail"){
t=new joost.ui.ChannelThumbnail({data:item,size:"large",lastCol:_2bc});
}else{
if(this.pageListView=="hybrid"){
t=new joost.ui.ChannelThumbnailHybrid({data:item});
}else{
if(this.pageListView=="text"){
t=new joost.ui.ChannelText({data:item});
}
}
}
}
if(t){
t.placeAt(this.itemSetContainer.containerNode);
this._addItem(t);
}
},this);
dojo.place(this.itemSetContainer.domNode,this.setContainerNode,"only");
},_buildTextItems:function(r){
var _2bd=Math.round((r.count)/2.9);
var _2be={columns:[],count:0};
var _2bf=[];
var _2c0=[];
var _2c1=[];
var _2c2="";
var _2c3=0;
dojo.forEach(r.items,function(item,i){
var _2c4=item.sortTitle.toUpperCase().charCodeAt(0);
var _2c5;
if(_2c4>=65&&_2c4<=90){
_2c5=String.fromCharCode(_2c4);
}else{
if(_2c4>=48&&_2c4<=57){
_2c5=this.i18n("EPG","AZGROUPNUMBERS");
}else{
_2c5=this.i18n("EPG","AZGROUPOTHER");
}
}
if(_2c2!=_2c5){
if(_2c1&&_2c1.length>0){
_2c0.push({index:_2c2,items:_2c1});
}
var _2c6=Math.floor(i/_2bd);
if(_2c3!=_2c6){
_2bf.push(_2c0);
_2c3=_2c6;
_2c0=[];
}
_2c2=_2c5;
_2c1=[];
}
_2c1.push({id:item.id,title:item.title,size:item.size});
},this);
if(_2c1&&_2c1.length>0){
_2c0.push({index:_2c2,items:_2c1});
_2bf.push(_2c0);
}
_2be.columns=_2bf;
_2be.count=r.count;
var _2c7="";
for(var c=0;c<_2be.columns.length;c++){
_2c7+="<ul class=\"textColumn\">";
var _2c8=_2be.columns[c];
for(var g=0;g<_2c8.length;g++){
var _2c9=_2c8[g];
_2c7+="<li><div class=\"channelGroup stripeBorderBottom\"><h2>"+_2c9.index+"</h2><ul>";
for(var i=0;i<_2c9.items.length;i++){
var item=_2c9.items[i];
_2c7+="<li><a class=\"clickable\" jType=\"channel\" jId=\""+item.id+"\"  href=\""+joost.link("channel",item.id)+"\">"+item.title+"</a></li>";
}
_2c7+="</ul></div></li>";
}
_2c7+="</ul>";
}
this.itemSetContainer=this.adopt(joost.ui.BrowserPanelListing,{isTextListing:true});
this.itemSetContainer.containerNode.innerHTML=_2c7;
dojo.place(this.itemSetContainer.domNode,this.setContainerNode,"only");
},_buildViewPicker:function(){
var _2ca=[];
_2ca.push({icon:"thumbnail",selected:(this.pageListView=="thumbnail"?true:false)});
if(this.pageListType=="containers"){
_2ca.push({icon:"text",selected:(this.pageListView=="text"?true:false)});
}
_2ca.push({icon:"hybrid",selected:(this.pageListView=="hybrid"?true:false)});
this.viewPicker=this.adopt(joost.ui.ViewPicker,{viewPicker:_2ca});
this.connect(this.viewPicker,"onViewChanged","onViewChanged");
dojo.place(this.viewPicker.domNode,this.viewPickerNode,"only");
},_buildSortOrder:function(){
var _2cb;
if(this.pageSortOrder=="title"){
_2cb=this.i18n("EPG","SORTTITLE");
}
if(this.pageSortOrder=="popularity"){
_2cb=this.i18n("EPG","SORTPOPULARITY");
}
if(this.pageSortOrder=="age"){
_2cb=this.i18n("EPG","SORTAGE");
}
this.sortOrderDropDown=joost.ui.createDropDown({menuItems:[{label:this.i18n("EPG","SORTTITLE"),selected:((this.pageSortOrder=="title")?true:false),value:"title"},{label:this.i18n("EPG","SORTPOPULARITY"),selected:((this.pageSortOrder=="popularity")?true:false),value:"popularity"},{label:this.i18n("EPG","SORTAGE"),selected:((this.pageSortOrder=="age")?true:false),value:"age"}],label:_2cb,layoutClass:"whiteButton"});
this.connect(this.sortOrderDropDown,"onChange",function(_2cc,_2cd){
this.onSortOrderChanged(_2cd);
});
dojo.place(this.sortOrderDropDown.domNode,this.sortOrderNode);
this._addItem(this.sortOrderDropDown);
},_buildPagination:function(){
if(this.hasPagination){
this.currentPage=this.pageStart/this.pageItemsPerPage;
this.numPages=Math.ceil(this.numItems/this.pageItemsPerPage);
this.pagination=this.adopt(joost.ui.Pager,{paged:this,currentPage:this.currentPage});
dojo.place(this.pagination.domNode,this.paginationNode,"only");
}else{
this.paginationNode.innerHTML="";
}
},pages:function(){
return this.numPages;
},gotoPage:function(p){
this.pageStart=this.pageItemsPerPage*p;
this._swapPage();
},onPagesChanged:function(){
},onViewChanged:function(_2ce){
this.pageListView=_2ce;
if(this.pageListView=="text"){
this.pageListType="containers";
this.pageSortOrder="title";
}
this._swapPage();
},_buildListType:function(){
var pv=this.pageVenue.toUpperCase();
this.labelVideos=this.i18n("EPG","VIDEOSVENUE"+pv);
this.labelContainers=this.i18n("EPG","CONTAINERSVENUE"+pv);
var _2cf=this.adopt(joost.ui.Button,{label:this.labelContainers,baseClass:((this.pageListType=="containers")?"brickTab selected":"brickTab")}).placeAt(this.listTypeNode);
this.connect(_2cf,"onClick","onListTypeContainers");
var _2d0=dojo.create("span",{innerHTML:" "},this.listTypeNode);
var _2d1=this.adopt(joost.ui.Button,{label:this.labelVideos,baseClass:((this.pageListType=="videos")?"brickTab selected":"brickTab")}).placeAt(this.listTypeNode);
this.connect(_2d1,"onClick","onListTypeVideos");
},onListTypeContainers:function(){
if(this.pageListType!="containers"){
this.pageListType="containers";
this.pageStart=0;
this._swapPage();
}
},onListTypeVideos:function(){
if(this.pageListType!="videos"){
this.pageListType="videos";
if(this.pageListView=="text"){
this.pageListView="thumbnail";
}
this.pageStart=0;
this._swapPage();
}
},onSortOrderChanged:function(_2d2){
if(this.pageSortOrder!=_2d2){
this.pageSortOrder=_2d2;
if((this.pageSortOrder!="title"&&this.pageListView=="text")||(this.pageListType!="containers"&&this.pageListView=="text")){
this.pageListView="thumbnail";
}
if(this.pageListType=="containers"&&this.pageSortOrder=="title"&&this.pageListView!="text"){
this.pageListView="text";
}
this.pageStart=0;
this._swapPage();
}
},_swapPage:function(){
joost.sitemap.go(this.pagePath,{type:this.pageType,start:this.pageStart,sortOrder:this.pageSortOrder,listType:this.pageListType,viewmode:this.pageListView});
}});
dojo.declare("joost.panels.EPGFeatured",joost.panels.Base,{bundles:[{module:"joost.panels",bundle:"EPG"}],templateString:dojo.cache("joost.panels","templates/epg_featured.html","<div>\n  <div class=\"header stripeBorderBottom\">\n    <h2 dojoAttachPoint=\"titleNode\">Featured Shows</h2>\n  </div>\n  \n  <!-- Featured items layout -->\n  <table class=\"featured\">\n    <thead>\n      <tr>\n        <td class=\"chan\"><h3 dojoAttachPoint=\"featuredChannelsTitleNode\"></h3></td>\n        <td class=\"vid\"><h3 dojoAttachPoint=\"featuredVideosTitleNode\"></h3></td>\n        <td class=\"chan\"><h3 dojoAttachPoint=\"popularChannelsTitleNode\"></h3></td>\n        <td class=\"vid\"><h3 dojoAttachPoint=\"popularVideosTitleNode\"></h3></td>\n      </tr>\n    </thead>\n    <tbody>\n      <tr>\n        <td class=\"chan\" dojoAttachPoint=\"featuredChannelsNode\">\n          <div dojoType=\"joost.ui.Throbber\"></div>\n        </td>\n        <td class=\"vid\" dojoAttachPoint=\"featuredVideosNode\">\n          <div dojoType=\"joost.ui.Throbber\"></div>\n        </td>\n        <td class=\"chan\" dojoAttachPoint=\"popularChannelsNode\">\n          <div dojoType=\"joost.ui.Throbber\"></div>\n        </td>\n        <td class=\"vid\" dojoAttachPoint=\"popularVideosNode\">\n          <div dojoType=\"joost.ui.Throbber\"></div>\n        </td>\n      </tr>\n    </tbody> \n  </table>\n\n</div>\n\n  \n"),widgetsInTemplate:true,pagePath:"",pageLayout:"listing",isPageVenue:false,pageType:"",pageVenue:"",pageName:"",postCreate:function(){
var pv=this.pageVenue.toUpperCase(),i18n=dojo.hitch(this,"i18n","EPG");
this.titleNode.innerHTML=i18n("FEATUREDX",{item:this.pageName});
this.featuredChannelsTitleNode.innerHTML=i18n("FEATUREDX",{item:i18n("CONTAINERSVENUE"+pv)});
this.featuredVideosTitleNode.innerHTML=i18n("FEATUREDX",{item:i18n("VIDEOSVENUE"+pv)});
this.popularChannelsTitleNode.innerHTML=i18n("POPULARX",{item:i18n("CONTAINERSVENUE"+pv)});
this.popularVideosTitleNode.innerHTML=i18n("POPULARX",{item:i18n("VIDEOSVENUE"+pv)});
this._getFeaturedChannels();
this._getFeaturedVideos();
this._getPopularChannels();
this._getPopularVideos();
},_getFeaturedChannels:function(){
joost.api.epg.featuredContainers({id:this.pagePath,start:0,count:5}).addCallback(this,function(r){
this._buildItems(r,"channel",this.featuredChannelsNode);
});
},_getFeaturedVideos:function(){
joost.api.epg.featured({id:this.pagePath,start:0,count:5}).addCallback(this,function(r){
this._buildItems(r,"video",this.featuredVideosNode);
});
},_getPopularChannels:function(){
joost.api.epg.genreContainers({id:this.pagePath,start:0,count:5,sort:"popularity"}).addCallback(this,function(r){
this._buildItems(r,"channel",this.popularChannelsNode);
});
},_getPopularVideos:function(){
joost.api.epg.genre({id:this.pagePath,start:0,count:5,sort:"popularity"}).addCallback(this,function(r){
this._buildItems(r,"video",this.popularVideosNode);
});
},_buildItems:function(r,type,node){
node.innerHTML="";
var cl=joost.ui[(type=="video"?"Video":"Channel")+"Thumbnail"];
dojo.forEach(r.items,function(item,i){
this.adopt(cl,{data:item,size:"large"}).placeAt(node,"last");
},this);
}});
}
if(!dojo._hasResource["joost.favorites"]){
dojo._hasResource["joost.favorites"]=true;
dojo.provide("joost.favorites");
(function(jf){
var ju=joost.user;
jf.require=function(){
var def;
if(ju.current.favorites){
def=new dojo.Deferred();
def.callback(ju.current.favorites);
return def;
}
if(this._loading){
return this._loading;
}
def=this._loading=joost.api.favorites.get({});
def.addBoth(this,function(n){
this._loading=null;
});
def.addCallback(ju.current,function(r){
this.favorites={};
dojo.forEach(r.items,function(i){
this[i.id]=i;
},this.favorites);
return this.favorites;
});
return def;
};
jf.add=function(id){
var def=joost.requireUser();
def.addCallback(this,function(d){
return jf.require().addCallback(function(_2d3){
if(id in _2d3){
return {success:true};
}
return joost.api.favorites.add({id:id});
});
});
def.addCallback(function(r){
var _2d4=joost.api.epg.singleEntity({id:id});
_2d4.addCallback(function(v){
ju.current.favorites[id]=v;
dojo.publish("/joost/event/favorite_added",[v,id,r]);
});
});
return def;
};
})(joost.favorites);
}
if(!dojo._hasResource["joost.ui.GridTable"]){
dojo._hasResource["joost.ui.GridTable"]=true;
dojo.provide("joost.ui.GridTable");
dojo.declare("joost.ui.GridTable",joost.NlsWidget,{widgetsInTemplate:true,bundles:[{module:"joost.ui",bundle:"GridTable"}],attributeMap:{title:{node:"tableTitleNode",type:"innerHTML"}},constructor:function(){
this.rows=[];
},postCreate:function(){
if(!this.title){
dojo.destroy(this.tableTitleNode);
}
},_buildTable:function(){
dojo.empty(this.containerNode);
dojo.forEach(this.rows,function(row,i){
dojo.place(row.domNode,this.containerNode);
},this);
},_setSort:function(n,k){
this._setSortHeader(n,k);
this._sortRows();
this._buildTable();
this.onSort(this.sortKey,this.sortDir);
},_setSortHeader:function(n,k){
var d=1;
if(dojo.hasClass(n,"ascending")){
d=-1;
}
if(dojo.hasClass(n,"descending")){
d=1;
}
this._resetSortHeader();
dojo.addClass(n,"sort");
if(d==1){
dojo.addClass(n,"ascending");
}
if(d==-1){
dojo.addClass(n,"descending");
}
this.sortKey=k;
this.sortDir=d;
},_resetSortHeader:function(){
dojo.forEach(dojo.query("td",this.headerNode),function(n){
dojo.removeClass(n,"sort");
dojo.removeClass(n,"ascending");
dojo.removeClass(n,"descending");
},this);
},_sortRows:function(){
dojo.forEach(this.rows,function(row){
row.sortKey=this.sortKey;
row.sortDir=this.sortDir;
},this);
this.rows.sort(function(a,b){
var _2d5=a.sortKey,_2d6=a.sortDir,x=a[_2d5],y=b[_2d5];
return ((x<y)?-1*_2d6:((x>y)?1*_2d6:0));
});
},onSort:function(k,d){
}});
dojo.declare("joost.ui.GridTableQueue",joost.ui.GridTable,{templateString:dojo.cache("joost.ui","templates/grid_table_queue.html","<div>\n  <h3 dojoAttachPoint=\"tableTitleNode\"></h3>\n  <table class=\"grid myQueue\">\n    <thead>\n      <tr>\n        <td dojoAttachPoint=\"positionNode\"></td>\n        <td dojoAttachPoint=\"titleNode\" class=\"title\">${strings.GridTable.TITLE}</td>\n        <td dojoAttachPoint=\"lengthNode\" class=\"length\">${strings.GridTable.LENGTH}</td>\n        <td dojoAttachPoint=\"channelNode\" class=\"channel\">${strings.GridTable.CHANNEL}</td>\n        <td dojoAttachPoint=\"addedNode\" class=\"added\">${strings.GridTable.ADDED}</td>\n        <td dojoAttachPoint=\"expiresNode\" class=\"expires\">${strings.GridTable.EXPIRES}</td>\n      </tr>\n    </thead>\n    <tbody dojoAttachPoint=\"containerNode\"></tbody>\n  </table>\n</div>\n"),empty:function(){
dojo.forEach(this.rows,function(row){
row.destroy();
});
this.rows=[];
}});
dojo.declare("joost.ui.GridTableContainer",joost.ui.GridTable,{templateString:dojo.cache("joost.ui","templates/grid_table_container.html","<div>\n  <h3 dojoAttachPoint=\"tableTitleNode\"></h3>\n  <table class=\"grid container\">\n    <thead>\n      <tr dojoAttachPoint=\"headerNode\">\n        <td dojoAttachEvent=\"onclick:_onSortSeason\" dojoAttachPoint=\"seasonNode\"><span dojoAttachPoint=\"seasonLabelNode\">${strings.GridTable.SEASONEP}</span></td>\n        <td dojoAttachEvent=\"onclick:_onSortTitle\" dojoAttachPoint=\"titleNode\" class=\"title\">${strings.GridTable.TITLE}</td>\n        <td dojoAttachEvent=\"onclick:_onSortLength\" dojoAttachPoint=\"lengthNode\" class=\"length\">${strings.GridTable.LENGTH}</td>\n        <td dojoAttachEvent=\"onclick:_onSortAdded\" dojoAttachPoint=\"addedNode\" class=\"added\">${strings.GridTable.ADDED}</td>\n        <td dojoAttachEvent=\"onclick:_onSortExpires\" dojoAttachPoint=\"expiresNode\" class=\"expires\">${strings.GridTable.EXPIRES}</td>\n      </tr>\n    </thead>\n    <tbody dojoAttachPoint=\"containerNode\"></tbody>\n  </table>\n</div>\n"),postCreate:function(){
joost.hide(this.seasonLabelNode);
this.inherited(arguments);
},onHasSeasonEp:function(){
joost.show(this.seasonLabelNode);
this.hasSeasonEp=true;
},_buildTable:function(){
this.inherited(arguments);
dojo.forEach(this.rows,function(row){
row._onCollapsed();
row.expanded=null;
dojo.place(row.domNode,this.containerNode);
},this);
},_onSortSeason:function(e){
e&&e.preventDefault();
this.hasSeasonEp&&this._setSort(this.seasonNode,"seasonEp");
},_onSortTitle:function(e){
e&&e.preventDefault();
this._setSort(this.titleNode,"sortTitle");
},_onSortLength:function(e){
e&&e.preventDefault();
this._setSort(this.lengthNode,"length");
},_onSortViews:function(e){
e&&e.preventDefault();
this._setSort(this.viewsNode,"views");
},_onSortAdded:function(e){
e&&e.preventDefault();
this._setSort(this.addedNode,"publicationDate");
},_onSortExpires:function(e){
e&&e.preventDefault();
this._setSort(this.expiresNode,"expires");
}});
dojo.declare("joost.ui.GridTableRow",[joost.NlsWidget,joost.queue.VideoMixin],{widgetsInTemplate:true,constructor:function(args,node){
var v=args.data;
if(v){
var c=v.containers[0];
dojo._mixin(this,{videoId:v.id,title:v.title,sortTitle:v.sortTitle,description:v.description,expires:v.validTo.valueOf(),publicationDate:v.publicationDate.valueOf(),length:v.duration,src:v.images.thumbnail,full:!v.clip,seasonNumber:v.seasonNumber,episodeNumber:v.episodeNumber,channelId:c?c.id:null,channel:c?c.title:null});
}
if(args.context){
this.context=args.context;
this.channel=args.context.label;
this.channelId=args.context.id;
}
},bundles:[{module:"joost.ui",bundle:"GridTable"},{module:"joost.ui",bundle:"Queue"}],attributeMap:{title:{node:"titleNode",type:"innerHTML"},length:{node:"lengthNode",type:"innerHTML"}},videoId:"",title:"",channelId:"",channel:"",publicationDate:"",sPublicationDate:"",expires:"",sExpires:"",length:"",isExpired:false,isGeoRestricted:false,isPlaying:false,isNotQueueAble:false,postMixInProperties:function(){
this.inherited(arguments);
var now=new Date();
if((this.expires)-now.valueOf()<=0){
this.isExpired=true;
}
if(this.isExpired||this.isGeoRestricted){
this.isNotQueueAble=true;
}
this.sPublicationDate=joost.formatDatePast({timestamp:this.publicationDate});
if(!this.isExpired){
this.sExpires=joost.formatDateFuture({timestamp:this.expires});
}else{
this.sExpires=this.i18n("GridTable","EXPIRED");
}
},postCreate:function(){
dojo.attr(this.titleNode,"href",joost.link("video",this.videoId));
this.lengthNode.innerHTML=joost.formatDuration(this.length);
if(this.channelNode){
dojo.attr(this.channelNode,"title",this.channel);
this.channelNode.innerHTML=joost.ellipsis(this.channel,this.tChannel,"word",4);
dojo.attr(this.channelNode,"href",joost.link("channel",this.channelId));
}
if(this.addedNode){
this.addedNode.innerHTML=this.sPublicationDate;
}
if(this.expiresNode){
this.expiresNode.innerHTML=this.sExpires;
}
this.updatePlaying();
if(this.isExpired){
dojo.addClass(this.domNode,"expired");
}
if(this.isGeoRestricted){
dojo.addClass(this.domNode,"georestrict");
}
},updatePlaying:function(){
dojo.toggleClass(this.domNode,"playing",this.isPlaying);
},loading:false,_setLoadingAttr:function(v){
this.loading=v;
dojo.toggleClass(this.domNode,"loading",v);
}});
dojo.declare("joost.ui.GridTableQueueRow",joost.ui.GridTableRow,{templateString:dojo.cache("joost.ui","templates/grid_table_queue_row.html","<tr>\n  <td>\n    <div dojoAttachPoint=\"positionNode\" dojoType=\"joost.ui.TextBox\" hasHelperText=\"false\" maxLength=\"3\"></div>\n  </td>\n  <td class=\"title\">\n    <a dojoAttachPoint=\"removeFromQueueNode\" dojoAttachEvent=\"onclick:_onRemoveFromQueue\" title=\"${strings.Queue.REMOVEFROMQUEUE}\" class=\"removeFromQ\" href=\"#removeFromMyQueue\"><span>${strings.Queue.REMOVEFROMQUEUE}</span></a>\n    <a href=\"#\" class=\"vidTitle\" dojoAttachPoint=\"titleNode\"></a>\n  </td>\n  <td dojoAttachPoint=\"lengthNode\"></td>\n  <td><span class=\"noWrap\"><a href=\"#\" dojoAttachPoint=\"channelNode\"></a></span></td>\n  <td><span class=\"noWrap\"dojoAttachPoint=\"addedNode\"></span></td>\n  <td><span class=\"noWrap\" dojoAttachPoint=\"expiresNode\"></span></td>\n</tr>\n"),position:0,postCreate:function(){
this.inherited(arguments);
this.updatePosition();
},updatePosition:function(){
dojo.attr(this.positionNode,"value",""+(parseInt(this.position,10)>0?this.position:""));
},_onRemoveFromQueue:function(){
this.inherited(arguments);
this.updateSiblings();
dojo.fadeOut({node:this.domNode,onEnd:dojo.hitch(this,function(){
this.destroy();
})}).play();
},updateSiblings:function(){
var pos=this.position;
dojo.query("> tr",this.domNode.parentNode).forEach(function(n){
n=dijit.byNode(n);
if(n.position>pos){
n.position--;
n.updatePosition();
}
});
}});
dojo.declare("joost.ui.GridTableQueueActiveRow",joost.ui.GridTableRow,{templateString:dojo.cache("joost.ui","templates/grid_table_queue_active_row.html","<tr>\n  <td class=\"title\">\n    <a dojoAttachPoint=\"addToQueueNode\" dojoAttachEvent=\"onclick:_onAddToQueue\" href=\"#addToMyQueue\" class=\"addToQ\" title=\"${strings.Thumbnail.ADDTOQUEUE}\"><span>${strings.Thumbnail.ADDTOQUEUE}</span></a>\n    <a dojoAttachPoint=\"removeFromQueueNode\" dojoAttachEvent=\"onclick:_onRemoveFromQueue\" title=\"${strings.Thumbnail.REMOVEFROMQUEUE}\" class=\"removeFromQ\" href=\"#removeFromMyQueue\" style=\"display:none\"><span>${strings.Thumbnail.REMOVEFROMQUEUE}</span></a>\n    <a href=\"#\" class=\"vidTitle\" dojoAttachPoint=\"titleNode\"></a>\n  </td>\n  <td dojoAttachPoint=\"lengthNode\"></td>\n</tr>\n")});
dojo.declare("joost.ui.GridTableContainerRow",joost.ui.GridTableRow,{templateString:dojo.cache("joost.ui","templates/grid_table_container_row.html","<tr>\n  <td dojoAttachPoint=\"seasonNode\" class=\"season\"><a class=\"arrow\" dojoAttachEvent=\"onclick:_onArrowClick\"></a><span class=\"se\" dojoAttachPoint=\"seasonEpNode\"></span><span class=\"new\" dojoAttachPoint=\"newNode\"></span></td>\n  <td class=\"title\">\n    <a dojoAttachPoint=\"addToQueueNode\" dojoAttachEvent=\"onclick:_onAddToQueue\" href=\"#addToMyQueue\" class=\"addToQ\" title=\"${strings.Queue.ADDTOQUEUE}\"><span>${strings.Queue.ADDTOQUEUE}</span></a>\n    <a dojoAttachPoint=\"removeFromQueueNode\" dojoAttachEvent=\"onclick:_onRemoveFromQueue\" title=\"${strings.Queue.REMOVEFROMQUEUE}\" class=\"removeFromQ\" href=\"#removeFromMyQueue\" style=\"display:none\"><span>${strings.Queue.REMOVEFROMQUEUE}</span></a>\n    <a href=\"#\" class=\"vidTitle\" dojoAttachEvent=\"onclick:_onArrowClick\" dojoAttachPoint=\"titleNode\"></a>\n  </td>\n  <td><span dojoAttachPoint=\"lengthNode\"></span></td>\n  <td><span class=\"noWrap\" dojoAttachPoint=\"addedNode\"></span></td>\n  <td><span class=\"noWrap\" dojoAttachPoint=\"expiresNode\"></span></td>\n</tr>\n"),position:0,isNew:false,isExpanded:false,isAnimating:false,hasSeasonEp:false,postCreate:function(){
this.inherited(arguments);
if(this.seasonNumber||this.episodeNumber){
this.seasonEpNode.innerHTML=this.i18n("GridTable","SEASONEPROW",{seasonNumber:this.seasonNumber,episodeNumber:this.episodeNumber});
this._onHasSeasonEp();
}else{
dojo.destroy(this.seasonEpNode);
}
if(!this.isNew){
dojo.destroy(this.newNode);
}
},_onArrowClick:function(e){
e&&e.preventDefault();
if(!this.isExpanded){
dojo.toggleClass(this.domNode,"expanded",true);
if(!this.expanded){
this.expanded=this.adopt(joost.ui.GridTableContainerRowExpanded,{data:this.data,context:this.context});
dojo.place(this.expanded.domNode,this.domNode,"after");
this.expanded.initiate();
this.expanded._expand();
this.connect(this.expanded,"onExpand","_onExpand");
this.connect(this.expanded,"onCollapse","_onCollapsed");
}else{
this.expanded._expand();
}
}
if(this.isExpanded){
this.expanded._collapse();
}
},_onExpand:function(){
this.isExpanded=true;
},_onCollapsed:function(){
dojo.removeClass(this.domNode,"expanded");
this.isExpanded=false;
},_onHasSeasonEp:function(){
this.hasSeasonEp=true;
}});
dojo.declare("joost.ui.GridTableContainerRowExpanded",joost.Widget,{templateString:dojo.cache("joost.ui","templates/grid_table_container_row_expanded.html","<tr class=\"expandedContent\">\n  <td colspan=\"6\">\n    <div dojoAttachPoint=\"containerNode\"></div>\n  </td>\n</tr>\n"),constructor:function(args,node){
if(args.data){
this.data=args.data;
}
},isExpanded:false,isAnimating:false,context:null,postCreate:function(){
this.adopt(joost.ui.VideoThumbnailHybrid,{data:this.data,context:this.context}).placeAt(this.containerNode);
},initiate:function(){
this._initHeight();
},_initHeight:function(){
this.targetHeight=dojo.marginBox(this.containerNode).h;
dojo.style(this.containerNode,{height:"0px",overflow:"hidden"});
dojo.style(this.domNode,{display:"none"});
},_collapse:function(){
this.isAnimating=true;
var anim=dojo.anim(this.containerNode,{height:0});
this.connect(anim,"onEnd","_onCollapse");
},_expand:function(){
dojo.style(this.domNode,{display:""});
this.isAnimating=true;
var anim=dojo.anim(this.containerNode,{height:this.targetHeight});
this.connect(anim,"onEnd","_onExpand");
},_onCollapse:function(){
this.isAnimating=false;
this.isExpanded=false;
dojo.style(this.domNode,{display:"none"});
this.onCollapse();
},onCollapse:function(){
},_onExpand:function(){
this.isAnimating=false;
this.isExpanded=true;
this.onExpand();
},onExpand:function(){
}});
}
if(!dojo._hasResource["joost.ui.SectionTabs"]){
dojo._hasResource["joost.ui.SectionTabs"]=true;
dojo.provide("joost.ui.SectionTabs");
dojo.declare("joost.ui.SectionTabs",joost.Widget,{templateString:dojo.cache("joost.ui","templates/sectiontabs.html","<ul class=\"sectiontabs\"></ul>\n"),type:"",tabs:[],selected:"",postCreate:function(){
dojo.forEach(this.tabs,function(tab,i){
if(this.selected&&this.selected==tab.tabLabel){
tab.selected=true;
}
this.tabs[i].t=this.adopt(joost.ui.SectionTabsTab,tab);
if(tab.onTabClick){
this.connect(this.tabs[i].t,"onClick","_onTabClick");
}
this.connect(this.tabs[i].t,"resetSelected","_resetSelected");
dojo.place(this.tabs[i].t.domNode,this.domNode);
},this);
dojo.addClass(this.domNode,this.type);
dojo.setSelectable(this.domNode,false);
},triggerSelected:function(){
dojo.forEach(this.tabs,function(tab){
if(tab.t.tabLabel==this.selected&&tab.onTabClick){
this.onTabClick(false,tab.onTabClick,tab.t,this);
}
},this);
return this;
},_onTabClick:function(e,cb,tab){
e&&e.preventDefault();
this.onTabClick(e,cb,tab,this);
this.selected=tab.tabLabel;
},onTabClick:function(e,cb,tab,self){
},_resetSelected:function(bool){
dojo.forEach(this.tabs,function(tab){
tab.t.attr("selected",false);
tab.t._setSelected(bool);
});
},selectChild:function(name){
this.selected=name;
dojo.forEach(this.tabs,function(tab){
var _2d7=tab.t.tabLabel==name;
tab.t.selected=_2d7;
tab.t._setSelected(_2d7);
_2d7&&this.onTabClick(false,tab.onTabClick,tab.t,this);
},this);
}});
dojo.declare("joost.ui.SectionTabsTab",joost.Widget,{templateString:dojo.cache("joost.ui","templates/sectiontabs_tab.html","<li><a href=\"#\" dojoAttachPoint=\"containerNode\"><span dojoAttachPoint=\"labelNode\"></span></a></li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"}},label:"",tabLabel:"",path:"",selected:false,onTabClick:{},postCreate:function(){
this._setSelected();
dojo.attr(this.labelNode,"title",this.label);
this.connect(this.containerNode,"onclick","_onClick");
},resetSelected:function(){
},_setSelected:function(bool){
dojo.toggleClass(this.containerNode,"selected",this.selected);
bool&&this._onClick();
},_onClick:function(e){
e&&e.preventDefault();
if(!this.selected){
this.resetSelected();
this.selected=true;
this._setSelected();
if(this.path&&this.path!=""){
joost.sitemap.go(this.path);
}
this.onClick(e,this.onTabClick,this);
}
},onClick:function(e,tab){
}});
}
if(!dojo._hasResource["joost.ui.Social"]){
dojo._hasResource["joost.ui.Social"]=true;
dojo.provide("joost.ui.Social");
dojo.declare("joost.ui.Social",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Social"}],templateString:dojo.cache("joost.ui","templates/social.html","<ul class=\"share social size24\">\n    <li>${strings.Social.SHARE}</li>\n    <li><a class=\"fb\" dojoAttachPoint=\"facebookNode\" target=\"_blank\" title=\"${strings.Social.FACEBOOK}\"><span></span></a></li>\n    <li><a class=\"st\" dojoAttachPoint=\"stumbleNode\" target=\"_blank\" title=\"${strings.Social.STUMBLE}\"><span></span></a></li>\n    <li><a class=\"del\" dojoAttachPoint=\"deliciousNode\" target=\"_blank\" title=\"${strings.Social.DELICIOUS}\"><span></span></a></li>\n    <li><a class=\"digg\" dojoAttachPoint=\"diggNode\" target=\"_blank\" title=\"${strings.Social.DIGG}\"><span></span></a></li>\n    <li><a class=\"twitter\" dojoAttachPoint=\"twitterNode\" target=\"_blank\" title=\"${strings.Social.TWITTER}\"><span></span></a></li>\n</ul>\n"),title:"",venue:"",publicId:0,postCreate:function(){
var loc=window.location,site=this.publicId?[loc.protocol,"//",loc.host,"/",this.publicId].join(""):joost.sitemap.getUrl(),_2d8=encodeURIComponent(site),t=this.title.replace(/\s/g,"+"),et=encodeURIComponent(t),_2d9={shows:"television",film:"movies",music:"music"},_2da={"stumble":"http://www.stumbleupon.com/submit?url="+escape(site+"&title="+t),"delicious":"http://delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url="+_2d8+"&amp;title="+et,"facebook":"http://www.facebook.com/sharer.php?u="+_2d8+"&t="+et,"digg":"http://digg.com/submit?url="+_2d8+"&title="+et+"&media=video"+(_2d9[this.venue]?"&topic="+(_2d9[this.venue]):""),"twitter":"http://twitter.com/home?status=Watching+"+t+"+on+@joost+"+escape(site)};
for(var i in _2da){
dojo.attr(this[i+"Node"],"href",_2da[i]);
}
dojo.setSelectable(this.domNode,false);
}});
}
if(!dojo._hasResource["joost.panels.Container"]){
dojo._hasResource["joost.panels.Container"]=true;
dojo.provide("joost.panels.Container");
dojo.declare("joost.panels.Container",joost.panels.Base,{widgetsInTemplate:true,templateString:dojo.cache("joost.panels","templates/container.html","<div class=\"container\">\n  <div class=\"poster\" dojoAttachPoint=\"posterNode\"></div>\n\n  <div class=\"header thinBorderBottom\">\n    <div class=\"left\">\n      <div dojoAttachPoint=\"thumbnailNode\"></div>\n      <div class=\"desc\">\n        <h2 dojoAttachPoint=\"titleNode\"></h2>\n        <span class=\"secondary\" dojoAttachPoint=\"genreNode\"></span>\n        <div dojoAttachPoint=\"sumDescriptionNode\"></div>\n        <div dojoAttachPoint=\"descriptionNode\"></div>\n      </div>\n    </div>\n    <div class=\"right stackedButtons\" dojoAttachPoint=\"stackedButtonsNode\">\n      <a href=\"#\" dojoAttachPoint=\"btnPlayAllNode\" dojoType=\"joost.ui.Button\" stacked=\"true\"\n         dojoAttachEvent=\"onClick:_onPlayAll\" isDisabledOnClick=\"true\">${strings.Container.PLAYALL}</a>\n      <a href=\"#\" dojoAttachPoint=\"btnAddToQueueNode\" dojoType=\"joost.ui.Button\" stacked=\"true\"\n         dojoAttachEvent=\"onClick:_onAddToQueue\" isDisabledOnClick=\"true\">${strings.Container.ADDALLTOQUEUE}</a>\n      <a href=\"#\" dojoAttachPoint=\"btnAddToFavNode\" dojoType=\"joost.ui.Button\" stacked=\"true\"\n         dojoAttachEvent=\"onClick:_onAddToFav\" isDisabledOnClick=\"true\" iconClass=\"favorite\" style=\"display:none\">${strings.Container.ADDTOFAV}</a>\n      <span dojoAttachPoint=\"btnAddedToFavNode\" dojoType=\"joost.ui.ButtonFeedback\" stacked=\"true\" iconClass=\"favorite\" style=\"display:none\">${strings.Container.ADDEDTOFAV}</span>\n    </div>\n    <div class=\"clear\"></div>\n  </div>\n\n  <div class=\"contentStrip\">\n    <div class=\"left legalOnWhite\"><p dojoAttachPoint=\"relatedNode\" dojoAttachEvent=\"onclick:_onRelatedClick\">&nbsp;</p></div>\n    <div class=\"right\" dojoAttachPoint=\"socialNode\"></div>\n    <div class=\"clear\"></div>\n  </div>\n\n  <div dojoAttachPoint=\"sectionTabsNode\"></div>\n  \n  <div dojoAttachPoint=\"tabsNode\">\n    <div dojoAttachPoint=\"tabVideosNode\"></div>\n    <div dojoAttachPoint=\"tabReviewsNode\"><div dojoType=\"joost.ui.Throbber\"></div></div>\n  </div>\n\n  <div class=\"listBrick wide\" dojoAttachPoint=\"relatedChannelListing\">\n    <div class=\"header\">\n      <h2>${strings.Container.TITLERELATEDCHANNELS}</h2>\n    </div>\n    <div class=\"listing\" dojoAttachPoint=\"relatedChannelsNode\"><div dojoType=\"joost.ui.Throbber\"></div></div>\n  </div>\n\n\n  <div class=\"clear\"></div>\n</div>\n"),bundles:[{module:"joost.panels",bundle:"Container"}],header:"",isSubscribed:false,description:"",genres:null,selectedTab:"video",channelId:"",constructor:function(args){
this.data=args&&args.data;
this.channelId=args.container_info||"";
this.videoPage=args.cvp||0;
},postCreate:function(){
if(this.data){
this._ready(this.data);
}else{
joost.api.epg.singleContainer({id:this.channelId}).addCallback(this,"_ready");
}
this.subscribe("/joost/receive-state","poke");
this.subscribe("/joost/provide-state",function(args){
var q=args.query;
q.container_info=this.channelId;
q.cvp=this.videoPage;
q.noScroll=true;
});
},_setChannelIdAttr:function(_2db){
this.channelId=_2db;
this._videoList&&this.orphan(this._videoList,true);
this._videoList=this.adopt(joost.panels._ContainerVideos,{channelId:this.channelId,parent:this,index:this.videoPage}).placeAt(this.tabVideosNode);
},_notify:function(_2dc,page){
if(_2dc==this._videoList){
this.videoPage=page;
}
},channelVideoListFail:function(_2dd){
},poke:function(args){
args=args||{};
var _2de=(args.container_info===this.channelId||joost.deXSS(args.container_info)===this.channelId);
if(_2de){
if(args.cvp!==this.videoPage&&this._videoList){
this._videoList.pager&&this._videoList.pager.attr("currentPage",args.cvp);
}
}
return true;
},_ready:function(v){
this.data=v;
if(v){
this.channelId=v.id;
this.title=v.title;
this.description=v.description;
this.src=v.images&&v.images.logo;
this.poster=v.images&&v.images.header;
this.genres=v.genres;
this.videoCount=v.size;
}
dojo.attr(this.domNode,"title","");
if(this.poster&&this.poster!=""){
dojo.place(dojo.string.substitute("<img src='${src}', alt='${alt}'>",{src:joost.deXSS(this.poster),alt:joost.deXSS(this.title)}),this.posterNode);
this.connect(this.posterNode,"onclick",function(e){
this._onPlayAll(e,20);
});
}else{
dojo.destroy(this.posterNode);
}
this.adopt(joost.ui.ChannelThumbnail,{data:this.data,size:"large",isThumbOnly:true}).placeAt(this.thumbnailNode,"replace");
this.titleNode.innerHTML=this.title;
dojo.forEach(this.genres,function(g,i){
if(i){
dojo.create("span",{innerHTML:", "},this.genreNode);
}
this.adopt(joost.ui.Link,{label:g.name,href:joost.link("genre",g.id),onClick:function(e){
e.preventDefault();
joost.sitemap.go(g.id);
}}).placeAt(this.genreNode);
},this);
if(this.description.length>200){
this.sumDescriptionNode.innerHTML=joost.formatP(joost.ellipsis(this.description,200,"word")+" <a href='#' class='expander'>"+this.i18n("Container","MORE")+"</a>");
this.connect(dojo.query("a.expander",this.sumDescriptionNode)[0],"onclick","_onSumMoreClick");
this.descriptionNode.innerHTML=joost.formatP(this.description+" <a href='#' class='expander'>"+this.i18n("Container","LESS")+"</a>");
this.connect(dojo.query("a.expander",this.descriptionNode)[0],"onclick","_onSumLessClick");
joost.hide(this.descriptionNode);
}else{
this.descriptionNode.innerHTML=joost.formatP(this.description);
dojo.destroy(this.sumDescriptionNode);
}
this._setupFavorite();
this.adopt(joost.ui.Social,{publicId:this.channelId,title:this.title,venue:this.genres&&this.genres.length>0?this.genres[0].id.split("/")[1]:""}).placeAt(this.socialNode);
this.sectionTabs=this.adopt(joost.ui.SectionTabs,{type:"container",selected:this.selectedTab,tabs:[{label:this.i18n("Container","TABVIDEOS"),onTabClick:this._tabsLoadVideos,tabLabel:"video"},{label:this.i18n("Container","TABREVIEWS"),onTabClick:this._tabsLoadReviews,tabLabel:"reviews"}]}).placeAt(this.sectionTabsNode);
this.connect(this.sectionTabs,"onTabClick","_onTabClick");
this.sectionTabs.triggerSelected();
this._getRelatedChannels();
},_onTabClick:function(e,cb,tab){
try{
cb.apply(this);
this.selectedTab=tab.tabLabel;
}
catch(e){
}
},_tabsHideAll:function(){
var hide=joost.hide;
hide(this.tabVideosNode);
hide(this.tabReviewsNode);
},_tabsLoadVideos:function(){
this._tabsHideAll();
joost.show(this.tabVideosNode);
},_tabsLoadReviews:function(){
this._tabsHideAll();
joost.show(this.tabReviewsNode);
if(!this.tabReviewsWidget){
this.tabReviewsWidget=this.adopt(joost.ui.ReviewTab,{itemId:this.channelId}).placeAt(this.tabReviewsNode,"only");
}
},_getRelatedChannels:function(){
var _2df=this.genres&&this.genres.length>0&&this.genres[this.genres.length-1].id;
if(!_2df){
joost.hide(this.relatedChannelListing);
return;
}
joost.api.epg.genreContainers({id:_2df,start:0,count:6}).addCallback(this,function(r){
this.relatedChannels=dojo.filter(r.items,function(n){
return n.id!=this.channelId;
},this).slice(0,5);
this._buildRelatedChannels();
});
},_buildRelatedChannels:function(){
dojo.empty(this.relatedChannelsNode);
dojo.forEach(this.relatedChannels,function(item,i){
this.adopt(joost.ui.ChannelThumbnail,{data:item,size:"large",lastCol:(i%5==4)}).placeAt(this.relatedChannelsNode);
},this);
var _2e0="",_2e1=this.relatedChannels;
if(_2e1.length==1){
_2e0=this.i18n("Container","RELATEDCHANNELS1",{c1ref:joost.link("channel",_2e1[0].id),c1t:_2e1[0].title,cid:_2e1[0].id});
}else{
if(this.relatedChannels.length>2){
_2e0=this.i18n("Container","RELATEDCHANNELS2",{c1ref:joost.link("channel",_2e1[0].id),c1t:_2e1[0].title,c1id:_2e1[0].id,c2ref:joost.link("channel",_2e1[1].id),c2t:_2e1[1].title,c2id:_2e1[1].id});
}
}
this.relatedNode.innerHTML=_2e0;
},_onRelatedClick:function(e){
e.preventDefault();
var cid=e.target.getAttribute("cid");
joost.sitemap.go("/",{container_info:cid});
},_setupFavorite:function(){
this._favLoad=joost.favorites.require().addCallback(this,function(_2e2){
if(this.channelId in _2e2){
this.isFavorited=true;
}
this._updateFavorites();
});
},_toggleFavorite:function(){
this.isFavorited=!this.isFavorited;
this._updateFavorites();
},_updateFavorites:function(){
joost.hide(this.btnAddToFavNode.domNode);
joost.hide(this.btnAddedToFavNode.domNode);
joost.show(this[(this.isFavorited?"btnAddedToFavNode":"btnAddToFavNode")].domNode);
},_onSumMoreClick:function(e){
e.preventDefault();
joost.show(this.descriptionNode);
joost.hide(this.sumDescriptionNode);
},_onSumLessClick:function(e){
e.preventDefault();
joost.hide(this.descriptionNode);
joost.show(this.sumDescriptionNode);
},_onAddToFav:function(e){
e&&e.preventDefault();
joost.favorites.add(this.channelId).addCallback(this,"_toggleFavorite").addErrback(this,function(){
this.btnAddToFavNode._setDisabled(false);
});
},_onAddToQueue:function(e){
e.preventDefault();
joost.queue.addContainer(this.channelId).addBoth(this,function(){
this.btnAddToQueueNode._setDisabled(false);
});
},_onPlayAll:function(e,_2e3){
e.preventDefault();
joost.queue.addAndPlayContainer(this.channelId,_2e3).addBoth(this,function(){
this.btnAddToQueueNode._setDisabled(false);
});
setTimeout(joost.scrollIntoView,200);
}});
dojo.declare("joost.panels._ContainerBox",joost.NlsWidget,{channelId:"",templateString:dojo.cache("joost.panels","templates/container_box.html","<div>\n    <div dojoAttachPoint='box'>\n        <div class='listing' dojoAttachPoint='listingBox'></div>\n        <div class='clear'></div>\n        <div class='pagination' dojoAttachPoint='pagerBox'></div>\n    </div>\n</div>\n"),count:0,start:0,index:0,api:null,postCreate:function(){
this.gotoPage(this.index);
},gotoPage:function(page){
this.index=page||0;
this.inflight&&this.inflight.cancel();
this._couldTakeASecond=setTimeout(dojo.hitch(this,function(){
this.throbber=1;
this.showThrobber();
dojo.style(this.listingBox,"opacity",0.35);
}),250);
this.parent._notify(this,page);
this.inflight=this.api({id:this.channelId,count:this.count,start:this.index*this.count}).addCallback(this,"_render").addErrback(this.parent,"channelVideoListFail").addBoth(this,function(){
delete this.inflight;
});
},showThrobber:function(){
if(!this._throbber){
this._throbber=this.adopt(joost.ui.Throbber).placeAt(this.listingBox,"before");
}
},hideThrobber:function(){
if(this._throbber){
this._throbber.destroy();
delete this._throbber;
}
},onPagesChanged:function(){
},pages:function(){
return this.pageCount||0;
},_render:function(data){
this._couldTakeASecond&&clearTimeout(this._couldTakeASecond);
if(this.throbber){
dojo.style(this.listingBox,"opacity",1);
this.hideThrobber();
this.thobber=null;
}
if(data&&data.items&&data.items.length){
this.setCount(data.count);
if(data.items.length<data.count){
this.pageCount=Math.ceil(data.count/this.count);
dojo.removeClass(this.pagerBox,"dnone");
if(!this.pager){
this.pager=this.adopt(joost.ui.Pager,{paged:this,currentPage:this.index}).placeAt(this.pagerBox);
}
}else{
dojo.addClass(this.pagerBox,"dnone");
}
dojo.empty(this.listingBox);
var _2e4=this.adopt(joost.ui.GridTableContainer,{title:this.i18n("Container","TITLESHOWS")}).placeAt(this.listingBox);
_2e4.rows=[];
dojo.forEach(data.items,function(item,i){
var t=this.adopt(joost.ui.GridTableContainerRow,{data:item,context:{id:item.id,label:item.title}});
if(t.hasSeasonEp){
_2e4.onHasSeasonEp();
}
_2e4.rows.push(t);
},this);
_2e4._buildTable();
dojo.forEach(_2e4.rows,function(r,i){
if(i<10){
r._onArrowClick();
}
});
joost.stateChange();
}else{
dojo.addClass(this.domNode,"dnone");
this.parent.channelVideoListFail(1);
}
},setCount:function(num){
}});
dojo.declare("joost.panels._ContainerVideos",joost.panels._ContainerBox,{label:"Videos",api:joost.api.epg.container,count:50});
}
if(!dojo._hasResource["joost.ui.SearchBar"]){
dojo._hasResource["joost.ui.SearchBar"]=true;
dojo.provide("joost.ui.SearchBar");
dojo.declare("joost.ui.SearchBar",[dijit.form.TextBox,joost.ui.TextBoxHelper],{templateString:dojo.cache("joost.ui","templates/searchbar.html","<div class=\"search\" dojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse\">\n  <span><input dojoAttachPoint=\"textbox,helperNode,focusNode\"\n               type=\"text\"/><a dojoAttachPoint=\"closeBtn\"\n                               dojoAttachEvent=\"onclick:_onClose\"\n                               href=\"#\" \n                               class=\"ui close sm\" \n                               style=\"display:none\"><span>Close</span></a></span>\n</div>\n"),helperText:"Search...",hasButton:false,_setHasButtonAttr:function(v){
v=!!v;
this.hasButton=v;
if(v){
if(this.goBtn){
return;
}
this.goBtn=this.adopt(joost.ui.Button,{label:"Go"}).placeAt(this.domNode);
}else{
if(this.goBtn){
this.orphan(this.goBtn,true);
this.goBtn=null;
}
}
},closeable:false,_setCloseableAttr:function(v){
dojo.style(this.closeBtn,"display",(v?"":"none"));
dojo.addClass(this.domNode,"filter close");
},_onClose:function(e){
e.preventDefault();
this.attr("value","");
this.focus();
}});
}
if(!dojo._hasResource["joost.panels.Queue"]){
dojo._hasResource["joost.panels.Queue"]=true;
dojo.provide("joost.panels.Queue");
dojo.declare("joost.panels.Queue",joost.Widget,{templateString:dojo.cache("joost.panels","templates/queue.html","<div>\n\n  <div class=\"header thinBorderBottom\">\n    <div class=\"left\">\n      <h2><span class=\"numItems\"><span dojoAttachPoint=\"countNode\">0</span></span>My Queue</h2>\n    </div>\n    <div class=\"right legalOnWhite\">\n      <ul class=\"inline\">\n        <!--<li><a href=\"#\"><span>Help</span></a></li>-->\n        <li><a href=\"#\" class=\"whiteButton settings\" dojoAttachEvent=\"onclick:_settings\"><span><em>Settings</em></span></a></li>\n      </ul> \n    </div>\n    <div class=\"clear\"></div>\n  </div>\n  <div class=\"contentStrip\">\n    <div class=\"left legalOnWhite\">\n      <ul class=\"inline\">\n        <li>\n          <!-- add 'disabled' class when queue order is unchanged / has not been modified by user -->\n          <a href=\"#\" class=\"updateOrder\" dojoAttachEvent=\"onclick:_updateOrder\"><span>Update Order</span></a>\n        </li>\n        <li>\n          <a href=\"#\" \n             class=\"whiteButton\" \n             title=\"Saves your queue as a custom playlist\"\n             dojoAttachEvent=\"onclick:_saveAsPlaylist\"><span><em>Save as Playlist</em></span></a>\n          <a href=\"#\" \n             class=\"whiteButton\" \n             title=\"Empty out your queue\"\n             dojoAttachEvent=\"onclick:_emptyQueue\"><span><em>Clear Queue</em></span></a>\n          <a href=\"#\" \n             class=\"whiteButton\" \n             title=\"Removes expired items from your queue\"\n             dojoAttachEvent=\"onclick:_removeExpired\"><span><em>Remove Expired</em></span></a>\n        </li>\n      </ul>\n    </div>\n    <div class=\"right\">\n      <div dojoType=\"joost.ui.SearchBar\"  \n           dojoAttachPoint=\"searchBox\"\n           helperText=\"Search Queue...\"></div>\n    </div>\n    <br class=\"clear\" />\n  </div>\n  \n  <table dojoType=\"joost.ui.GridTableQueue\" dojoAttachPoint=\"queueTable\"></table>\n  \n</div>\n"),widgetsInTemplate:true,count:0,_setCountAttr:function(n){
n=Math.floor(n);
this.countNode.innerHTML=n.toString();
},postCreate:function(){
joost.queue.addOnLoad(dojo.hitch(this,function(){
var len=joost.queue.length();
joost.queue.visit(dojo.hitch(this,"_visit"),0,len);
this.queueTable._buildTable();
this.attr("count",len);
}));
this.subscribe("/joost/queue","_countListener");
},_countListener:function(type,_2e5,_2e6){
if(type=="ADD"){
this.attr("count",_2e6);
}
if(type=="remove"){
this.attr("count",joost.queue.length());
}
},uninitialize:function(){
this.inherited(arguments);
},_visit:function(item,_2e7){
var row=this.adopt(joost.ui.GridTableQueueRow,{data:item.video,position:_2e7+1});
this.queueTable.rows.push(row);
},_settings:function(e){
e.preventDefault();
},_updateOrder:function(e){
e.preventDefault();
},_saveAsPlaylist:function(e){
e.preventDefault();
},_emptyQueue:function(e){
e.preventDefault();
joost.queue._reset();
},_removeExpired:function(e){
e.preventDefault();
}});
}
if(!dojo._hasResource["joost.ui.Brick"]){
dojo._hasResource["joost.ui.Brick"]=true;
dojo.provide("joost.ui.Brick");
dojo.declare("joost.ui.Brick",joost.Widget,{templateString:dojo.cache("joost.ui","templates/brick.html","<div class=\"brick\">  \n  <div class=\"header\">\n    <div class=\"left\"><h3>${title}</h3></div>\n    <div class=\"right\" dojoAttachPoint=\"tabNode\"></div>\n  </div>\n  <!-- brick contents would go here -->\n <div dojoAttachPoint=\"footerNode\" class=\"footer\" style=\"display:none\"></div>\n</div>\n"),size:"",extraClass:"",constructor:function(args,node){
this._argTabs=args.tabs;
this.tabs=[];
},_setExtraClassAttr:function(v){
dojo.removeClass(this.domNode,this.extraClass);
this.extraClass=v;
dojo.addClass(this.domNode,this.extraClass);
},postCreate:function(){
if(this._argTabs){
dojo.forEach(this._argTabs,this._addTab,this);
}
this._argTabs=null;
this._updateTabs();
},_updateTabs:function(){
var t=this.tabs;
if(t.length==0){
this._hideTabs();
this._hideDropdown();
}else{
if(t.length==1){
this._hideTabs();
this._hideDropdown();
}else{
if(t.length==2){
this._hideDropdown();
this._showTabs();
}else{
this._hideTabs();
this._showDropdown();
}
}
}
},_addTab:function(tab){
if(!tab){
throw new Error("Cannot add a null tab");
}
if(!dojo.isFunction(tab.pages)||!dojo.isFunction(tab.gotoPage)){
throw new Error("A tab must support pages and gotoPage");
}
this.tabs.push(tab);
joost.hide(tab.domNode);
tab.placeAt(this.footerNode,"before");
if(!this.currentTab){
this._setCurrent(tab);
}
},addTab:function(tab){
this._addTab(tab);
this._updateTabs();
return this;
},_showTabs:function(){
dojo.forEach(this.tabs,function(n,i){
var sel=(n===this.currentTab);
var a=dojo.place("<a class=\"brickTab"+(sel?" selected":"")+"\" href=\"#\" rel=\""+i+"\"><span><em>"+n.title+"</em></span></a> ",this.tabNode);
},this);
this._tabClickCon=this.connect(this.tabNode,"onclick","_onTabClick");
},_hideTabs:function(){
if(this._tabClickCon){
this.disconnect(this._tabClickCon);
this._tabClickCon=null;
}
dojo.empty(this.tabNode);
},_showDropdown:function(){
var t=this.currentTab;
var _2e8=dojo.map(this.tabs,function(n){
return {label:n.title,selected:n==t};
});
this._dropdown=joost.ui.createDropDown({menuItems:_2e8,label:this.currentTab.title,layoutClass:"brickTab selected"}).placeAt(this.tabNode);
this._addItem(this._dropdown);
this._ddListener=this.connect(this._dropdown,"onChange","_setCurrentByName");
},_hideDropdown:function(){
if(this._dropdown){
this.disconnect(this._ddListener);
this._ddListener=null;
this._dropdown.destroyRecursive();
this._dropdown=null;
}
},_setCurrentByName:function(name){
if(this.currentTab.title==name){
return;
}
for(var i=0;i<this.tabs.length;i++){
if(this.tabs[i].title==name){
this._setCurrent(this.tabs[i]);
return;
}
}
},_setCurrent:function(t){
if(this.currentTab){
joost.hide(this.currentTab.domNode);
}
this.currentTab=t;
joost.show(this.currentTab.domNode);
this._resetPager();
},_resetPager:function(){
if(this._pager){
this._pager.destroyRecursive();
this._pager=null;
}
var t=this.currentTab;
if(t.pages()>1||t.paged){
this._pager=this.adopt(joost.ui.Pager,{paged:t,type:"dot"}).placeAt(this.footerNode);
t.gotoPage(0);
joost.show(this.footerNode);
}else{
joost.hide(this.footerNode);
}
},_onTabClick:function(e){
e.preventDefault();
var _2e9=e.target;
var _2ea=(_2e9.tagName||"").toLowerCase();
while(_2ea!=="a"&&_2e9!==e.currentTarget){
_2e9=_2e9.parentNode;
_2ea=(_2e9.tagName||"").toLowerCase();
}
if(_2e9==e.currentTarget){
return;
}
dojo.query(".selected",this.tabNode).removeClass("selected");
dojo.addClass(_2e9,"selected");
var _2eb=this.tabs[parseInt(dojo.attr(_2e9,"rel"),10)||0];
this._setCurrent(_2eb);
},_onDdClick:function(el){
}});
dojo.declare("joost.ui.AdBrick",joost.Widget,{templateString:dojo.cache("joost.ui","templates/brick_ad.html","<div class=\"relatedAd\">\n  <div class=\"adHolder\">\n    <div class=\"sponsor\"></div>\n    <div class=\"ad\">\n      <img dojoAttachPoint=\"adNode\" src=\"${adSrc}\" width=\"300\" height=\"60\" alt=\"Advertisement\" />\n    </div>\n  </div>\n  <div dojoType=\"joost.ui.Brick\" dojoAttachPoint=\"brick\" title=\"${title}\"></div>\n</div>        \n"),widgetsInTemplate:true,brick:null,adSrc:dojo.moduleUrl("joost","resources/images/_dummy_300x60.gif").toString(),title:"",constructor:function(args,node){
if(args.tabs){
this._argTabs=args.tabs;
}
},postCreate:function(){
this.inherited(arguments);
if(this._argTabs){
dojo.forEach(this._argTabs,this.brick.addTab,this.brick);
this._argTabs=null;
}
},_setAdSrcAttr:function(src){
dojo.attr(this.adNode,"src",src);
this.adSrc=src;
},_setTitleAttr:function(t){
return this.brick.attr("title",t);
},_getTitleAttr:function(){
return this.brick.attr("title");
},addTab:function(tab){
return this.brick.addTab(tab);
}});
}
if(!dojo._hasResource["joost.brick._base"]){
dojo._hasResource["joost.brick._base"]=true;
dojo.provide("joost.brick._base");
dojo.declare("joost.brick.Panel",joost.Widget,{items:null,heightClass:"standard",constructor:function(args,node){
this._thumbs=[];
},buildRendering:function(){
this.domNode=dojo.create("div",{"class":"content "+this.heightClass});
if(this.srcNodeRef){
dojo.place(this.domNode,this.srcNodeRef,"replace");
this.srcNodeRef=null;
}
this.listNode=dojo.place("<ul class='brickCol'></ul>",this.domNode);
},appendThumb:function(_2ec){
var li=dojo.place("<li></li>",this.listNode);
_2ec.placeAt(li);
this._thumbs.push(_2ec);
},destroyThumbs:function(){
dojo.forEach(this._thumbs,function(t){
t.destroy();
});
this._thumbs=[];
dojo.empty(this.listNode);
},onPagesChanged:function(){
},perPage:5,pages:function(){
return this.items&&this.items.length>0?Math.ceil(Math.max(1,this.items.length/this.perPage)):1;
},paged:true,gotoPage:function(pg){
if(this._isLoading){
return;
}
var _2ed=this.pages();
pg=Math.min(Math.max(0,pg),_2ed-1);
var _2ee=this.perPage*pg;
this.destroyThumbs();
if(!this.items){
return;
}
for(var i=_2ee,l=this.items.length;i<Math.min(_2ee+this.perPage,_2ed*this.perPage)&&i<l;i++){
this.appendThumb(this.createThumb(this.items[i]));
}
},showThrobber:function(){
if(!this._throbber){
this._throbber=this.adopt(joost.ui.Throbber).placeAt(this.listNode,"before");
}
},hideThrobber:function(){
if(this._throbber){
this._throbber.destroy();
delete this._throbber;
}
},_loading:function(){
this._isLoading=true;
this.showThrobber();
},_loaded:function(r){
this.hideThrobber();
this._isLoading=false;
this._loader=null;
}});
}
if(!dojo._hasResource["joost.brick.Related"]){
dojo._hasResource["joost.brick.Related"]=true;
dojo.provide("joost.brick.Related");
dojo.declare("joost.brick._Related",null,{title:"Related Videos",postCreate:function(){
this.inherited(arguments);
var args=dojo.mixin({publicId:this.publicId},this._panelArgs);
dojo.forEach(this._tabClasses,function(n){
this.addTab(this.adopt(n,args));
},this);
},publicId:"",_setPublicIdAttr:function(v){
this.publicId=v;
dojo.forEach(this.tabs||this.brick.tabs,function(t){
t.attr("publicId",v);
});
}});
dojo.declare("joost.brick.RelatedPanel",joost.brick.Panel,{perPage:3,paged:true,constructor:function(args,node){
this._supportingWidgets=[];
this._thumbOnly=args.thumbOnly||false;
},publicId:"",_setPublicIdAttr:function(id){
if(!id){
this._error();
return;
}
this.publicId=id;
this._loader=this._fetch();
this._loading();
this._loader.addBoth(this,"_loaded");
this._loader.addCallback(this,"_load");
this._loader.addErrback(this,"_error");
},_load:function(r){
this.items=r.items;
this.onPagesChanged();
this.gotoPage(0);
return r;
},_error:function(err){
console.error(err);
return err;
}});
dojo.declare("joost.brick._AdPanel",null,{buildRendering:function(){
this.listNode=this.domNode=dojo.create("ul",{"class":"content brickInline "+this._containerClass});
if(this.srcNodeRef){
dojo.place(this.domNode,this.srcNodeRef,"replace");
this.srcNodeRef=null;
}
},showThrobber:function(){
this.inherited(arguments);
this._throbberWrapper=dojo.place("<li class='throbber'></li>",this.listNode);
this._throbber.placeAt(this._throbberWrapper);
},hideThrobber:function(){
this.inherited(arguments);
if(this._throbberWrapper){
dojo.destroy(this._throbberWrapper);
delete this._throbberWrapper;
}
}});
dojo.declare("joost.brick.RelatedVideoPanel",joost.brick.RelatedPanel,{title:"Videos",_fetch:function(){
return joost.api.epg.related({id:this.publicId,start:0,count:9});
},createThumb:function(v){
return this.adopt(joost.ui.VideoThumbnail,{data:v,size:"small",isThumbOnly:this._thumbOnly});
},_containerClass:"videos"});
dojo.declare("joost.brick.RelatedVideoPanelAd",[joost.brick.RelatedVideoPanel,joost.brick._AdPanel],{});
dojo.declare("joost.brick.RelatedWithAd",[joost.ui.AdBrick,joost.brick._Related],{_panelArgs:{thumbOnly:true},_tabClasses:[joost.brick.RelatedVideoPanelAd]});
dojo.declare("joost.brick.Related",[joost.ui.Brick,joost.brick._Related],{_panelArgs:{thumbOnly:false},_tabClasses:[joost.brick.RelatedVideoPanel]});
}
if(!dojo._hasResource["joost.brick.Video"]){
dojo._hasResource["joost.brick.Video"]=true;
dojo.provide("joost.brick.Video");
dojo.declare("joost.brick.VideoChannels",joost.ui.Brick,{title:"Channels this appears in",constructor:function(args,node){
if(args.data){
this.data=args.data;
this.publicId=args.data.id;
}
},publicId:"",_setPublicIdAttr:function(v){
if(v!=this.videoId){
this.publicId=v;
if(this._tabs&&this._tabs[0]){
this._tabs[0].attr("publicId",v);
}
}
},postCreate:function(){
this.inherited(arguments);
var args={};
if(this.data){
args.data=this.data;
}else{
if(this.publicId){
args.publicId=this.publicId;
}
}
this.addTab(this.adopt(joost.brick.VideoChannelsPanel,args));
}});
dojo.declare("joost.brick.VideoChannelsPanel",joost.brick.Panel,{perPage:3,paged:true,constructor:function(args,node){
if(args.data){
this.data=args.data;
this.publicId=args.data.id;
}
},createThumb:function(data){
return this.adopt(joost.ui.ChannelThumbnail,{data:data,size:"small"});
},publicId:"",_setPublicIdAttr:function(v){
if(v!==this.publicId){
this.publicId=v;
}
},postCreate:function(){
this.inherited(arguments);
if(this.data){
this.items=this.data.containers;
this.onPagesChanged();
this.gotoPage(0);
}else{
if(this.publicId!=""){
this._loader=joost.api.epg.containersForVideo({id:this.publicId});
this._loading();
this._loader.addBoth(this,"_loaded");
this._loader.addCallback(this,"_load");
this._loader.addErrback(this,"_error");
}
}
},_load:function(r){
this.items=r.items;
this.onPagesChanged();
this.gotoPage(0);
},_error:function(err){
return err;
}});
}
if(!dojo._hasResource["joost.panels.ShoutListing"]){
dojo._hasResource["joost.panels.ShoutListing"]=true;
dojo.provide("joost.panels.ShoutListing");
dojo.declare("joost.panels.ShoutListing",joost.Widget,{templateString:dojo.cache("joost.panels","templates/shout_listing.html","<div>\n  <div class=\"empty\" style=\"display:none\">Sorry, no shouts yet!</div>\n  <table class=\"shouts nonempty\">\n    <tbody dojoAttachPoint=\"shouts\" dojoAttachEvent=\"onclick:_onBodyClick\">\n    </tbody>\n  </table>\n  <div class=\"nonempty pagination\" dojoAttachPoint=\"pagerContainer\">\n    <div class=\"nonempty\" dojoAttachPoint=\"pager\" dojoType=\"joost.ui.Pager\"></div>\n  </div>\n</div>\n"),"class":"shouts",paged:true,widgetsInTemplate:true,constructor:function(){
this._index=0;
this._count=0;
this._perPage=10;
},postCreate:function(){
this.inherited(arguments);
this.pager.attr("paged",this);
},uninitialize:function(){
this._emptyNode&&dojo.destroy(this._emptyNode);
},pages:function(){
return this._count>0?Math.ceil(Math.max(1,this._count/this._perPage)):1;
},gotoPage:function(pg){
this._index=pg*this._perPage;
this._fetch();
},onPagesChanged:function(){
},publicId:"",_setPublicIdAttr:function(v){
this.publicId=v;
this._fetch();
},_fetch:function(){
this._loader=joost.api.shouts.getVideo({id:this.publicId,start:this._index,count:this._perPage}).addCallback(this,"_load").addBoth(this,"_complete");
},_load:function(r){
this._count=r.count;
this._items=r.items;
this.onPagesChanged();
this._render();
},_render:function(){
dojo.empty(this.shouts);
if(this._count==0){
this._renderEmpty();
return;
}
this.query(".empty").style("display","none");
this.query(".nonempty").style("display","");
var _2ef=[];
dojo.forEach(this._items,function(n){
if(!this[n.timestamp]){
this[n.timestamp]=[];
}
this[n.timestamp].push(n);
},_2ef);
var buf="";
for(var ts in _2ef){
this._renderSet(_2ef[ts]);
}
},_renderEmpty:function(){
this.query(".empty").style("display","block");
this.query(".nonempty").style("display","none");
},_itemHeaderTemplate:dojo.cache("joost.panels","templates/shout_header.html","<th scope=\"rowgroup\" rowspan=\"${rows}\" class=\"clickable\" timestamp=\"${rawtime}\">${timecode}</th>\n"),_itemTemplate:"<tr>${itemHeader}${itemBody}</tr>",_itemBodyTemplate:dojo.cache("joost.panels","templates/shout_body.html","<td>\n    <div class=\"emoticon ${cls}\"><span>${name}</span></div>\n</td>\n<td>\n    <div class=\"emoticon bubble\"><span>${name}</span></div>\n</td>\n<td>\n    <p><a class=\"boldLink clickable\" href=\"/users/${authorId}\" rel=\"profile\" uid=\"${authorId}\">${authorName}:</a> ${body}</p>\n    <p class=\"secondary\">${created}</p>\n</td>\n"),_renderSet:function(_2f0){
var head=dojo.string.substitute(this._itemHeaderTemplate,{rows:_2f0.length,timecode:joost.formatDuration(_2f0[0].timestamp),rawtime:_2f0[0].timestamp});
dojo.forEach(_2f0,function(item){
var s=dojo.string.substitute(this._itemTemplate,{itemHeader:head,itemBody:this._renderBody(item)});
dojo.place(s,this.shouts);
},this);
},_renderBody:function(item){
return dojo.string.substitute(this._itemBodyTemplate,{cls:item.category.toLowerCase(),name:item.category,authorId:item.owner.identities.JOOSTNAME||item.owner.id,authorName:item.owner.displayName,body:joost.deXSS(item.body),created:joost.formatDatePast(item.date)});
},_complete:function(){
this._loader=null;
},_onBodyClick:function(e){
var _2f1=e.target;
while(!dojo.hasClass(_2f1,"clickable")&&_2f1!=this.shouts){
_2f1=_2f1.parentNode;
}
if(!dojo.hasClass(_2f1,"clickable")){
return;
}
e.preventDefault();
if(dojo.hasClass(_2f1,"boldLink")){
var _2f2=dojo.attr(_2f1,"uid");
joost.sitemap.go("/profile",{username:_2f2});
}else{
}
}});
}
if(!dojo._hasResource["joost.panels.Video"]){
dojo._hasResource["joost.panels.Video"]=true;
dojo.provide("joost.panels.Video");
dojo.declare("joost.panels.Video",joost.panels.Base,{widgetsInTemplate:true,templateString:dojo.cache("joost.panels","templates/video.html","<div>\n  <div class=\"info\">\n    <div dojoAttachPoint=\"thumbnailNode\"></div>\n    <div class=\"desc\">\n      <h2 dojoAttachPoint=\"titleNode\"></h2>\n      <span class=\"secondary\" dojoAttachPoint=\"genreNode\"></span>\n      <ul class=\"smallH secondary\">\n        <li dojoattachpoint=\"addedNode\"></li>\n        <li dojoattachpoint=\"expiresNode\"></li>\n      </ul>\n      <div class=\"bottom\">\n        <a href=\"#\" dojoAttachPoint=\"btnAddToFavNode\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick:_onAddToFav\" isDisabledOnClick=\"true\" iconClass=\"favorite\" style=\"display:none\">${strings.Video.ADDTOFAV}</a>\n        <span dojoAttachPoint=\"btnAddedToFavNode\" dojoType=\"joost.ui.ButtonFeedback\" iconClass=\"favorite\" style=\"display:none\">${strings.Video.ADDEDTOFAV}</span>\n        <div class=\"right\" dojoAttachPoint=\"socialNode\"></div>\n      </div>\n      <br class=\"clear\"/>\n    </div>\n  </div>\n\n  <div dojoAttachPoint=\"sectionTabsNode\"></div>\n  \n  <div dojoAttachPoint=\"tabsNode\" id=\"sectionContent\">\n    <div dojoAttachPoint=\"tabOverviewNode\">\n      <div class=\"videoDetails\">\n        <div style=\"display:none\" dojoType=\"joost.ui.Box\" color=\"gray\" dojoAttachPoint=\"tabOverviewViewsNode\">\n          <span>${strings.Video.TABOVERVIEWVIEWS}</span>\n          <strong dojoAttachPoint=\"viewsNode\">0</strong>\n        </div>\n        <div style=\"display:none\" dojoType=\"joost.ui.Box\" color=\"gray\" dojoAttachPoint=\"tabOverviewFavoritedNode\">-</div>\n        <div style=\"display:none\" dojoType=\"joost.ui.Box\" color=\"gray\" dojoAttachPoint=\"tabOverviewReviewNode\">-</div>\n      </div>\n      <div dojoAttachPoint=\"tabOverviewDescriptionNode\" class=\"videoDescription\"></div>\n      <div class=\"videoDetails\">\n        <ul class=\"copyright smallH\" dojoAttachPoint=\"tabOverviewDetailsNode\">\n        </ul>\n      </div>\n      <div dojoAttachPoint=\"tabOverviewBricksNode\"></div>\n    </div>\n    <div dojoAttachPoint=\"tabShoutsNode\"><div dojoType=\"joost.ui.Throbber\"></div></div>\n    <div dojoAttachPoint=\"tabReviewsNode\"><div dojoType=\"joost.ui.Throbber\"></div></div>\n  </div>\n\n</div>\n"),bundles:[{module:"joost.panels",bundle:"Video"},{module:"joost.ui",bundle:"Button"}],header:"",videoShoutsPerPage:20,videoShoutsStart:0,views:0,rating:-1,favorites:0,id:"videoInfo",selectedTab:"overview",startup:function(){
this.inherited(arguments);
if(this.data){
this._ready(this.data);
}else{
joost.api.epg.singleVideo({id:this.publicId}).addCallback(this,"_ready");
}
this.subscribe("/joost/event/review_added","_extrasListener");
this.subscribe("/joost/event/favorite_added","_extrasListener");
this.subscribe("/joost/provide-state","_provideState");
this.subscribe("/joost/receive-state","_receiveState");
},_extrasListener:function(v,id){
if(this.data&&this.videoId==v.id){
this._extras(joost.api.epg.videoExtras({id:this.videoId}));
}
},_provideState:function(_2f3){
if(this.selectedTab==="overview"&&_2f3.query.tab){
delete _2f3.query.tab;
}else{
if(!(this.selectedTab==="overview")){
_2f3.query.tab=this.selectedTab;
}
}
},_receiveState:function(_2f4){
var n=_2f4.query.tab||"overview";
if(n!==this.selectedTab){
this.sectionTabs.selectChild(n);
}
},_ready:function(v){
this.data=v;
if(v){
this.videoId=v.id;
this.title=v.title;
if(v.containers[0]){
this.channelId=v.containers[0].id;
this.channel=v.containers[0].title;
}
this.channels=v.containers;
this.genres=v.genres;
this.description=v.description;
this.expires=v.validTo.valueOf();
this.added=v.publicationDate.valueOf();
this.length=v.duration;
this.src=v.images.thumbnail;
this.full=!v.clip;
this.logo=v.images.logo;
this.publisher=v.publisher;
this.languageCode=v.languageCode;
this.ageRating=v.ageRating;
}
var now=+(new Date());
if(this.expires-now<=0){
this.isExpired=true;
}
if(this.isExpired||this.isGeoRestricted){
this.isNotQueueAble=true;
}
this._extras(joost.api.epg.videoExtras({id:this.videoId}));
dojo.attr(this.domNode,"title","");
var t=this.adopt(joost.ui.VideoThumbnail,{data:this.data,size:"large",isThumbOnly:true}).placeAt(this.thumbnailNode,"replace");
this.titleNode.innerHTML=this.title;
dojo.forEach(this.genres,function(g,i){
if(i){
dojo.create("span",{innerHTML:", "},this.genreNode);
}
this.adopt(joost.ui.Link,{label:g.name,href:joost.link("genre",g.id),onClick:function(e){
e.preventDefault();
joost.sitemap.go(g.id);
}}).placeAt(this.genreNode);
},this);
this.addedNode.innerHTML=this.i18n("Video","VIDEOADDED",{when:joost.formatDatePast({timestamp:this.added})});
if(this.isExpired){
this.expiresNode.innerHTML=this.i18n("Video","VIDEOEXPIRED");
}else{
this.expiresNode.innerHTML=this.i18n("Video","VIDEOEXPIRES",{when:joost.formatDateFuture({timestamp:this.expires})});
}
this._setupFavorite();
this.adopt(joost.ui.Social,{publicId:this.videoId,title:this.title,venue:(this.genres&&this.genres.length>0?this.genres[0].id.split("/")[1]:"")}).placeAt(this.socialNode);
this.sectionTabs=this.adopt(joost.ui.SectionTabs,{type:"container",selected:this.selectedTab,tabs:[{label:this.i18n("Video","TABOVERVIEW"),onTabClick:this._tabsLoadOverview,tabLabel:"overview"},{label:this.i18n("Video","TABSHOUTS"),onTabClick:this._tabsLoadShouts,tabLabel:"shouts"},{label:this.i18n("Video","TABREVIEWS"),onTabClick:this._tabsLoadReviews,tabLabel:"reviews"}]}).placeAt(this.sectionTabsNode);
this.connect(this.sectionTabs,"onTabClick","_onTabClick");
this.sectionTabs.triggerSelected();
},_setViewsAnim:null,_setViewsAttr:function(v){
if(v==this.views){
return;
}
var prev=this.views;
this.views=v;
if(this._setViewsAnim){
this._setViewsAnim.stop();
}
var anim=this._setViewsAnim=joost.fx.counter({countStart:prev,countEnd:this.views,countRate:1000,minDuration:1000,maxDuration:3000,node:this.viewsNode});
var _2f5=this.connect(anim,"onEnd",function(n){
this._setViewsAnim=null;
this.disconnect(_2f5);
});
anim.play();
dojo.style(this.tabOverviewViewsNode.domNode,"display","");
},_setRatingAttr:function(v){
this.rating=v;
this.tabOverviewReviewNode.containerNode.innerHTML=this.i18n("Video","TABOVERVIEWREVIEW",{review:isNaN(this.rating)||this.rating<1?"N/A":dojo.number.format(this.rating)});
dojo.style(this.tabOverviewReviewNode.domNode,"display","");
},_setFavoritesAttr:function(v){
this.favorites=v;
this.tabOverviewFavoritedNode.containerNode.innerHTML=this.i18n("Video","TABOVERVIEWFAVORITED",{favorited:isNaN(this.favorites)?0:dojo.number.format(this.favorites)});
dojo.style(this.tabOverviewFavoritedNode.domNode,"display","");
},_extras:function(def){
def.addCallback(this,function(v){
if(!v){
return;
}
this.attr("views",v.viewCount);
this.attr("favorites",v.favoriteCount);
this.attr("rating",v.averageRating);
});
},_onTabClick:function(e,cb,tab){
try{
cb.apply(this);
this.selectedTab=tab.tabLabel;
joost.stateChange();
}
catch(e){
}
},_tabsHideAll:function(){
var hide=joost.hide;
hide(this.tabOverviewNode);
hide(this.tabShoutsNode);
hide(this.tabReviewsNode);
},_tabsLoadOverview:function(){
this._tabsHideAll();
joost.show(this.tabOverviewNode);
if(this.views&&this.favorited&&this.rating){
this.attr("views",this.views);
this.attr("favorites",this.favorited);
this.attr("rating",this.rating);
}
this.tabOverviewDescriptionNode.innerHTML=joost.formatP(this.description);
dojo.empty(this.tabOverviewDetailsNode);
if(this.publisher){
dojo.create("li",{innerHTML:this.publisher},this.tabOverviewDetailsNode);
}
if(this.languageCode){
dojo.create("li",{innerHTML:this.i18n("Video","TABOVERVIEWDETAILLANGUAGE",{languageCode:this.languageCode})},this.tabOverviewDetailsNode);
}
if(this.ageRating){
dojo.create("li",{innerHTML:this.i18n("Video","TABOVERVIEWDETAILAGERATING",{ageRating:this.ageRating})},this.tabOverviewDetailsNode);
}
dojo.empty(this.tabOverviewBricksNode);
if(this.channels.length>0){
this.adopt(joost.brick.VideoChannels,{publicId:this.videoId}).placeAt(this.tabOverviewBricksNode);
}
this.adopt(joost.brick.Related,{publicId:this.videoId,extraClass:"lastCol"}).placeAt(this.tabOverviewBricksNode);
},_tabsLoadShouts:function(){
this._tabsHideAll();
joost.show(this.tabShoutsNode);
if(!this.tabShoutsWidget){
this.tabShoutsWidget=this.adopt(joost.panels.ShoutListing,{publicId:this.videoId}).placeAt(this.tabShoutsNode,"only");
}
},_tabsLoadReviews:function(){
this._tabsHideAll();
joost.show(this.tabReviewsNode);
if(!this.tabReviewsWidget){
this.adopt(joost.ui.ReviewTab,{itemId:this.videoId}).placeAt(this.tabReviewsNode,"only");
}
},_getReviews:function(){
this._buildReviews();
},_buildReviews:function(){
this.adopt(joost.ui.ReviewTabVideo,{itemId:this.videoId}).placeAt(this.tabReviewsNode,"only");
},_setupFavorite:function(){
this._favLoad=joost.favorites.require().addCallback(this,function(_2f6){
if(this.videoId in _2f6){
this.isFavorited=true;
}
this._updateFavorites();
});
this._addItem(this._favLoad);
},_toggleFavorite:function(){
this.isFavorited=!this.isFavorited;
this._updateFavorites();
},_updateFavorites:function(){
joost.hide(this.btnAddToFavNode.domNode);
joost.hide(this.btnAddedToFavNode.domNode);
joost.show(this[(this.isFavorited?"btnAddedToFavNode":"btnAddToFavNode")].domNode);
},_onAddToFav:function(e){
e.preventDefault();
joost.favorites.add(this.videoId).addCallback(this,"_toggleFavorite").addErrback(this,function(){
this.btnAddToFavNode._setDisabled(false);
});
},poke:function(args){
if(args&&args.publicId&&args.publicId==this.videoId){
if((args.tab||"overview")!==this.selectedTab){
this.sectionTabs.selectChild(args.tab);
}
return true;
}
return false;
}});
}
if(!dojo._hasResource["joost.ui.UiGroupHeader"]){
dojo._hasResource["joost.ui.UiGroupHeader"]=true;
dojo.provide("joost.ui.UiGroupHeader");
dojo.declare("joost.ui.UiGroupHeader",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/ui_groupheader.html","<div class=\"expHeader\">\n  <div dojoType=\"joost.ui.Box\" color=\"gray\">\n    <span dojoAttachPoint=\"collapseNode\"><a href=\"#\" dojoAttachEvent=\"onClick:_expand\" dojoType=\"joost.ui.ButtonUi\" iconClass=\"ui lrg exp\">${strings.Button.EXPAND}</a></span>\n    <span dojoAttachPoint=\"expandNode\"><a href=\"#\" dojoAttachEvent=\"onClick:_collapse\" dojoType=\"joost.ui.ButtonUi\" iconClass=\"ui lrg col\">${strings.Button.COLLAPSE}</a></span>\n    <h3 dojoAttachPoint=\"titleNode\"></h3>\n    <div class=\"textContent\" dojoAttachPoint=\"containerNode\"></div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],widgetsInTemplate:true,attributeMap:{title:{node:"titleNode",type:"innerHTML"}},isExpanded:false,targetNode:null,postCreate:function(){
this._setButton();
},_setButton:function(){
joost.hide(this.expandNode);
joost.hide(this.collapseNode);
joost.show(this[this.isExpanded?"expandNode":"collapseNode"]);
},_expand:function(e){
this.isExpanded=true;
this._setButton();
this.expand(this.targetNode);
},expand:function(){
},_collapse:function(e){
this.isExpanded=false;
this._setButton();
this.collapse(this.targetNode);
},collapse:function(){
}});
dojo.declare("joost.ui.GroupContainer",joost.ui.UiGroupHeader,{expand:function(){
dojo.style(this.containerNode,"display","block");
},collapse:function(){
dojo.style(this.containerNode,"display","none");
},postCreate:function(){
!this.isExpanded&&this.collapse();
this.inherited(arguments);
dojo.place("<br class='clear'>",this.containerNode,"after");
}});
}
if(!dojo._hasResource["joost.panels.Search"]){
dojo._hasResource["joost.panels.Search"]=true;
dojo.provide("joost.panels.Search");
dojo.declare("joost.panels.Search",joost.panels.Base,{searchFails:0,searchWins:0,numSearches:2,query:"",templateString:dojo.cache("joost.panels","templates/search.html","<div>\n    <div dojoAttachPoint=\"searchBox\">\n        <h2 dojoAttachPoint=\"headerNode\">Searching for \"<span dojoAttachPoint=\"queryString\">${query}</span>\" ...</h2>\n        \n        <div dojoAttachPoint=\"tabs\"></div>\n        \n        <div dojoAttachPoint=\"resultsNode\" class=\"dnone\">\n            <div class=\"listing\" dojoAttachPoint=\"channelResults\"></div>\n            <div class=\"listing\" dojoAttachPoint=\"videoResults\"></div>\n        </div>\n        \n    </div>\n    <div dojoAttachPoint=\"nosearchNode\" class=\"dnone\">\n        <h2>Search</h2>\n        <div dojoAttachPoint=\"advancedSearchBox\"></div>\n    </div>\n</div>\n"),constructor:function(args){
args=args||{};
this.query=args.q||"";
this.videoPage=args.vp||0;
this.channelPage=args.cp||0;
},postCreate:function(){
if(!this.query){
this._showPane(false);
}
this.adopt(joost.panels._SearchInput,{helpText:"Search For...",parent:this}).placeAt(this.nosearchNode);
this.subscribe("/joost/receive-state","poke");
this.subscribe("/joost/provide-state",function(args){
var q=args.query;
if(this.query==q.query||this.query==joost.deXSS(q.query)){
return;
}
q.q=this.query;
q.vp=this.videoPage;
q.cp=this.channelPage;
q.noScroll=true;
});
},_showPane:function(_2f7){
dojo.toggleClass(this.nosearchNode,"dnone",_2f7);
dojo.toggleClass(this.searchBox,"dnone",!_2f7);
},_setQueryAttr:function(_2f8){
this.searchWins=this.searchFails=0;
this.query=_2f8;
this.safeQuery=joost.deXSS(_2f8);
if(!_2f8.length){
this._showPane(false);
return;
}
this.queryString.innerHTML="<span>"+this.safeQuery+"</span>";
this._showPane(true);
joost.trackEvent("search","query",this.query);
this._videoSearch&&this.orphan(this._videoSearch,true);
this._videoSearch=this.adopt(joost.panels._VideoSearch,{query:this.query,parent:this,index:this.videoPage}).placeAt(this.videoResults);
this._channelSearch&&this.orphan(this._channelSearch,true);
this._channelSearch=this.adopt(joost.panels._ChannelSearch,{query:this.query,parent:this,index:this.channelPage}).placeAt(this.channelResults);
},searchWin:function(){
++this.searchWins;
this._checkState();
},_checkState:function(){
if(!this._titlefadeDone&&this.searchWins+this.searchFails>=this.numSearches){
dojo.fadeOut({node:this.headerNode,onEnd:dojo.hitch(this,function(){
this.headerNode.innerHTML="Search Results for \"<span>"+this.safeQuery+"<span>\"";
dojo.anim(this.headerNode,{opacity:1});
dojo.removeClass(this.resultsNode,"dnone");
}),duration:120}).play();
this._titlefadeDone=true;
}
},searchFail:function(_2f9){
if(!_2f9||typeof _2f9=="number"){
this.searchFails+=_2f9||1;
if(this.searchFails>=this.numSearches){
dojo.place("<p>No Results Found.</p>",this.resultsNode,"before");
}
}
this._checkState();
},_notify:function(_2fa,page){
if(_2fa==this._channelSearch){
this.channelPage=page;
}else{
if(_2fa==this._videoSearch){
this.videoPage=page;
}
}
},_togglePane:function(n){
n&&dojo.toggleClass(n,"dnone",!dojo.hasClass(n,"dnone"));
},poke:function(args){
args=args||{};
var _2fb=(args.q===this.query||joost.deXSS(args.q)===this.query);
if(_2fb){
this.searchWins=this.searchFails=0;
if(args.vp!==this.videoPage&&this._videoSearch){
this._videoSearch.pager&&this._videoSearch.pager.attr("currentPage",args.vp);
}
if(args.cp!==this.channelPage&&this._channelSearch){
this._channelSearch.pager&&this._channelSearch.pager.attr("currentPage",args.cp);
}
}else{
}
return _2fb;
}});
dojo.declare("joost.panels._SearchBox",joost.Widget,{label:"",query:"",templateString:dojo.cache("joost.panels","templates/search_box.html","<div>\n    <div dojoAttachPoint='box'>\n        <div class='listing' dojoAttachPoint='thumbBox'></div>\n        <div class='clear'></div>\n        <div class='pagination' dojoAttachPoint='pagerBox'></div>\n    </div>\n</div>\n"),count:0,start:0,index:0,api:null,postCreate:function(){
var t=dojo.hitch(this.parent,"_togglePane",this.box);
this.boxHeader=this.adopt(joost.ui.UiGroupHeader,{title:this.label,isExpanded:true,expand:t,collapse:t}).placeAt(this.box,"before");
dojo.style(this.boxHeader.containerNode,"display","none");
this._pageThumbs=[];
this.gotoPage(this.index);
},gotoPage:function(page){
this.index=page||0;
this.inflight&&this.inflight.cancel();
this._couldTakeASecond=setTimeout(dojo.hitch(this,function(){
this.throbber=1;
dojo.style(this.thumbBox,"opacity",0.35);
}),250);
this.parent._notify(this,page);
this.inflight=this.api({q:this.query,count:this.count,start:this.index*this.count}).addCallback(this,"_render").addErrback(this.parent,"searchFail").addBoth(this,function(){
delete this.inflight;
});
},onPagesChanged:function(){
},pages:function(){
return this.pageCount||0;
},_render:function(data){
this._couldTakeASecond&&clearTimeout(this._couldTakeASecond);
if(this.throbber){
dojo.style(this.thumbBox,"opacity",1);
this.thobber=null;
}
dojo.forEach(this._pageThumbs,function(_2fc){
this.orphan(_2fc,true);
},this);
this._pageThumbs=[];
if(data&&data.items&&data.items.length){
this.parent.searchWin();
this.setCount(data.count);
if(data.items.length<data.count){
this.pageCount=Math.ceil(data.count/this.count);
dojo.removeClass(this.pagerBox,"dnone");
if(!this.pager){
this.pager=this.adopt(joost.ui.Pager,{paged:this,currentPage:this.index}).placeAt(this.pagerBox);
}
}else{
dojo.addClass(this.pagerBox,"dnone");
}
var n=this.box,t=dojo.hitch(this.parent,"_togglePane",n),col=0,x=this.count/2;
dojo.removeClass(this.domNode,"dnone");
dojo.forEach(data.items,function(item,i){
var t=this.adopt(this.thumbClass,{data:item,size:"large"}).placeAt(this.thumbBox);
if(++col%x==0){
col=0;
dojo.addClass(t.domNode,"lastCol");
}
this._pageThumbs.push(t);
},this);
joost.stateChange();
}else{
dojo.addClass(this.domNode,"dnone");
this.parent.searchFail(1);
}
},setCount:function(num){
this.boxHeader.titleNode.innerHTML=this.label+" ("+num+")";
}});
dojo.declare("joost.panels._VideoSearch",joost.panels._SearchBox,{label:"Videos",thumbClass:joost.ui.VideoThumbnail,api:joost.api.search.video,count:8});
dojo.declare("joost.panels._ChannelSearch",joost.panels._SearchBox,{label:"Channels",thumbClass:joost.ui.ChannelThumbnail,api:joost.api.search.container,count:10});
dojo.declare("joost.panels._SearchInput",[joost.NlsWidget,joost.ui.TextBoxHelper],{bundles:[{module:"joost.ui",bundle:"Button"}],widgetsInTemplate:true,baseClass:"joostSearchBox",templateString:dojo.cache("joost.panels","templates/search_input.html","<div dojoAttachEvent=\"onkeypress:_listen\">\n    <div class=\"search advanced\" dojoAttachPoint=\"searchNode,helperNode\">\n      <span><input dojoAttachPoint=\"textbox,focusNode\" type=\"text\" /></span>\n    </div>\n    <a href=\"#\" dojoType=\"joost.ui.Button\" dojoAttachEvent=\"onClick: _go\">${strings.Button.GO}</a>\n</div>\n"),_listen:function(e){
if(e&&e.charOrCode==dojo.keys.ENTER){
e.preventDefault();
this._go();
}
},_go:function(e){
e&&e.preventDefault();
joost.sitemap.go("/search",{q:this.textbox.value});
}});
}
if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){
dojo._hasResource["dojo.dnd.TimedMoveable"]=true;
dojo.provide("dojo.dnd.TimedMoveable");
(function(){
var _2fd=dojo.dnd.Moveable.prototype.onMove;
dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(node,_2fe){
if(!_2fe){
_2fe={};
}
if(_2fe.timeout&&typeof _2fe.timeout=="number"&&_2fe.timeout>=0){
this.timeout=_2fe.timeout;
}
},markupFactory:function(_2ff,node){
return new dojo.dnd.TimedMoveable(node,_2ff);
},onMoveStop:function(_300){
if(_300._timer){
clearTimeout(_300._timer);
_2fd.call(this,_300,_300._leftTop);
}
dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);
},onMove:function(_301,_302){
_301._leftTop=_302;
if(!_301._timer){
var _303=this;
_301._timer=setTimeout(function(){
_301._timer=null;
_2fd.call(_303,_301,_301._leftTop);
},this.timeout);
}
}});
})();
}
if(!dojo._hasResource["dijit.form._FormMixin"]){
dojo._hasResource["dijit.form._FormMixin"]=true;
dojo.provide("dijit.form._FormMixin");
dojo.declare("dijit.form._FormMixin",null,{reset:function(){
dojo.forEach(this.getDescendants(),function(_304){
if(_304.reset){
_304.reset();
}
});
},validate:function(){
var _305=false;
return dojo.every(dojo.map(this.getDescendants(),function(_306){
_306._hasBeenBlurred=true;
var _307=_306.disabled||!_306.validate||_306.validate();
if(!_307&&!_305){
dijit.scrollIntoView(_306.containerNode||_306.domNode);
_306.focus();
_305=true;
}
return _307;
}),function(item){
return item;
});
},setValues:function(val){
dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use attr('value', val) instead.","","2.0");
return this.attr("value",val);
},_setValueAttr:function(obj){
var map={};
dojo.forEach(this.getDescendants(),function(_308){
if(!_308.name){
return;
}
var _309=map[_308.name]||(map[_308.name]=[]);
_309.push(_308);
});
for(var name in map){
if(!map.hasOwnProperty(name)){
continue;
}
var _30a=map[name],_30b=dojo.getObject(name,false,obj);
if(_30b===undefined){
continue;
}
if(!dojo.isArray(_30b)){
_30b=[_30b];
}
if(typeof _30a[0].checked=="boolean"){
dojo.forEach(_30a,function(w,i){
w.attr("value",dojo.indexOf(_30b,w.value)!=-1);
});
}else{
if(_30a[0].multiple){
_30a[0].attr("value",_30b);
}else{
dojo.forEach(_30a,function(w,i){
w.attr("value",_30b[i]);
});
}
}
}
},getValues:function(){
dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use attr('value') instead.","","2.0");
return this.attr("value");
},_getValueAttr:function(){
var obj={};
dojo.forEach(this.getDescendants(),function(_30c){
var name=_30c.name;
if(!name||_30c.disabled){
return;
}
var _30d=_30c.attr("value");
if(typeof _30c.checked=="boolean"){
if(/Radio/.test(_30c.declaredClass)){
if(_30d!==false){
dojo.setObject(name,_30d,obj);
}else{
_30d=dojo.getObject(name,false,obj);
if(_30d===undefined){
dojo.setObject(name,null,obj);
}
}
}else{
var ary=dojo.getObject(name,false,obj);
if(!ary){
ary=[];
dojo.setObject(name,ary,obj);
}
if(_30d!==false){
ary.push(_30d);
}
}
}else{
var prev=dojo.getObject(name,false,obj);
if(typeof prev!="undefined"){
if(dojo.isArray(prev)){
prev.push(_30d);
}else{
dojo.setObject(name,[prev,_30d],obj);
}
}else{
dojo.setObject(name,_30d,obj);
}
}
});
return obj;
},isValid:function(){
this._invalidWidgets=dojo.filter(this.getDescendants(),function(_30e){
return !_30e.disabled&&_30e.isValid&&!_30e.isValid();
});
return !this._invalidWidgets.length;
},onValidStateChange:function(_30f){
},_widgetChange:function(_310){
var _311=this._lastValidState;
if(!_310||this._lastValidState===undefined){
_311=this.isValid();
if(this._lastValidState===undefined){
this._lastValidState=_311;
}
}else{
if(_310.isValid){
this._invalidWidgets=dojo.filter(this._invalidWidgets||[],function(w){
return (w!=_310);
},this);
if(!_310.isValid()&&!_310.attr("disabled")){
this._invalidWidgets.push(_310);
}
_311=(this._invalidWidgets.length===0);
}
}
if(_311!==this._lastValidState){
this._lastValidState=_311;
this.onValidStateChange(_311);
}
},connectChildren:function(){
dojo.forEach(this._changeConnections,dojo.hitch(this,"disconnect"));
var _312=this;
var _313=this._changeConnections=[];
dojo.forEach(dojo.filter(this.getDescendants(),function(item){
return item.validate;
}),function(_314){
_313.push(_312.connect(_314,"validate",dojo.hitch(_312,"_widgetChange",_314)));
_313.push(_312.connect(_314,"_setDisabledAttr",dojo.hitch(_312,"_widgetChange",_314)));
});
this._widgetChange(null);
},startup:function(){
this.inherited(arguments);
this._changeConnections=[];
this.connectChildren();
}});
}
if(!dojo._hasResource["dijit._DialogMixin"]){
dojo._hasResource["dijit._DialogMixin"]=true;
dojo.provide("dijit._DialogMixin");
dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_315){
},onCancel:function(){
},onExecute:function(){
},_onSubmit:function(){
this.onExecute();
this.execute(this.attr("value"));
},_getFocusItems:function(_316){
var _317=dijit._getTabNavigable(dojo.byId(_316));
this._firstFocusItem=_317.lowest||_317.first||_316;
this._lastFocusItem=_317.last||_317.highest||this._firstFocusItem;
if(dojo.isMoz&&this._firstFocusItem.tagName.toLowerCase()=="input"&&dojo.getNodeProp(this._firstFocusItem,"type").toLowerCase()=="file"){
dojo.attr(_316,"tabIndex","0");
this._firstFocusItem=_316;
}
}});
}
if(!dojo._hasResource["dijit.DialogUnderlay"]){
dojo._hasResource["dijit.DialogUnderlay"]=true;
dojo.provide("dijit.DialogUnderlay");
dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",dialogId:"","class":"",attributeMap:{id:"domNode"},_setDialogIdAttr:function(id){
dojo.attr(this.node,"id",id+"_underlay");
},_setClassAttr:function(_318){
this.node.className="dijitDialogUnderlay "+_318;
},postCreate:function(){
dojo.body().appendChild(this.domNode);
},layout:function(){
var is=this.node.style,os=this.domNode.style;
os.display="none";
var _319=dijit.getViewport();
os.top=_319.t+"px";
os.left=_319.l+"px";
is.width=_319.w+"px";
is.height=_319.h+"px";
os.display="block";
},show:function(){
this.domNode.style.display="block";
this.layout();
this.bgIframe=new dijit.BackgroundIframe(this.domNode);
},hide:function(){
this.bgIframe.destroy();
this.domNode.style.display="none";
},uninitialize:function(){
if(this.bgIframe){
this.bgIframe.destroy();
}
this.inherited(arguments);
}});
}
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,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,isLayoutContainer:true,onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),postMixInProperties:function(){
this.inherited(arguments);
var _31a=dojo.i18n.getLocalization("dijit","loading",this.lang);
this.loadingMessage=dojo.string.substitute(this.loadingMessage,_31a);
this.errorMessage=dojo.string.substitute(this.errorMessage,_31a);
if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){
this.isLoaded=true;
}
},buildRendering:function(){
this.inherited(arguments);
if(!this.containerNode){
this.containerNode=this.domNode;
}
},postCreate:function(){
this.domNode.title="";
if(!dojo.attr(this.domNode,"role")){
dijit.setWaiRole(this.domNode,"group");
}
dojo.addClass(this.domNode,this.baseClass);
},startup:function(){
if(this._started){
return;
}
var _31b=dijit._Contained.prototype.getParent.call(this);
this._childOfLayoutWidget=_31b&&_31b.isLayoutContainer;
this._needLayout=!this._childOfLayoutWidget;
if(this.isLoaded){
dojo.forEach(this.getChildren(),function(_31c){
_31c.startup();
});
}
if(this._isShown()||this.preload){
this._onShow();
}
this.inherited(arguments);
},_checkIfSingleChild:function(){
var _31d=dojo.query("> *",this.containerNode).filter(function(node){
return node.tagName!=="SCRIPT";
}),_31e=_31d.filter(function(node){
return dojo.hasAttr(node,"dojoType")||dojo.hasAttr(node,"widgetId");
}),_31f=dojo.filter(_31e.map(dijit.byNode),function(_320){
return _320&&_320.domNode&&_320.resize;
});
if(_31d.length==_31e.length&&_31f.length==1){
this._singleChild=_31f[0];
}else{
delete this._singleChild;
}
dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);
},setHref:function(href){
dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use attr('href', ...) instead.","","2.0");
return this.attr("href",href);
},_setHrefAttr:function(href){
this.cancel();
this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));
this.href=href;
if(this._created&&(this.preload||this._isShown())){
this._load();
}else{
this._hrefChanged=true;
}
return this.onLoadDeferred;
},setContent:function(data){
dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use attr('content', ...) instead.","","2.0");
this.attr("content",data);
},_setContentAttr:function(data){
this.href="";
this.cancel();
this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));
this._setContent(data||"");
this._isDownloaded=false;
return this.onLoadDeferred;
},_getContentAttr:function(){
return this.containerNode.innerHTML;
},cancel:function(){
if(this._xhrDfd&&(this._xhrDfd.fired==-1)){
this._xhrDfd.cancel();
}
delete this._xhrDfd;
this.onLoadDeferred=null;
},uninitialize:function(){
if(this._beingDestroyed){
this.cancel();
}
this.inherited(arguments);
},destroyRecursive:function(_321){
if(this._beingDestroyed){
return;
}
this.inherited(arguments);
},resize:function(_322,_323){
if(!this._wasShown){
this._onShow();
}
this._resizeCalled=true;
if(_322){
dojo.marginBox(this.domNode,_322);
}
var cn=this.containerNode;
if(cn===this.domNode){
var mb=_323||{};
dojo.mixin(mb,_322||{});
if(!("h" in mb)||!("w" in mb)){
mb=dojo.mixin(dojo.marginBox(cn),mb);
}
this._contentBox=dijit.layout.marginBox2contentBox(cn,mb);
}else{
this._contentBox=dojo.contentBox(cn);
}
this._layoutChildren();
},_isShown:function(){
if(this._childOfLayoutWidget){
if(this._resizeCalled&&"open" in this){
return this.open;
}
return this._resizeCalled;
}else{
if("open" in this){
return this.open;
}else{
var node=this.domNode;
return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!dojo.hasClass(node,"dijitHidden");
}
}
},_onShow:function(){
if(this.href){
if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){
this.refresh();
}
}else{
if(!this._childOfLayoutWidget&&this._needLayout){
this._layoutChildren();
}
}
this.inherited(arguments);
this._wasShown=true;
},refresh:function(){
this.cancel();
this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));
this._load();
return this.onLoadDeferred;
},_load:function(){
this._setContent(this.onDownloadStart(),true);
var self=this;
var _324={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};
if(dojo.isObject(this.ioArgs)){
dojo.mixin(_324,this.ioArgs);
}
var hand=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_324));
hand.addCallback(function(html){
try{
self._isDownloaded=true;
self._setContent(html,false);
self.onDownloadEnd();
}
catch(err){
self._onError("Content",err);
}
delete self._xhrDfd;
return html;
});
hand.addErrback(function(err){
if(!hand.canceled){
self._onError("Download",err);
}
delete self._xhrDfd;
return err;
});
delete this._hrefChanged;
},_onLoadHandler:function(data){
this.isLoaded=true;
try{
this.onLoadDeferred.callback(data);
this.onLoad(data);
}
catch(e){
console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);
}
},_onUnloadHandler:function(){
this.isLoaded=false;
try{
this.onUnload();
}
catch(e){
console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);
}
},destroyDescendants:function(){
if(this.isLoaded){
this._onUnloadHandler();
}
var _325=this._contentSetter;
dojo.forEach(this.getChildren(),function(_326){
if(_326.destroyRecursive){
_326.destroyRecursive();
}
});
if(_325){
dojo.forEach(_325.parseResults,function(_327){
if(_327.destroyRecursive&&_327.domNode&&_327.domNode.parentNode==dojo.body()){
_327.destroyRecursive();
}
});
delete _325.parseResults;
}
dojo.html._emptyNode(this.containerNode);
delete this._singleChild;
},_setContent:function(cont,_328){
this.destroyDescendants();
var _329=this._contentSetter;
if(!(_329&&_329 instanceof dojo.html._ContentSetter)){
_329=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){
var _32a=this.onContentError(e);
try{
this.containerNode.innerHTML=_32a;
}
catch(e){
console.error("Fatal "+this.id+" could not change content due to "+e.message,e);
}
})});
}
var _32b=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad},this._contentSetterParams||{});
dojo.mixin(_329,_32b);
_329.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont);
delete this._contentSetterParams;
if(!_328){
dojo.forEach(this.getChildren(),function(_32c){
if(!this.parseOnLoad||_32c.getParent){
_32c.startup();
}
},this);
this._scheduleLayout();
this._onLoadHandler(cont);
}
},_onError:function(type,err,_32d){
this.onLoadDeferred.errback(err);
var _32e=this["on"+type+"Error"].call(this,err);
if(_32d){
console.error(_32d,err);
}else{
if(_32e){
this._setContent(_32e,true);
}
}
},_scheduleLayout:function(){
if(this._isShown()){
this._layoutChildren();
}else{
this._needLayout=true;
}
},_layoutChildren:function(){
if(this.doLayout){
this._checkIfSingleChild();
}
if(this._singleChild&&this._singleChild.resize){
var cb=this._contentBox||dojo.contentBox(this.containerNode);
this._singleChild.resize({w:cb.w,h:cb.h});
}else{
dojo.forEach(this.getChildren(),function(_32f){
if(_32f.resize){
_32f.resize();
}
});
}
delete this._needLayout;
},onLoad:function(data){
},onUnload:function(){
},onDownloadStart:function(){
return this.loadingMessage;
},onContentError:function(_330){
},onDownloadError:function(_331){
return this.errorMessage;
},onDownloadEnd:function(){
}});
}
if(!dojo._hasResource["dijit.TooltipDialog"]){
dojo._hasResource["dijit.TooltipDialog"]=true;
dojo.provide("dijit.TooltipDialog");
dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:dojo.cache("dijit","templates/TooltipDialog.html","<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"),postCreate:function(){
this.inherited(arguments);
this.connect(this.containerNode,"onkeypress","_onKey");
this.containerNode.title=this.title;
},orient:function(node,_332,_333){
var c=this._currentOrientClass;
if(c){
dojo.removeClass(this.domNode,c);
}
c="dijitTooltipAB"+(_333.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_333.charAt(0)=="T"?"Below":"Above");
dojo.addClass(this.domNode,c);
this._currentOrientClass=c;
},onOpen:function(pos){
this.orient(this.domNode,pos.aroundCorner,pos.corner);
this._onShow();
if(this.autofocus){
this._getFocusItems(this.containerNode);
dijit.focus(this._firstFocusItem);
}
},onClose:function(){
this.onHide();
},_onKey:function(evt){
var node=evt.target;
var dk=dojo.keys;
if(evt.charOrCode===dk.TAB){
this._getFocusItems(this.containerNode);
}
var _334=(this._firstFocusItem==this._lastFocusItem);
if(evt.charOrCode==dk.ESCAPE){
setTimeout(dojo.hitch(this,"onCancel"),0);
dojo.stopEvent(evt);
}else{
if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){
if(!_334){
dijit.focus(this._lastFocusItem);
}
dojo.stopEvent(evt);
}else{
if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){
if(!_334){
dijit.focus(this._firstFocusItem);
}
dojo.stopEvent(evt);
}else{
if(evt.charOrCode===dk.TAB){
evt.stopPropagation();
}
}
}
}
}});
}
if(!dojo._hasResource["dijit.Dialog"]){
dojo._hasResource["dijit.Dialog"]=true;
dojo.provide("dijit.Dialog");
dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<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\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel, onmouseenter: _onCloseEnter, onmouseleave: _onCloseLeave\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){
var _335=dojo.i18n.getLocalization("dijit","common");
dojo.mixin(this,_335);
this.inherited(arguments);
},postCreate:function(){
dojo.style(this.domNode,{display:"none",position:"absolute"});
dojo.body().appendChild(this.domNode);
this.inherited(arguments);
this.connect(this,"onExecute","hide");
this.connect(this,"onCancel","hide");
this._modalconnects=[];
},onLoad:function(){
this._position();
this.inherited(arguments);
},_endDrag:function(e){
if(e&&e.node&&e.node===this.domNode){
this._relativePosition=dojo.position(e.node);
}
},_setup:function(){
var node=this.domNode;
if(this.titleBar&&this.draggable){
this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(node,{handle:this.titleBar}):new dojo.dnd.Moveable(node,{handle:this.titleBar,timeout:0});
dojo.subscribe("/dnd/move/stop",this,"_endDrag");
}else{
dojo.addClass(node,"dijitDialogFixed");
}
this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){
return s+"_underlay";
}).join(" ")};
this._fadeIn=dojo.fadeIn({node:node,duration:this.duration,beforeBegin:dojo.hitch(this,function(){
var _336=dijit._underlay;
if(!_336){
_336=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs);
}else{
_336.attr(this.underlayAttrs);
}
var _337=948+dijit._dialogStack.length*2;
dojo.style(dijit._underlay.domNode,"zIndex",_337);
dojo.style(this.domNode,"zIndex",_337+1);
_336.show();
}),onEnd:dojo.hitch(this,function(){
if(this.autofocus){
this._getFocusItems(this.domNode);
dijit.focus(this._firstFocusItem);
}
})});
this._fadeOut=dojo.fadeOut({node:node,duration:this.duration,onEnd:dojo.hitch(this,function(){
node.style.display="none";
var ds=dijit._dialogStack;
if(ds.length==0){
dijit._underlay.hide();
}else{
dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2);
dijit._underlay.attr(ds[ds.length-1].underlayAttrs);
}
if(this.refocus){
var _338=this._savedFocus;
if(ds.length>0){
var pd=ds[ds.length-1];
if(!dojo.isDescendant(_338.node,pd.domNode)){
pd._getFocusItems(pd.domNode);
_338=pd._firstFocusItem;
}
}
dijit.focus(_338);
}
})});
},uninitialize:function(){
var _339=false;
if(this._fadeIn&&this._fadeIn.status()=="playing"){
_339=true;
this._fadeIn.stop();
}
if(this._fadeOut&&this._fadeOut.status()=="playing"){
_339=true;
this._fadeOut.stop();
}
if((this.open||_339)&&!dijit._underlay._destroyed){
dijit._underlay.hide();
}
if(this._moveable){
this._moveable.destroy();
}
this.inherited(arguments);
},_size:function(){
this._checkIfSingleChild();
if(this._singleChild){
if(this._singleChildOriginalStyle){
this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;
}
delete this._singleChildOriginalStyle;
}else{
dojo.style(this.containerNode,{width:"auto",height:"auto"});
}
var mb=dojo.marginBox(this.domNode);
var _33a=dijit.getViewport();
if(mb.w>=_33a.w||mb.h>=_33a.h){
var w=Math.min(mb.w,Math.floor(_33a.w*0.75)),h=Math.min(mb.h,Math.floor(_33a.h*0.75));
if(this._singleChild&&this._singleChild.resize){
this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;
this._singleChild.resize({w:w,h:h});
}else{
dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});
}
}else{
if(this._singleChild&&this._singleChild.resize){
this._singleChild.resize();
}
}
},_position:function(){
if(!dojo.hasClass(dojo.body(),"dojoMove")){
var node=this.domNode,_33b=dijit.getViewport(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(node),l=Math.floor(_33b.l+(p?p.x:(_33b.w-bb.w)/2)),t=Math.floor(_33b.t+(p?p.y:(_33b.h-bb.h)/2));
dojo.style(node,{left:l+"px",top:t+"px"});
}
},_onKey:function(evt){
var ds=dijit._dialogStack;
if(ds[ds.length-1]!=this){
return;
}
if(evt.charOrCode){
var dk=dojo.keys;
var node=evt.target;
if(evt.charOrCode===dk.TAB){
this._getFocusItems(this.domNode);
}
var _33c=(this._firstFocusItem==this._lastFocusItem);
if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){
if(!_33c){
dijit.focus(this._lastFocusItem);
}
dojo.stopEvent(evt);
}else{
if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){
if(!_33c){
dijit.focus(this._firstFocusItem);
}
dojo.stopEvent(evt);
}else{
while(node){
if(node==this.domNode||dojo.hasClass(node,"dijitPopup")){
if(evt.charOrCode==dk.ESCAPE){
this.onCancel();
}else{
return;
}
}
node=node.parentNode;
}
if(evt.charOrCode!==dk.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(window,"onresize",this,function(){
var _33d=dijit.getViewport();
if(!this._oldViewport||_33d.h!=this._oldViewport.h||_33d.w!=this._oldViewport.w){
this.layout();
this._oldViewport=_33d;
}
}));
this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey"));
dojo.style(this.domNode,{opacity:0,display:""});
this.open=true;
this._onShow();
this._size();
this._position();
dijit._dialogStack.push(this);
this._fadeIn.play();
this._savedFocus=dijit.getFocus(this);
},hide:function(){
var ds=dijit._dialogStack;
if(!this._alreadyInitialized||this!=ds[ds.length-1]){
return;
}
if(this._fadeIn.status()=="playing"){
this._fadeIn.stop();
}
ds.pop();
this._fadeOut.play();
if(this._scrollConnected){
this._scrollConnected=false;
}
dojo.forEach(this._modalconnects,dojo.disconnect);
this._modalconnects=[];
if(this._relativePosition){
delete this._relativePosition;
}
this.open=false;
this.onHide();
},layout:function(){
if(this.domNode.style.display!="none"){
if(dijit._underlay){
dijit._underlay.layout();
}
this._position();
}
},destroy:function(){
dojo.forEach(this._modalconnects,dojo.disconnect);
if(this.refocus&&this.open){
setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25);
}
this.inherited(arguments);
},_onCloseEnter:function(){
dojo.addClass(this.closeButtonNode,"dijitDialogCloseIcon-hover");
},_onCloseLeave:function(){
dojo.removeClass(this.closeButtonNode,"dijitDialogCloseIcon-hover");
}});
dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{});
dijit._dialogStack=[];
}
if(!dojo._hasResource["joost.ui.Dialog"]){
dojo._hasResource["joost.ui.Dialog"]=true;
dojo.provide("joost.ui.Dialog");
dojo.declare("joost.ui.Dialog",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/dialog.html","<div dojoAttachPoint=\"dialogNode\" waiRole=\"dialog\" style=\"position: fixed; left: 50%; width:300px; margin-left: -150px;\"> \n  <div dojoAttachPoint=\"dialogBaseNode\" class=\"popup\" style=\"width:300px;\">\n    <div class=\"top\">\n      <div class=\"r\">\n        <!-- content -->\n        <h2 dojoAttachPoint=\"titleNode\"></h2>\n        <div class=\"toprt\" dojoAttachPoint=\"topButtonsNode\"><a href=\"#\" dojoType=\"joost.ui.ButtonUi\" dojoAttachEvent=\"onClick:_hideDialog\" iconClass=\"ui close lrg lte\">${strings.Button.CLOSE}</a></div>\n        <div class=\"content\">\n          <div dojoAttachPoint=\"contentNode\"></div>\n          <div dojoAttachPoint=\"helpNode\" class=\"help\" style=\"display: none;\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"bot\"><div class=\"r\"><div dojoAttachPoint=\"footerNode\" class=\"footer\"></div></div></div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],widgetsInTemplate:true,attributeMap:{title:{node:"titleNode",type:"innerHTML"},contentHTML:{node:"contentNode",type:"innerHTML"},helpHTML:{node:"helpNode",type:"innerHTML"}},width:0,title:"",contentHTML:"",helpHTML:"",footerButtons:[],baseClass:"",postCreate:function(){
this._initiateDialog();
dojo.setSelectable(this.domNode,false);
},_initiateDialog:function(){
dojo.style(this.domNode,{opacity:0,top:"0px",zIndex:9999});
if(this.width>0){
dojo.style(this.domNode,{width:this.width+"px",marginLeft:(0-parseInt(0.5*parseInt(this.width,10),10))+"px"});
dojo.style(this.dialogBaseNode,{width:this.width+"px"});
}
dojo.forEach(this.footerButtons,function(_33e,i){
var _33f=_33e.button;
this._addItem(_33f);
if(_33e.dialogAction&&_33e.dialogAction!=""){
this.connect(_33f,"onClick",_33e.dialogAction);
}
this.footerNode.appendChild(_33f.domNode);
},this);
if(!this.footerButtons||this.footerButtons.length==0){
if(this.footerNode){
dojo.destroy(this.footerNode);
this.footerNode=null;
}
}
if(this.baseClass){
dojo.addClass(this.dialogBaseNode,this.baseClass);
}
dojo.place(this.domNode,dojo.create("div",null,dojo.body(),"last"));
this._showDialog();
},_setHelpHTMLAttr:function(a){
if(this.helpHTML&&this.helpHTML!=""){
this.helpNode.innerHTML=this.helpHTML;
var _340=this.adopt(joost.ui.ButtonUi,{iconClass:"ui help lrg lte",label:this.i18n("Button","HELP")});
this.connect(_340.domNode,"onmouseenter","_showHelp");
this.connect(_340.domNode,"onmouseleave","_hideHelp");
dojo.place(_340.domNode,this.topButtonsNode,"first");
}else{
dojo.destroy(this.helpNode);
}
},show:function(){
this._showDialog();
},hide:function(){
this._hideDialog();
},_onClose:function(e){
this.onClose(e);
},onClose:function(e){
},_showDialog:function(){
this._positionDialog();
setTimeout(dojo.hitch(this,"connect",dojo.body(),"onclick","_bodyClick"),1);
if(dojo.isIE){
dojo.style(this.domNode,"opacity",1);
}else{
dojo.anim(this.domNode,{opacity:1});
}
this._backer=new dijit.BackgroundIframe(this.domNode);
this._addItem(this._backer);
},_positionDialog:function(){
dojo.style(this.domNode,{top:"5em",zIndex:9999999});
},repositionDialog:function(){
this._positionDialog();
},_hideDialog:function(evt){
evt&&evt.preventDefault();
if(dojo.isIE){
this._destroyDialog();
}else{
var anim=dojo.anim(this.domNode,{opacity:0});
dojo.connect(anim,"onEnd",this,"_destroyDialog");
}
this._backer&&this.orphan(this._backer,true);
this._backer=null;
},_destroyDialog:function(){
this.onClose();
this.destroyRecursive();
},_showHelp:function(e){
joost.show(this.helpNode);
joost.hide(this.contentNode);
},_hideHelp:function(e){
joost.hide(this.helpNode);
joost.show(this.contentNode);
},_bodyClick:function(e){
var node=e.target;
var b=dojo.body();
var trig=this.trigger?this.trigger.domNode:null;
while(node&&node!=b){
if(node==this.domNode||(trig&&(node==trig))){
return;
}
node=node.parentNode;
}
this._hideDialog();
}});
dojo._mixin(joost.ui,{createAlert:function(args){
return new joost.ui.Dialog({width:args.width,title:args.title,contentHTML:args.contentHTML,helpHTML:args.helpHTML,footerButtons:[{button:new joost.ui.Button({label:bundleButton.OK,onClick:args.okAction}),dialogAction:"_hideDialog"}]});
},createConfirm:function(args){
return new joost.ui.Dialog({width:args.width,title:args.title,contentHTML:args.contentHTML,helpHTML:args.helpHTML,footerButtons:[{button:new joost.ui.Button({label:bundleButton.OK,onClick:args.okAction}),dialogAction:"_hideDialog"},{button:new joost.ui.XLink({label:bundleButton.CANCEL,onClick:args.cancelAction}),dialogAction:"_hideDialog"}]});
},createConfirmAdd:function(args){
return new joost.ui.Dialog({width:args.width,title:args.title,contentHTML:args.contentHTML,helpHTML:args.helpHTML,footerButtons:[{button:new joost.ui.Button({label:bundleButton.YES,onClick:args.okAction}),dialogAction:"_hideDialog"},{button:new joost.ui.XLink({label:bundleButton.CANCEL,onClick:args.cancelAction}),dialogAction:"_hideDialog"}]});
}});
}
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,_341){
this.node=dojo.byId(node);
if(!_341){
_341={};
}
this.creator=_341.creator||null;
this.skipForm=_341.skipForm;
this.parent=_341.dropParent&&dojo.byId(_341.dropParent);
this.map={};
this.current=null;
this.containerState="";
dojo.addClass(this.node,"dojoDndContainer");
if(!(_341&&_341._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 m){
if(i in e){
continue;
}
f.call(o,m[i],i,this);
}
return o;
},clearItems:function(){
this.map={};
},getAllNodes:function(){
return dojo.query("> .dojoDndItem",this.parent);
},sync:function(){
var map={};
this.getAllNodes().forEach(function(node){
if(node.id){
var item=this.getItem(node.id);
if(item){
map[node.id]=item;
return;
}
}else{
node.id=dojo.dnd.getUniqueId();
}
var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");
map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]};
},this);
this.map=map;
return this;
},insertNodes:function(data,_342,_343){
if(!this.parent.firstChild){
_343=null;
}else{
if(_342){
if(!_343){
_343=this.parent.firstChild;
}
}else{
if(_343){
_343=_343.nextSibling;
}
}
}
if(_343){
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,_343);
}
}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=null;
},markupFactory:function(_344,node){
_344._skipStartup=true;
return new dojo.dnd.Container(node,_344);
},startup:function(){
if(!this.parent){
this.parent=this.node;
if(this.parent.tagName.toLowerCase()=="table"){
var c=this.parent.getElementsByTagName("tbody");
if(c&&c.length){
this.parent=c[0];
}
}
}
this.defaultCreator=dojo.dnd._defaultCreator(this.parent);
this.sync();
},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,_345){
var _346="dojoDnd"+type;
var _347=type.toLowerCase()+"State";
dojo.removeClass(this.node,_346+this[_347]);
dojo.addClass(this.node,_346+_345);
this[_347]=_345;
},_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 _348=node.parentNode;_348;node=_348,_348=node.parentNode){
if(_348==this.parent&&dojo.hasClass(node,"dojoDndItem")){
return node;
}
}
}
return null;
},_normalizedCreator:function(item,hint){
var t=(this.creator||this.defaultCreator).call(this,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){
return dojo.create(tag,{innerHTML:text});
};
};
dojo.dnd._createTrTd=function(text){
var tr=dojo.create("tr");
dojo.create("td",{innerHTML:text},tr);
return tr;
};
dojo.dnd._createSpan=function(text){
return dojo.create("span",{innerHTML:text});
};
dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};
dojo.dnd._defaultCreator=function(node){
var tag=node.tagName.toLowerCase();
var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);
return function(item,hint){
var _349=item&&dojo.isObject(item),data,type,n;
if(_349&&item.tagName&&item.nodeType&&item.getAttribute){
data=item.getAttribute("dndData")||item.innerHTML;
type=item.getAttribute("dndType");
type=type?type.split(/\s*,\s*/):["text"];
n=item;
}else{
data=(_349&&item.data)?item.data:item;
type=(_349&&item.type)?item.type:["text"];
n=(hint=="avatar"?dojo.dnd._createSpan:c)(String(data));
}
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,_34a){
if(!_34a){
_34a={};
}
this.singular=_34a.singular;
this.autoSync=_34a.autoSync;
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.destroy(n);
}
this.anchor=null;
this.selection={};
return this;
},forInSelectedItems:function(f,o){
o=o||dojo.global;
var s=this.selection,e=dojo.dnd._empty;
for(var i in s){
if(i in e){
continue;
}
f.call(o,this.getItem(i),i,this);
}
},sync:function(){
dojo.dnd.Selector.superclass.sync.call(this);
if(this.anchor){
if(!this.getItem(this.anchor.id)){
this.anchor=null;
}
}
var t=[],e=dojo.dnd._empty;
for(var i in this.selection){
if(i in e){
continue;
}
if(!this.getItem(i)){
t.push(i);
}
}
dojo.forEach(t,function(i){
delete this.selection[i];
},this);
return this;
},insertNodes:function(_34b,data,_34c,_34d){
var _34e=this._normalizedCreator;
this._normalizedCreator=function(item,hint){
var t=_34e.call(this,item,hint);
if(_34b){
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,_34c,_34d);
this._normalizedCreator=_34e;
return this;
},destroy:function(){
dojo.dnd.Selector.superclass.destroy.call(this);
this.selection=this.anchor=null;
},markupFactory:function(_34f,node){
_34f._skipStartup=true;
return new dojo.dnd.Selector(node,_34f);
},onMouseDown:function(e){
if(this.autoSync){
this.sync();
}
if(!this.current){
return;
}
if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){
this.simpleSelection=true;
if(e.button===dojo.mouseButtons.LEFT){
dojo.stopEvent(e);
}
return;
}
if(!this.singular&&e.shiftKey){
if(!dojo.isCopyKey(e)){
this._removeSelection();
}
var c=this.getAllNodes();
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.isCopyKey(e)){
this.selectNone();
}
}else{
this.selectNone();
this.anchor=this.current;
this._addItemClass(this.anchor,"Anchor");
this.selection[this.current.id]=1;
}
}else{
if(dojo.isCopyKey(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["joost.ui.SelectBox"]){
dojo._hasResource["joost.ui.SelectBox"]=true;
dojo.provide("joost.ui.SelectBox");
dojo.declare("joost.ui.SelectBox",joost.Widget,{templateString:dojo.cache("joost.ui","templates/selectbox.html","<div class=\"selectbox\">\n  <div class=\"sb\">\n    <div class=\"tl\"><div class=\"tr\"></div></div>        \n    <div class=\"mid\">\n      <ul dojoAttachPoint=\"containerNode\"></ul>\n      <div class=\"footer\" dojoAttachPoint=\"footerNode\">\n        <div class=\"left\" dojoAttachPoint=\"footerLeftNode\"></div>\n        <div class=\"right\" dojoAttachPoint=\"footerRightNode\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"bl\"><div class=\"br\"></div></div>\n</div>\n\n"),items:null,i:0,useVal:false,filter:[],isFiltered:false,isRemovable:false,textValue:"",constructor:function(args,node){
this.items=args.items||[];
},postCreate:function(){
this.itemsNodeList=new dojo.NodeList();
var cls=joost.ui["SelectBox"+(this.isRemovable?"ItemRemove":"Item")];
dojo.forEach(this.items,function(item,i){
var _350=this.adopt(cls,{label:item.label,val:item.val,useVal:this.useVal,filter:item.filter}).placeAt(this.containerNode);
this.itemsNodeList.push(_350);
this.connect(_350,"removeFromList","_removeFromList");
this.connect(_350,"onClick","_onClick");
},this);
this.initialize();
dojo.forEach(this.footerRightButtons,function(_351,i){
var _352=_351.button;
this._addItem(_352);
if(_351.selectAction&&_351.selectAction!=""){
this.connect(_352,"onClick",_351.selectAction);
}
_352.placeAt(this.footerRightNode);
},this);
dojo.forEach(this.footerLeftFilters,function(_353,i){
this.filter.push(_353.key);
var _354=this.adopt(joost.ui.SelectBoxFilter,{label:_353.label,key:_353.key}).placeAt(this.footerLeftNode);
this.connect(_354,"onClick","_adjustFilter");
},this);
},_getValue:function(){
var _355=this.getSelectedNodes();
this.onComplete(_355,this);
},getSelectedNodes:function(){
return dojo.map(this.selectBox.getSelectedNodes(),function(node){
return {key:dojo.attr(node,"key"),val:dojo.attr(node,"val")};
});
},_onClick:function(){
this.onChange(this.getSelectedNodes(),this);
},_removeFromList:function(item){
var io=this.itemsNodeList.indexOf(item);
if(io!=-1){
var _356=this.itemsNodeList.splice(io,1);
dojo.destroy(item.domNode);
}
},_removeAll:function(){
dojo.forEach(this.itemsNodeList,function(item,i){
dojo.destroy(item.domNode);
});
dojo.destroy(this.itemsNodeList);
this.itemsNodeList=new dojo.NodeList();
},initialize:function(){
this.selectBox=new dojo.dnd.Selector(this.containerNode);
this.i=0;
this.selectBox.forInItems(function(data,id){
if(this.items[this.i].selected){
this.selectBox._addItemClass(dojo.byId(id),"Selected");
this.selectBox.selection[id]=1;
}
this.i++;
},this);
},_adjustList:function(_357,_358){
if(_357){
this.textValue=_358;
}
this.selectBox.selectNone();
dojo.forEach(this.itemsNodeList,function(item,i){
var _359=item.labelNode.innerHTML.toString().toLowerCase();
joost.hide(item.domNode);
dojo.removeClass(item.domNode,"dojoDndItem");
if(_359.indexOf(this.textValue.toLowerCase())!=-1){
var _35a=false;
if(this.isFiltered){
dojo.forEach(item.filter,function(_35b){
if(this.filter.toString().indexOf(_35b)!=-1){
_35a=true;
}
},this);
}else{
_35a=true;
}
if(_35a){
joost.show(item.domNode);
dojo.addClass(item.domNode,"dojoDndItem");
}
}
},this);
this.onChange();
},_adjustFilter:function(key,val){
if(val){
if(dojo.indexOf(this.filter,key)==-1){
this.filter.push(key);
this._adjustList(false);
}
}else{
if(dojo.indexOf(this.filter,key)!=-1){
this.filter=dojo.filter(this.filter,function(item){
return item!=key;
});
this._adjustList(false);
}
}
},uninitialize:function(){
this.inherited(arguments);
this.selectBox.destroy();
},injectNewItem:function(pair){
this.itemAllreadyIn=false;
dojo.forEach(this.itemsNodeList,function(item){
if(dojo.attr(item.domNode,"key")==pair.key){
this.itemAllreadyIn=true;
}
},this);
if(!this.itemAllreadyIn){
var _35c=new joost.ui[(this.isRemovable?"SelectBoxItemRemove":"SelectBoxItem")]({label:pair.val,val:pair.key,useVal:this.useVal}).placeAt(this.containerNode);
this.itemsNodeList.push(_35c);
this.connect(_35c,"removeFromList","_removeFromList");
}
},onComplete:function(){
},onChange:function(){
}});
dojo.declare("joost.ui.SelectBoxItem",joost.Widget,{templateString:dojo.cache("joost.ui","templates/selectbox_item.html","<li class=\"dojoDndItem\"><a><span dojoAttachPoint=\"labelNode\">Option 1</span></a></li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"}},label:"",val:"",useVal:false,filter:[],postCreate:function(){
var v=this.useVal,_35d=v?this.val:this.label;
dojo.attr(this.domNode,{rel:_35d,key:_35d,val:this.label});
dojo.setSelectable(this.domNode,false);
},_removeFromList:function(){
this.removeFromList(this);
}});
dojo.declare("joost.ui.SelectBoxItemRemove",[joost.ui.SelectBoxItem,joost._Nls],{templateString:dojo.cache("joost.ui","templates/selectbox_itemremove.html","<li><a class=\"x\" dojoAttachPoint=\"removeNode\" dojoAttachEvent=\"onclick:_removeFromList\"><span>${strings.Button.REMOVE}</span></a><span dojoAttachPoint=\"labelNode\">Option 1</span></li>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],initialize:function(){
}});
dojo.declare("joost.ui.SelectBoxFiltered",joost.ui.SelectBox,{templateString:dojo.cache("joost.ui","templates/selectbox_filtered.html","<div class=\"selectbox\">\n  <div class=\"tl\"><div class=\"tr\"></div></div>        \n  <div class=\"sb\">\n    <div class=\"mid\">\n      <div class=\"filter\">\n        <div dojoType=\"joost.ui.SelectBoxSearch\" dojoAttachEvent=\"onChange:_adjustList\"></div>        \n      </div>        \n      <ul dojoAttachPoint=\"containerNode\"></ul>\n      <div class=\"footer\" dojoAttachPoint=\"footerNode\">\n        <div class=\"left\" dojoAttachPoint=\"footerLeftNode\"></div>\n        <div class=\"right\" dojoAttachPoint=\"footerRightNode\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"bl\"><div class=\"br\"></div></div>\n</div>\n\n"),widgetsInTemplate:true,isFiltered:false});
dojo.declare("joost.ui.SelectBoxSearch",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/selectbox_search.html","<div class=\"search filter close\" dojoAttachPoint=\"searchNode\">\n  <span><input class=\"\" type=\"text\" dojoAttachPoint=\"textbox\" /></span>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"}],widgetsInTemplate:true,scrollOnFocus:false,baseClass:"joostSearchBox",closeButton:{},previousTextboxValue:"",postCreate:function(){
this.connect(this.textbox,"onkeyup","_adjustSelection");
this.connect(this.textbox,"onchange","_adjustSelection");
this.closeButton=new joost.ui.ButtonUi({label:this.i18n("Button","CLOSE"),iconClass:"ui close sm"}).placeAt(this.textbox,"after");
this.connect(this.closeButton,"onClick","_clearTextbox");
if(this.textbox.value==""){
dojo.attr(this.closeButton.domNode,"style",{visibility:"hidden"});
}
this.previousTextboxValue=this.textbox.value;
},_adjustSelection:function(e){
e.preventDefault();
dojo.attr(this.closeButton.domNode,"style",{visibility:"hidden"});
if(this.textbox.value!=""){
dojo.attr(this.closeButton.domNode,"style",{visibility:"visible"});
}
if(this.previousTextboxValue!=this.textbox.value){
this.previousTextboxValue=this.textbox.value;
this.onChange(true,this.textbox.value);
}
},_clearTextbox:function(e){
e.preventDefault();
this.textbox.value="";
this.previousTextboxValue="";
dojo.attr(this.closeButton.domNode,"style",{visibility:"hidden"});
this.onChange(true,this.textbox.value);
},onChange:function(){
}});
dojo.declare("joost.ui.SelectBoxFilter",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/selectbox_filter.html","<span>\n  <label dojoAttachPoint=\"labelNode\">Shows</label>\n</span>\n"),widgetsInTemplate:true,attributeMap:{label:{node:"labelNode",type:"innerHTML"}},label:"",key:"",checkBox:{},postCreate:function(){
this.checkBox=new dijit.form.CheckBox({checked:true}).placeAt(this.labelNode,"before");
this.connect(this.checkBox.domNode,"onclick","_onClick");
dojo.attr(this.labelNode,"for",this.checkBox.id);
},_onClick:function(e){
e.preventDefault();
this.onClick(this.key,this.checkBox.checked);
},onClick:function(){
}});
dojo.declare("joost.ui.SelectBoxDuoCombo",joost.Widget,{templateString:dojo.cache("joost.ui","templates/selectbox_duocombo.html","<div class=\"addRemoveSelect\">\n  <div dojoAttachPoint=\"introNode\"></div>\n  \n  <div class=\"left\">\n    <h3 dojoAttachPoint=\"leftTitleNode\"></h3>\n\n      <div class=\"selectbox\" dojoAttachPoint=\"leftSelectNode\"></div>\n\n  </div>\n  \n  <div class=\"right\">\n    <div class=\"arrowHolder\"><a dojoAttachPoint=\"arrowNode\" class=\"bigArrow disabled\"></a></div>\n    \n    <h3 dojoAttachPoint=\"rightTitleNode\"></h3>\n\n    <div class=\"selectbox\" dojoAttachPoint=\"rightSelectNode\"></div>\n\n  </div>\n\n  <br class=\"clear\"/>\n\n  <div>\n    <hr/>\n    \n    <div class=\"right buttons\" dojoAttachPoint=\"buttonsNode\"></div>\n  </div>\n</div>\n"),widgetsInTemplate:true,attributeMap:{intro:{node:"introNode",type:"innerHTML"},leftTitle:{node:"leftTitleNode",type:"innerHTML"},rightTitle:{node:"rightTitleNode",type:"innerHTML"}},intro:"",leftTitle:"",rightTitle:"",arrowTitle:"",postCreate:function(){
dojo.place(this.leftSelectBox.domNode,this.leftSelectNode,"replace");
dojo.style(this.leftSelectBox.containerNode,{height:""});
dojo.place(this.rightSelectBox.domNode,this.rightSelectNode,"replace");
dojo.style(this.rightSelectBox.containerNode,{height:""});
this.connect(this.leftSelectBox,"onComplete","_addItems");
this.connect(this.leftSelectBox,"onChange","_toggleArrow");
dojo.attr(this.arrowNode,"title",this.arrowTitle);
this._toggleArrow(this.leftSelectBox.getSelectedNodes());
this.connect(this.arrowNode,"onclick",function(){
this._addItems(this.leftSelectBox.getSelectedNodes());
});
dojo.forEach(this.footerButtons,function(_35e,i){
var _35f=_35e.button;
if(_35e.selectAction&&_35e.selectAction!=""){
this.connect(_35f,"onClick",_35e.selectAction);
}
dojo.place(_35f.domNode,this.buttonsNode,"last");
},this);
},_addItems:function(_360){
dojo.forEach(_360,function(pair){
this.rightSelectBox.injectNewItem(pair);
},this);
},_getValue:function(){
var _361=[];
dojo.forEach(this.rightSelectBox.itemsNodeList,function(item){
_361.push({key:dojo.attr(item.domNode,"key"),val:dojo.attr(item.domNode,"val")});
},this);
this.onComplete(_361,this);
},_toggleArrow:function(_362){
var add=!(_362&&_362.length);
dojo.toggleClass(this.arrowNode,"disabled",add);
},onComplete:function(){
}});
}
if(!dojo._hasResource["joost.ui.DialogEmailChanged"]){
dojo._hasResource["joost.ui.DialogEmailChanged"]=true;
dojo.provide("joost.ui.DialogEmailChanged");
dojo.declare("joost.ui.DialogEmailChanged",joost.ui.Dialog,{templateString:dojo.cache("joost.ui","templates/dialog_changeemail.html","<div dojoAttachPoint=\"dialogNode\" waiRole=\"dialog\" style=\"position: fixed; left: 50%; width:653px; margin-left: -324px;\"> \n  <div dojoAttachPoint=\"dialogBaseNode\" style=\"width:653px\">\n      <div style=\"position: relative; height: 411px;\">\n          <div class=\"popup special tallbot registration\" style=\"position: absolute; top: 0; display: block;\">\n              <!-- content -->\n              <div class=\"top nocontent\">\n                  <!-- content -->\n                  <h2 dojoAttachPoint=\"signupTitle\">${strings.Registration.TITLE_CHANGED_EMAIL}</h2>\n                  <div class=\"toprt\">\n                      <a href=\"#\" dojoType=\"joost.ui.ButtonUi\" dojoAttachEvent=\"onClick:_hideDialog\" iconClass=\"ui close lrg lte\">${strings.Button.CLOSE}</a>\n                  </div>\n              </div>\n              <div class=\"bot smallbot\">\n                <div dojoAttachPoint=\"introNode\"></div>\n                <label>${strings.Registration.EMAIL_CHANGED_TEXT}</label>\n              </div>\n          </div>\n      </div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"},{module:"joost.ui",bundle:"Registration"}],attributeMap:{intro:{node:"introNode",type:"innerHTML"}},intro:"",postCreate:function(){
this._initiateDialog();
}});
}
if(!dojo._hasResource["dojo.date"]){
dojo._hasResource["dojo.date"]=true;
dojo.provide("dojo.date");
dojo.date.getDaysInMonth=function(_363){
var _364=_363.getMonth();
var days=[31,28,31,30,31,30,31,31,30,31,30,31];
if(_364==1&&dojo.date.isLeapYear(_363)){
return 29;
}
return days[_364];
};
dojo.date.isLeapYear=function(_365){
var year=_365.getFullYear();
return !(year%400)||(!(year%4)&&!!(year%100));
};
dojo.date.getTimezoneName=function(_366){
var str=_366.toString();
var tz="";
var _367;
var pos=str.indexOf("(");
if(pos>-1){
tz=str.substring(++pos,str.indexOf(")"));
}else{
var pat=/([A-Z\/]+) \d{4}$/;
if((_367=str.match(pat))){
tz=_367[1];
}else{
str=_366.toLocaleString();
pat=/ ([A-Z\/]+)$/;
if((_367=str.match(pat))){
tz=_367[1];
}
}
}
return (tz=="AM"||tz=="PM")?"":tz;
};
dojo.date.compare=function(_368,_369,_36a){
_368=new Date(+_368);
_369=new Date(+(_369||new Date()));
if(_36a=="date"){
_368.setHours(0,0,0,0);
_369.setHours(0,0,0,0);
}else{
if(_36a=="time"){
_368.setFullYear(0,0,0);
_369.setFullYear(0,0,0);
}
}
if(_368>_369){
return 1;
}
if(_368<_369){
return -1;
}
return 0;
};
dojo.date.add=function(date,_36b,_36c){
var sum=new Date(+date);
var _36d=false;
var _36e="Date";
switch(_36b){
case "day":
break;
case "weekday":
var days,_36f;
var mod=_36c%5;
if(!mod){
days=(_36c>0)?5:-5;
_36f=(_36c>0)?((_36c-5)/5):((_36c+5)/5);
}else{
days=mod;
_36f=parseInt(_36c/5);
}
var strt=date.getDay();
var adj=0;
if(strt==6&&_36c>0){
adj=1;
}else{
if(strt==0&&_36c<0){
adj=-1;
}
}
var trgt=strt+days;
if(trgt==0||trgt==6){
adj=(_36c>0)?2:-2;
}
_36c=(7*_36f)+days+adj;
break;
case "year":
_36e="FullYear";
_36d=true;
break;
case "week":
_36c*=7;
break;
case "quarter":
_36c*=3;
case "month":
_36d=true;
_36e="Month";
break;
default:
_36e="UTC"+_36b.charAt(0).toUpperCase()+_36b.substring(1)+"s";
}
if(_36e){
sum["set"+_36e](sum["get"+_36e]()+_36c);
}
if(_36d&&(sum.getDate()<date.getDate())){
sum.setDate(0);
}
return sum;
};
dojo.date.difference=function(_370,_371,_372){
_371=_371||new Date();
_372=_372||"day";
var _373=_371.getFullYear()-_370.getFullYear();
var _374=1;
switch(_372){
case "quarter":
var m1=_370.getMonth();
var m2=_371.getMonth();
var q1=Math.floor(m1/3)+1;
var q2=Math.floor(m2/3)+1;
q2+=(_373*4);
_374=q2-q1;
break;
case "weekday":
var days=Math.round(dojo.date.difference(_370,_371,"day"));
var _375=parseInt(dojo.date.difference(_370,_371,"week"));
var mod=days%7;
if(mod==0){
days=_375*5;
}else{
var adj=0;
var aDay=_370.getDay();
var bDay=_371.getDay();
_375=parseInt(days/7);
mod=days%7;
var _376=new Date(_370);
_376.setDate(_376.getDate()+(_375*7));
var _377=_376.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 (_377+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 (_377+mod)<0:
adj=2;
}
}
}
days+=adj;
days-=(_375*2);
}
_374=days;
break;
case "year":
_374=_373;
break;
case "month":
_374=(_371.getMonth()-_370.getMonth())+(_373*12);
break;
case "week":
_374=parseInt(dojo.date.difference(_370,_371,"day")/7);
break;
case "day":
_374/=24;
case "hour":
_374/=60;
case "minute":
_374/=60;
case "second":
_374/=1000;
case "millisecond":
_374*=_371.getTime()-_370.getTime();
}
return Math.round(_374);
};
}
if(!dojo._hasResource["joost.panels.Settings"]){
dojo._hasResource["joost.panels.Settings"]=true;
dojo.provide("joost.panels.Settings");
joost.panels._swfSettings={flash_url:joost.config.SWFUploadUrl.toString(),upload_url:"/b/avatar/upload",file_size_limit:"100 MB",file_types:"*.jpg;*.gif;*.jpeg;*.png",file_types_description:"Images",file_upload_limit:0,file_queue_limit:0,file_post_name:"fileField",button_image_url:dojo.moduleUrl("joost.resources","images/transparent_pixel.gif"),button_width:"132",button_height:"27",button_cursor:-1,button_window_mode:"transparent"};
dojo.declare("joost.panels.Settings",joost.panels.Base,{defaultAvatar:joost.config.defaultAvatar,bundles:[{module:"joost.panels",bundle:"Settings"},{module:"joost.ui",bundle:"FormatDate"},{module:"joost.ui",bundle:"Registration"}],requireAuth:true,fbReady:false,templateString:dojo.cache("joost.panels","templates/settings.html","<div>\n    <h1>Settings</h1>\n    <form dojoAttachPoint=\"masterForm\" action=\"\">\n\n        <!-- section navigation -->\n        <div dojoAttachPoint=\"tabsNode\"></div>\n\n        <!-- containers -->\n        <div dojoAttachPoint=\"notificationsPanel\" style=\"display:none\">\n            <p>\n              Joost will send you notifications from time to time when we think there's information you'll want to know. For each type of notification, you can select how you'd like to be notified by selecting or deselecting the accompanying checkboxes.\n            </p>\n\n            <!-- General Alert options -->\n            <div class=\"optionsTable\">\n                <h2>Alerts</h2>\n                <div class=\"grayBox\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\">\n                            <table><tbody>\n                                <tr>\n                                    <td>Latest Joost updates:</td>\n                                    <td>\n                                        <div dojoAttachPoint=\"updates_chk\" dojoType=\"dijit.form.CheckBox\" name=\"updates_chk\" id=\"${id}_updates_chk\"></div>\n                                        <label for=\"${id}_updates_chk\">E-mail</label>\n                                    </td>\n                                    \n                                </tr>\n                            </tbody></table>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n                <div class=\"grayBox mt-2\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\">\n                            <table><tbody>\n                                <tr>\n                                    <td>3rd Party Offers:</td>\n                                    <td>\n                                        <div dojoAttachPoint=\"offers_chk\" dojoType=\"dijit.form.CheckBox\" name=\"offers_chk\" id=\"${id}_offers_chk\"></div>\n                                        <label for=\"${id}_offers_chk\">E-mail</label>\n                                    </td>\n                                    \n                                </tr>\n                            </tbody></table>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n            </div>\n\n            <!-- Joost Newsletter options -->\n            <!--div class=\"optionsTable\">\n                <h2>Newsletter</h2>\n                <span class=\"secondary\">Stay on top of the latest shows, film and music with our newsletter.</span>\n                <div class=\"grayBox\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\">\n                            <ul>\n                                <li>\n                                    <div dojoAttachPoint=\"news1_chk\" id=\"${id}_news1_email_chk\" name=\"news1_email_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_news1_email_chk\">Yes, I'd like to receive the official Joost email newsletter \"Fresh Joost.\"</label>\n                                </li>\n                            </ul>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n            </div-->\n        </div>\n\n        <div dojoAttachPoint=\"privacyPanel\" style=\"display:none\">\n            \n            <p>Some people like to share information and some don't, so we have a couple of options that will help you manage how other people see you and your activities on Joost. </p>\n            <div class=\"optionsTable\">\n                <h2>Stealth Mode</h2>\n                <span class=\"secondary\">Turn on to keep all your activities on Joost hidden.</span>\n                <div class=\"grayBox\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\">\n                            <ul>\n                                <li>\n                                    <div name=\"stealth_chk\" dojoAttachPoint=\"stealth_chk\" id=\"${id}_stealth_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_stealth_chk\">Stealth mode is <strong dojoAttachPoint=\"stealthLabel\">OFF</strong></label>\n                                </li>\n                            </ul>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n            </div>\n              \n            <!-- Profile options -->\n            <div class=\"optionsTable\">\n                <h2>My Profile</h2>\n                <span class=\"secondary\">Manage visibility of your profile&mdash; like your name, age, gender, etc.</span>\n                <div class=\"grayBox\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\">\n                            <ul>\n                                <li>\n                                    <div dojoAttachPoint=\"public_chk\" id=\"${id}_profile_chk\" name=\"profile_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_profile_chk\">My profile is <strong dojoAttachPoint=\"profileLabel\">PUBLIC</strong></label>\n                                </li>\n                            </ul>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n            </div>\n        </div>\n \n        <div dojoAttachPoint=\"thirdPanel\" style=\"display:none\">\n            <p>Control the updates and display of third party applications on your account.</p>\n            <!-- General Alert options -->\n            <div class=\"optionsTable\">\n                <h2>Facebook Connect</h2>\n                <div class=\"grayBox\">\n                    <div class=\"tl\"><div class=\"tr\"></div></div>\n                    <div class=\"mid\">\n                        <div class=\"textContent\" dojoAttachPoint=\"facebookChecks\">\n                            <ul>\n                                <li>\n                                    <div dojoAttachPoint=\"fbShouts_chk\" name=\"fbShouts_chk\" id=\"${id}_fbShouts_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_fbShouts_chk\">Post shouts as status updates.</label>\n                                </li>\n                                <li>\n                                    <div dojoAttachPoint=\"fbFavorites_chk\" name=\"fbFavorites_chk\" id=\"${id}_fbFavorites_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_fbFavorites_chk\">Post favorites as links on my wall.</label>\n                                </li>\n                                <li>\n                                    <div dojoAttachPoint=\"fbPlaylists_chk\" name=\"fbPlaylists_chk\" id=\"${id}_fbPlaylists_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_fbPlaylists_chk\">Post playlists I create as links on my wall.</label>\n                                </li>\n                                <li>\n                                    <div dojoAttachPoint=\"fbPrompt_chk\" name=\"fbPrompt_chk\" id=\"${id}_fbPrompt_chk\" dojoType=\"dijit.form.CheckBox\"></div>\n                                    <label for=\"${id}_fbPrompt_chk\">Don't prompt me when posting to Facebook</label>\n                                </li>\n                            </ul>\n                        </div>\n                        <div class=\"textContent\" style=\"display:none\" dojoAttachPoint=\"fbConnect\">\n                            <a href=\"#\" dojoAttachEvent=\"onclick:_facebook\" class=\"fbconnect_login_button FBConnectButton FBConnectButton_Medium\"> <span id=\"RES_ID_fb_login_text\" class=\"FBConnectButton_Text\">Connect with Facebook</span> </a>\n                        </div>\n                        <div class=\"clear\"></div>\n                    </div>\n                    <div class=\"bl\"><div class=\"br\"></div></div>\n                </div>\n            </div>\n\n            <div dojoAttachPoint=\"disconnectPanelNode\" class=\"textContent\">\n                <p>Are you sure you really want to disconnect your Joost account from Facebook?</p>\n                <a dojoAttachEvent=\"onclick: _disconnectFB\" class=\"whiteButton\"><span>Yes, Disconnect Now</span></a>\n            </div>\n\n        </div>\n\n        <div dojoAttachPoint=\"overviewPanel\">\n\n            <!-- top group info -->\n            <div class=\"profileInfo\">\n                <div class=\"thumb tCommXL profile\">\n                    <a href=\"#/profile\" class=\"thumbnail\"><img dojoAttachPoint=\"avatarNode\" alt=\"User Profile Avatar\" /></a>\n                    <a dojoAttachEvent=\"onclick: _changePhoto\" href=\"#\" class=\"swfE whiteButton withpic\"><span><em dojoAttachPoint=\"avatarButtonLabel\">${strings.Settings.CHANGE_AVATAR}</em></span></a>\n                    <div dojoAttachPoint=\"swfUploadHolder\" class=\"swfE swfuploadHolder\" style=\"position:relative; top:-27px\"><span id=\"${id}_uploadImgPlaceholder\"></span></div>\n                </div>\n                <ul class=\"fields\" style=\"padding-bottom: 20px;\">\n                    <li>\n                        <label for=\"${id}_fname\">First Name:</label>\n                        <div class=\"textInput\"><span><input name=\"fname\" id=\"${id}_fname\" type=\"text\" value=\"\" dojoAttachPoint=\"fnameInput\" /></span></div>\n                    </li>\n                    <li>\n                        <label for=\"${id}_lname\">Last Name:</label>\n                        <div class=\"textInput\"><span><input name=\"lname\" id=\"${id}_lname\" type=\"text\" value=\"\" dojoAttachPoint=\"lnameInput\"/></span></div>\n                    </li>\n                    <li>\n                        <label for=\"${id}_email\">E-mail:</label>\n                        <div class=\"textInput\"><span><input name=\"email\" id=\"${id}_email\" type=\"text\" value=\"\" dojoAttachPoint=\"emailInput\" /></span></div>\n                    </li>\n                    <li>\n                        <span class=\"left\">Gender:</span>\n                        <div class=\"left\" style=\"width:400px;\">\n                            <input type=\"radio\" name=\"gender\" dojoAttachPoint=\"genderMaleNode\" id=\"${id}_male\" value=\"MALE\"/>\n                            <label for=\"${id}_male\" style=\"margin-right: 15px;\">${strings.Registration.STEP2_MALE}</label>\n                            <input type=\"radio\" name=\"gender\" dojoAttachPoint=\"genderFemaleNode\" id=\"${id}_female\" value=\"FEMALE\"/>\n\n                            <label for=\"${id}_female\" style=\"margin-right: 30px;\">${strings.Registration.STEP2_FEMALE}</label>\n\n                            <label for=\"${id}_zip\">Zip/Post Code:</label>\n                            <div class=\"textInput\" style=\"width:95px;\"><span><input type=\"text\" name=\"zip\" id=\"${id}_zip\" value=\"1234\" dojoAttachPoint=\"postalInput\" style=\"width:80px;\"/></span></div>\n                        </div>\n                    </li>\n                    <li>\n                        <span class=\"left\">Date of Birth:</span>\n                        <span dojoAttachPoint=\"dobNode\"></span>\n                        <input type=\"hidden\" name=\"dobmonth\" value=\"\" dojoAttachPoint=\"dobmonth\" />\n                        <input type=\"hidden\" name=\"dobday\" value=\"\" dojoAttachPoint=\"dobday\" />\n                        <input type=\"hidden\" name=\"dobyear\" value=\"\" dojoAttachPoint=\"dobyear\" />\n                        <br class=\"clear\" />\n                        <span dojoAttachPoint=\"dobAgeLimitText\" class=\"legalOnWhite underButtons\" style=\"margin-left:88px;display:block\">${strings.Registration.STEP2_AGELIMIT}</span>\n                    </li>\n                </ul> \n            </div>\n\n            <div style=\"margin:0 0 40px\">\n                <ul class=\"fields left half stacked\">\n                    <li>\n                        <label for=\"${id}_hpurl\">Home Page:</label>\n                        <div class=\"textInput\"><span><input name=\"hpurl\" dojoAttachPoint=\"hpurl\" type=\"text\" value=\"\"/></span></div>\n                    </li>\n                    <li style=\"padding-top:17px;\">\n                        <label for=\"${id}_bloglink\">Blog Link:</label>\n                        <div class=\"textInput\"><span><input name=\"bloglink\" dojoAttachPoint=\"bloglink\" type=\"text\" value=\"\"/></span></div>\n                    </li>\n                </ul>\n                <ul class=\"fields right half stacked\">\n                    <li>                    \n                        <label for=\"${id}_about\">About Me:</label>\n                        <div class=\"textArea\">\n                            <div class=\"tl\"><div class=\"tr\"></div></div>\n                            <div class=\"ta\">\n                                <textarea dojoAttachEvent=\"onkeyup: _setCount\" dojoAttachPoint=\"aboutInput\" name=\"about\" id=\"${id}_about\" rows=\"6\" cols=\"5\" style=\"height:95px\"></textarea>         \n                            </div>\n                            <div class=\"bl\"><div class=\"br\"></div></div>\n                        </div>\n                        <br class=\"clear\" />\n                        <span class=\"legalOnWhite\"><span dojoAttachPoint=\"charCountNode\">###</span> characters</span>\n                    </li>\n                </ul>\n                <br class=\"clear\" />\n            </div>\n\n            <div dojoAttachPoint=\"changePassNode\" class=\"textContent\">\n                <ul class=\"fields stacked threeCol\">\n                    <li>\n                        <label for=\"${id}_currpass\">Current Password:</label>\n                        <div class=\"textInput\"><span><input name=\"currpass\" id=\"${id}_currpass\" type=\"password\" value=\"\"/></span></div>\n                    </li>\n                    <li>\n                        <label for=\"${id}_newpass\">New Password:</label>\n                        <div class=\"textInput\"><span><input name=\"newpass\" id=\"${id}_newpass\" type=\"password\" value=\"\"/></span></div>\n                        <br />\n                        <span class=\"legalOnWhite left\" style=\"padding-bottom:10px\"><strong><em>at least 6 characters</em></strong></span>\n                    </li>\n                    <li>\n                        <label for=\"${id}_confirmpass\">Confirm Password:</label>\n                        <div class=\"textInput\"><span><input name=\"confirmpass\" id=\"${id}_confirmpass\" type=\"password\" value=\"\"/></span></div>\n                    </li>\n                </ul>\n            </div>\n\n            <div dojoAttachPoint=\"deactivateNode\" class=\"textContent\">\n                <p>\n                    Are you sure you really want to deactivate your account? We'd be really sad to see you go :(\n                </p>\n                <a dojoAttachEvent=\"onclick: _promptDelete\" class=\"whiteButton\"><span>Yes, Deactivate Now</span></a>\n            </div>\n        </div>\n\n        <br/>\n        <div class=\"right buttons\">\n            <a dojoAttachPoint=\"saveButton\" dojoAttachEvent=\"onclick: _saveClick\" class=\"whiteButton\"><span>Save Changes</span></a>\n        </div>\n\n    </form>\n</div>\n"),widgetsInTemplate:true,postCreate:function(){
if(joost.user.current.anonymous){
dojo.place("<p>"+this.i18n("Settings","REQUIRE_AUTH")+"</p>",this.domNode,"only");
return;
}
this._current={};
var i18n=dojo.hitch(this,"i18n","Settings"),nop=function(){
},ts=this.selectedTab;
var _378=[];
_378.push({label:i18n("OVERVIEW"),panel:this.overviewPanel,onTabClick:nop,tabLabel:"overview"});
_378.push({label:i18n("NOTIFICATIONS"),panel:this.notificationsPanel,onTabClick:nop,tabLabel:"notifications"});
_378.push({label:i18n("PRIVACY"),panel:this.privacyPanel,onTabClick:nop,tabLabel:"privacy"});
if(dojo.config.enableFacebook==="true"){
_378.push({label:i18n("THIRDPARTY"),panel:this.thirdPanel,onTabClick:nop,tabLabel:"thirdparty"});
}
var _379=this.adopt(joost.ui.SectionTabs,{type:"container",selected:"overview",tabs:_378}).placeAt(this.tabsNode);
this.connect(_379,"onTabClick",function(e,cb,tab,tabs){
dojo.forEach(tabs.tabs,function(item){
dojo.style(item.panel,"display",item.panel==tab.panel?"block":"none");
},this);
});
this.changePassWidget=this.adopt(joost.ui.GroupContainer,{title:this.i18n("Settings","CHANGEPASS"),isExpanded:false},this.changePassNode);
this.adopt(joost.ui.GroupContainer,{title:this.i18n("Settings","DEACTIVATE"),isExpanded:false},this.deactivateNode);
this.fbContainer=this.adopt(joost.ui.GroupContainer,{title:this.i18n("Settings","FBDISCONNECT"),isExpanded:false},this.disconnectPanelNode);
this._makeDOBInput();
this.genderFemale=this.adopt(dijit.form.RadioButton,{},this.genderFemaleNode);
this.genderMale=this.adopt(dijit.form.RadioButton,{},this.genderMaleNode);
this.connect(this.stealth_chk,"onChange",function(c){
this.stealthLabel.innerHTML=this.i18n("Settings",c?"ON":"OFF").toUpperCase();
});
this.connect(this.public_chk,"onChange",function(c){
this.profileLabel.innerHTML=this.i18n("Settings",c?"PUBLIC":"PRIVATE").toUpperCase();
});
this.connect(this.fbPrompt_chk,"onChange","_facebookStateChange");
if(dojo.config.enableFacebook==="true"){
var _37a=dojo.hitch(this,"_disableFacebook");
joost.facebook.hook(dojo.hitch(this,function(){
this.fbReady=true;
if(FB.Connect.get_status().result==FB.ConnectState.connected){
this._enableFacebook();
}else{
_37a();
}
}),_37a);
}
joost.api.profile.get().addCallback(this,"_renderOverview").addErrback(this,"_error");
},startup:function(){
this.inherited(arguments);
this._startSwf();
},_startSwf:function(){
if(window["SWFUpload"]){
if(this._uploader){
return;
}
try{
this._uploader=this.adopt(SWFUpload,dojo.mixin({post_params:{authToken:dojo.cookie(dojo.config.tokenName)},button_placeholder_id:this.id+"_uploadImgPlaceholder"},joost.panels._swfSettings));
this.connect(this._uploader,"fileDialogComplete",function(_37b){
if(_37b){
this._uploader.startUpload();
this.avatarButtonLabel.innerHTML=this.i18n("Settings","UPLOADING");
}
});
this.connect(this._uploader,"uploadError",function(){
this.pendingAvatar=false;
this.avatarButtonLabel.innerHTML=this.i18n("Settings","CHANGE_AVATAR");
dojo.publish("/joost/emergency",["There was an error uploading your avatar."]);
});
this.connect(this._uploader,"uploadSuccess",function(file,_37c){
var data=this.pendingAvatar=dojo.fromJson(_37c);
this.avatarButtonLabel.innerHTML=this.i18n("Settings","APPROVE_AVATAR");
dojo.attr(this.avatarNode,"src",data.tempUrl);
dojo.style(this.swfUploadHolder,"left","-99999px");
});
}
catch(e){
dojo.query(".swfE",this.domNode).orphan();
}
}else{
joost.addScript(dojo.moduleUrl("joost.resources","SWFUpload_v2.2.0.1_Core/swfupload.js")+"",dojo.hitch(this,"_startSwf"));
}
},_facebookStateChange:function(c){
if(this.fbPromptState){
!c&&joost.api.profile.revokeFacebook({perm:"publish_stream"}).addCallback(this,"_authFacebook").addErrback(console,"warn");
}else{
c&&this.fbReady&&FB.Connect.showPermissionDialog("publish_stream",dojo.hitch(this,function(_37d){
_37d&&this._authFacebook();
}));
}
},_facebook:function(e){
e&&e.preventDefault();
this.fbReady&&FB.Connect.requireSession(dojo.hitch(this,function(){
joost.api.registration.connectExisting().addCallback(this,"_enableFacebook");
}),dojo.hitch(this,"_disableFacebook"),true);
},_disableFacebook:function(){
dojo.style(this.fbContainer.domNode,"display","none");
dojo.style(this.facebookChecks,"display","none");
dojo.style(this.fbConnect,"display","block");
},_enableFacebook:function(){
this._authFacebook();
dojo.style(this.fbContainer.domNode,"display","block");
dojo.style(this.facebookChecks,"display","block");
dojo.style(this.fbConnect,"display","none");
},_authFacebook:function(){
joost.facebook.hasExtendedPerms("publish_stream").addCallback(this,function(_37e){
this.fbPromptState=dojo.indexOf(_37e.has,"publish_stream")>=0;
this.fbPrompt_chk.attr("checked",this.fbPromptState);
});
},_makeDOBInput:function(){
var d18n=dojo.hitch(this,"i18n","FormatDate");
this.monthDropDown=joost.ui.createDropDown({menuItems:[{label:this.i18n("Registration","STEP2_MONTH"),selected:true,value:0},{label:d18n("JAN"),value:1},{label:d18n("FEB"),value:2},{label:d18n("MAR"),value:3},{label:d18n("APR"),value:4},{label:d18n("MAY"),value:5},{label:d18n("JUN"),value:6},{label:d18n("JUL"),value:7},{label:d18n("AUG"),value:8},{label:d18n("SEP"),value:9},{label:d18n("OCT"),value:10},{label:d18n("NOV"),value:11},{label:d18n("DEC"),value:12}],label:this.i18n("Registration","STEP2_MONTH"),layoutClass:"whiteButton month",vscroll:true});
var days=[{label:this.i18n("Registration","STEP2_DAY"),selected:true}];
for(var i=1;i<=31;i++){
days.push({label:i,value:i});
}
this.dayDropDown=joost.ui.createDropDown({menuItems:days,size:6,label:this.i18n("Registration","STEP2_DAY"),layoutClass:"whiteButton day",vscroll:true});
var _37f=[{label:this.i18n("Registration","STEP2_YEAR"),selected:true}];
var now=new Date();
for(i=now.getFullYear();i>=1900;i--){
_37f.push({label:i,value:i});
}
this.yearDropDown=joost.ui.createDropDown({menuItems:_37f,size:6,label:this.i18n("Registration","STEP2_YEAR"),layoutClass:"whiteButton year",vscroll:true});
var _380=this.i18n("Registration","STEP2_DATEFORMAT")+"";
for(i=0;i<_380.length;i++){
var c=_380.charAt(i);
if(c=="d"){
this.dayDropDown.placeAt(this.dobNode);
}else{
if(c=="m"){
this.monthDropDown.placeAt(this.dobNode);
}else{
if(c=="y"){
this.yearDropDown.placeAt(this.dobNode);
}
}
}
}
dojo.forEach(["month","day","year"],function(w){
this.connect(this[w+"DropDown"],"onChange",function(l,_381){
this["dob"+w].value=_381;
});
this._addItem(this[w+"DropDown"]);
},this);
},_error:function(e){
},_renderOverview:function(data){
this._current=data;
var _382="checked",_383="value";
this.aboutInput.innerHTML=data.aboutMe||"";
this._setCount();
this.hpurl.value=data.url1||"";
this.bloglink.value=data.url2||"";
this.postalInput.value=data.postal||"";
this.fnameInput.value=data.firstName||"";
this.lnameInput.value=data.lastName||"";
this.emailInput.value=data.email;
this.genderMale.attr(_382,data.gender=="MALE");
this.genderFemale.attr(_382,data.gender=="FEMALE");
this.monthDropDown.attr(_383,data.dobmonth);
this.dayDropDown.attr(_383,data.dobday);
this.yearDropDown.attr(_383,data.dobyear);
this.dobmonth.value=data.dobmonth;
this.dobday.value=data.dobday;
this.dobyear.value=data.dobyear;
this.stealth_chk.attr(_382,data.stealth);
this.public_chk.attr(_382,data.showRestrictedProfile);
dojo.query("input",this.changePassWidget.domNode).forEach(function(n){
n.value="";
});
var _384=data.notifications;
this.fbShouts_chk.attr(_382,_384.pushFacebookShouts);
this.fbFavorites_chk.attr(_382,_384.pushFacebookFavorites);
this.fbPlaylists_chk.attr(_382,_384.pushFacebookPlaylists);
this.updates_chk.attr(_382,_384.alerts);
this.offers_chk.attr(_382,_384.subscriptions);
var src=data.thumbnail||this.defaultAvatar[data.gender||"MALE"];
dojo.attr(this.avatarNode,"src",src+"");
dojo.attr(this.avatarNode,"alt",joost.deXSS(data.displayName));
},_saveClick:function(e){
e&&e.preventDefault();
var obj=dojo.formToObject(this.masterForm),send={},_385=this._current;
if((obj.currpass!==undefined&&obj.currpass.length)||(obj.newpass!==undefined&&obj.newpass.length)||(obj.confirmpass!==undefined&&obj.confirmpass.length)){
send.currpass=obj.currpass==undefined?"":obj.currpass;
send.newpass=obj.newpass==undefined?"":obj.newpass;
send.confirmpass=obj.confirmpass==undefined?"":obj.confirmpass;
send.password=send.newpass;
}
if(obj.email!==_385.email&&!obj._fbEmail){
send.email=obj.email;
}
if(obj.hpurl!==_385.url1){
send.url1=obj.hpurl;
}
if(obj.bloglink!==_385.url2){
send.url2=obj.bloglink;
}
if(obj.about!==_385.aboutMe){
send.aboutMe=obj.about;
}
if(obj.fname!==_385.firstName){
send.firstName=obj.fname;
}
if(obj.lname!==_385.lastName){
send.lastName=obj.lname;
}
if(obj.zip!==_385.postal){
send.postal=obj.zip;
}
var u="undefined";
if((obj.dobmonth!=_385.dobmonth&&obj.dobmonth!==u)||(obj.dobday!=_385.dobday&&obj.dobday!==u)||(obj.dobyear!=_385.dobyear&&obj.dobyear!==u)){
send.dobmonth=obj.dobmonth;
send.dobday=obj.dobday;
send.dobyear=obj.dobyear;
}
if(send.dobmonth!==undefined||send.dobday!==undefined||send.dobyear!==undefined){
send.dob=new Date(obj.dobyear,(obj.dobmonth-1),obj.dobday);
}
if(this.genderMale.attr("value")=="on"){
send.gender="MALE";
}else{
if(this.genderFemale.attr("value")=="on"){
send.gender="FEMALE";
}
}
if(send.gender&&send.gender==_385.gender){
delete send.gender;
}
send.showRestrictedProfile=obj.profile_chk=="on";
if(_385.showRestrictedProfile==send.showRestrictedProfile){
delete send.showRestrictedProfile;
}
send.stealth=obj.stealth_chk=="on";
if(_385.stealth==send.stealth){
delete send.stealth;
}
var _386={},cn=_385.notifications;
var list=dojo.filter(["Shouts","Playlists","Favorites"],function(item){
var el="pushFacebook"+item;
_386[el]=obj["fb"+item+"_chk"]=="on";
var same=cn[el]==_386[el];
same&&delete _386[el];
return !same;
});
_386.alerts=obj.updates_chk=="on";
if(_386.alerts==cn.alerts){
delete _386.alerts;
}else{
list.push(1);
}
_386.subscriptions=obj.offers_chk=="on";
if(_386.subscriptions==cn.subscriptions){
delete _386.subscriptions;
}else{
list.push(1);
}
if(list.length){
dojo.mixin(_385.notifications,_386);
}
var _387={};
_387.list=list;
_387.notify=_386;
this._validate(send,_387);
},_validate:function(obj,_388){
var msg="Invalid information: ";
var _389={};
_389.passwordValid=true;
if(obj.currpass!==undefined){
if(obj.currpass.length&&obj.newpass.length&&obj.confirmpass.length){
if(obj.currpass.length<6){
_389.passwordValid=false;
msg+="invalid current password, ";
}
if(obj.newpass.length<6){
_389.passwordValid=false;
msg+="invalid new password, ";
}
if(obj.newpass!=obj.confirmpass){
_389.passwordValid=false;
msg+="new and confirm passwords don't match, ";
}
}else{
_389.passwordValid=false;
msg+="password input incomplete, ";
}
}
if(_389.passwordValid){
delete obj.newpass;
delete obj.confirmpass;
}
_389.firstNameValid=true;
if(obj.firstName!==undefined&&!obj.firstName){
_389.firstNameValid=false;
msg+="first name, ";
}
if(_389.firstNameValid&&obj.firstName!==undefined&&obj.firstName.length>joost.config.maxFirstNameChars){
_389.firstNameValid=false;
msg+="first name is too long, ";
}
_389.lastNameValid=true;
if(obj.lastName!==undefined&&!obj.lastName){
_389.lastNameValid=false;
msg+="last name, ";
}
if(_389.lastNameValid&&obj.lastName!==undefined&&obj.lastName.length>joost.config.maxLastNameChars){
_389.lastNameValid=false;
msg+="last name is too long, ";
}
_389.emailValid=true;
if(obj.email!==undefined&&(!obj.email||!joost.validateEmail(obj.email))){
_389.emailValid=false;
msg+="e-mail address, ";
}
if(_389.emailValid&&obj.email!==undefined&&obj.email.length>joost.config.maxEmailChars){
_389.emailValid=false;
msg+="e-mail address is too long, ";
}
_389.dobValid=true;
if(obj.dob!==undefined){
var _38a=dojo.date.difference(obj.dob,new Date(),"year");
if(_38a<13){
_389.dobValid=false;
msg+="date of birth (< 13 years), ";
}
}
_389.u1valid=true;
if(obj.url1!==undefined&&(obj.url1&&!joost.validateUrl(obj.url1))){
_389.u1valid=false;
msg+=" homepage URL, ";
}
_389.u2valid=true;
if(obj.url2!==undefined&&(obj.url2&&!joost.validateUrl(obj.url2))){
_389.u2valid=false;
msg+=" blog URL,";
}
if(obj.email!==undefined&&_389.emailValid){
joost.api.login.checkEmail(obj.email).addCallback(this,function(r){
if(r.success){
_389.emailValid=false;
msg+="e-mail address already in use, ";
}
var _38b=this._showSaveErrors(_389,msg);
if(!_38b){
this._performSave(obj,_388);
}
}).addErrback(this,function(){
_389.emailValid=false;
msg+="could not check e-mail address for duplicates, ";
this._showSaveErrors(_389,msg);
});
}else{
var _38c=this._showSaveErrors(_389,msg);
if(!_38c){
this._performSave(obj,_388);
}
}
},_showSaveErrors:function(_38d,msg){
var cl=function(node,_38e){
dojo.toggleClass(node.parentNode.parentNode,"error",_38e);
};
var cl2=function(node,_38f){
dojo.toggleClass(node,"error",_38f);
};
cl(this.fnameInput,!_38d.firstNameValid);
cl(this.lnameInput,!_38d.lastNameValid);
cl(this.emailInput,!_38d.emailValid);
cl2(this.dobAgeLimitText,!_38d.dobValid);
cl(this.hpurl,!_38d.u1valid);
cl(this.bloglink,!_38d.u2valid);
if(!_38d.u2valid||!_38d.u1valid||!_38d.emailValid||!_38d.firstNameValid||!_38d.lastNameValid||!_38d.dobValid||!_38d.passwordValid){
msg=dojo.trim(msg);
if(msg.charAt(msg.length-1)==","){
msg=msg.substr(0,msg.length-1);
}
dojo.publish("/joost/emergency",[{message:msg,duration:4000}]);
return true;
}
return false;
},_performSave:function(send,_390){
var _391=this._current;
var _392=dojo.hitch(this,function(_393){
_393&&_393.success&&dojo.mixin(_391,send);
dojo.publish("/joost/emergency",[{message:this.i18n("Settings","SAVED"),duration:2000}]);
if(send.email){
dojo["require"]("joost.ui.DialogEmailChanged");
var dlg=new joost.ui.DialogEmailChanged({});
}
this._renderOverview(_391);
});
if(send.dob!==undefined){
delete send.dob;
}
var list=_390.list;
var _394=_390.notify;
var dfd;
if(list.length){
dfd=joost.api.profile.notifications(_394).addBoth(this,function(resp){
dojo.mixin(joost.user.current.notifications,_394);
joost.api.profile.update(send).addCallback(_392).addErrback(this,"_saveError");
});
}else{
dfd=joost.api.profile.update(send).addCallback(_392);
}
dfd.addErrback(this,"_saveError");
},_setCount:function(e){
this.charCountNode.innerHTML=this.aboutInput.value.length;
},_changePhoto:function(e){
e&&e.preventDefault();
this.pendingAvatar&&joost.api.profile.approveAvatar(this.pendingAvatar).addCallback(this,function(){
dojo.style(this.swfUploadHolder,"left","0");
this.avatarButtonLabel.innerHTML=this.i18n("Settings","CHANGE_AVATAR");
});
},_promptDelete:function(e){
e&&e.preventDefault();
joost.user.logout();
joost.api.profile.remove();
joost.sitemap.go("/");
},_saveError:function(_395){
try{
var data=dojo.fromJson(_395.responseText);
if(!data.success&&data.msg){
dojo.publish("/joost/emergency",[{message:this.i18n("Settings","ERROR")+": "+(data.msg.reason||this.i18n("Setting","UNKNOWN_ERROR")),duration:2000}]);
}
}
catch(e){
}
},_disconnectFB:function(e){
e&&e.preventDefault();
joost.api.registration.disconnect().addCallback(this,function(){
this._disableFacebook();
if(dojo.exists("FB.Connect")){
FB.Connect.forceSessionRefresh();
}
}).addErrback(this,function(){
});
}});
}
if(!dojo._hasResource["joost.panels"]){
dojo._hasResource["joost.panels"]=true;
dojo.provide("joost.panels");
}
if(!dojo._hasResource["joost.ui.BrowserPanel"]){
dojo._hasResource["joost.ui.BrowserPanel"]=true;
dojo.provide("joost.ui.BrowserPanel");
dojo.mixin(joost.ui,{_hasChildren:function(item){
return item&&(item.items||item.filter);
},_isParent:function(p,c){
if(c=="/"){
return false;
}else{
if(p=="/"){
return true;
}
}
return p.indexOf(c)>-1;
},_isLeaf:function(item,_396){
if(!item||!_396){
return false;
}
var path=_396.path;
if(!item.items){
return false;
}
if(path=="/"){
return false;
}
if(!dojo.some(item.items,function(m){
return m.path.indexOf(path)>-1;
})){
return false;
}
return !(_396.items&&_396.items.length||_396.filter&&_396.filter.length);
},_isSibling:function(_397,_398){
var p1=joost.sitemap.parent(_397),p2=joost.sitemap.parent(_398);
return p1&&p2&&p1.path==p2.path;
},_isGenre:function(p){
var s=p.split("/")[1];
return s=="shows"||s=="film"||s=="music";
}});
dojo.declare("joost.ui.BrowserPanel",[joost.Widget,dijit._Container],{templateString:dojo.cache("joost.ui","templates/browserpanel.html","<div id=\"browserPanelWrapper\"> <!-- parent must set id=browserPanelWrapper -->\n  <div>\n    <!-- breadcrumb area -->\n    <div dojoType=\"joost.ui.BrowserPanelBreadcrumbs\"\n         dojoAttachPoint=\"breadcrumbs\"></div>\n\n    <!-- left hand panel w/ sliding navigation -->\n    <div dojoType=\"joost.ui.BrowserPanelNavigation\"\n         dojoAttachPoint=\"sliderPanel\"\n         id=\"slidingNavWrapper\"></div>\n\n    <!-- content area -->\n    <div id=\"browseContent\"\n         dojoAttachPoint=\"contentPanel,containerNode\">\n   </div>\n    <br class=\"clear\"/>\n  </div>\n</div>\n"),widgetsInTemplate:true,_pages:{"/":joost.panels.Root,"/dashboard":joost.panels.DashboardPanel,"/queue":joost.panels.Queue,"/profile":joost.panels.Profile,"/epg":joost.panels.EPG,"/search":joost.panels.Search,"/settings":joost.panels.Settings},postCreate:function(){
if(dojo.config.defaultRoot){
var o;
try{
o=dojo.getObject(dojo.config.defaultRoot);
}
catch(e){
}
if(o){
this._pages["/"]=o;
}
}
this.inherited(arguments);
this.subscribe("/joost/page","_onPageChange");
this.subscribe("/joost/command/show-video-info","_showVideoInfo");
this.subscribe("/joost/command/changeuser","_userChange");
if(!dojo.config.suppressRoot){
this._destroyPanel();
this._contentWidget=this.adopt(this._pages["/"]).placeAt(this.contentPanel);
}
},uninitialize:function(){
this._destroyPanel();
this.inherited(arguments);
},_destroyPanel:function(){
if(this._contentWidget){
this.orphan(this._contentWidget,true);
}
this._contentWidget=null;
dojo.empty(this.contentPanel);
},_userChange:function(user){
this._contentWidget&&this._contentWidget.requireAuth&&user.anonymous&&joost.sitemap.go("/");
},_onPageChange:function(what,_399){
var page=_399.item,_39a=this._pages[page.path],args=dojo._mixin({},_399.args),_39b=dojo.objectToQuery(args),path=page.path;
if(/shows|film|music/i.test(path)){
_39a=this._pages["/epg"];
}
var _39c=false;
if(_399.args&&_399.args.container_info){
_39a=joost.panels.Container;
args.publicId=_399.args.container_info;
joost.trackPage("/(inpage)/"+args.publicId);
_39c=true;
}else{
if(_399.args&&_399.args.video_info){
_39a=joost.panels.Video;
args.publicId=_399.args.video_info;
joost.trackPage("/(inpage)/"+args.publicId);
_39c=true;
}
}
if(_39a&&this._contentWidget instanceof _39a&&this._contentWidget.poke){
if(this._contentWidget.poke(args)){
return;
}
}
if(_39a){
this._destroyPanel();
var tc=this._contentWidget=this.adopt(_39a,args).placeAt(this.contentPanel);
tc.startup&&tc.startup();
if(!(args&&args.noScroll)){
joost.scrollIntoView("browserPanelWrapper");
}
if(!_39c){
joost.trackPage("/(inpage)"+path+(_39b?"?"+_39b:""));
}
}
},_showVideoInfo:function(_39d,args){
var id=_39d.id||_39d;
args=args||{};
args.video_info=id;
joost.sitemap.go(null,args);
}});
dojo.declare("joost.ui.BrowserPanelBreadcrumbs",joost.Widget,{templateString:dojo.cache("joost.ui","templates/browserpanel_breadcrumbs.html","<div class=\"toolbar\">\n  <!-- Joost logo ONLY appears on landing pages -->\n  <h3 dojoAttachPoint=\"logoNode\" style=\"display:none\"><span>Joost</span></h3>\n      <div style=\"color:red;\">\n      </div>\n  <div class=\"breadcrumbs\" dojoAttachEvent=\"onclick:_onCrumbClick\">\n    <a href=\"\" class=\"home disabled\" rel=\"/\"><span>Home</span></a>\n\n    <span dojoAttachPoint=\"crumbs\">\n    </span>\n  </div>\n</div>\n"),_onCrumbClick:function(e){
e.preventDefault();
var node=e.target;
while(node&&node.tagName.toLowerCase()!=="a"&&node!==e.currentTarget){
node=node.parentNode;
}
if(node.tagName.toLowerCase()!=="a"){
return;
}
if(dojo.hasClass(node,"home")){
joost.sitemap.go("/");
}else{
joost.sitemap.go(dojo.attr(node,"rel"));
}
},postCreate:function(){
this.inherited(arguments);
this.subscribe("/joost/page","_onPageChange");
},_onPageChange:function(what,_39e){
dojo.empty(this.crumbs);
var _39f=joost.sitemap.chain(_39e.item.path),l=_39f.length-1;
dojo.forEach(_39f,function(n,i){
this._makeCrumb(n.label||n.name,n.path,i==l);
},this);
dojo.query("a.home",this.domNode).toggleClass("disabled",l==-1);
},_makeCrumb:function(_3a0,path,last){
var p=joost.deXSS(path),n=dojo.place("<a href='#"+p+"' rel='"+p+"'><span>"+joost.deXSS(_3a0)+"</span></a>",this.crumbs);
if(last){
dojo.addClass(n,"lastCrumb");
}
}});
dojo.declare("joost.ui.BrowserPanelNavigation",[joost.NlsWidget,dijit._Container],{templateString:dojo.cache("joost.ui","templates/browserpanel_navigation.html","<div> <!-- parent must specify id=\"slidingNavWrapper\" -->\n  <div id=\"slidingNav\">\n    <div id=\"slidingNavMenus\">\n    <!-- sample menu -->\n    <div class=\"current\" dojoAttachPoint=\"containerNode\"></div>\n    </div>\n    <!-- 300x250 ad/promo unit container -->\n    <br class=\"clear\" />\n    <div id=\"adSpot2Container\" class=\"ad300x250\" dojoAttachPoint=\"promoUnits\">\n      \n    </div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"BrowserPanel"}],postCreate:function(){
this.inherited(arguments);
var _3a1="<iframe id=\"adSpot2\" width=\"300\" height=\"250\" src=\"about:blank\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"></iframe>";
dojo.place(_3a1,this.promoUnits,"only");
this._placePromoUnit();
this._panels={};
this._path="/";
this._getNavPanel(joost.sitemap.current.item.path,joost.sitemap.current.item);
this.subscribe("/joost/page","_onPageChange");
},_selectMenuItem:function(path){
dojo.forEach(this.currentItems,function(k){
k.attr("selected",k.path==path);
});
},_selectTreeItem:function(_3a2){
dojo.publish("select/genre",[_3a2.path]);
},_getNavPanel:function(path,item){
var root="/"+path.split("/")[1],p=this._panels[root];
if(p){
this.containerNode.appendChild(p.node);
this.currentItems=p.items;
}else{
var node=dojo.create("ul"),_3a3=[],_3a4,_3a5=item.path.substring(0,item.path.lastIndexOf("/")),_3a6=joost.sitemap.find(_3a5);
if(!item.filter&&!_3a6.filter&&!_3a6.children){
dojo.addClass(node,"panel");
var _3a7=false,_3a8;
if(!item.items){
_3a7=true;
_3a8=_3a6.items;
}else{
_3a8=item.items;
}
dojo.forEach(_3a8,function(m){
var w=this._createNavItem(m);
_3a3.push(w);
node.appendChild(w.domNode);
},this);
this._setPanelData(root,node,_3a3,_3a4);
}else{
var _3a9=item.filter||_3a6.filter;
dojo.addClass(node,"filter");
_3a4=this.adopt(joost.ui.BrowserPanelFilter,{filter:_3a9});
node.appendChild(_3a4.domNode);
this._setPanelData(root,node,_3a3,_3a4);
}
this.containerNode.appendChild(node);
}
},_setPanelData:function(path,node,_3aa,_3ab){
this._panels[path]={node:node,items:_3aa,filter:_3ab};
this.currentItems=this._panels[path].items;
},_getPanelData:function(path){
return this._panels["/"+path.split("/")[1]];
},_createNavItem:function(n,sel){
return this.adopt(joost.ui.BrowserPanelNavigationItem,{label:n.label,isBranch:(n.items&&n.items.length)||(n.filter&&n.filter.length),items:n.items,action:n.action,path:n.path,selected:!!sel,requireUser:!!n.requireUser});
},_onPageChange:function(what,_3ac){
var j=joost.ui;
if(_3ac.item.path==this._path){
dojo.publish("/joost/genre/filters/reset");
return;
}
if(this._path&&_3ac.item.path.split("/")[1]==this._path.split("/")[1]){
this._path=_3ac.item.path;
this._selectMenuItem(_3ac.item.path);
this._selectTreeItem(_3ac.item);
dojo.publish("/joost/genre/filters/reset");
return;
}
var _3ad=_3ac.item,_3ae=_3ad.path,_3af=joost.sitemap.find(this._path);
if(this._isBusy){
this._doLater(what,_3ac);
return;
}
var _3b0=j._hasChildren(_3ad),_3b1=j._hasChildren(_3af),_3b2=j._isLeaf(_3af,_3ad),_3b3=j._isLeaf(_3ad,_3af),_3b4=j._isSibling(_3ae,this._path),_3b5=j._isGenre(_3ae),_3b6=j._isParent(_3ae,this._path);
this._isBusy=true;
if(_3b5&&!this._beenInGenre){
this._beenInGenre=true;
this._changePanel(_3ad,_3ae,_3b6?-1:1);
this._selectTreeItem(_3ad);
}else{
if((!_3b4&&!_3b2&&!_3b3)||(_3b4&&(_3b1||_3b0))){
this._changePanel(_3ad,_3ae,_3b6?-1:1);
}else{
this._selectMenuItem(_3ae);
this.onNotBusy();
}
}
this._path=_3ae;
},onNotBusy:function(){
this._isBusy=false;
if(this.__what){
var w=this.__what,c=this.__current;
this.__current=null;
this.__what=null;
this._onPageChange(w,c);
}
},_doLater:function(what,_3b7){
this.__what=what;
this.__current=_3b7;
},_changePanel:function(_3b8,path,dir){
var _3b9=this.containerNode,_3ba=dojo.query("ul",_3b9)[0],_3bb=304;
this._getNavPanel(path,_3b8);
var _3bc=this._getPanelData(path).node;
this._isAnimating=true;
dojo.style(_3ba,{position:"absolute",left:"0px",top:"0px"});
dojo.style(_3bc,{position:"absolute",left:(_3bb*dir)+"px",top:"0px"});
var oh=dojo.style(_3ba,"height")||dojo.marginBox(_3ba).h,nh=dojo.style(_3bc,"height")||dojo.marginBox(_3bc).h,mh=dojo.style(_3b9,"height")||dojo.marginBox(_3b9).h,mix=dojo._mixin,ob={duration:500,easing:dojo.fx.easing.quadOut};
dojo.style(_3b9,"height",oh+"px");
var anim=dojo.fx.combine([dojo.animateProperty(mix({node:_3ba,properties:{left:{start:0,end:_3bb*dir*-1}}},ob)),dojo.animateProperty(mix({node:_3bc,properties:{left:{start:_3bb*dir,end:0}}},ob)),dojo.animateProperty(mix({node:_3b9,properties:{height:{start:oh,end:nh}}},ob))]);
this._changeAnim=this.connect(anim,"onEnd",function(){
this.disconnect(this._changeAnim);
setTimeout(dojo.hitch(this,"_postAnim",_3ba,_3b9,_3bc,path,_3b8),25);
});
setTimeout(function(){
anim.play(5);
},0);
},_postAnim:function(_3bd,_3be,_3bf,path,_3c0){
_3bd.parentNode.removeChild(_3bd);
setTimeout(dojo.hitch(this,function(){
_3be.removeAttribute("style");
dojo.style(_3bf,"position","relative");
this._selectTreeItem(_3c0);
if(dojo.isIE){
var p=_3bf.parentNode;
setTimeout(dojo.hitch(this,function(){
p.removeChild(_3bf);
}),1);
setTimeout(dojo.hitch(this,function(){
p.appendChild(_3bf);
dojo.publish("/joost/genre/filters/reset");
this._selectMenuItem(path);
this._selectTreeItem(_3c0);
this.onNotBusy();
}),2);
}else{
dojo.publish("/joost/genre/filters/reset");
this._selectMenuItem(path);
this._selectTreeItem(_3c0);
this.onNotBusy();
}
}),100);
},_placePromoUnit:function(){
dojo.style(this.promoUnits,"display","block");
},_clearPromoUnit:function(){
dojo.style(this.promoUnits,"display","none");
}});
dojo.declare("joost.ui.BrowserPanelNavigationItem",[joost.Widget,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_navigation_item.html","<li dojoAttachEvent=\"onclick:_onClick\"><a href=\"#\" dojoAttachPoint=\"containerNode\"></a></li>\n"),attributeMap:{label:{node:"containerNode",type:"innerHTML"}},items:[],_setSelectedAttr:function(v){
this._selected=v;
dojo.toggleClass(this.containerNode,"selected",v);
},postCreate:function(){
dojo.addClass(this.domNode,this.isBranch?"branch":"leaf");
dojo.setSelectable(this.domNode,false);
this.requireUser&&this.subscribe("/joost/command/changeuser","_setState");
this._setState();
},_onClick:function(e){
e.preventDefault();
this.domNode.blur();
joost.sitemap.go(this.path);
},_setState:function(user){
var show=this.requireUser&&joost.user.current.anonymous;
dojo.style(this.domNode,"display",(show?"none":""));
}});
dojo.declare("joost.ui.BrowserPanelFilter",[joost.NlsWidget,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_filter.html","<div>\n  <ul class=\"current filter\" dojoAttachPoint=\"containerNode\"></ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"BrowserPanel"}],filter:[],navItems:["shows","film","music"],postCreate:function(){
this.filterItems=[];
dojo.forEach(this.filter,function(_3c1,i){
this.adopt(joost.ui.BrowserPanelFilterHeader,{label:_3c1.label}).placeAt(this.containerNode);
if(_3c1.items){
dojo.forEach(_3c1.items,function(item,i){
var _3c2=this.adopt(joost.ui.BrowserPanelFilterItem,{item:item}).placeAt(this.containerNode);
this.connect(_3c2,"onClick","onItemClick");
if(!dojo.some(this.navItems,function(m){
return m==item.action;
})){
if(item.selected){
this.defaultAction=item.action;
}
this.filterItems.push(_3c2);
}
},this);
}
if(_3c1.tree){
this.adopt(joost.ui.BrowserPanelFilterTree,{tree:_3c1.tree}).placeAt(this.containerNode);
}
},this);
this.subscribe("/joost/genre/filters/reset","resetFilters");
},resetFilters:function(){
var path=dojo.getObject("joost.sitemap.current.item.path"),type=dojo.getObject("joost.sitemap.current.args.type")||"all";
dojo.forEach(this.filterItems,function(m){
if(dojo.indexOf(this.navItems,m.action)>-1){
m.attr("selected",m.action==this.defaultAction);
}else{
m.attr("selected",m.action==type);
}
},this);
},onItemClick:function(_3c3){
if(_3c3=="film"||_3c3=="shows"||_3c3=="music"){
joost.sitemap.go("/"+_3c3);
}else{
dojo.forEach(this.filterItems,function(m){
m.attr("selected",m.action==_3c3);
});
if(_3c3=="featured"){
var p=joost.sitemap.current.item.path;
p=p.substring(0,p.indexOf("/",1));
joost.sitemap.go(p,{type:_3c3});
}else{
joost.sitemap.go(null,{type:_3c3});
}
}
}});
dojo.declare("joost.ui.BrowserPanelFilterHeader",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_filter_header.html","<li class=\"header\"><span dojoAttachPoint=\"labelNode\"></span></li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"}},postCreate:function(){
dojo.setSelectable(this.domNode,false);
}});
dojo.declare("joost.ui.BrowserPanelFilterItem",[joost.Widget,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_filter_item.html","<li dojoAttachEvent=\"onclick:_onClick\"><a href=\"#\" dojoAttachPoint=\"labelNode\"></a></li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"}},constructor:function(_3c4){
this.item=_3c4.item;
this.label=this.item.label;
this.action=this.item.action;
this.selected=this.item.selected;
},_setSelectedAttr:function(v){
this._selected=this.item.selected=v;
if(this._selected){
dojo.addClass(this.labelNode,"selected");
if(joost.ui._scrollIntoView){
}
}else{
dojo.removeClass(this.labelNode,"selected");
}
},postCreate:function(){
dojo.setSelectable(this.domNode,false);
this.subscribe("/joost/genre/selected/scroll","onScrollTo");
},onScrollTo:function(){
if(this._selected){
}
},_onClick:function(e){
e.preventDefault();
this.onClick(this.action);
},onClick:function(_3c5){
}});
dojo.declare("joost.ui.BrowserPanelFilterTree",[joost.Widget,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_filter_tree.html","<li>\n  <ul class=\"tree nochk\" dojoAttachPoint=\"containerNode\"></ul>\n</li>\n"),constructor:function(args){
this.tree=args.tree||[];
this.items=args.items||[];
},postCreate:function(){
dojo.addClass(this.domNode,this.tree[0].id.split("/")[1]);
dojo.forEach(this.tree,function(_3c6,i){
var w=this.adopt(joost.ui.BrowserPanelFilterTreeItem,{id:_3c6.id,label:_3c6.name,count:_3c6.count||0,tree:_3c6.children,isExpanded:_3c6.isExpanded}).placeAt(this.containerNode);
this.items.push(w);
},this);
}});
dojo.declare("joost.ui.BrowserPanelFilterTreeItem",[joost.Widget,dijit._Contained],{templateString:dojo.cache("joost.ui","templates/browserpanel_filter_treeitem.html","<li>\n  <span dojoAttachPoint=\"expanderNode\" class=\"plusMinus\"></span>\n  <a dojoAttachPoint=\"itemNode\" href=\"#\" dojoAttachEvent=\"onclick:onClick\" class=\"plusMinusLabel\">\n    <span dojoAttachPoint=\"labelNode\">Comedy</span>\n    <span class=\"amt\">(<span dojoAttachPoint=\"countNode\">348</span>)</span>\n  </a>\n  \n  <!-- sub listing -->\n  <ul class=\"treeAniNode\" dojoAttachPoint=\"aniNode,containerNode\">\n  </ul>\n</li>\n"),attributeMap:{label:{node:"labelNode",type:"innerHTML"},count:{node:"countNode",type:"innerHTML"}},count:0,tree:[],_setSelectedAttr:function(v){
this._selected=v;
dojo.toggleClass(this.itemNode,"selected",v);
},postCreate:function(){
if(this.tree&&this.tree.length>0){
this.b_contract=this.adopt(joost.ui.ButtonUi,{iconClass:"ui minus",hasTitle:false,label:"-"});
this.b_expand=this.adopt(joost.ui.ButtonUi,{iconClass:"ui plus",hasTitle:false,label:"+"});
this.b_expand.placeAt(this.expanderNode);
this.connect(this.b_expand,"onClick","onToggleExpand");
this.b_contract.placeAt(this.expanderNode);
this.connect(this.b_contract,"onClick","onToggleExpand");
this.isExpanded=!this.isExpanded;
this.onToggleExpand();
}else{
dojo.destroy(this.expanderNode);
dojo.destroy(this.containerNode);
}
dojo.setSelectable(this.domNode,false);
this.buildChildren();
this.subscribe("select/genre","_onSelect");
},onScrollTo:function(){
if(this._selected){
}
},_onSelect:function(path){
this._selected=this.id==path;
dojo[(this._selected?"addClass":"removeClass")](this.itemNode,"selected");
this.onSelect(this._selected);
},onSelect:function(_3c7){
},onSelectChild:function(_3c8){
if(!this.isExpanded&&_3c8){
this.onToggleExpand(true);
}
},buildChildren:function(){
dojo.forEach(this.tree,function(_3c9,i){
var _3ca=this.adopt(joost.ui.BrowserPanelFilterTreeItem,{id:_3c9.id,label:_3c9.name,count:_3c9.count||0,tree:_3c9.children,isExpanded:_3c9.isExpanded}).placeAt(this.containerNode);
this.connect(_3ca,"onSelect","onSelectChild");
},this);
this.buildChildren=function(){
};
},expand:function(_3cb){
dojo.style(this.b_expand.domNode,"display","none");
dojo.style(this.b_contract.domNode,"display","");
dojo.style(this.aniNode,"display","");
if(!_3cb){
this.ani();
}
},contract:function(_3cc){
dojo.style(this.b_expand.domNode,"display","");
dojo.style(this.b_contract.domNode,"display","none");
if(!_3cc){
this.ani(true);
}else{
dojo.style(this.aniNode,"display","none");
}
},ani:function(_3cd){
dojo.style(this.aniNode,"display","");
dojo.style(this.aniNode,"height","auto");
var end=_3cd?0:this._height||dojo.style(this.aniNode,"height");
var beg=_3cd?this._height||dojo.style(this.aniNode,"height"):0;
this._height=end||this._height;
var anim=dojo.animateProperty({node:this.aniNode,duration:300,easing:dojo.fx.easing.quadOut,properties:{height:{start:beg,end:end}}}).play();
if(!end){
var c=this.connect(anim,"onEnd",function(){
dojo.style(this.aniNode,"display","none");
this.disconnect(c);
});
}
},_setCountAttr:function(){
if(this.count>0){
this.countNode.innerHTML=dojo.number.format(this.count);
}else{
dojo.query(".amt",this.domNode).style("display","none");
}
},onToggleExpand:function(e){
this[(this.isExpanded?"contract":"expand")](!e);
this.isExpanded=!this.isExpanded;
},onClick:function(e){
dojo.stopEvent(e);
joost.sitemap.go(this.id,{type:"all"});
dojo.publish("/joost/genre/filters/reset");
}});
dojo.declare("joost.ui.BrowserPanelListing",[joost.Widget],{templateString:dojo.cache("joost.ui","templates/browserpanel_listing.html","<div>\n  <div class=\"listing\" dojoAttachPoint=\"containerNode\"></div>\n  <div class=\"clear\"></div>\n</div>\n"),postCreate:function(){
var _3ce=dojo.partial(dojo.addClass,this.containerNode);
this.hasPagination&&_3ce("thinBorderBottom");
this.hasRowBorder&&_3ce("rowBorder");
if(this.isTextListing){
_3ce("textListing");
this.connect(this.containerNode,"onclick","_interceptLinks");
}
},_interceptLinks:function(evt){
var a=joost.closest(evt.target,dojo.partial(joost.hasTagAndClass,"a","clickable"));
if(!a){
return;
}
var kind=a.getAttribute("jType");
var id=a.getAttribute("jId");
if(!kind||!id){
return;
}
evt.preventDefault();
var arg={};
arg[(kind=="channel"?"container":"video")+"_info"]=id;
joost.sitemap.go("/",arg);
}});
}
if(!dojo._hasResource["dojox.encoding.digests.MD5"]){
dojo._hasResource["dojox.encoding.digests.MD5"]=true;
dojo.provide("dojox.encoding.digests.MD5");
(function(){
var dxd=dojox.encoding.digests;
var _3cf=8;
function R(n,c){
return (n<<c)|(n>>>(32-c));
};
function C(q,a,b,x,s,t){
return dxd.addWords(R(dxd.addWords(dxd.addWords(a,q),dxd.addWords(x,t)),s),b);
};
function FF(a,b,c,d,x,s,t){
return C((b&c)|((~b)&d),a,b,x,s,t);
};
function GG(a,b,c,d,x,s,t){
return C((b&d)|(c&(~d)),a,b,x,s,t);
};
function HH(a,b,c,d,x,s,t){
return C(b^c^d,a,b,x,s,t);
};
function II(a,b,c,d,x,s,t){
return C(c^(b|(~d)),a,b,x,s,t);
};
function core(x,len){
x[len>>5]|=128<<((len)%32);
x[(((len+64)>>>9)<<4)+14]=len;
var a=1732584193;
var b=-271733879;
var c=-1732584194;
var d=271733878;
for(var i=0;i<x.length;i+=16){
var olda=a;
var oldb=b;
var oldc=c;
var oldd=d;
a=FF(a,b,c,d,x[i+0],7,-680876936);
d=FF(d,a,b,c,x[i+1],12,-389564586);
c=FF(c,d,a,b,x[i+2],17,606105819);
b=FF(b,c,d,a,x[i+3],22,-1044525330);
a=FF(a,b,c,d,x[i+4],7,-176418897);
d=FF(d,a,b,c,x[i+5],12,1200080426);
c=FF(c,d,a,b,x[i+6],17,-1473231341);
b=FF(b,c,d,a,x[i+7],22,-45705983);
a=FF(a,b,c,d,x[i+8],7,1770035416);
d=FF(d,a,b,c,x[i+9],12,-1958414417);
c=FF(c,d,a,b,x[i+10],17,-42063);
b=FF(b,c,d,a,x[i+11],22,-1990404162);
a=FF(a,b,c,d,x[i+12],7,1804603682);
d=FF(d,a,b,c,x[i+13],12,-40341101);
c=FF(c,d,a,b,x[i+14],17,-1502002290);
b=FF(b,c,d,a,x[i+15],22,1236535329);
a=GG(a,b,c,d,x[i+1],5,-165796510);
d=GG(d,a,b,c,x[i+6],9,-1069501632);
c=GG(c,d,a,b,x[i+11],14,643717713);
b=GG(b,c,d,a,x[i+0],20,-373897302);
a=GG(a,b,c,d,x[i+5],5,-701558691);
d=GG(d,a,b,c,x[i+10],9,38016083);
c=GG(c,d,a,b,x[i+15],14,-660478335);
b=GG(b,c,d,a,x[i+4],20,-405537848);
a=GG(a,b,c,d,x[i+9],5,568446438);
d=GG(d,a,b,c,x[i+14],9,-1019803690);
c=GG(c,d,a,b,x[i+3],14,-187363961);
b=GG(b,c,d,a,x[i+8],20,1163531501);
a=GG(a,b,c,d,x[i+13],5,-1444681467);
d=GG(d,a,b,c,x[i+2],9,-51403784);
c=GG(c,d,a,b,x[i+7],14,1735328473);
b=GG(b,c,d,a,x[i+12],20,-1926607734);
a=HH(a,b,c,d,x[i+5],4,-378558);
d=HH(d,a,b,c,x[i+8],11,-2022574463);
c=HH(c,d,a,b,x[i+11],16,1839030562);
b=HH(b,c,d,a,x[i+14],23,-35309556);
a=HH(a,b,c,d,x[i+1],4,-1530992060);
d=HH(d,a,b,c,x[i+4],11,1272893353);
c=HH(c,d,a,b,x[i+7],16,-155497632);
b=HH(b,c,d,a,x[i+10],23,-1094730640);
a=HH(a,b,c,d,x[i+13],4,681279174);
d=HH(d,a,b,c,x[i+0],11,-358537222);
c=HH(c,d,a,b,x[i+3],16,-722521979);
b=HH(b,c,d,a,x[i+6],23,76029189);
a=HH(a,b,c,d,x[i+9],4,-640364487);
d=HH(d,a,b,c,x[i+12],11,-421815835);
c=HH(c,d,a,b,x[i+15],16,530742520);
b=HH(b,c,d,a,x[i+2],23,-995338651);
a=II(a,b,c,d,x[i+0],6,-198630844);
d=II(d,a,b,c,x[i+7],10,1126891415);
c=II(c,d,a,b,x[i+14],15,-1416354905);
b=II(b,c,d,a,x[i+5],21,-57434055);
a=II(a,b,c,d,x[i+12],6,1700485571);
d=II(d,a,b,c,x[i+3],10,-1894986606);
c=II(c,d,a,b,x[i+10],15,-1051523);
b=II(b,c,d,a,x[i+1],21,-2054922799);
a=II(a,b,c,d,x[i+8],6,1873313359);
d=II(d,a,b,c,x[i+15],10,-30611744);
c=II(c,d,a,b,x[i+6],15,-1560198380);
b=II(b,c,d,a,x[i+13],21,1309151649);
a=II(a,b,c,d,x[i+4],6,-145523070);
d=II(d,a,b,c,x[i+11],10,-1120210379);
c=II(c,d,a,b,x[i+2],15,718787259);
b=II(b,c,d,a,x[i+9],21,-343485551);
a=dxd.addWords(a,olda);
b=dxd.addWords(b,oldb);
c=dxd.addWords(c,oldc);
d=dxd.addWords(d,oldd);
}
return [a,b,c,d];
};
function hmac(data,key){
var wa=dxd.stringToWord(key);
if(wa.length>16){
wa=core(wa,key.length*_3cf);
}
var l=[],r=[];
for(var i=0;i<16;i++){
l[i]=wa[i]^909522486;
r[i]=wa[i]^1549556828;
}
var h=core(l.concat(dxd.stringToWord(data)),512+data.length*_3cf);
return core(r.concat(h),640);
};
dxd.MD5=function(data,_3d0){
var out=_3d0||dxd.outputTypes.Base64;
var wa=core(dxd.stringToWord(data),data.length*_3cf);
switch(out){
case dxd.outputTypes.Raw:
return wa;
case dxd.outputTypes.Hex:
return dxd.wordToHex(wa);
case dxd.outputTypes.String:
return dxd.wordToString(wa);
default:
return dxd.wordToBase64(wa);
}
};
dxd.MD5._hmac=function(data,key,_3d1){
var out=_3d1||dxd.outputTypes.Base64;
var wa=hmac(data,key);
switch(out){
case dxd.outputTypes.Raw:
return wa;
case dxd.outputTypes.Hex:
return dxd.wordToHex(wa);
case dxd.outputTypes.String:
return dxd.wordToString(wa);
default:
return dxd.wordToBase64(wa);
}
};
})();
}
if(!dojo._hasResource["joost.login"]){
dojo._hasResource["joost.login"]=true;
dojo.provide("joost.login");
joost.login.validate=function(_3d2,_3d3){
var def=joost.api.login.prepare({username:_3d2}),de=dojox.encoding;
def.addCallback(function(_3d4){
if(!_3d4.success){
throw new Error("Login prepare failed");
}
var h0,p0,p1=_3d4.token;
if(_3d4.alg=="sha"){
h0=de.digests.SHA1(_3d4.seed+_3d3+_3d4.seed,de.digests.outputTypes.Hex);
p0="$sha$"+_3d4.seed+"$"+h0;
}else{
if(_3d4.alg=="apr1"){
h0=de.digests.MD5(_3d4.seed+_3d3,de.digests.outputTypes.Hex);
p0="$apr1$"+_3d4.seed+"$"+h0;
}
}
var _3d5=de.digests.SHA1(p1+p0,de.digests.outputTypes.Hex);
var _3d6=joost.api.login.validate({username:_3d2,ticket:_3d5});
_3d6.addCallback(function(_3d7){
if(!_3d7.success){
throw new Error("Login validation failed");
}
joost.user.switchUser(_3d7);
return _3d7.token;
});
return _3d6;
});
return def;
};
}
if(!dojo._hasResource["joost.ui.CheckBox"]){
dojo._hasResource["joost.ui.CheckBox"]=true;
dojo.provide("joost.ui.CheckBox");
dojo.declare("joost.ui.CheckBox",dijit.form.CheckBox,{isError:false,_setIsErrorAttr:function(v){
v=!!v;
this.isError=v;
dojo.toggleClass(this.domNode,"error",v);
}});
}
if(!dojo._hasResource["joost.ui.DialogRegistration"]){
dojo._hasResource["joost.ui.DialogRegistration"]=true;
dojo.provide("joost.ui.DialogRegistration");
dojo.declare("joost.ui.DialogRegistration",joost.ui.Dialog,{templateString:dojo.cache("joost.ui","templates/dialog_registration.html","<div dojoAttachPoint=\"dialogNode\" waiRole=\"dialog\" style=\"position: fixed; left: 50%; width:653px; margin-left: -324px;\"> \n  <div dojoAttachPoint=\"dialogBaseNode\" style=\"width:653px\">\n      <div style=\"position: relative; height: 411px;\">\n          <div class=\"popup special tallbot registration\" dojoAttachPoint=\"step1Node\" style=\"position: absolute; top: 0; display: none;\">\n              <!--<div class=\"top nocontent\">-->\n                  <!-- content -->\n                  <!--<h2 dojoAttachPoint=\"signupTitle\">${strings.Registration.TITLE}</h2>-->\n                  <div class=\"toprt\">\n                      <a href=\"#\" dojoType=\"joost.ui.ButtonUi\" dojoAttachEvent=\"onClick:_hideDialog\" iconClass=\"ui close lrg lte\">${strings.Button.CLOSE}</a>\n                  </div>\n              <!--</div>-->\n              <div class=\"bot\" dojoAttachPoint=\"paneStep3\">\n                  <label for=\"registration_email\" dojoAttachPoint=\"emailLabelNode\">${strings.Registration.STEP1_EMAIL}</label>\n                  <div dojoType=\"joost.ui.TextBox\" dojoAttachPoint=\"emailNode\" size=\"large\" name=\"email\" id=\"registration_email\" intermediateChanges=\"true\" maxLength=\"128\"></div>\n                  <div class=\"fbFooter\" style=\"display:none\" dojoAttachPoint=\"signupOptionsNode\">\n                      <a href=\"/forgot/\" target=\"_blank\" class=\"whiteButton\" dojoAttachPoint=\"forgotPassLinkNode\"><span><em>Forgot Password?</em></span></a>\n                      <a class=\"whiteButton\" dojoAttachPoint=\"confirmLinkNode\"><span><em>${strings.Registration.STEP2_BTNRESEND}</em></span></a>\n                  </div>\n              </div>\n              <div class=\"bot\" dojoAttachPoint=\"welcomeBackPane\" style=\"display:none\">\n                <label dojoAttachPoint=\"welcomeBackLabelNode\">${strings.Registration.WELCOME_BACK}</label>\n                <div class=\"readonlyEmail\">\n                  <label class=\"roLabel\">${strings.Registration.STEP1HEADER}</label>\n                  <div class=\"roMail\" dojoAttachPoint=\"wbUserEmail\"></div>\n                </div>\n                <a class=\"whiteButton\" dojoAttachPoint=\"confirmLinkNode2\" style=\"display:none\"><span><em>${strings.Registration.STEP2_BTNRESEND}</em></span></a>\n              </div>\n              <div class=\"bot\" dojoAttachPoint=\"resentActivatioNode\" style=\"display:none\">\n                <label class=\"roLabel\">${strings.Registration.ACTIVATION_NOTIFICATION_3}</label>\n              </div>\n              <div class=\"mid\" dojoAttachPoint=\"paneStep0\">\n                  <div dojoAttachPoint=\"overlayNode\" class=\"content-overlay\"></div>\n                  <div class=\"content\">\n                    <div dojoAttachPoint=\"paneStep1\" style=\"overflow:hidden;\">\n                      <form class=\"signup\" action=\"\">\n                          <!-- left column items -->\n                          <div class=\"left\">\n                              <div class=\"right inputHolder\" dojoAttachPoint=\"inputNamesNode\">\n                                  <div class=\"right\" dojoType=\"joost.ui.TextBox\" id=\"registration_firstname\" name=\"firstname\" dojoAttachPoint=\"firstnameNode\" maxLength=\"128\"></div>\n                                  <label for=\"registration_firstname\" class=\"right\">${strings.Registration.STEP2_FIRSTNAME}</label>\n                                  <div class=\"right\" dojoType=\"joost.ui.TextBox\" id=\"registration_lastname\" name=\"lastname\" dojoAttachPoint=\"lastnameNode\" maxLength=\"128\"></div>\n                                  <label for=\"registration_lastname\" class=\"right\">${strings.Registration.STEP2_LASTNAME}</label>\n                              </div>\n                              <div class=\"right inputHolder\" style=\"display: none; margin-top:0;\" dojoAttachPoint=\"readonlyNamesNode\">\n                                  <div class=\"right roInput\" dojoAttachPoint=\"firstnameReadOnlyNode\"></div>\n                                  <label for=\"registration_firstname\" class=\"right\">${strings.Registration.STEP2_FIRSTNAME}</label>\n                                  <div class=\"right roInput\" dojoAttachPoint=\"lastnameReadOnlyNode\"></div>\n                                  <label for=\"registration_lastname\" class=\"right\">${strings.Registration.STEP2_LASTNAME}</label>\n                              </div>\n                              <div class=\"right inputHolder\" dojoAttachPoint=\"passBoxen\">\n                                  <span class=\"right legalOnWhite\" style=\"line-height:normal;\"><strong><em>${strings.Registration.STEP2_MINCHARS}</em></strong></span>\n                                  <div class=\"clear\"></div>\n                                  <div class=\"right\" dojoType=\"joost.ui.TextBox\" type=\"password\" id=\"registration_pass1\" name=\"pass1\" dojoAttachPoint=\"pass1Node\" maxLength=\"128\"></div>\n                                  <label for=\"registration_pass1\" class=\"right\">${strings.Registration.STEP2_PASSWORD}</label>\n                                  <div class=\"right\" dojoType=\"joost.ui.TextBox\" type=\"password\" id=\"registration_pass2\" name=\"pass2\" dojoAttachPoint=\"pass2Node\" maxLength=\"128\"></div>\n                                  <label for=\"registration_pass2\" class=\"right\">${strings.Registration.STEP2_CONFIRM}</label>\n                              </div>\n                          </div>\n\n                          <!-- right column items -->\n                          <div class=\"right\">\n                              <div class=\"left inputHolder\">\n                                <div dojoAttachPoint=\"genderInputNode\">\n                                  <span class=\"left\" style=\"margin-right: 10px;\">${strings.Registration.STEP2_GENDER}</span>\n                                  <input type=\"radio\" dojoType=\"dijit.form.RadioButton\" name=\"gender\" dojoAttachPoint=\"genderMaleNode\" id=\"registration_male\" value=\"MALE\"/>\n                                  <label for=\"registration_male\" style=\"margin-right: 15px;\">${strings.Registration.STEP2_MALE}</label>\n                                  <input type=\"radio\" dojoType=\"dijit.form.RadioButton\" name=\"gender\" dojoAttachPoint=\"genderFemaleNode\" id=\"registration_female\" value=\"FEMALE\"/>\n                                  <label for=\"registration_female\">${strings.Registration.STEP2_FEMALE}</label>\n                                </div>\n                                <div dojoAttachPoint=\"zipInputNode\">\n                                  <label for=\"registration_zip\" class=\"left\">${strings.Registration.STEP2_ZIPCODE}</label>\n                                  <div dojoType=\"joost.ui.TextBox\" width=\"80\" id=\"registration_zip\" name=\"zip\" dojoAttachPoint=\"zipNode\" maxLength=\"128\"></div>\n                                </div>\n                              </div>\n                              <div class=\"clear\"></div>  \n                              <div class=\"left inputHolder\" dojoAttachPoint=\"dobPanel\">\n                                  <span class=\"left\">${strings.Registration.STEP2_DOB} <span class=\"legalOnWhite\">(<a href=\"#\" dojoAttachPoint=\"_whyNode\" dojoAttachEvent=\"onclick:_whyBirth\">${strings.Registration.STEP2_DOBWHY}</a>)</span></span>\n                                  <div class=\"clear\"></div>\n                                  <div dojoAttachPoint=\"dobNode\"></div>\n                              </div>\n                          </div>\n                          <div class=\"clear\"></div>\n                          <div dojoAttachPoint=\"step2ErrorNode\" class=\"errormessage error\"></div>\n                      </form>\n                    </div>\n                    <div dojoAttachPoint=\"paneStep2\" style=\"display:none\" class=\"activationNotification\">\n                      <div class=\"thankyou\">${strings.Registration.ACTIVATION_NOTIFICATION_1}</div>\n                    </div>\n                  </div>\n              </div>\n              <div class=\"bot smallbot\" dojoAttachPoint=\"legalCopy\">\n                <div dojoAttachPoint=\"paneStep4\">\n                  <div class=\"left\">\n                    <span class=\"legalOnGreyPopup\">\n                      <span class=\"requiredFields\">${strings.Registration.STEP2_REQUIRED}<br /></span>\n                      <span>${strings.Registration.STEP2_LEGAL}</span>\n                    </span>\n                  </div>\n                  <div>\n                      <a href=\"#\" baseClass=\"greenButton\" dojoType=\"joost.ui.Button\" isDisabled=\"true\" dojoAttachPoint=\"signupButton\" dojoAttachEvent=\"onClick:_validateStep2\" isDisabledOnClick=\"true\">${strings.Registration.STEP2_BTNSIGNUP}</a>\n                  </div>\n                </div>\n                <div dojoAttachPoint=\"paneStep5\" class=\"right\" style=\"display:none\">\n                  <a href=\"#\" baseClass=\"greenButton\" dojoType=\"joost.ui.Button\" isDisabled=\"false\" dojoAttachPoint=\"doneButton\" dojoAttachEvent=\"onClick:_hideDialog\" isDisabledOnClick=\"true\">${strings.Registration.STEP2_BTNSIGNUP_OK}</a>\n                </div>\n                <div dojoAttachPoint=\"paneStep6\" style=\"display: none\">\n                  <div class=\"left\">\n                    <span class=\"legalOnGreyPopup\">\n                      <span class=\"requiredFields\">${strings.Registration.STEP2_REQUIRED}<br /></span>\n                      <span>${strings.Registration.STEP2_LEGAL_OK}</span>\n                    </span>\n                  </div>\n                  <div class=\"right\">\n                      <a href=\"#\" baseClass=\"greenButton\" dojoType=\"joost.ui.Button\" isDisabled=\"true\" dojoAttachPoint=\"okButton\" dojoAttachEvent=\"onClick:_validateStep2\" isDisabledOnClick=\"true\">${strings.Registration.STEP2_BTNSIGNUP_OK}</a>\n                  </div>\n                </div>\n              </div>\n            </div>\n        </div>\n    </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"},{module:"joost.ui",bundle:"Registration"},{module:"joost.ui",bundle:"FormatDate"}],attributeMap:{intro:{node:"introNode",type:"innerHTML"}},intro:"",width:653,day:0,month:0,year:0,_requirePassword:true,_tosAccepted:false,completeMissingData:false,loc:null,postCreate:function(){
this.domNode.id="dlgRegistration";
dojo.style(this.step1Node,{opacity:1,display:"block"});
dojo.style(this.overlayNode,"opacity",0.75);
this._createDobDropdowns();
this._initiateDialog();
var last="",_3d8=function(_3d9){
var node=this.emailNode;
_3d9=_3d9||node.attr("value");
if(last!==_3d9){
this._regCheckEmail();
}
last=_3d9;
if(dojo.trim(_3d9)==""){
node.attr("isError",false);
this._revertErrorStep1();
}
};
this.connect(this.emailNode,"onChange",_3d8);
this.connect(this.emailNode,"onBlur",_3d8);
this._whyTip=this.adopt(dijit.Tooltip,{label:"<p>You must be <strong>13 years of age</strong> to register with Joost.</p><p>Thanks!</p>",showDelay:200,position:["after","before"]});
this._whyTip.addTarget(this._whyNode);
this.connect(this.confirmLinkNode,"onclick",this._resendActivation);
if(this.completeMissingData){
dojo.style(this.overlayNode,"display","none");
dojo.style(this.passBoxen,"display","none");
dojo.style(this.paneStep3,{display:"none"});
dojo.style(this.welcomeBackPane,{display:"block"});
this.wbUserEmail.innerHTML=this.prefilledData.email;
if(this.prefilledData.firstName!=""&&this.prefilledData.lastName!=""){
dojo.style(this.inputNamesNode,"display","none");
dojo.style(this.readonlyNamesNode,"display","block");
this.firstnameReadOnlyNode.innerHTML=this.prefilledData.firstName;
this.lastnameReadOnlyNode.innerHTML=this.prefilledData.lastName;
}
try{
this.month=this.prefilledData.dobmonth||0;
this.monthDropDown.attr("value",this.prefilledData.dobmonth);
this.day=this.prefilledData.dobday||0;
this.dayDropDown.attr("value",this.prefilledData.dobday);
this.year=this.prefilledData.dobyear||0;
this.yearDropDown.attr("value",this.prefilledData.dobyear);
}
catch(e){
}
if(this.prefilledData.age>=13){
this.monthDropDown.attr("disabled",true);
this.dayDropDown.attr("disabled",true);
this.yearDropDown.attr("disabled",true);
}
if(this.prefilledData.gender!=null){
dojo.style(this.genderInputNode,"display","none");
}
if(this.prefilledData.postal!=""){
dojo.style(this.zipInputNode,"display","none");
}
dojo.style(this.paneStep4,"display","none");
dojo.style(this.paneStep6,"display","block");
this.okButton._reEnable();
}else{
this.emailLabelNode.focus();
}
if(dojo.isFF){
dojo.connect(dojo.byId("registration_email"),"onclick",function(){
var _3da=dojo.byId("promorotator");
var _3db=dojo.byId("joostplayer");
if(_3da){
_3da.focus();
}
if(_3db){
_3db.focus();
}
});
}
},_resendActivation:function(){
joost.api.registration.sendactivation({email:this.emailNode.attr("value")});
dojo.style(this.paneStep3,"display","none");
dojo.style(this.resentActivatioNode,"display","block");
},_facebook:function(evt){
evt&&evt.preventDefault();
FB.Connect.requireSession(dojo.hitch(this,function(){
joost.api.registration.connect().addCallback(this,"viaFacebook");
}),function(){
});
},viaFacebook:function(info){
this._goStep(2);
if(info){
this._fillFromFacebook(info);
}else{
joost.api.registration.connect().addCallback(this,"_fillFromFacebook");
}
},_startFacebookFetch:function(){
var self=this;
if(dojo.exists("FB.Facebook.apiClient")){
if(!FB.Connect.get_loggedInUser()){
return;
}
joost.facebook.hasExtendedPerms("email").addBoth(function(r){
if(r&&r.missing&&r.missing.length>0){
FB.Connect.showPermissionDialog("email",function(){
self._fetchFromFacebook();
});
}else{
self._fetchFromFacebook();
}
});
}
},_fetchFromFacebook:function(){
var self=this;
FB.Facebook.apiClient.users_getInfo([FB.Connect.get_loggedInUser()],["email","first_name","last_name","sex","current_location"],function(r){
if(r&&r[0]&&r[0].uid){
if(r[0].email){
joost.api.registration.connect().addCallback(self,function(rr){
if(rr&&rr.action=="login"){
joost.user.switchUser(rr.user);
this.hide();
}else{
self._updateFromFacebook(r[0]);
}
});
}else{
self._updateFromFacebook(r[0]);
}
}
});
},_updateFromFacebook:function(info){
if(this.emailNode.attr("value")==""){
this.emailNode.attr("value",info.email);
}
this.firstnameNode.attr("value",info.first_name||"");
this.lastnameNode.attr("value",info.last_name||"");
if(info.sex=="male"){
this.genderMaleNode.attr("value",true);
}
if(info.sex=="female"){
this.genderFemaleNode.attr("value",true);
}
if(info.current_location&&info.current_location.zip){
this.zipNode.attr("value",info.current_location.zip||"");
}
this.pass1Node.focus();
this._requirePassword=false;
dojo.style(this.passBoxen,"visibility","hidden");
},_fillFromFacebook:function(r){
if(!r){
this._requirePassword=true;
dojo.style(this.passBoxen,"visibility","visible");
this.hide();
dojo.publish("/joost/emergency",["Oops, looks like we're having a problem talking to Facebook. Please try again."]);
return;
}
switch(r.action){
case "login":
joost.user.switchUser(r.user);
this.hide();
break;
case "register":
this._startFacebookFetch();
break;
}
},uninitialize:function(){
this._fbhook&&joost.facebook.unhook(this._fbhook);
this.inherited(arguments);
},_createDobDropdowns:function(){
this.monthDropDown=joost.ui.createDropDown({menuItems:[{label:this.i18n("Registration","STEP2_MONTH"),selected:true,value:0},{label:this.i18n("FormatDate","JAN"),value:1},{label:this.i18n("FormatDate","FEB"),value:2},{label:this.i18n("FormatDate","MAR"),value:3},{label:this.i18n("FormatDate","APR"),value:4},{label:this.i18n("FormatDate","MAY"),value:5},{label:this.i18n("FormatDate","JUN"),value:6},{label:this.i18n("FormatDate","JUL"),value:7},{label:this.i18n("FormatDate","AUG"),value:8},{label:this.i18n("FormatDate","SEP"),value:9},{label:this.i18n("FormatDate","OCT"),value:10},{label:this.i18n("FormatDate","NOV"),value:11},{label:this.i18n("FormatDate","DEC"),value:12}],label:this.i18n("Registration","STEP2_MONTH"),layoutClass:"whiteButton month",vscroll:true});
var days=[{label:this.i18n("Registration","STEP2_DAY"),selected:true}];
for(var i=1;i<=31;i++){
days.push({label:i,value:i});
}
this.dayDropDown=joost.ui.createDropDown({menuItems:days,size:6,label:this.i18n("Registration","STEP2_DAY"),layoutClass:"whiteButton day",vscroll:true});
var _3dc=[{label:this.i18n("Registration","STEP2_YEAR"),selected:true}];
var now=new Date();
for(i=now.getFullYear();i>=1900;i--){
_3dc.push({label:i,value:i});
}
this.yearDropDown=joost.ui.createDropDown({menuItems:_3dc,size:6,label:this.i18n("Registration","STEP2_YEAR"),layoutClass:"whiteButton year",vscroll:true});
var _3dd=this.i18n("Registration","STEP2_DATEFORMAT")+"";
for(i=0;i<_3dd.length;i++){
var c=_3dd.charAt(i);
if(c=="d"){
this.dayDropDown.placeAt(this.dobNode);
}else{
if(c=="m"){
this.monthDropDown.placeAt(this.dobNode);
}else{
if(c=="y"){
this.yearDropDown.placeAt(this.dobNode);
}
}
}
}
dojo.forEach(["month","day","year"],function(w){
this.connect(this[w+"DropDown"],"onChange",function(l,_3de){
this[w]=_3de;
});
this._addItem(this[w+"DropDown"]);
},this);
},_keepCheckEmail:function(){
this.keepCheckingEmail=true;
this._regCheckEmail();
},_regCheckEmail:function(){
var _3df=this.emailNode.attr("value"),_3e0=joost.validateEmail(_3df);
this._minidelay&&clearTimeout(this._minidelay);
this.emailNode.attr("isValid",_3e0);
this.keepCheckingEmail=_3e0;
if(_3e0){
if(_3df){
this.emailNode.attr("isError",!_3e0);
}else{
this.emailNode.attr("isError",false);
this.keepCheckingEmail=false;
}
this._minidelay=setTimeout(dojo.hitch(this,"_validateStep1"),150);
}
},_validateStep1:function(){
var _3e1=this.emailNode.attr("value");
if(_3e1!=""){
if(joost.validateEmail(_3e1)){
joost.api.login.checkEmail(_3e1).addCallback(this,function(r){
if(r.success){
this.keepCheckingEmail=false;
this.emailNode.attr("isError",true);
this.emailNode.attr("isValid",false);
this._showErrorStep1("ERRCODE4",true);
dojo.removeClass(this.overlayNode,"dnone");
this._switchSignupOptions(2);
if(!r.hasip){
dojo.style(this.confirmLinkNode,"display","none");
}
}else{
this._goStep(2);
this._revertErrorStep1();
}
}).addErrback(this,function(){
this._showErrorStep1("ERRCODE3");
});
}else{
this._showErrorStep1("ERRCODE2");
}
}else{
this._showErrorStep1("ERRCODE1");
}
},_switchSignupOptions:function(page){
dojo.style(this.signupOptionsNode,{"display":(page==2?"block":"none")});
},_validateRegister:function(){
if(!dojo.hasClass(this.overlayNode,"dnone")){
return;
}
var _3e2="isError",_3e3="value";
this.firstnameNode.attr(_3e2,false);
this.lastnameNode.attr(_3e2,false);
this.pass1Node.attr(_3e2,false);
this.pass2Node.attr(_3e2,false);
if(this.firstnameNode.attr(_3e3)==""||this.lastnameNode.attr(_3e3)==""||(this["month"]==0||this["day"]==0||this["year"]==0)){
if(this.firstnameNode.attr(_3e3)==""){
this.firstnameNode.attr(_3e2,true);
}
if(this.lastnameNode.attr(_3e3)==""){
this.lastnameNode.attr(_3e2,true);
}
this.monthDropDown.attr(_3e2,this.monthDropDown.attr(_3e3)==0);
this.yearDropDown.attr(_3e2,this.yearDropDown.attr(_3e3)==0);
this.dayDropDown.attr(_3e2,this.dayDropDown.attr(_3e3)==0);
if(this.monthDropDown.attr(_3e3)==0||this.yearDropDown.attr(_3e3)==0||this.dayDropDown.attr(_3e3)==0){
dojo.addClass(this.dobNode,"dobError");
}else{
dojo.removeClass(this.dobNode,"dobError");
}
this._showErrorStep2("ERRCODE10");
return false;
}
if(this.firstnameNode.attr(_3e3).length>joost.config.maxFirstNameChars||this.lastnameNode.attr(_3e3).length>joost.config.maxLastNameChars){
if(this.firstnameNode.attr(_3e3).length>joost.config.maxFirstNameChars){
this.firstnameNode.attr(_3e2,true);
}
if(this.lastnameNode.attr(_3e3).length>joost.config.maxLastNameChars){
this.lastnameNode.attr(_3e2,true);
}
this._showErrorStep2("ERRCODE29");
return false;
}
this.step2ErrorNode.innerHTML="";
this.monthDropDown.attr(_3e2,false);
this.yearDropDown.attr(_3e2,false);
this.dayDropDown.attr(_3e2,false);
if(this._requirePassword){
if(this.pass1Node.attr(_3e3).length<6){
this.pass1Node.attr(_3e2,true);
if(this.pass2Node.attr(_3e3)!=""){
this.pass2Node.attr(_3e2,true);
}
this._showErrorStep2("ERRCODE11");
return false;
}
if(this.pass1Node.attr(_3e3)!=this.pass2Node.attr(_3e3)){
this.pass1Node.attr(_3e2,true);
this.pass2Node.attr(_3e2,true);
this._showErrorStep2("ERRCODE12");
return false;
}
}
this.step2ErrorNode.innerHTML="";
var _3e4;
if(this.genderMaleNode.attr(_3e3)){
_3e4=this.genderMaleNode.attr(_3e3);
}
if(this.genderFemaleNode.attr(_3e3)){
_3e4=this.genderFemaleNode.attr(_3e3);
}
var _3e5={email:this.emailNode.attr(_3e3),password:this.pass1Node.attr(_3e3),firstName:this.firstnameNode.attr(_3e3),gender:_3e4,lastName:this.lastnameNode.attr(_3e3),postal:this.zipNode.attr(_3e3),acceptTOS:1,loc:this.loc};
if(!this._requirePassword&&_3e5.password==""){
delete _3e5.password;
}
var d=parseInt(this.day,10),m=parseInt(this.month,10),y=parseInt(this.year,10);
if(d>0&&m>0&&y>0){
_3e5.dobday=d;
_3e5.dobmonth=m;
_3e5.dobyear=y;
}
joost.api.registration.register(_3e5).addCallback(this,"_registerSuccess").addErrback(this,"_registerFail");
},_validateResume:function(){
var _3e6="isError",_3e7="value";
if(this["month"]==0||this["day"]==0||this["year"]==0){
this.monthDropDown.attr(_3e6,this.monthDropDown.attr(_3e7)==0);
this.yearDropDown.attr(_3e6,this.yearDropDown.attr(_3e7)==0);
this.dayDropDown.attr(_3e6,this.dayDropDown.attr(_3e7)==0);
dojo.addClass(this.dobNode,"dobError");
this._showErrorStep2("ERRCODE10");
this.okButton._reEnable();
return false;
}else{
dojo.removeClass(this.dobNode,"dobError");
}
this.step2ErrorNode.innerHTML="";
var _3e8;
if(this.genderMaleNode.attr(_3e7)){
_3e8=this.genderMaleNode.attr(_3e7);
}
if(this.genderFemaleNode.attr(_3e7)){
_3e8=this.genderFemaleNode.attr(_3e7);
}
var _3e9={gender:_3e8,postal:this.zipNode.attr(_3e7),acceptTOS:1,loc:this.loc};
if(this.prefilledData.firstName!=""&&this.prefilledData.lastName!=""){
_3e9.firstName=this.firstnameNode.attr(_3e7);
_3e9.lastName=this.lastnameNode.attr(_3e7);
}
var d=parseInt(this.day,10),m=parseInt(this.month,10),y=parseInt(this.year,10);
if(d>0&&m>0&&y>0){
_3e9.dobday=d;
_3e9.dobmonth=m;
_3e9.dobyear=y;
}
joost.api.registration.resume(_3e9).addCallback(this,"_registerSuccess").addErrback(this,"_registerFail");
},_validateStep2:function(){
if(this.completeMissingData){
this._validateResume();
}else{
this._validateRegister();
}
},_registerSuccess:function(r){
joost.trackFakeEvent("registration","success");
this.usr=r;
joost.addBeacon();
this._revertErrorStep2();
var _3ea=100;
dojo.fx.combine([dojo.fx.wipeOut({node:this.paneStep1,duration:_3ea}),dojo.fx.wipeOut({node:this.paneStep4,duration:_3ea}),dojo.fx.wipeOut({node:this.paneStep6,duration:_3ea}),dojo.fx.wipeIn({node:this.paneStep2,duration:_3ea}),dojo.fx.wipeIn({node:this.paneStep5,duration:_3ea})]).play();
dojo.addClass(this.paneStep0,"midEnd");
dojo.addClass(this.paneStep3,"header thankyou");
dojo.attr(this.paneStep3,"innerHTML",this.i18n("Registration","ACTIVATION_NOTIFICATION_4"));
this.usr&&joost.user.switchUser(this.usr);
},_registerFail:function(r){
var _3eb=0;
if(r.responseText.indexOf("Illegal birthday")!=-1){
_3eb=8;
}
if(_3eb==0){
var err=dojo.fromJson(r.responseText);
if(err&&err.msg){
_3eb=err.msg.code;
}
}
if(_3eb&&_3eb>0){
if(_3eb==2||_3eb==6){
this._goStep(1);
this._revertErrorStep2();
this.signupButton._reEnable();
this._showErrorStep1("ERRCODE2"+_3eb);
}else{
this._showErrorStep2("ERRCODE2"+_3eb);
}
this.okButton._reEnable();
}else{
this._showErrorStep2("ERRCODE3");
}
},_goStep:function(step){
if(step==2){
this.signupButton.attr("disabled",false);
dojo.addClass(this.overlayNode,"dnone");
}else{
if(step==1){
dojo.removeClass(this.overlayNode,"dnone");
this.signupButton.attr("disabled",true);
}
}
},_showErrorStep1:function(_3ec,_3ed){
dojo.addClass(this.emailLabelNode,"error");
this.emailLabelNode.innerHTML=this.i18n("Registration",_3ec);
if(!_3ed){
this._keepCheckEmail();
}
},_revertErrorStep1:function(){
dojo.removeClass(this.emailLabelNode,"error");
this.emailLabelNode.innerHTML=this.i18n("Registration","STEP1_EMAIL");
this._switchSignupOptions(1);
},_showErrorStep2:function(_3ee){
this.step2ErrorNode.innerHTML=this.i18n("Registration",_3ee);
this.signupButton._reEnable();
},_revertErrorStep2:function(){
this.step2ErrorNode.innerHTML="";
},_goProfile:function(){
this._closeRegForm();
joost.sitemap.go("/settings");
},_closeRegForm:function(){
this._hideDialog();
this.usr&&joost.user.switchUser(this.usr);
},_whyBirth:function(e){
e.preventDefault();
}});
}
if(!dojo._hasResource["joost.ui._Showable"]){
dojo._hasResource["joost.ui._Showable"]=true;
dojo.provide("joost.ui._Showable");
dojo.declare("joost.ui._Showable",null,{uninitialize:function(){
this.inherited(arguments);
this._cancelAnim();
},postCreate:function(){
this.inherited(arguments);
dojo.style(this.domNode,"opacity",0);
},_clearAnim:function(){
dojo.forEach(this.__animConnects,this.disconnect,this);
this.__animConnects=null;
this.__anim=null;
},_cancelAnim:function(){
this.__anim&&this.__anim.status()=="playing"&&this.__anim.stop();
if(this.__anim){
this._clearAnim();
}
},_toggle:function(_3ef){
this._cancelAnim();
this.__anim=dojo[_3ef?"fadeIn":"fadeOut"]({node:this.domNode});
this.__animConnects=[this.connect(this.__anim,"onEnd","_clearAnim"),this.connect(this.__anim,"onEnd",_3ef?"onShown":"onHidden")];
this[_3ef?"onShowing":"onHiding"](this.__anim);
this.__anim.play();
this.__anim.hiding=!_3ef;
return this.__anim;
},show:function(){
if(this.isShowing()){
return this.__anim;
}
return this._toggle(true);
},hide:function(){
if(this.isHiding()){
return this.__anim;
}
return this._toggle(false);
},isHiding:function(){
return !!(this.__anim&&this.__anim.hiding);
},isShowing:function(){
return !!(this.__anim&&!this.__anim.hiding);
},onHiding:function(){
},onHidden:function(){
},onShowing:function(){
},onShown:function(){
}});
}
if(!dojo._hasResource["joost.ui.Gus"]){
dojo._hasResource["joost.ui.Gus"]=true;
dojo.provide("joost.ui.Gus");
dojo.declare("joost.ui.Gus",[joost.NlsWidget,dijit._Container],{templateString:dojo.cache("joost.ui","templates/gus.html","<div id=\"gus\">\n    <div>\n        <div class=\"left\">\n            <ul>\n                <li>\n                    <div><div><span>${strings.Gus.PAGEMODE_LABEL}</span></div></div>\n                </li>\n                <li>\n                    <div><div id=\"pageMode\">\n                        <ul dojoAttachEvent=\"onclick:_selectPageMode\">\n                            <li class=\"standard selected\"><a href=\"#standard\" title=\"${strings.Gus.PAGEMODE_STANDARD}\"><span>${strings.Gus.PAGEMODE_STANDARD}</span></a></li>\n                            <li class=\"cinematic\"><a href=\"#cinematic\" title=\"${strings.Gus.PAGEMODE_CINEMATIC}\"><span>${strings.Gus.PAGEMODE_CINEMATIC}</span></a></li>\n                        </ul>\n                    </div></div>\n                </li>\n                <li class=\"globalLoader\"><div dojoAttachPoint=\"loaderNode\"></div></li>\n            </ul>\n        </div>\n        <div class=\"right\" id=\"accountInformation\">\n            <ul dojoAttachPoint=\"containerNode\">\n            </ul>\n        </div>\n        <div id=\"gusDropdowns\"></div>\n    </div>\n    <div class=\"overlayBorder\"></div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Gus"}],locale_img:dojo.moduleUrl("joost","resources/images/i18n/flags/us.jpg"),loggedIn:false,_loading:0,constructor:function(){
this.loggedIn=!joost.user.current.anonymous;
},postCreate:function(){
this.subscribe("/joost/command/changeuser","_changeUser");
this.subscribe("/joost/rpc/start","_addLoading");
this.subscribe("/joost/rpc/stop","_doneLoading");
if(dojo.config.enableFacebook==="true"){
this.subscribe("/facebook/status","_updateFacebookStatus");
}
this.adopt(joost.ui.Toaster,{"class":"emergencyNote"}).placeAt(this.domNode);
if(!this.loggedIn){
this.attr("loggedIn",this.loggedIn);
}
dojo.style(this.loaderNode,"opacity",0);
dojo.addClass(this.loaderNode,"ready");
},_updateFacebookStatus:function(s){
if(!this.loggedIn){
return;
}
if(s=="connected"){
if(this._reconnect){
this.orphan(this._reconnect,true);
delete this._reconnect;
}
}else{
if(this._reconnect){
return;
}
this._reconnect=this.adopt(joost.ui.GusConnect,{label:"<span>"+this.i18n("Gus","CONNECT_FACEBOOK")+"</span>",itemClass:"facebook"});
dojo.place(this._reconnect.domNode,this._welcome.domNode,"after");
}
},_setLoggedInAttr:function(v){
this.loggedIn=v;
if(this.loggedIn){
this._showUserItems();
}else{
this._showAnonItems();
}
},_addLoading:function(){
this._loading++;
dojo.anim(this.loaderNode,{opacity:this._loading?1:0});
},_doneLoading:function(){
this._loading--;
if(this._loading<0){
this._loading=0;
}
dojo.anim(this.loaderNode,{opacity:this._loading?1:0});
},_clearLoading:function(){
this._loading=1;
this._doneLoading();
},_changeUser:function(user){
this.attr("loggedIn",!user.anonymous);
},_showAnonItems:function(){
var _3f0=this.adopt(joost.ui.GusStaticItem,{id:"gus_hello",label:this.i18n("Gus","HELLO_DEFAULT")});
if(dojo.config.enableFacebook==="true"){
var _3f1=this.adopt(joost.ui.GusConnect,{id:"gus_fb_login",label:"<span>"+this.i18n("Gus","LOGIN_FACEBOOK")+"</span>",itemClass:"facebook"});
}
var _3f2=this.adopt(joost.ui.GusItem,{id:"gus_login",label:this.i18n("Gus","LOGIN"),itemClass:"login",highlightable:true,popupTrigger:true,onClick:dojo.hitch(this,this._showDialog,joost.ui.GusLoginDialog)});
var _3f3=this.adopt(joost.ui.GusItem,{id:"gus_signup",label:this.i18n("Gus","SIGNUP"),itemClass:"signup",onClick:function(){
joost.register();
}});
if(dojo.config.enableFacebook==="true"){
this._showItems([_3f0,_3f1,_3f2,_3f3]);
}else{
this._showItems([_3f0,_3f2,_3f3]);
}
this._welcome=null;
this.subscribe("/joost/popup/guslogin",dojo.hitch(this,this._showDialog,joost.ui.GusLoginDialog,_3f2));
},_showDialog:function(_3f4,_3f5){
var d=this._dialog;
if(d&&d instanceof _3f4){
d[(d.isHiding()?"show":"hide")]();
return;
}
this._destroyDialog();
this._dialog=this.adopt(_3f4,{trigger:_3f5});
var _3f6=this.connect(this._dialog,"onHiding",function(){
_3f5.highlight(false);
});
var _3f7=this.connect(this._dialog,"onHidden",function(){
this._dialog=null;
this.disconnect(_3f6);
this.disconnect(_3f7);
});
this._dialog.show();
},_destroyDialog:function(){
if(this._dialog){
this._dialog.hide();
}
},_showUserItems:function(){
var u=joost.user.current;
this._welcome=this.adopt(joost.ui.GusWelcomeItem,{label:joost.ellipsis(joost.deXSS(u.displayName),42,"absolute",10),facebookConnected:(dojo.config.enableFacebook==="true")?!!u.identities.FACEBOOK:false});
this._showItems([this._welcome,this.adopt(joost.ui.GusLogoutItem)]);
if(dojo.config.enableFacebook==="true"){
if(u.identities.FACEBOOK){
this._updateFacebookStatus(joost.facebook.status());
}
}
},_showItems:function(_3f8){
if(!dojo.isArray(_3f8)){
throw new Error("itemSet must be an array");
}
this._destroyDialog();
this.destroyDescendants();
dojo.forEach(_3f8,this.addChild,this);
},_selectPageMode:function(e){
e.preventDefault();
var _3f9=e.target;
var _3fa=(_3f9.tagName||"").toLowerCase();
if(_3fa=="ul"){
return;
}
while(_3fa!=="li"){
_3f9=_3f9.parentNode;
_3fa=(_3f9.tagName||"").toLowerCase();
}
var _3fb=dojo.query("> a",_3f9)[0];
if(dojo.hasClass(_3f9,"selected")){
return;
}
dojo.query("> li",e.currentTarget).removeClass("selected");
dojo.addClass(_3f9,"selected");
dojo.publish("/joost/command/change-page-mode",[dojo.attr(_3fb,"href").slice(1)]);
}});
dojo.declare("joost.ui.GusDialog",[joost.Widget,dijit._Contained,joost.ui._Showable],{constructor:function(args){
this.trigger=args.trigger||null;
},uninitialize:function(){
this.trigger=null;
this.inherited(arguments);
},onShowing:function(){
this.placeAt("gusDropdowns");
setTimeout(dojo.hitch(this,"connect",dojo.body(),"onclick","_bodyClick"),1);
},onHidden:function(){
this.destroyRecursive();
},_bodyClick:function(e){
var node=e.target;
var b=dojo.body();
var trig=this.trigger?this.trigger.domNode:null;
while(node&&node!=b){
if(node==this.domNode||(trig&&(node==trig))){
return;
}
node=node.parentNode;
}
this.hide();
}});
dojo.declare("joost.ui.GusLoginDialog",[joost.ui.GusDialog,joost._Nls],{templateString:dojo.cache("joost.ui","templates/gus_login.html","<div id=\"login\" class=\"gusDropdown\">\n  <div class=\"hitelite\"></div>\n  <div class=\"top\">\n    <div class=\"r\">\n\n    <div class=\"section\">\n      <div dojoAttachPoint=\"errorNode\" style=\"display:none\">\n        <div class=\"errorMsg\">\n          <div><p dojoAttachPoint=\"errorNodeContainer\">${strings.Gus.LOGIN_FORM_ERROR_GENERIC}</p></div>\n        </div>\n      </div>\n      <form id=\"loginForm\" method=\"POST\" action=\"/login\" dojoAttachEvent=\"onsubmit:_onLogin\">\n        <div class=\"inputHolder\"><label for=\"username\" class=\"left\">${strings.Gus.LOGIN_FORM_LABEL_JNOREMAIL}</label>\n          <div class=\"right\" dojoType=\"joost.ui.TextBox\" on=\"\" name=\"username\" id=\"username\"\n            helperText=\"${strings.Gus.LOGIN_FORM_LABEL_JNOREMAIL_H}\" dojoAttachPoint=\"nodeUsername\"\n            dojoAttachEvent=\"onfocus:_onUsernameFocus, onKeyPress: _onInput\"\n            intermediateChanges=\"true\"></div>\n          </div>\n          <div class=\"inputHolder\"><label for=\"password\" class=\"left\">${strings.Gus.LOGIN_FORM_LABEL_PWD}</label>\n            <div class=\"right\" dojoType=\"joost.ui.TextBox\" on=\"\" type=\"password\" name=\"password\" id=\"password\"  \n              dojoAttachPoint=\"nodePassword\" dojoAttachEvent=\"onKeyPress: _onInput\"\n              intermediateChanges=\"true\"></div>\n          </div>\n          <div class=\"buttonHolder\">\n            <a class=\"xLink\" dojoAttachEvent=\"onclick:_onCancel\">${strings.Gus.LOGIN_FORM_CANCEL}</a>\n            <a class=\"whiteButton\" \n              dojoAttachEvent=\"onclick:_onLogin\"\n              dojoAttachPoint=\"submitBtn\"><span>${strings.Gus.LOGIN_FORM_SUMBIT}</span></a>\n          </div>\n          <div></div>\n      </form>\n    </div>\n    <div class=\"section\">\n      <p id=\"fb_section\" class=\"border\">${strings.Gus.LOGIN_FORM_FB_LABEL} <a href=\"#\" dojoAttachEvent=\"onclick:_connect\" class=\"facebook\"><span>${strings.Gus.LOGIN_FORM_FB_BUTTON}</span></a></p>\n    </div>\n    <div class=\"section\">\n      <p>\n        <a class=\"bulletLink11\" href=\"#\" dojoAttachEvent=\"onclick:_register\">${strings.Gus.LOGIN_FORM_REF_NOACCOUNT}</a>\n      </p>\n      <p>\n        <a class=\"bulletLink11\" target=\"_blank\" href=\"/forgot/\">${strings.Gus.LOGIN_FORM_REF_FORGOTPWD}</a>\n      </p>\n    </div>\n\n    </div>\n  </div>\n  <div class=\"bot\"><div class=\"r\"></div></div>\n</div>\n"),widgetsInTemplate:true,bundles:[{module:"joost.ui",bundle:"Gus"}],id:"login",postCreate:function(){
if(dojo.config.enableFacebook==="true"){
var _3fc=dojo.byId("playerErr");
if(_3fc&&dojo.hasClass(_3fc,"agerestricted_notloggedin")){
dojo.connect(this,"show",function(){
dojo.style(dojo.attr("fb_section","innerHTML",""),{"padding":0,"borderTop":"none"});
});
}
}else{
dojo.connect(this,"show",function(){
dojo.style(dojo.attr("fb_section","innerHTML",""),{"padding":0,"borderTop":"none"});
});
}
},_showError:function(msg){
msg=msg||this.i18n("Gus","LOGIN_FORM_ERROR_GENERIC");
this.errorNodeContainer.innerHTML=msg;
dojo.fx.wipeIn({node:this.errorNode}).play();
},_hideError:function(){
dojo.fx.wipeOut({node:this.errorNode}).play();
},_onUsernameFocus:function(){
dojo.removeClass(this.nodeUsername.domNode,"error");
},_onLogin:function(e){
e.preventDefault();
joost.trackFakeEvent("login","login-attempt");
var def=joost.login.validate(this.nodeUsername.attr("value"),this.nodePassword.attr("value"));
def.addCallback(this,"_onValid");
def.addErrback(this,function(){
this._showError();
joost.trackFakeEvent("login","failure");
setTimeout(dojo.hitch(this,"_hideError"),5000);
});
},_connect:function(e){
e.preventDefault();
joost.trackFakeEvent("login","connect-start-from-gus");
joost.facebook.connect();
this.hide();
},_onCancel:function(e){
e.preventDefault();
this.hide();
},_onValid:function(resp){
joost.api.profile.get().addCallback(function(data){
if(dojo.byId("playerErr")){
dojo.cookie("popValidateUserDialog","1");
location.reload();
return false;
}else{
if(data.status=="UNCONFIRMED"){
var _3fd=(!data.hasRegIP||(data.age<13||typeof data.age=="undefined"));
if(_3fd){
joost.acceptTOS(data);
}else{
joost.confirm(data);
}
}
}
});
joost.trackFakeEvent("login","success");
},_register:function(e){
e.preventDefault();
new joost.ui.DialogRegistration({});
this.hide();
},_forgotPassword:function(e){
e.preventDefault();
},_onInput:function(e){
if(e&&e.charOrCode==dojo.keys.ENTER){
var a=this.nodeUsername.attr("value"),b=this.nodePassword.attr("value");
if(a&&b){
this._onLogin(e);
}else{
if(a&&!b){
this.nodePassword.focus();
}
}
}
}});
dojo.declare("joost.ui.GusItem",[joost.Widget,dijit._Contained],{label:"",itemClass:"",attributeMap:{label:{node:"containerNode",type:"innerHTML"},itemClass:{node:"containerNode",type:"class"}},templateString:dojo.cache("joost.ui","templates/gus_generic.html","<li dojoAttachEvent=\"onclick:_onClick\"><div class=\"left\"></div><div class=\"right\"><div><a dojoAttachPoint=\"containerNode\"></a></div></div></li>\n"),popupTrigger:false,highlightable:false,_onClick:function(e){
e.preventDefault();
this.highlight(true);
this.onClick(this);
},onClick:function(){
},highlight:function(x){
if(this.highlightable){
dojo.toggleClass(this.domNode,"selected",x);
}
},postCreate:function(){
if(this.popupTrigger){
dojo.addClass(this.containerNode,"popupTrigger");
}
dojo.setSelectable(this.domNode,false);
}});
dojo.declare("joost.ui.GusStaticItem",joost.ui.GusItem,{templateString:dojo.cache("joost.ui","templates/gus_static.html","<li><div><div><span dojoAttachPoint=\"containerNode\"></span></div></div></li>\n")});
dojo.declare("joost.ui.GusConnect",joost.ui.GusItem,{postCreate:function(){
this.inherited(arguments);
dojo.style(this.domNode,"display","none");
this._facehook=joost.facebook.hook(dojo.hitch(this,function(){
this._show();
dojo.publish("/joost/gus/fblogin");
}),function(){
console.error("facebook unavailable?");
});
},uninitialize:function(){
this.inherited(arguments);
if(this._facehook){
joost.facebook.unhook(this._facehook);
this._facehook=null;
}
},_show:function(){
dojo.style(this.domNode,"display","");
},onClick:function(){
joost.facebook.connect();
}});
dojo.declare("joost.ui.GusCountedItem",joost.ui.GusItem,{templateString:dojo.cache("joost.ui","templates/gus_counted.html","<li dojoAttachEvent=\"onclick:_onClick\">\n  <div><div><span><a href=\"#\" dojoAttachPoint=\"containerNode\"></a><span class=\"count\"><span \n    dojoAttachPoint=\"countNode\">0</span></span></span></div></div>\n</li>\n"),count:0,_setCountAttr:function(cnt){
cnt=cnt||0;
this.countNode.innerHTML=""+cnt;
dojo.toggleClass(this.domNode,"glow",cnt>0);
dojo.toggleClass(this.countNode.parentNode,"highlight",cnt>0);
this.count=cnt;
}});
dojo.declare("joost.ui.GusLogoutItem",[joost.ui.GusItem,joost._Nls],{bundles:[{module:"joost.ui",bundle:"Gus"}],templateString:dojo.cache("joost.ui","templates/gus_logout.html","<li dojoAttachEvent=\"onclick:_onClick\"><div><div><span><a class=\"xLink dark logout\" href=\"#\" dojoAttachPoint=\"containerNode\">${strings.Gus.LOGOUT}</a></span></div></div></li>\n"),_onClick:function(e){
dojo.stopEvent(e);
joost.user.logout();
}});
dojo.declare("joost.ui.GusWelcomeItem",[joost.ui.GusItem,joost._Nls],{bundles:[{module:"joost.ui",bundle:"Gus"}],templateString:dojo.cache("joost.ui","templates/gus_welcome.html","<li dojoAttachEvent=\"onclick:_onClick\">\n    <div><div style=\"cursor:pointer\">\n            <span dojoAttachPoint=\"linkNode\">${strings.Gus.HELLO} <em dojoAttachPoint=\"containerNode\">User</em></span>\n    </div></div>\n</li>\n"),facebookConnected:false,postCreate:function(){
this.inherited(arguments);
if(dojo.config.enableFacebook==="true"){
this.subscribe("/facebook/status","_updateFacebookStatus");
}
},_setFacebookConnectedAttr:function(v){
dojo.toggleClass(this.linkNode,"facebook",v);
},_updateFacebookStatus:function(_3fe){
this.attr("facebookConnected",_3fe=="connected");
},_onClick:function(e){
e&&e.preventDefault();
joost.sitemap.go("/profile");
}});
dojo.declare("joost.ui.Toaster",dijit._Widget,{emergency:false,postCreate:function(){
this.subscribe("/joost/emergency","_setEmergency");
this.connect(this.domNode,"onclick",function(){
dojo.publish("/joost/emergency",[false]);
});
},_setEmergency:function(msg){
this._anim&&this._anim.stop();
var en=this.domNode;
if(!msg||msg==false){
this._anim=dojo.fadeOut({node:en,onEnd:function(n){
dojo.empty(n);
dojo.style(n,"display","none");
n.className="emergencyNote";
}}).play();
return;
}else{
var _3ff,_400,smsg;
if(dojo.isString(msg)||(msg===!!msg)){
smsg=msg;
}else{
_3ff=msg.duration||0;
_400=msg.level||"warn";
smsg=msg.message;
}
en.innerHTML="<p>"+smsg+"</p>";
dojo.style(en,{display:"block",opacity:0});
this._anim=dojo.fadeIn({node:en}).play();
_400&&dojo.addClass(en,_400);
this._current&&clearTimeout(this._current);
if(_3ff){
this._current=setTimeout(dojo.hitch(this,"_setEmergency",false),_3ff);
}
}
}});
}
if(!dojo._hasResource["joost.ui.GlobalNav"]){
dojo._hasResource["joost.ui.GlobalNav"]=true;
dojo.provide("joost.ui.GlobalNav");
dojo.declare("joost.ui.GlobalNav",joost.Widget,{templateString:dojo.cache("joost.ui","templates/globalnav.html","<div>\n  <div class=\"left\">\n    <h1 class=\"logo\"><a href=\"${homeLink}\" target=\"${homeTarget}\"><span>${homeText}</span></a></h1>\n    <div class=\"globalNavMenu\">\n        <div class=\"highlite\"></div>\n        <ul class=\"globalNav\" dojoattachevent=\"onclick:_onNavClick\">\n            <li>\n                <a href=\"#\" rel=\"/shows\" class=\"shows\"><span>Shows</span></a>\n            </li>\n            <li>\n                <a href=\"#\" rel=\"/film\" class=\"film\"><span>Films</span></a>\n            </li>\n            <li>\n                <a href=\"#\" rel=\"/music\" class=\"music\"><span>Music</span></a>\n            </li>\n        </ul>\n    </div>\n  </div>\n  <div class=\"right\">\n    <div class=\"search\">\n      <form dojoAttachEvent=\"onsubmit:_onSearch\" action=\"/search\" method=\"get\">\n        <input type=\"text\" \n               name=\"q\" \n               dojoAttachPoint=\"queryInput\"\n               dojoAttachEvent=\"onfocus:_onQueryFocus,onblur:_onQueryBlur\"\n               class=\"searchField preFocus\" \n               blankValue=\"Search for...\"\n               value=\"Search for...\" />\n        <input type=\"submit\" class=\"searchButton\" value=\"\"/>\n      </form>\n    </div>\n  </div>\n  <div class=\"clear\"></div>\n</div>\n"),_getSearchTermAttr:function(){
return dojo.hasClass(this.queryInput,"preFocus")?"":dojo.trim(this.queryInput.value);
},_setSearchTermAttr:function(v){
v=dojo.trim(v);
this.queryInput.value=v;
dojo.toggleClass(this.queryInput,"preFocus",v=="");
},_onQueryFocus:function(e){
if(this.queryInput.value==dojo.attr(this.queryInput,"blankValue")){
this.queryInput.value="";
}
this._popup&&this._popup._leave(null,10);
dojo.removeClass(this.queryInput,"preFocus");
},_onQueryBlur:function(e){
if(dojo.trim(this.queryInput.value)==""){
dojo.addClass(this.queryInput,"preFocus");
this.queryInput.value=dojo.attr(this.queryInput,"blankValue");
}
},focus:function(){
},_onSearch:function(e){
e.preventDefault();
if(dojo.trim(this.attr("searchTerm"))==""){
this.queryInput.focus();
}else{
joost.sitemap.go("/search",{q:this.attr("searchTerm")});
}
},_onNavClick:function(e){
e.preventDefault();
var node=e.target;
while(node&&node.tagName.toLowerCase()!=="a"&&node!==e.currentTarget){
node=node.parentNode;
}
if(node.tagName.toLowerCase()!=="a"){
return;
}
joost.sitemap.go(dojo.attr(node,"rel"));
},postMixInProperties:function(){
var cfg=dojo.config;
this.homeLink=cfg.homeLink||"/";
this.homeText=cfg.homeText||"Joost";
this.homeTarget=cfg.homeTarget||"";
this.inherited(arguments);
},startup:function(){
this._menu=this.adopt(joost.ui.GlobalNavMenu);
this._popup=this.adopt(joost.ui.GlobalNavPopup,{id:"navpopup",parent:this});
var s=this.subscribe("/joost/navdata-ready",function(){
this.unsubscribe(s);
this._children=dojo.query(".globalNav > li").forEach(function(n){
var cn=dojo.query("a",n)[0].className,h=dojo.hitch(this,"_hover",n,cn);
this.connect(n,"onmouseenter",h);
this.connect(n,"onmouseleave",h);
},this);
});
},_hover:function(n,_401,e){
this._hoverVrl&&clearTimeout(this._hoverVrl);
if(/over|enter/.test(e.type)){
var _402=n.parentNode.parentNode;
var evt=this.subscribe("/joost/GlobalNavPopup-hide",function(){
this.unsubscribe(evt);
_402.className="globalNavMenu";
});
var p=this._popup;
if(p){
this._hoverVrl=setTimeout(dojo.hitch(p,function(){
this.setShowing(_401);
_402.className="globalNavMenu "+_401;
}),200);
}
}
}});
dojo.declare("joost.ui.GlobalNavPopup",joost.Widget,{panelData:null,templateString:dojo.cache("joost.ui","templates/globalnav_popup.html","<div id=\"navpopup\" class=\"shows\">\n  <div dojoAttachPoint=\"wrapper\" class=\"navpopup-wrapper\">\n    <div class=\"tab globalNav\">\n      <a href=\"#\" dojoAttachPoint=\"labelNode\" class=\"shows\"><span>&nbsp;</span></a>\n    </div>\n    <div class=\"bottom\" dojoAttachPoint=\"contents\"></div>\n  </div>\n</div>\n"),postCreate:function(){
this.panels=new joost.ui.GlobalNavPanes({menu:this.parent._menu.domNode},this.contents);
var h=dojo.byId("header");
this.placeAt(h,"after");
var s=this.subscribe("/joost/navdata-ready",function(){
this.unsubscribe(s);
this.connect(h,"onmouseleave","_leave");
this.connect(h,"onmouseenter","_over");
this.connect(this.domNode,"onmouseenter","_over");
this.connect(this.domNode,"onmouseleave","_leave");
});
dojo.xhrGet({url:"/b/globalnav",handleAs:"jsonref",load:function(data){
joost.ui.GlobalNav._dataCache=data;
dojo.publish("/joost/navdata-ready");
}});
},hide:function(){
this.open=false;
dojo.style(this.wrapper,"display","none");
dojo.publish("/joost/GlobalNavPopup-hide");
},show:function(){
var _403=dojo.position("header",true);
this.open=true;
dojo.style(this.wrapper,{display:"block",top:(_403.y+_403.h-28)+"px"});
},_over:function(e){
this._hasHover=true;
if(this._stall){
clearTimeout(this._stall);
delete this._stall;
}
},_leave:function(e,_404){
this._hasHover=false;
this._stall=setTimeout(dojo.hitch(this,"hide"),_404||350);
},setShowing:function(_405){
this.currentItem=this.parent._menu.currentItem=this.labelNode.className=this.domNode.className=_405;
dojo.removeClass(this.domNode,"menuhidden");
var r=dojo.query(".menu a.selected",this.domNode)[0];
r=r&&r.href?joost.util.fix(r.href):"Featured";
dojo.publish("/j/nav-showPanel",[r,_405]);
if(!this.open){
this.show();
}
}});
dojo.declare("joost.ui.GlobalNavPanes",joost.Widget,{templateString:dojo.cache("joost.ui","templates/globalnav_popup_panes.html","<div class=\"bottom\">\n  \n  <!-- the Featured listing nodes -->\n  <div rel=\"Featured-shows\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"Featured-film\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"Featured-music\" class=\"contents\"><div class=\"section loader\"></div></div>\n\n  <!-- most popular -->\n  <div rel=\"MostPopular-shows\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"MostPopular-film\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"MostPopular-music\" class=\"contents\"><div class=\"section loader\"></div></div>\n  \n  <!-- most recent -->\n  <div rel=\"MostRecent-shows\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"MostRecent-film\" class=\"contents\"><div class=\"section loader\"></div></div>\n  <div rel=\"MostRecent-music\" class=\"contents\"><div class=\"section loader\"></div></div>\n  \n  <!-- the A-Z listing node -->\n  <div rel=\"All-shows\" class=\"contents\">\n    <div class=\"section loader\"></div>\n    <div class=\"bottomLink\"><a class=\"bulletLink11\" href=\"#\">Full A-Z Listing</a></div>\n  </div>\n  <div rel=\"All-film\" class=\"contents\">\n    <div class=\"section loader\"></div>\n    <div class=\"bottomLink\"><a class=\"bulletLink11\" href=\"#\">Full A-Z Listing</a></div>\n  </div>\n  <div rel=\"All-music\" class=\"contents\">\n    <div class=\"section loader\"></div>\n    <div class=\"bottomLink\"><a class=\"bulletLink11\" href=\"#\">Full A-Z Listing</a></div>\n  </div>\n  \n</div>\n"),_showPanel:function(_406,_407){
if(!this._generated[_406]){
this._generated[_407]={};
}
var d=this._generated[_407][_406]||this._getItem(_406,_407);
this._panels=dojo.query("> .contents",this.domNode);
if(d){
_406=_406||"";
var hope=_406.replace(/ /,"")+"-"+_407;
var yes=this._panels.addClass("panelhidden").some(function(n){
var r=dojo.attr(n,"rel");
if(hope==r){
dojo.removeClass(n,"panelhidden");
dojo.place(this.menu,n,"first");
return true;
}
return false;
},this);
}
},_getItem:function(_408,_409){
if(!this.panelData[_409]){
this.panelData[_409]={};
}
if(this.panelData[_409][_408]){
return this.panelData[_409][_408];
}else{
var data,k,m=_409,_40a=joost.ui.GlobalNav._dataCache;
switch(_408){
case "Featured":
k="featured";
break;
case "All":
k="alpha";
break;
case "Most Popular":
k="popular";
break;
case "Most Recent":
k="recent";
break;
}
if(!data&&_40a&&_40a[k]){
data=_40a[k][m];
}
this._setItem(_408,_409,data);
if(!this._generated[_409][_408]){
this._generate(_408,_409,data);
}
return data;
}
},_page:joost.util.page,_setItem:function(_40b,_40c,data){
this.panelData[_40c][_40b]=data||{};
this._showPanel(_40b,_40c);
},_mapOfMoreArgs:{"Most Recent":{sortOrder:"age",type:"all"},"Most Popular":{sortOrder:"popularity",type:"all"},"Featured":{type:"featured"}},_generate:function(_40d,_40e,data){
this._generated[_40e][_40d]=true;
var pgs,pp;
switch(_40d){
case "Most Recent":
case "Most Popular":
case "Featured":
var t=_40d.replace(/ /,""),rel=t+"-"+_40e;
dojo.query("> div[rel]",this.domNode).filter(function(n){
return dojo.attr(n,"rel")==rel;
}).forEach(function(n){
this.adopt(joost.ui.GlobalNavPanel,{panel:_40d,label:_40e,data:data,rel:rel,moreArgs:this._mapOfMoreArgs[_40d]},n);
},this);
break;
}
dojo.publish("/j/nav-showPanel",[_40d,_40e]);
},postCreate:function(){
this.panelData={};
this._generated={};
this.subscribe("/j/nav-showPanel","_showPanel");
}});
dojo.declare("joost.ui.GlobalNavPanel",joost.Widget,{label:"shows",panelLabel:"Shows",templateString:dojo.cache("joost.ui","templates/globalnav_featured_panel.html","<div rel=\"${rel}\" class=\"contents\">\n  <div class=\"section\">\n    <div dojoAttachPoint=\"containers\" class=\"block\">\n      <h3>${panel} Channels</h3>\n      <ul class=\"zapperCol channels\"></ul>\n      <ul class=\"zapperCol channels\"></ul>\n      <div class=\"bottomLink\"><a class=\"bulletLink11\" href=\"#\" dojoAttachEvent=\"onclick:_showMoreChannels\">More...</a></div>\n    </div>\n  </div>\n  <div class=\"section\">\n    <div dojoAttachPoint=\"videos\" class=\"block\">\n      <h3>${panel} Episodes</h3>\n      <ul class=\"zapperCol episodes\"></ul>\n      <div class=\"bottomLink\"><a class=\"bulletLink11\" href=\"#\" dojoAttachEvent=\"onclick:_showMoreVideos\">More...</a></div>\n    </div>\n  </div>\n</div>\n"),postMixInProperties:function(){
this.inherited(arguments);
this.panelLabel=joost.util.propercase(this.label);
},postCreate:function(){
if(!this.data){
return;
}
var c=this.data.containers,pu,pp;
if(c&&c.length){
pp=joost.util.page(c,3);
pu=dojo.query("ul",this.containers);
dojo.forEach(pp,function(_40f,i){
dojo.forEach(_40f,function(item){
var n=dojo.place("<li></li>",pu[i]);
this.adopt(joost.ui.ChannelThumbnail,{data:item,size:"small"}).placeAt(n);
},this);
},this);
pu=dojo.query("ul",this.videos)[0];
dojo.forEach(this.data.videos,function(item){
var n=dojo.place("<li></li>",pu);
this.adopt(joost.ui.VideoThumbnail,{data:item,size:"small"}).placeAt(n);
},this);
}
},_showMore:function(_410){
var more=dojo.mixin({},this.moreArgs);
dojo.mixin(more,_410);
joost.sitemap.go("/"+this.label,more);
},_showMoreChannels:function(e){
e.preventDefault();
this._showMore({listType:"containers"});
},_showMoreVideos:function(e){
e.preventDefault();
this._showMore({listType:"videos"});
}});
dojo.declare("joost.ui.GlobalNavMenu",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Thumbnail"}],templateString:dojo.cache("joost.ui","templates/globalnav_submenu.html","<div class=\"section menusection\">\n  <ul class=\"menu\">\n    <li><a class=\"selected\" href=\"#Featured\">Featured</a></li>\n    <li><a href=\"#Most Popular\">Most Popular</a></li>\n    <li><a href=\"#Most Recent\">Most Recent</a></li>\n  </ul>\n</div>\n"),postCreate:function(){
this.items=dojo.query("li",this.domNode).forEach(function(n){
this.connect(n,"onmouseenter",function(){
this.items.query("a").removeClass("selected");
dojo.addClass(n.firstChild,"selected");
var rel=joost.util.fix(n.firstChild.href);
dojo.publish("/j/nav-showPanel",[rel||"Featured",this.currentItem]);
});
},this);
this.connect(this.domNode,"onclick",function(e){
e&&e.preventDefault();
});
}});
}
if(!dojo._hasResource["joost.ui.Queue"]){
dojo._hasResource["joost.ui.Queue"]=true;
dojo.provide("joost.ui.Queue");
dojo.declare("joost.ui.Queue",[joost.NlsWidget,dijit._Container],{templateString:dojo.cache("joost.ui","templates/queue.html","<div class=\"brick wide myQueue\">\n  <div class=\"header\">\n    <ul class=\"left\">\n      <li><a href=\"#\" class=\"whiteButton title\" dojoAttachEvent=\"onclick:_queueClick\"><span><span class=\"numItems\"><span dojoAttachPoint=\"countNode\">0</span></span><em>${strings.Queue.QUEUE}</em></span></a></li>\n      <li>&nbsp;</li>\n      <li><a href=\"#\" class=\"whiteButton title\" dojoAttachEvent=\"onclick:_queueClearViewed\"><span><em>${strings.Queue.CLEAR_VIEWED}</em></span></a></li>\n      <li><a href=\"#\" class=\"whiteButton title\" dojoAttachEvent=\"onclick:_queueClearAll\"><span><em>${strings.Queue.CLEAR_ALL}</em></span></a></li>\n    </ul>\n  </div>\n  <div class=\"content listing\" dojoAttachPoint=\"containerNode\">\n  </div>\n  <div class=\"footer\">\n    <div dojoType=\"joost.ui.Pager\" dojoAttachPoint=\"pagerNode\" type=\"num\"></div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Queue"}],widgetsInTemplate:true,isActiveMode:false,_pageSize:4,pages:function(){
var len=Math.max(1,joost.queue.length());
len+=joost.queue.upnext()?1:0;
return Math.ceil(len/this._pageSize);
},gotoPage:function(pg){
this._update();
},constructor:function(args,node){
this.showing=[];
},postCreate:function(){
this.subscribe("/joost/queue","_onQueueUpdate");
this.subscribe("/joost/queue/upnext","_onGhostAvailable");
this.pagerNode.attr("paged",this);
this._update();
},_update:function(what,args){
what=what||"all";
this.pagerNode.update();
this.countNode.innerHTML=joost.queue.length();
this.showing=[];
joost.queue.visit(dojo.hitch(this,"_onItemVisit"),this.pagerNode.currentPage*this._pageSize,this._pageSize);
var kids=this.getChildren();
var i=kids.length;
while(i>this.showing.length){
i--;
kids[i].destroyRecursive();
kids[i]=null;
}
var _411=joost.queue.playing();
dojo.forEach(this.showing,function(n,i){
var _412=kids[i];
if(_412&&n.item.video.id==_412.attr("videoId")&&n.index==_412.attr("queueIndex")){
_412.attr("playing",_411==n.index);
return;
}
if(_412){
_412.destroyRecursive();
}
var t=this.adopt(joost.ui.VideoThumbnail,{data:n.item.video,queueIndex:n.index,size:"large",lastCol:i==3,playing:_411==n.index,context:n.item.context,seen:n.item.seen});
this.addChild(t,i);
},this);
this._showingPlaying=this.showing.length&&(_411>=this.showing[0].index&&_411<=this.showing[this.showing.length-1].index);
if(this.showing.length<4&&joost.queue.upnext()){
var _413=joost.queue.upnext();
var g=this.adopt(joost.ui.VideoThumbnail,{data:_413.video,size:"large",upNext:true,lastCol:this.showing.length==3,context:_413.context});
this.addChild(g,this.showing.length);
}
},_updatePlaying:function(){
var pi=joost.queue.playing(),kids=this.getChildren(),_414=false;
for(var i=0;i<this.showing.length;i++){
_414=_414||this.showing[i].index==pi;
kids[i].attr("playing",(this.showing[i].index==pi));
}
if(!_414&&this._showingPlaying&&pi>-1){
var _415=Math.floor(pi/this._pageSize);
this.pagerNode.attr("currentPage",_415);
}
this._showingPlaying=_414;
},_onGhostAvailable:function(){
this._update();
},_updateSeen:function(_416){
if(this.showing&&this.showing.length>0){
var _417=_416-this.showing[0].index;
var kids=this.getChildren();
if(_417>=0&&_417<kids.length){
kids[_417].attr("seen",joost.queue.get(_416).seen);
}
}
},_onQueueUpdate:function(what,_418){
switch(what){
case "playing":
this._updatePlaying();
break;
case "seen":
this._updateSeen(_418);
break;
case "show":
this.pagerNode.attr("currentPage",Math.floor(_418/this._pageSize));
break;
default:
this._update(what,_418);
break;
}
},_queueClick:function(e){
e.preventDefault();
},_queueClearAll:function(e){
e.preventDefault();
joost.queue.clear();
},_queueClearViewed:function(e){
e.preventDefault();
joost.queue.clearViewed();
},_onItemVisit:function(item,_419){
this.showing.push({item:item,index:_419});
}});
}
if(!dojo._hasResource["joost.swf"]){
dojo._hasResource["joost.swf"]=true;
dojo.provide("joost.swf");
dojo.mixin(joost.swf,{SHOCKWAVE_FLASH:"Shockwave Flash",SHOCKWAVE_FLASH_AX:"ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE:"application/x-shockwave-flash",EXPRESS_INSTALL_ID:"SWFObjectExprInst"});
joost.swf.flashVersion=function(){
if(joost.swf.flashVersion._cached){
return joost.swf.flashVersion._cached;
}
var nav=navigator,swf=joost.swf,_41a=[0,0,0],d;
if(nav.plugins!==undefined&&nav.plugins[swf.SHOCKWAVE_FLASH]){
d=nav.plugins[swf.SHOCKWAVE_FLASH].description;
if(d&&!(nav.mimeTypes!==undefined&&nav.mimeTypes[swf.FLASH_MIME_TYPE]&&!nav.mimeTypes[swf.FLASH_MIME_TYPE].enabledPlugin)){
d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");
_41a[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);
_41a[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);
_41a[2]=/r/.test(d)?parseInt(d.replace(/^.*r(.*)$/,"$1"),10):0;
}
}else{
if(window.ActiveXObject){
var a=null,_41b=false;
try{
a=new ActiveXObject(swf.SHOCKWAVE_FLASH_AX+".7");
}
catch(e){
try{
a=new ActiveXObject(swf.SHOCKWAVE_FLASH_AX+".6");
_41a=[6,0,21];
a.AllowScriptAccess="always";
}
catch(e){
if(_41a[0]==6){
_41b=true;
}
}
if(!_41b){
try{
a=new ActiveXObject(SHOCKWAVE_FLASH_AX);
}
catch(e){
}
}
}
if(!_41b&&a){
try{
d=a.GetVariable("$version");
if(d){
d=d.split(" ")[1].split(",");
_41a=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)];
}
}
catch(e){
}
}
}
}
joost.swf.flashVersion._cached=_41a;
return _41a;
};
joost.swf.hasVersion=function(ver){
var pv=joost.swf.flashVersion(),rv=ver.split(".");
rv[0]=parseInt(rv[0],10);
rv[1]=parseInt(rv[1],10)||0;
rv[2]=parseInt(rv[2],10)||0;
return !!(pv[0]>rv[0]||(pv[0]==rv[0]&&pv[1]>rv[1])||(pv[0]==rv[0]&&pv[1]==rv[1]&&pv[2]>=rv[2]));
};
joost.swf.embed=function(args){
if(!args.url){
throw new Error("missing url");
}
if(!args.node){
throw new Error("missing node");
}
if(!args.width||!args.height){
throw new Error("invalid width or height");
}
if(!args.swfVersion){
throw new Error("missing minimum flash version");
}
var def=new dojo.Deferred();
if(!joost.swf.hasVersion(args.swfVersion)){
joost.swf.expressInstall(args);
def.errback(new Error("Flash version too low. Running Express Install"));
return def;
}
var _41c=dojo.delegate(args.attrs,{data:args.url,width:""+args.width,height:""+args.height});
var _41d=dojo.delegate(args.params,{flashvars:dojo.objectToQuery(args.flashvars)});
dojo.ready(function(){
try{
var o=joost.swf.create(_41c,_41d,args.node);
def.callback(o);
}
catch(e){
console.error("Error embedding swf",e);
def.errback(e);
}
});
return def;
};
joost.swf._id=0;
joost.swf._nextId=function(){
return "__joost_swf_"+joost.swf._id++;
};
joost.swf.create=function(_41e,_41f,node){
node=dojo.byId(node);
if(!node){
return null;
}
if(_41e.id===undefined){
_41e.id=node.id;
}
if(!_41e.id){
_41e.id=joost.swf._nextId();
}
if(dojo.isIE){
var _420="<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ${attributes}>${params}</object>";
var _421=[],a,p;
for(a in _41e){
if(a=="data"){
_41f.movie=_41e[a];
}else{
if(a=="className"){
_421.push("class=\""+_41e[a]+"\"");
}else{
_421.push(a+"=\""+_41e[a]+"\"");
}
}
}
_421=_421.join(" ");
var _422=[];
for(p in _41f){
_422.push("<param name=\""+p+"\" value=\""+_41f[p]+"\" />");
}
_422=_422.join("\n");
node.outerHTML=dojo.string.substitute(_420,{attributes:_421,params:_422});
return dojo.byId(_41e.id);
}else{
if(dojo.isFF){
var _423={type:joost.swf.FLASH_MIME_TYPE};
var src=_41e.data;
if(_41f.flashvars){
src+=((dojo.indexOf(src,"?")>=0)?"&":"?")+_41f.flashvars;
}
_423.src=src;
for(a in _41e){
switch(a){
case "data":
continue;
break;
case "id":
_423["name"]=_41e[a];
default:
_423[a]=_41e[a];
}
}
for(var p in _41f){
if(p=="flashvars"){
continue;
}
_423[p]=_41f[p];
}
var o=dojo.create("embed",_423,o);
node.parentNode.replaceChild(o,node);
return o;
}else{
var o=dojo.create("object",{type:joost.swf.FLASH_MIME_TYPE});
for(a in _41e){
if(a=="classid"){
continue;
}
dojo.attr(o,a,_41e[a]);
}
for(p in _41f){
dojo.create("param",{name:p,value:_41f[p]},o);
}
node.parentNode.replaceChild(o,node);
return o;
}
}
};
joost.swf.destroy=function(node){
node=dojo.byId(node);
if(obj&&obj.nodeName!="OBJECT"){
return;
}
if(dojo.isIE){
if(node.readyState==4){
for(var i in node){
if(typeof node[i]=="function"){
node[i]=null;
}
}
}else{
dojo.connect(window,"onload",null,function(){
joost.swf.destroy(node);
});
return;
}
}
node.parentNode.removeChild(node);
};
joost.swf.expressInstall=function(args){
var xi=joost.swf.expressInstall;
xi.isActive=true;
var node=dojo.byId(args.node);
var doc=document;
if(node){
if(args.altContentId){
var ac=dojo.byId(args.altContentId);
if(ac){
xi.storedAltContent=ac;
xi.storedAltContentId=ac.id;
}
}else{
xi.storedAltContent=abstractAltContent(node);
}
if(!(/%$/.test(regObj.width))&&parseInt(regObj.width,10)<310){
args.width="310";
}
if(!(/%$/.test(regObj.height))&&parseInt(regObj.height,10)<137){
args.height="137";
}
doc.title=doc.title.slice(0,47)+" - Flash Player Installation";
var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",dt=doc.title,fv="MMredirectURL="+window.location+"&MMplayerType="+pt+"&MMdoctitle="+dt,_424=regObj.id;
if(ua.ie&&ua.win&&obj.readyState!=4){
var _425=createElement("div");
_424+="SWFObjectNew";
_425.setAttribute("id",_424);
node.parentNode.insertBefore(_425,obj);
dojo.style(node,"display","none");
var fn=function(){
node.parentNode.removeChild(node);
};
dojo.connect(window,"onload",null,fn);
}
joost.swf.create({data:regObj.expressInstall,id:EXPRESS_INSTALL_ID,width:regObj.width,height:regObj.height},{flashvars:fv},_424);
}
};
dojo.setObject("swfobject.expressInstallCallback",function(){
var xi=joost.swf.expressInstall;
if(xi.isActive&&xi.storedAltContent){
var elem=dojo.byId(joost.swf.EXPRESS_INSTALL_ID);
if(!elem){
return;
}
elem.parentNode.replaceChild(xi.storedAltContent,node);
if(xi.storedAltContentId){
dojo.style(xi.storedAltContentId,"visibility","visibile");
if(dojo.isIE){
dojo.style(xi.storedAltContentId,"display","block");
}
}
xi.storedAltContent=null;
xi.storedAltContentId=null;
xi.isActive=false;
}
});
}
if(!dojo._hasResource["joost._FlashWidget"]){
dojo._hasResource["joost._FlashWidget"]=true;
dojo.provide("joost._FlashWidget");
dojo.declare("joost._FlashWidget",null,{flashVersion:"9.0.115",missingFlashTemplate:dojo.cache("joost.ui","templates/error_player.html","<div>\n  <div id=\"playerErr\" class=\"errorimg ${kind}\"></div>\n  <div class=\"errormsg\">\n    <h2 dojoAttachPoint=\"titleNode\">${title}</h2>\n    <div dojoAttachPoint=\"bodyNode\">${body}</div>\n    <div class=\"footer\" dojoAttachPoint=\"footerNode\">${footer}</div>\n  </div>\n</div>\n"),verifyFlash:function(){
if(!joost.swf.hasVersion(this.flashVersion)){
var _426=dojo.i18n.getLocalization("joost.ui","ErrorPlayer");
var s=dojo.string.substitute(this.missingFlashTemplate,{kind:"noflash",title:_426.NOFLASH_TITLE,body:_426.NOFLASH_BODY,footer:"<a target=\"blank\" href=\"http://adobe.com/go/getflashplayer\" class=\"greyButton install\"><span><em>"+_426.NOFLASH_INSTALLPLUGIN+"</em></span></a>"});
dojo.place(s,this.domNode,"only");
return false;
}
return true;
}});
}
if(!dojo._hasResource["joost.ui.PlayerWidget"]){
dojo._hasResource["joost.ui.PlayerWidget"]=true;
dojo.provide("joost.ui.PlayerWidget");
dojo.declare("joost.ui.PlayerWidget",[dijit._Widget,joost._Nls,joost._FlashWidget],{bundles:[{module:"joost.ui",bundle:"ErrorPlayer"}],_showError:function(kind,_427,body){
if(kind==="agerestricted_notloggedin"){
var _428=dijit.byId("gus_fb_login");
if(_428){
dojo.style(_428.domNode,"display","none");
}
}
var s=dojo.trim(dojo.string.substitute(this.missingFlashTemplate,{kind:kind||"generic",title:_427||this.i18n("ErrorPlayer","GENERIC_TITLE"),body:body||this.i18n("ErrorPlayer","GENERIC_BODY",{err:""}),footer:""}));
setTimeout(dojo.hitch(this,function(){
this.domNode=dojo.place(s,this.domNode,"replace");
if(this._player){
dojo.destroy(this._player);
this._player=null;
}
}),1);
joost.trackEvent("player","error",kind);
},version:dojo.config.playerVersion||"",swfurl:dojo.config.playerUrl||"",playNow:"",mode:"normal",width:"640",height:"360",maxRetries:5,states:{INITIAL:"initial",EMBEDDING:"embedding",EMBEDDED:"embedded",READY:"ready",BUFFERING:"buffering",PLAYING:"playing",ERROR:"error"},enterState:function(s){
this.state=s;
},startup:function(){
this.inherited(arguments);
if(dojo.hasClass(dojo.body(),"cinematic")){
this.mode="cinematic";
this.width="970";
this.height="545";
}
this._started=true;
this._createAttempts=0;
this.enterState(this.states.INITIAL);
this.subscribe("/player/onReady","_playerReady");
this.subscribe("/player/onVideoChange","_playerChange");
this.subscribe("/player/onFailure","_handleError");
if(this.playNow){
this.play(this.playNow);
}
return this;
},uninitialize:function(){
this.inherited(arguments);
if(this._player){
dojo.destroy(this._player);
this._player=null;
}
if(this._playerMaker){
this._playerMaker.cancel();
this._playerMaker=null;
}
},resize:function(sz){
this.width=sz.width;
this.height=sz.height;
if(this._player){
dojo.style(this._player,{width:sz.width+"px",height:sz.height+"px"});
}
},_verifyPlayer:function(){
return this._player&&this._player.playVideo;
},_play:function(_429){
_429=_429||this._playWhenReady;
if(!this._player){
console.error("playerwidget::_play called with no valid player!");
return;
}
if(!this._player.playVideo){
console.error("playerwidget::we have a player, but playVideo is not present???");
return;
}
this._player.playVideo(_429);
this._playWhenReady=null;
this._playing=_429;
this.enterState(this.states.BUFFERING);
joost.trackEvent("player","start",_429);
},play:function(_42a){
joost.trackEvent("player","play",_42a);
if(this._verifyPlayer()){
this._play(_42a);
return;
}
this._playWhenReady=_42a;
this.embedPlayer();
},embedPlayer:function(){
var _42b=dijit.byId("gus_fb_login");
if(_42b){
dojo.style(_42b.domNode,"display","block");
}
if(this._playerMaker){
return;
}
if(!this.verifyFlash()){
console.error("playerwidget::flash support not found!");
this.enterState(this.states.ERROR);
return;
}
joost.trackEvent("player","create-begin");
var _42c=this._createAttempts++;
if(_42c>=this.maxRetries){
this._createError("max retries reached");
return;
}
var n=dojo.place("<div id='joostplayer'></div>",this.domNode,"only");
var def=this._playerMaker=joost.swf.embed({node:n,url:(this.swfurl||"/player/bin/joostPlayer.swf")+(this.version?"?v="+this.version:""),height:this.height,width:this.width,swfVersion:"9.0.115",params:{menu:"true",bgcolor:"#000000",swliveconnect:"true",allowfullscreen:"true",allowscriptaccess:"always",allownetworking:"all",wmode:"opaque"},flashvars:{prefix:"joost.player"},attrs:{style:"block"},xiSwfUrl:dojo.moduleUrl("joost","resources/flash/expressInstall.swf")});
this.enterState(this.states.EMBEDDING);
def.addBoth(this,function(){
this._playerMaker=null;
});
def.addCallback(this,"_playerEmbedded");
def.addErrback(this,"_createError");
return;
},_playerEmbedded:function(o){
this.enterState(this.states.EMBEDDED);
this._playerMakerWatch=setInterval(dojo.hitch(this,"_waitingForReady"),1000);
this._playerEmbedStart=new Date();
this._player=o;
},_waitingForReady:function(){
var now=new Date();
var _42d=now-this._playerEmbedStart;
if(_42d>(45*1000)){
console.error("Player has not fired ready for 45s");
this._tearDown();
joost.trackEvent("player","create-onready-timeout","",_42d);
this.embedPlayer();
}
},_tearDown:function(){
delete this._playerEmbedStart;
if(this._playerMakerWatch){
clearInterval(this._playerMakerWatch);
delete this._playerMakerWatch;
}
if(this._player){
dojo.destroy(this._player);
this._player=null;
}
},_playerReady:function(){
if(this.state!==this.states.EMBEDDED){
}
if(!this._verifyPlayer()){
this._tearDown();
joost.trackEvent("player","rebuild","invalid");
this.embedPlayer();
return;
}
this.enterState(this.states.READY);
var now=new Date();
joost.trackEvent("player","create-success","",now-this._playerEmbedStart);
delete this._playerEmbedStart;
if(this._playerMakerWatch){
clearInterval(this._playerMakerWatch);
delete this._playerMakerWatch;
}
if(this._playWhenReady){
this._play();
return;
}
if(this._playing&&this._player&&this._player.src&&this._player.src()!=this._playing){
joost.trackEvent("player","kickstart",this._playing);
this._play(this._playing);
}
},_playerChange:function(){
this.enterState(this.states.PLAYING);
},_errors:{geo:["geo","GEO_TITLE","GEO_BODY"],expired:["expired","EXPIRED_TITLE","EXPIRED_BODY"],connect:["connect","CONNECT_TITLE","CONNECT_BODY"],generic:["generic","GENERIC_TITLE","GENERIC_BODY"],agerestricted_notloggedin:["agerestricted_notloggedin","AGERESTRICTED_NOTLOGGEDIN_TITLE","AGERESTRICTED_NOTLOGGEDIN_BODY"],agerestricted_unconfirmedemail:["agerestricted_unconfirmedemail","AGERESTRICTED_UNCONFIRMEDEMAIL_TITLE","AGERESTRICTED_UNCONFIRMEDEMAIL_BODY"],agerestricted_unconfirmedemail_fb:["agerestricted_unconfirmedemail_fb","AGERESTRICTED_UNCONFIRMEDEMAIL_FB_TITLE","AGERESTRICTED_UNCONFIRMEDEMAIL_FB_BODY"],agerestricted_nodob:["agerestricted_nodob","AGERESTRICTED_NODOB_TITLE","AGERESTRICTED_NODOB_BODY"],agerestricted_tooyoung:["agerestricted_tooyoung","AGERESTRICTED_TOOYOUNG_TITLE","AGERESTRICTED_TOOYOUNG_BODY"]},_handleError:function(_42e,_42f){
var key="generic";
switch(_42e){
case "20013":
case "20014":
case "20015":
case "20018":
case "20019":
case "20040":
case "30003":
key="connect";
break;
case "20032":
key="geo";
break;
case "20033":
case "20034":
key="expired";
break;
case "31001":
key="agerestricted_notloggedin";
break;
case "31002":
if(dojo.exists("FB.Connect")&&FB.Connect.get_status().result==FB.ConnectState.connected&&FB.Connect.get_loggedInUser()==joost.user.current.identities.FACEBOOK){
key="agerestricted_unconfirmedemail_fb";
}else{
key="agerestricted_unconfirmedemail";
}
break;
case "31003":
key="agerestricted_nodob";
break;
case "31004":
key="agerestricted_tooyoung";
break;
default:
key="generic";
break;
}
var _430=this._errors[key];
this._showError(_430[0],this.i18n("ErrorPlayer",_430[1]),this.i18n("ErrorPlayer",_430[2],{err:this.i18n("ErrorPlayer","ERROR_CODE_BODY",{err:_42e})}));
},_createError:function(err){
console.error("playerwidget::create error %o",err);
if(err&&err.dojoType=="cancel"){
return err;
}
joost.trackEvent("player","create-error");
this._showError();
return err;
}});
}
if(!dojo._hasResource["joost.ui.PromoWidget"]){
dojo._hasResource["joost.ui.PromoWidget"]=true;
dojo.provide("joost.ui.PromoWidget");
dojo.declare("joost.ui.PromoWidget",[dijit._Widget,joost._FlashWidget],{swf:"",width:"640",height:"360",AFrameUrl:"http://"+dojo.config.adurls.promo,startup:function(){
if(!this.verifyFlash()){
return this;
}
var url=this.swf||dojo.config.dizzyUrl||"/rotator/dev";
var div=dojo.place("<div id='promorotator'></div>",this.domNode,"only");
var _431=joost.user.current.dobyear;
var def=joost.swf.embed({node:div,url:url,height:this.height,width:this.width,swfVersion:"9.0.115",flashvars:{config:this.AFrameUrl+joost.util.adoptions()},params:{menu:"true",swliveconnect:"true",allowfullscreen:"true",allowscriptaccess:"always",allownetworking:"all",wmode:"opaque"},attrs:{style:"block"},xiSwfUrl:dojo.moduleUrl("joost","resources/flash/expressInstall.swf").toString()});
def.addCallback(this,function(o){
this._movie=o;
});
return this;
},resize:function(sz){
this.width=sz.width;
this.height=sz.height;
if(this._movie){
dojo.style(this._movie,{width:sz.width+"px",height:sz.height+"px"});
}
}});
dojo.global.promoClick=function(url){
joost.trackFakeEvent("promo","click",url.substring(1));
var _432=false,_433;
if(url.search(/^\/[0-9a-zA-Z]{7,13}/)===0){
_433=url.substring(1);
}else{
if(url.search(/^\/play-[0-9a-zA-Z]{7,13}/)===0){
_433=url.substring(6);
_432=true;
}else{
window.location=url;
return;
}
}
if(_433){
joost.api.epg.singleEntity({id:_433,wrap:"min"}).addCallback(function(ent){
if(!ent){
return;
}
var _434,_435;
if(ent.type==="video"){
_434="addAndPlay";
_435="video_info";
}else{
if(ent.type=="container"){
_434="addAndPlayFirstInContainer";
_435="container_info";
}
}
if(_432){
joost.queue[_434](_433);
}else{
var _436={};
_436[_435]=_433;
joost.sitemap.go("/",_436);
}
});
}
};
}
if(!dojo._hasResource["joost.ui.DialogRecommend"]){
dojo._hasResource["joost.ui.DialogRecommend"]=true;
dojo.provide("joost.ui.DialogRecommend");
dojo.declare("joost.ui.DialogRecommend",joost.ui.Dialog,{templateString:dojo.cache("joost.ui","templates/dialog_recommend.html","<div dojoAttachPoint=\"dialogNode\" waiRole=\"dialog\" style=\"position: fixed; left: 50%; width:655px; margin-left: -150px;\"> \n  <div dojoAttachPoint=\"dialogBaseNode\" class=\"popup greybot recommend\">\n    <div class=\"top\">\n      <div class=\"r\">\n        <!-- content -->\n        <h2>${strings.Recommend.TITLE}</h2>\n        <div class=\"toprt\" dojoAttachPoint=\"topButtonsNode\"><a href=\"#\" dojoType=\"joost.ui.ButtonUi\" dojoAttachEvent=\"onClick:_hideDialog\" iconClass=\"ui close lrg lte\">${strings.Button.CLOSE}</a></div>\n        <div class=\"content\">\n          <div dojoAttachPoint=\"introNode\"></div>\n          <form action=\"#\" onsubmit=\"return false;\">\n            <!-- left column items -->\n            <div class=\"left\">\n              <div dojoAttachPoint=\"selectNode\"></div>\n            </div>\n            <!-- right column items -->\n            <div class=\"left\">\n              <div><label for=\"recipient\">${strings.Recommend.RECIPIENTS}</label></div>\n              <div dojoAttachPoint=\"recipientNode\" dojoType=\"joost.ui.TextBox\" hasHelperText=\"false\" id=\"recipient\"  name=\"recipient\"></div>\n              <div><label for=\"message\">${strings.Recommend.MESSAGE}</label></div>\n              <div dojoAttachPoint=\"messageNode\" dojoType=\"joost.ui.Textarea\" id=\"message\" name=\"message\"></div>\n            </div>\n            <div class=\"clear\"></div>\n          </form>\n        </div>\n      </div>\n    </div>\n    <div class=\"bot\"><div class=\"r\"><div dojoAttachPoint=\"footerNode\" class=\"footer\"></div></div></div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Button"},{module:"joost.ui",bundle:"Recommend"}],attributeMap:{intro:{node:"introNode",type:"innerHTML"}},intro:"",constructor:function(){
var q=joost.queue.getPlaying();
dojo._mixin(this,{itemType:q.context=="playlist"?q.context:"video",itemId:q[this.itemType].id,itemTitle:q[this.itemType].title});
},postCreate:function(){
this._initiateDialog();
this.itemLink=joost.link(this.itemType,this.itemId);
this.introNode.innerHTML=this.i18n("Recommend","INTRO",{itemTitle:this.itemTitle,itemLink:this.itemLink});
}});
}
if(!dojo._hasResource["joost.ui.Zapper"]){
dojo._hasResource["joost.ui.Zapper"]=true;
dojo.provide("joost.ui.Zapper");
joost.ui.insertThrobber=function(node){
return dojo.place("<div class=\"zapperOverlay\"><div class=\"throbber lrg zapper\"></div></div>",node,"first");
};
dojo.declare("joost.ui.Zapper",joost.NlsWidget,{bundles:[{module:"joost.ui",bundle:"Zapper"}],templateString:dojo.cache("joost.ui","templates/zapper.html","<div class=\"pod zapper\">\n  <ul class=\"tabs\" dojoAttachPoint=\"tabNode\" dojoAttachEvent=\"ondijitclick:onTabSelect\">\n    <li><a dojoAttachPoint=\"tab_joostpicks\" data-type=\"tab_joostpicks\" href=\"#\" class=\"promo\">${strings.Zapper.JOOSTPICKS}</a></li>\n    <li><a dojoAttachPoint=\"tab_channels\" data-type=\"tab_channels\" href=\"#\" class=\"promo\">${strings.Zapper.CHANNELS}</a></li>\n    <!--<li><a dojoAttachPoint=\"tab_top10\" data-type=\"tab_top10\" href=\"#\" class=\"promo\">${strings.Zapper.TOPTEN}</a></li>-->\n\n    <li><a dojoAttachPoint=\"tab_onnow\" data-type=\"tab_onnow\" href=\"#\" class=\"video\">${strings.Zapper.ONNOW}</a></li>\n    <li><a dojoAttachPoint=\"tab_channel\" data-type=\"tab_channel\" href=\"#\" class=\"video\">${strings.Zapper.CHANNEL}</a></li>\n    <li><a dojoAttachPoint=\"tab_playlist\" data-type=\"tab_playlist\" href=\"#\" class=\"video\" style=\"display:none;\">${strings.Zapper.PLAYLIST}</a></li>\n    <li><a dojoAttachPoint=\"tab_related\" data-type=\"tab_related\" href=\"#\" class=\"video\">${strings.Zapper.RELATED}</a></li>\n  </ul>\n  <div class=\"subheader\" dojoAttachPoint=\"subheaderNode\" style=\"display:none\"></div>\n  <div class=\"\" dojoAttachPoint=\"contentNode\"></div>\n  <div class=\"bot\"></div>\n</div>\n"),videoWidgets:{},promoWidgets:{},postCreate:function(){
this.subscribe("/joost/queue","onQueueEvent");
this.subscribe("/joost/page","onPageChange");
this.connect(joost.player,"coAdStart","_showCoad");
this.setTabSet("promo");
this._showing=null;
},onPageChange:function(what,_437){
},_showCoad:function(_438,type,_439,_43a,_43b,_43c){
if(!this.isValidCoad(type,_43a,_439)){
return;
}
var args={data:_43c,ctUrl:_43b,height:_43a,width:_439,contentType:type};
this.content&&this.content.showCoad(args);
},isValidCoad:function(t,h,w){
h=parseInt(h,10)||250;
w=parseInt(w,10)||300;
return h==250&&w==300;
},_promos:function(){
return dojo.query(".promo",this.domNode);
},_showLoader:function(){
this.content&&this.content.showThrobber();
},_hideLoader:function(){
this.content&&this.content.hideThrobber();
},setTabSet:function(type,_43d){
var dn={display:"none"},db={display:""},_43e=this._promos(),_43f=dojo.query(".video",this.domNode);
if(type=="video"){
_43e.style(dn);
_43f.style(db);
if(_43d=="playlist"){
dojo.style(this.tab_playlist,db);
dojo.style(this.tab_channel,dn);
}else{
dojo.style(this.tab_playlist,dn);
dojo.style(this.tab_channel,db);
}
}else{
_43e.style(db);
_43f.style(dn);
this.selectTab(this.tab_joostpicks);
}
},_switchContent:function(w){
this.removeWidgetLater&&this.removeWidgetLater.destroyRecursive();
if(this.content&&this.content.domNode){
this.content.domNode.parentNode.removeChild(this.content.domNode);
}
dojo.place(w.domNode,this.contentNode);
this.content=w;
},_equalContexts:function(a,b){
return a==b||(a.type==b.type&&a.id==b.id);
},onQueueEvent:function(what,_440){
var q=joost.queue.getPlaying();
if(what=="playing"&&q){
var type=q.context&&q.context.type=="playlist"?"playlist":"video";
if(this._showing&&this._showing.video.id==q.video.id&&this._equalContexts(this._showing.context,q.context)){
return;
}
this.setTabSet("video",type);
this._showing=q;
var _441=dojo.query(".selected",this.tabNode)[0];
for(var x in this.videoWidgets){
this.videoWidgets[x].destroy();
}
this.videoWidgets={};
this.videoItem;
if(_441==this.tab_channel||_441==this.tab_related){
this.selectTab(_441,true);
}else{
this.selectTab(this.tab_onnow,true);
}
}else{
if(what=="empty"){
this.setTabSet();
this._showing=null;
}
}
},onTabSelect:function(evt){
dojo.stopEvent(evt);
this.selectTab(evt.target);
},_nullChannel:{label:"<no channel>",id:""},selectTab:function(tab,_442){
this._picked=true;
var w,cw=this.videoWidgets,pw=this.promoWidgets,_443=dojo.query(".selected",this.tabNode)[0];
if(_443==tab&&!_442){
return;
}
if(tab==this.tab_onnow){
this.videoItem=joost.queue.getPlaying().video;
w=cw.tab_onnow||new joost.ui.ZapperOnNow({video:this.videoItem});
cw.tab_onnow=w;
}else{
if(tab==this.tab_channel){
this.videoItem=joost.queue.getPlaying().video;
w=cw.tab_channel||new joost.ui.ZapperChannel({channel:joost.queue.getPlaying().context||this._nullChannel});
cw.tab_channel=w;
}else{
if(tab==this.tab_playlist){
w=cw.tab_channel||new joost.ui.ZapperPlaylist({context:joost.queue.getPlaying().context});
cw.tab_channel=w;
}else{
if(tab==this.tab_related){
this.videoItem=joost.queue.getPlaying().video;
w=cw.tab_mystery||new joost.ui.ZapperRelated({video:this.videoItem});
cw.tab_mystery=w;
}else{
if(tab==this.tab_channels){
w=pw.tab_channels||new joost.ui.ZapperChannels({});
pw.tab_channels=w;
}else{
if(tab==this.tab_joostpicks){
w=pw.tab_joostpicks||new joost.ui.ZapperJoostPicks({});
pw.tab_joostpicks=w;
}else{
if(tab==this.tab_top10){
w=pw.tab_top10||new joost.ui.ZapperTop10({});
pw.tab_top10=w;
}
}
}
}
}
}
}
if(!w){
return;
}
if(_443){
dojo.removeClass(_443,"selected");
dojo.removeClass(this.tabNode,dojo.attr(_443,"data-type"));
}
dojo.addClass(tab,"selected");
dojo.addClass(this.tabNode,dojo.attr(tab,"data-type"));
if(dojo.indexOf(this._addedItems||[],w)==-1){
this._addItem(w);
}
this._switchContent(w);
}});
dojo.declare("joost.ui.ZapperShout",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/zapper_shout.html","<div class=\"zapperOverlay shoutPanel\">\n  <ul class=\"subheader\">\n    <li>Shout it out!<span class=\"timecode\" dojoAttachPoint=\"timeNode\">00:34:56</span>\n    </li>\n    <li><a href=\"#\" dojoAttachEvent=\"onclick:close\" class=\"ui close lrg zapper\"><span>Close</span></a></li>\n  </ul>\n  \n  <ul class=\"emoticons\" dojoAttachPoint=\"radioNode\">\n    <li title=\"HOT\"><a href=\"#\" class=\"emoticon hot\"><span>Hot</span></a>HOT</li>\n    <li title=\"LOL\"><a href=\"#\" class=\"emoticon lol\"><span>Lol</span></a>LOL</li>\n    <li title=\"WOW\"><a href=\"#\" class=\"emoticon wow\"><span>Wow</span></a>WOW</li>\n    <li title=\"PUKE\"><a href=\"#\" class=\"emoticon puke\"><span>Puke</span></a>PUKE</li>\n    <li title=\"WTF\"><a href=\"#\" class=\"emoticon wtf\"><span>wtf</span></a>WTF</li>\n  </ul>\n  \n  <div class=\"textArea\">\n    <div class=\"tl\"><div class=\"tr\"></div></div>\n    <div class=\"ta\">\n      <textarea dojoAttachPoint=\"textNode\" rows=\"4\" cols=\"5\"></textarea>         \n    </div>\n    <div class=\"bl\"><div class=\"br\"></div></div>\n    </div>\n    <div class=\"footer\">\n      <div class=\"left\">Character limit: 80</div>\n      <div class=\"right\"><a href=\"#\" class=\"whiteButton\" dojoAttachEvent=\"onclick:onPost\" ><span><em>Post Shout</em></span></a></div>\n    </div>\n    <div class=\"extras\">\n    <p>\n      <a class=\"bulletLink11\" href=\"#\" dojoAttachEvent=\"onclick:onSeeAll\">See all Shouts</a>\n    </p>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Zapper"}],time:0,video:null,postCreate:function(){
this.connect(this.radioNode,"click","onRadio");
this.radios=dojo.query("li",this.radioNode);
this.connect(joost.player,"onSeeked","_updateTime");
},open:function(){
dojo.style(this.domNode,"display","");
this.time=Math.floor(joost.player.currentTime());
if(!this.video){
}
this.timeNode.innerHTML=joost.formatDuration(this.time);
},_updateTime:function(from,to){
this.time=Math.floor(to);
this.timeNode.innerHTML=joost.formatDuration(this.time);
},onRadio:function(evt){
dojo.stopEvent(evt);
this.radios.forEach(function(n){
dojo.toggleClass(n,"selected",n==evt.target.parentNode);
});
},onSeeAll:function(e){
e&&e.preventDefault();
dojo.publish("/joost/command/show-video-info",[this.video.id,{tab:"shouts"}]);
},onPost:function(evt){
dojo.stopEvent(evt);
var _444="NONE",_445=dojo.trim(this.textNode.value),tc=0;
this.radios.forEach(function(node){
if(dojo.hasClass(node,"selected")){
_444=dojo.attr(node,"title");
}
});
if(_444==="NONE"&&_445==""){
this.textNode.focus();
dojo.publish("/joost/emergency",[{message:"Please either pick a category or enter a message.",duration:1000}]);
return;
}
var args={id:this.video.id,timestamp:this.time,category:_444,body:_445};
var def=joost.api.shouts.add(args);
var vid=this.video;
def.addCallback(function(r){
dojo.publish("/joost/event/shout_added",[vid,args,r]);
});
def.addCallback(args,function(){
joost.player.addShout({created:joost.formatDatePast(new Date()),time:this.timestamp,category:this.category,owner:joost.user.current.displayName,ownerId:joost.user.current.id,body:this.body});
});
this.close();
},close:function(evt){
if(evt){
dojo.stopEvent(evt);
}
dojo.style(this.domNode,"display","none");
this.onClose();
},onClose:function(){
}});
dojo.declare("joost.ui.ZapperOnNow",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/zapper_onnow.html","<div class=\"content onNow\">\n  <ul class=\"zapperCol\" dojoAttachPoint=\"contentNode,listNode\" style=\"visibility:hidden\">\n    <li>\n      <h3 title=\"${label}\">${shortLabel}</h3>\n      <div class=\"vidLength\">\n        <span>${duration}</span>\n      </div>\n      <span dojoAttachPoint=\"genreNode\" dojoAttachEvent=\"onclick:onGenreClick\">\n       \n      </span>\n      <p dojoAttachPoint=\"descNode\">\n        <span dojoAttachPoint=\"descTextNode\"></span>\n      </p>\n      <div class=\"actionBox\">\n        <a href=\"#\" dojoAttachEvent=\"onclick:onFavoritesClick\" class=\"greyButton favorite\"><span><em dojoAttachPoint=\"faveTextNode\">${strings.Zapper.ADDFAVORITE}</em></span></a><br />\n        <a href=\"#\" dojoAttachPoint=\"shoutLink\" dojoAttachEvent=\"onclick:onShoutClick\" class=\"shout\" title=\"View Details\"><span></span><em>${strings.Zapper.SHOUT}</em></a>\n        <a href=\"#\" dojoAttachEvent=\"onclick:onDetailsClick\" class=\"viewDetails\" title=\"View Details\"><span></span><em>${strings.Zapper.VIEWDETAILS}</em></a>\n      </div>\n      <div dojoAttachPoint=\"socialNode\"></div>\n    </li>\n  </ul>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Zapper"}],genreLink:"",favorites:null,constructor:function(args){
this.video=args&&args.video;
},postMixInProperties:function(){
this.inherited(arguments);
var v=this.video||{title:"",description:"",duration:"0:00"};
this.shortLabel=this.label=v.title;
this.duration=joost.formatDuration(v.duration);
},postCreate:function(){
if(this.video){
if(!this.video.containers||this.video.containers.length==0){
dojo.addClass(this.contentNode,"noChans");
}else{
this._fetchContainers();
}
dojo.style(this.contentNode,"visibility","visible");
}
joost.favorites.require().addCallback(this,"checkIsFave");
var _446=dojo.partial(dojo.style,this.shoutLink,"visibility");
_446("hidden");
this.subscribe("/player/onAdvertStart",function(){
_446("hidden");
});
this.subscribe("/player/onVideoStart",function(){
_446("visible");
});
this.subscribe("/player/onFailure",function(){
_446("hidden");
});
this.connect(joost.player,"coAdEnd","hideCoad");
var desc=this.video.description;
var abb=joost.ellipsis(desc,140,"word");
this.descTextNode.innerHTML=abb;
var _447,_448;
if(this.video&&this.video.genres&&this.video.genres.length>0){
_447=this.video.genres[0].id.split("/");
_448=_447[1]||"";
}
this.adopt(joost.ui.Social,{title:this.video.title,venue:_448||"",publicId:this.video.id}).placeAt(this.socialNode);
if(_447){
var link="";
}
dojo.forEach(_447,function(_449,i){
if(i){
link+="/"+_449;
if(i>1){
this.genreNode.appendChild(document.createTextNode(" / "));
}
dojo.create("a",{href:"#"+link,innerHTML:_449,rel:link},this.genreNode);
}
},this);
},setIsFave:function(){
this.isFave=true;
this.faveTextNode.innerHTML=this.i18n("Zapper","ISFAVORITE");
var node=this.faveTextNode.parentNode.parentNode;
dojo.addClass(node,"isFavorite");
},checkIsFave:function(_44a){
if(this.video&&_44a&&(this.video.id in _44a)){
this.setIsFave();
}
},onFavoritesClick:function(evt){
evt.preventDefault();
if(this.isFave){
return;
}
joost.favorites.add(this.video.id).addCallback(this,function(data){
this.setIsFave();
}).addErrback(this,"onError");
},onGenreClick:function(evt){
evt.preventDefault();
if(evt.target&&evt.target.href){
var _44b=dojo.attr(evt.target,"rel");
joost.sitemap.go(_44b);
}
},onRecommendClick:function(evt){
evt.preventDefault();
new joost.ui.DialogRecommend();
},onShoutClick:function(evt){
evt.preventDefault();
var vid=this.video;
joost.requireUser().addCallback(this,function(){
if(!this.shoutWidget){
this.shoutWidget=this.adopt(joost.ui.ZapperShout,{video:vid}).placeAt(this.domNode.parentNode);
this.connect(this.shoutWidget,"onClose","onShoutClose");
}
this.shoutWidget.open();
});
joost.player.setPaused(true);
},onShoutClose:function(){
joost.player.setPaused(false);
setTimeout(dojo.hitch(this,function(){
if(this.shoutWidget){
this.orphan(this.shoutWidget,true);
this.shoutWidget=null;
}
}),0);
},onDetailsClick:function(evt){
evt.preventDefault();
dojo.publish("/joost/command/show-video-info",[this.video]);
},onError:function(err){
},showThrobber:function(){
if(this.throbber){
return;
}
this.throbber=joost.ui.insertThrobber(this.domNode);
dojo.style(this.listNode,{display:"none"});
},hideThrobber:function(){
this.throbber&&dojo.destroy(this.throbber);
this.throbber=null;
dojo.style(this.listNode,"display","");
},showCoad:function(args){
this.hideCoad();
this._coad=this.adopt(joost.ui.ZapperCoad,args).placeAt(this.domNode,"first");
this._coad.startup();
this._coadCloser=this.connect(this._coad,"onClose","hideCoad");
dojo.addClass(this.domNode,"noOverflow");
dojo.style(this.listNode,"display","none");
},hideCoad:function(){
this._coadCloser&&this.disconnect(this._coadCloser);
this._coad&&this.orphan(this._coad,true);
this._coadCloser=this._coad=null;
dojo.style(this.listNode,"display","");
dojo.removeClass(this.domNode,"noOverflow");
},_fetchContainers:function(){
joost.api.epg.containersForVideo({id:this.video.id}).addCallback(this,"_appendContainers");
},_appendContainers:function(r){
dojo.toggleClass(this.contentNode,"noChans",(!r||r.count==0));
dojo.forEach(r.items,this._appendChannelThumb,this);
},_appendChannelThumb:function(n){
var li=dojo.create("li",null,this.contentNode);
this.adopt(joost.ui.ChannelThumbnail,{data:n,size:"small"}).placeAt(li);
}});
dojo.declare("joost.ui.ZapperList",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/zapper_list.html","<div>\n  <div class=\"subheader\">${titleText}</div>\n  <div dojoAttachPoint=\"contentNode\" class=\"content withsubheader\">\n    <ul dojoAttachPoint=\"listNode\" class=\"zapperCol\" ></ul>\n    <div dojoAttachPoint=\"errorNode\" class=\"zapperError\" style=\"display:none\">\n      <p>${strings.Zapper.FETCH_ERROR}\n        <a href=\"\" dojoAttachEvent=\"onclick:_tryAgain\">${strings.Zapper.TRY_AGAIN}</a>\n      </p>\n    </div>\n  </div>\n</div>\n"),bundles:[{module:"joost.ui",bundle:"Zapper"}],titleText:"",thumbType:"Video",paginates:true,start:0,count:20,total:0,fetchApi:null,postCreate:function(){
this.inherited(arguments);
this.listWidgets=[];
if(!this.titleText){
dojo.destroy(dojo.query(".subheader",this.domNode)[0]);
dojo.removeClass(this.listNode.parentNode,"withsubheader");
}
this.connect(joost.player,"coAdEnd","hideCoad");
},next:function(){
if(this.total){
this.start+=this.count;
}
this.handleFetch();
},prev:function(){
this.start=Math.max(this.start-this.count,0);
this.handleFetch();
},showThrobber:function(){
if(this.throbber){
return;
}
this.throbber=joost.ui.insertThrobber(this.domNode);
dojo.style(this.listNode,"display","none");
},hideThrobber:function(){
this.throbber&&dojo.destroy(this.throbber);
this.throbber=null;
dojo.style(this.listNode,"display","");
},showCoad:function(data){
this.hideCoad();
this._coad=this.adopt(joost.ui.ZapperCoad,{data:data}).placeAt(this.domNode,"first");
this._coadCloser=this.connect(this._coad,"onClose","hideCoad");
dojo.style(this.listNode,"display","none");
},hideCoad:function(){
this._coadCloser&&this.disconnect(this._coadCloser);
this._coad&&this.orphan(this._coad,true);
this._coadCloser=this._coad=null;
dojo.style(this.listNode,"display","");
},updatePageButtons:function(){
if(!this.paginates){
return;
}
if(!this.paginator){
this.paginator=this.adopt(joost.ui.ZapperPaginator);
this.connect(this.paginator,"onNext","next");
this.connect(this.paginator,"onPrev","prev");
}
this.paginator.update(this.start,this.count,this.total);
this.paginator.placeAt(this.listNode);
},removeListItems:function(){
if(!this.listWidgets.length){
return;
}
dojo.forEach(this.listWidgets,function(w){
var p=w.domNode.parentNode;
w.destroy();
dojo.destroy(p);
});
this.listWidgets=[];
this.paginator&&this.paginator.domNode.parentNode.removeChild(this.paginator.domNode);
},handleFetch:function(){
this.showThrobber();
var arg={start:this.start,count:this.count};
if(this.fetchParams){
dojo.mixin(arg,this.fetchParams);
}
var d=this.fetchApi(arg);
var c=dojo.connect(this,"destroy",this,function(){
dojo.disconnect(c);
d.cancel();
});
d.addCallback(this,function(data){
dojo.disconnect(c);
setTimeout(dojo.hitch(this,function(){
this.removeListItems();
this.hideThrobber();
this.total=data.count;
this.render(data);
this.updatePageButtons();
}),500);
}).addErrback(this,"fetchDataError");
},render:function(r){
this.items=r.items;
dojo.style(this.listNode,"display","");
dojo.style(this.errorNode,"display","none");
if(this.items.length){
try{
dojo.forEach(this.items,this._render,this);
}
catch(e){
console.error(e);
dojo.style(this.listNode,"display","none");
dojo.style(this.errorNode,"display","block");
}
}else{
dojo.style(this.listNode,"display","none");
dojo.style(this.errorNode,"display","block");
}
},_render:function(item,i){
var _44c=this.adopt(joost.ui[this.thumbType+"Thumbnail"],{data:item,delaySrcLoad:i>3}),li=dojo.create("li",null,this.listNode);
_44c.placeAt(li);
this.listWidgets.push(_44c);
},fetchDataError:function(err,_44d){
console.error("Zapper.fetchDataError:",err);
this.hideThrobber();
this.render({items:[]});
},_tryAgain:function(evt){
evt.preventDefault();
this.handleFetch();
}});
dojo.declare("joost.ui.ZapperPaginator",joost.NlsWidget,{templateString:dojo.cache("joost.ui","templates/zapper_paginator.html","<li class=\"paginator\">\n  <div>\n    <p>\n      <span dojoAttachPoint=\"textNode\"></span>\n    </p>\n  </div>\n  <div>\n    <a href=\"#\" class=\"left\" onDark=\"true\" dojoAttachPoint=\"prevNode\" dojoAttachEvent=\"onClick:onPrev\" dojoType=\"joost.ui.Button\">Previous</a>\n    <a href=\"#\" class=\"right\" onDark=\"true\" dojoAttachPoint=\"nextNode\" dojoAttachEvent=\"onClick:onNext\" dojoType=\"joost.ui.Button\">Next</a>\n  </div>\n</li>\n"),widgetsInTemplate:true,bundles:[{module:"joost.ui",bundle:"Zapper"}],onNext:function(e){
e.preventDefault();
},onPrev:function(e){
e.preventDefault();
},update:function(_44e,_44f,_450,_451){
var c={count:_44f};
this.nextNode.containerNode.innerHTML=this.i18n("Zapper","NEXTCOUNT",c);
this.prevNode.containerNode.innerHTML=this.i18n("Zapper","PREVIOUSCOUNT",c);
var thru=_450>_44f?(_44e+_44f-1):_450;
if(thru>=_450){
thru=_450-1;
}
this.textNode.innerHTML=this.i18n("Zapper","PAGINATION",{start:_44e+1,thru:thru+1,total:_450});
dojo.style(this.prevNode.domNode,"display",_44e>0?"":"none");
dojo.style(this.nextNode.domNode,"display",_44e+_44f>=_450?"none":"");
}});
dojo.declare("joost.ui.ZapperChannel",joost.ui.ZapperList,{fetchApi:joost.api.epg.container,constructor:function(args){
this.channel=args.channel;
this.titleText=this.i18n("Zapper","MOREFROM",{title:this.channel.title});
this.fetchParams={id:this.channel.id};
},postCreate:function(){
this.inherited(arguments);
if(!this.fetchParams.id){
this.fetchApi=function(){
var d=new dojo.Deferred();
d.callback({items:[]});
return d;
};
}
this.next();
}});
dojo.declare("joost.ui.ZapperChannels",joost.ui.ZapperList,{thumbType:"Channel",fetchApi:joost.api.epg.containers,fetchParams:{sort:"popularity"},constructor:function(args){
this.channel=args.channel;
},postCreate:function(){
this.inherited(arguments);
this.next();
}});
dojo.declare("joost.ui.ZapperJoostPicks",joost.ui.ZapperList,{fetchApi:joost.api.epg.featured,fetchParams:{},constructor:function(args){
this.channel=args.channel;
},postCreate:function(){
this.inherited(arguments);
this.next();
}});
dojo.declare("joost.ui.ZapperTop10",joost.ui.ZapperList,{fetchApi:joost.api.epg.videos,fetchParams:{sort:"popularity"},count:10,paginates:false,constructor:function(args){
this.channel=args.channel;
},postCreate:function(){
this.inherited(arguments);
this.next();
}});
dojo.declare("joost.ui.ZapperPlaylist",joost.ui.ZapperList,{fetchApi:joost.api.epg.playlist,count:"all",paginates:false,constructor:function(args){
dojo.mixin(this,{context:args.context,titleText:this.i18n("Zapper","MOREFROM",{title:this.context.label}),fetchParams:{id:this.context.id}});
},postCreate:function(){
this.inherited(arguments);
this.next();
}});
dojo.declare("joost.ui.ZapperRelated",joost.ui.ZapperList,{fetchApi:joost.api.epg.related,constructor:function(args){
this.fetchParams={id:args.video.id};
},postCreate:function(){
this.inherited(arguments);
this.next();
}});
dojo.declare("joost.ui.ZapperCoad",joost.Widget,{"class":"zapperOverlay overlaySponsor",templateString:dojo.cache("joost.ui","templates/zapper_coad.html","<div class=\"zapperOverlay overlaySponsor\">\n  <!-- 300x250 ad overlay pops up -->\n  <ul class=\"subheader\">\n    <li>Brought to you by:</li>\n    <li><a href=\"#\" class=\"ui close lrg zapper\" dojoAttachEvent=\"onclick:_close\" title=\"Close\"><span>Close</span></a></li>\n  </ul>\n  <div class=\"ad300x250\" dojoAttachPoint=\"containerNode\"></div>\n</div> \n"),containerNode:null,_defaultWrapperHead:"<!DOCTYPE html>\n<html><head><title>Advertisement</title>"+"<style type='text/css'>body{margin:0}</style></head><body>",_defaultWrapperFoot:"</body></html>",constructor:function(args){
dojo.mixin(this,args);
},startup:function(){
this.inherited(arguments);
if(this.contentType.search(/(static)|(img)|(png)|(gif)|(jpg)|(jpeg)|(image\/)/i)!=-1){
var _452=dojo.string.substitute("<a target='_blank' href='${ct}'><img style='border:none' src='${src}' /></a>",{ct:this.ctUrl,src:this.data});
this._showIframe(_452,true);
}else{
if(this.contentType.indexof("application/")!==-1){
_452="<script type=\"text/javascript\" src=\"/swfobject.js\"></script><div id=\"fA\">"+"</div><script type=\"text/javascript\"> "+"window.onload = function() {if(window.swfobject) window.swfobject.embedSWF(\""+this.data+"\", \"fA\", \"300\", \"250\", \"8.0.0\",\"\", {clickTag: \""+this.ctURL+"\", clickTAG:\""+this.ctURL+"\", clicktag :\""+this.ctURL+"\"}, {allowscriptaccess:\"always\", quality:\"high\"});}</script>";
this._showIframe(_452,true);
console.error("need to embed swfs yet");
}else{
if(this.contentType=="iframe"){
this.containerNode.innerHTML=this.data;
}else{
if(this.contentType.search(/^text\/html/)==0){
this._showIframe(this.data);
}else{
console.error("Unknown ad type: ",this.contentType,this);
}
}
}
}
},_showIframe:function(_453,wrap){
var ifr=dojo.create("iframe",{style:{border:"0px none",height:"250px",width:"300px"},frameBorder:"0",scrolling:"no"},this.containerNode);
var doc=ifr.contentWindow.document;
if(wrap){
_453=this._defaultWrapperHead+_453+this._defaultWrapperFoot;
}
doc.write(_453);
},_close:function(e){
e.preventDefault();
this.onClose();
},onClose:function(){
}});
}
if(!dojo._hasResource["joost.ui.MediaController"]){
dojo._hasResource["joost.ui.MediaController"]=true;
dojo.provide("joost.ui.MediaController");
dojo.declare("joost.ui.MediaController",joost.Widget,{templateString:dojo.cache("joost.ui","templates/media_controller.html","<div class=\"mediaWrapper wide\" style=\"display:none\">\n  <!--<div class=\"top\"></div>-->\n  <div class=\"content\">\n    <div class=\"pod video\">\n      <!--<div class=\"top\"></div>-->\n      <div class=\"content\" dojoAttachPoint=\"contentNode\"></div>\n      <!--<div class=\"bot\"></div>-->\n    </div>\n    <div dojoAttachPoint=\"zapper\" dojoType=\"joost.ui.Zapper\"></div>\n  </div>\n  <!--<div class=\"bot\"></div>-->\n</div>\n"),widgetsInTemplate:true,_flashVersion:"10.0.0",constructor:function(node,args){
this.mode="none";
this._pageMode="standard";
},hidden:false,_setHiddenAttr:function(v){
if(dojo.isString(v)){
v=(v=="true");
}else{
v=!!v;
}
if(this.hidden){
this.hide();
}else{
this.toggle(true);
}
},startup:function(){
this.inherited(arguments);
this.subscribe("/joost/queue","_checkForEmptyQueue");
this.subscribe("/joost/command/startvideo","playerMode");
if(!this.hidden){
dojo.style(this.domNode,"display","block");
}
if(!dojo.config.preventRotator){
this._defaultTimer=setTimeout(dojo.hitch(this,function(){
if(!this.hidden){
this.promoMode();
}
}),500);
this.subscribe("/joost/command/change-page-mode","_changePageMode");
}
},_cleanup:function(){
if(this._defaultTimer){
clearTimeout(this._defaultTimer);
delete this._defaultTimer;
}
if(this._movie){
this.orphan(this._movie,true);
this._movie=null;
}
},playerMode:function(id){
if(!(this.mode=="player")){
this._cleanup();
if(dojo.byId("joostplayer")){
dojo.destroy("joostplayer");
}
var args=this._dimsForPageMode[this._pageMode]||{};
this._movie=this.adopt(joost.ui.PlayerWidget,args).placeAt(this.contentNode).startup();
this._movie.play(id);
this.toggle(true);
this.mode="player";
}else{
this._movie.play(id);
}
},promoMode:function(swf){
if(!(this.mode=="promo")){
this._cleanup();
var args=dojo.mixin({swf:swf},this._dimsForPageMode[this._pageMode]||{});
this._movie=this.adopt(joost.ui.PromoWidget,args).placeAt(this.contentNode).startup();
this.toggle(true);
this.mode="promo";
}
},_dimsForPageMode:{standard:{width:"640px",height:"360px"},cinematic:{width:"970px",height:"545px"}},_changePageMode:function(mode){
if(mode=="standard"){
dojo.style(this.zapper.domNode,"display","block");
this._movie.resize({width:"640",height:"360"});
}else{
if(mode=="cinematic"){
dojo.style(this.zapper.domNode,"display","none");
this._movie.resize({width:"970",height:"545"});
}
}
this._pageMode=mode;
},hide:function(){
this._cleanup();
this.toggle(false);
},toggle:function(_454){
if(this._ani){
this._ani.stop();
}
this._ani=dojo.fx[_454?"wipeIn":"wipeOut"]({node:this.domNode});
var oe=this.connect(this._ani,"onEnd",function(){
this._ani=null;
this.disconnect(oe);
});
this._ani.play();
},_checkForEmptyQueue:function(what){
if(what=="empty"){
this.promoMode();
}
},largeSize:function(){
},normalSize:function(){
},smallSize:function(){
}});
}
if(!dojo._hasResource["joost.ui.QueueController"]){
dojo._hasResource["joost.ui.QueueController"]=true;
dojo.provide("joost.ui.QueueController");
dojo.declare("joost.ui.QueueController",joost.Widget,{widgetsInTemplate:true,templateString:dojo.cache("joost.ui","templates/queue_controller.html"," <div style=\"display:none\">\n   <div dojoType=\"joost.ui.Queue\" class=\"brick wide myQueue\" dojoAttachPoint=\"queue\"></div>\n   <div id=\"adSpot1Container\" class=\"adSpot1\"></div>\n   <div class=\"clear\"></div>\n </div>\n"),"class":"midrow",hidden:false,_setHiddenAttr:function(v){
if(dojo.isString(v)){
v=(v=="true");
}else{
v=!!v;
}
this.hidden=v;
this.toggle(!this.hidden);
},startup:function(){
this.inherited(arguments);
if(!this.hidden){
dojo.style(this.domNode,"display","block");
}
this.subscribe("/joost/queue","_observeQueue");
return this;
},toggle:function(_455){
if(this._ani){
this._ani.stop();
}
this._ani=dojo.fx[_455?"wipeIn":"wipeOut"]({node:this.domNode});
var oe=this.connect(this._ani,"onEnd",function(){
this._ani=null;
this.disconnect(oe);
});
this._ani.play();
},_observeQueue:function(what){
switch(what){
case "empty":
break;
case "seen":
break;
case "load":
this.queue.pagerNode.attr("currentPage",this.queue.pages()-1);
break;
default:
undefined;
if(this.hidden){
this.toggle(true);
}
break;
}
}});
}
if(!dojo._hasResource["joost.facebook.publications"]){
dojo._hasResource["joost.facebook.publications"]=true;
dojo.provide("joost.facebook.publications");
(function(jf){
function _456(_457,args,resp){
jf.hook(function(){
var u=joost.user.current;
if(u.anonymous){
return;
}
if(!u.notifications.pushFacebookShouts){
return;
}
if(FB.Connect.get_status().result!=FB.ConnectState.connected){
return;
}
var body={name:_457.title,caption:"{*actor*} shouted "+(args.category=="NONE"?"":args.category+"! ")+(args.body||"")+" at "+joost.formatDuration(args.timestamp),href:joost.abslink("video",_457.id),description:_457.description||""};
if(_457.embeddable){
body.media=[{type:"flash",swfsrc:joost.abslink("embed",_457.id),imgsrc:_457.images.thumbnail,width:"130",height:"73",expanded_width:"460",expanded_height:"259"}];
}
FB.Connect.streamPublish("",body,[{text:"Watch",href:joost.abslink("video",_457.id)}],null,null,dojo.hitch(console,"log","streamPublishReturned"),true);
},dojo.hitch(console,"warn"));
};
function _458(_459,args,resp){
jf.hook(function(){
var u=joost.user.current;
if(u.anonymous){
return;
}
if(!u.notifications.pushFacebookFavorites){
return;
}
if(FB.Connect.get_status().result!=FB.ConnectState.connected){
return;
}
var body={name:_459.title,caption:"{*actor*} marked this as a favorite on Joost.com",href:joost.abslink("video",_459.id),description:_459.description||""};
if(_459.embeddable){
body.media=[{type:"flash",swfsrc:joost.abslink("embed",_459.id),imgsrc:_459.images.thumbnail,width:"130",height:"73",expanded_width:"460",expanded_height:"259"}];
}
FB.Connect.streamPublish("",body,[{text:"Visit",href:joost.abslink("video",_459.id)}],null,null,dojo.hitch(console,"log","streamPublishReturned"),true);
},dojo.hitch(console,"warn"));
};
function _45a(_45b,args,resp){
jf.hook(function(){
var u=joost.user.current;
if(u.anonymous){
return;
}
if(!u.notifications.pushFacebookReviews){
return;
}
if(FB.Connect.get_status().result!=FB.ConnectState.connected){
return;
}
var body={name:_45b.title,caption:"{*actor*} left a review on Joost.com",properties:{Rating:args.score,Title:args.title},href:joost.abslink("video",_45b.id),description:args.body};
if(_45b.embeddable){
body.media=[{type:"flash",swfsrc:joost.abslink("embed",_45b.id),imgsrc:_45b.images.thumbnail,width:"130",height:"73",expanded_width:"460",expanded_height:"259"}];
}
FB.Connect.streamPublish("",body,[{text:"Visit",href:joost.abslink("video",_45b.id)}],null,null,dojo.hitch(console,"log","streamPublishReturned"),true);
},dojo.hitch(console,"warn"));
};
dojo.subscribe("/joost/event/favorite_added",_458);
dojo.subscribe("/joost/event/shout_added",_456);
dojo.subscribe("/joost/event/review_added",_45a);
})(joost.facebook);
}
if(!dojo._hasResource["joost.page"]){
dojo._hasResource["joost.page"]=true;
dojo.provide("joost.page");
(function(){
dojo.subscribe("/joost/command/change-page-mode",function(mode){
dojo.toggleClass(dojo.body(),"cinematic",mode=="cinematic");
joost.trackEvent("page","switch-mode",mode);
});
dojo.subscribe("/facebook/status",function(data){
joost.api.profile.get().addCallback(function(data){
if(dojo.exists("FB.Connect")&&FB.Connect.get_loggedInUser()!=joost.user.current.identities.FACEBOOK&&/\@proxymail.facebook.com|^\s*$/i.test(data.email)){
joost.user.logout();
}
});
});
var _45c="<iframe id=\"adSpot1\" width=\"300\" height=\"250\" src=\"about:blank\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"></iframe>";
dojo.addOnLoad(function(){
dojo.place(_45c,"adSpot1Container","only");
var _45d=dojo.cookie("popDialogOnload");
if(_45d){
dojo.cookie("popDialogOnload","0",{expires:-1});
if(_45d==="SIGNUP"){
joost.register();
}else{
if(_45d==="LOGIN"){
joost.login();
}
}
dojo.subscribe("/joost/gus/fblogin",function(){
var _45e=dijit.byId("gus_fb_login");
if(_45e.domNode){
dojo.style(_45e.domNode,"display","none");
}
var _45f=dojo.byId("fb_section");
if(_45f){
dojo.style(dojo.attr(_45f,"innerHTML",""),{"padding":0,"borderTop":"none"});
}
});
}else{
if(dojo.cookie("popValidateUserDialog")){
dojo.cookie("popValidateUserDialog","0",{expires:-1});
joost.api.profile.get().addCallback(function(data){
if(data.status=="UNCONFIRMED"){
var _460=(!data.hasRegIP||(data.age<13||typeof data.age=="undefined"));
if(_460){
joost.acceptTOS(data);
}else{
joost.confirm(data);
}
}
});
}
}
(function(){
var ad1=dojo.query("#adSpot1Container iframe")[0],ad2=dojo.query("#adSpot2Container iframe")[0],_461=dojo.query("#adSpot1Container object")[0],_462=dojo.query("#adSpot2Container object")[0],_463=true,_464=true;
try{
_461&&(_461.id.indexOf("takeover_")!=-1)&&(_463=false);
_462&&(_462.id.indexOf("takeover_")!=-1)&&(_464=false);
}
catch(e){
}
try{
dojo.forEach([ad1,ad2],function(elem,i){
var _465=elem.id.split("_");
if(_465.length==3){
dojo.destroy(_465[0]+"_target_"+_465[2]);
}
});
}
catch(e){
}
if(typeof (cnr_ad)=="undefined"){
cnr_ad="";
}
_463&&dojo.attr(ad1,"src","http://"+dojo.config.adurls.atf+"&kvp="+cnr_ad+joost.util.adoptions());
_464&&dojo.attr(ad2,"src","http://"+dojo.config.adurls.epg+joost.util.adoptions());
setTimeout(arguments.callee,parseInt(dojo.config.ads.rotatefrequency)*1000);
})();
});
var _466=null;
function _467(args){
if(!joost.user.current.anonymous){
joost.api.tracker.videoView(args);
}
joost.trackEvent("video","recordView",args.id);
};
dojo.subscribe("/player/onVideoStart",function(_468){
var qi=joost.queue.getPlaying(),pos=joost.queue.playing();
if(!qi||qi.video.id!=_468){
return;
}
var args={id:_468,pos:pos};
if(qi.context){
if(qi.context.type=="playlist"){
args.playlistId=qi.context.id;
}else{
if(qi.context.type=="channel"){
args.containerId=qi.context.id;
}
}
}
var _469=Math.min(qi.video.duration/5,20)*1000;
_466=setTimeout(function(){
_467(args);
joost.queue.setSeen(pos,true);
_466=null;
},_469);
});
dojo.subscribe("/player/onVideoEnd",function(){
if(_466){
clearTimeout(_466);
_466=null;
}
});
})();
}
dojo.i18n._preloadLocalizations("joost.nls.page",["ROOT","ar","ca","cs","da","de","de-de","el","en","en-gb","en-us","es","es-es","fi","fi-fi","fr","fr-fr","he","he-il","hu","it","it-it","ja","ja-jp","ko","ko-kr","nb","nl","nl-nl","pl","pt","pt-br","pt-pt","ru","sk","sl","sv","th","tr","xx","zh","zh-cn","zh-tw"]);

