var gadgets=gadgets||{};
gadgets.util=function(){function E(){var M;
var L=document.location.href;
var J=L.indexOf("?");
var K=L.indexOf("#");
if(K===-1){M=L.substr(J+1)
}else{M=[L.substr(J+1,K-J-1),"&",L.substr(K+1)].join("")
}return M.split("&")
}var F=null;
var A={};
var I=[];
var G={};
var C={0:false,10:true,13:true,34:true,39:true,60:true,62:true,92:true,8232:true,8233:true};
function B(J,K){return String.fromCharCode(K)
}function H(J){A=J["core.util"]||{}
}function D(J){G.appUrl=J.ning.appUrl||"";
G.domain=J.ning.domain||"";
G.container=J.ning.container||"";
G.view=J.ning.view||"default";
G.country=J.ning.country||null;
G.lang=J.ning.lang||null;
G.mid=J.ning.moduleId||0;
G.debug=J.ning.debug||false;
G.nocache=J.ning.ignoreCache||false;
G.baseUrl=document.location.protocol+"//"+J.ning.domain;
F=null
}if(gadgets.config){gadgets.config.register("core.util",null,H);
gadgets.config.register("ning",null,D)
}return{getUrlParameters:function(){if(F===null){F={};
var N=E();
var Q=window.decodeURIComponent?decodeURIComponent:unescape;
for(var L=0,J=N.length;
L<J;
++L){var P=N[L].indexOf("=");
if(P===-1){continue
}var O=N[L].substring(0,P);
var M=N[L].substring(P+1);
M=M.replace(/\+/g," ");
F[O]=Q(M)
}for(var K in G){if(G.hasOwnProperty(K)){F[K]=Q(G[K])
}}}return F
},makeClosure:function(M,O,N){var L=[];
for(var K=2,J=arguments.length;
K<J;
++K){L.push(arguments[K])
}return function(){var P=L.slice();
for(var R=0,Q=arguments.length;
R<Q;
++R){P.push(arguments[R])
}return O.apply(M,P)
}
},makeEnum:function(K){var M={};
for(var L=0,J;
(J=K[L]);
++L){M[J]=J
}return M
},getFeatureParameters:function(J){return typeof A[J]==="undefined"?null:A[J]
},hasFeature:function(J){return typeof A[J]!=="undefined"
},registerOnLoadHandler:function(J){I.push(J)
},runOnLoadHandlers:function(){for(var K=0,J=I.length;
K<J;
++K){I[K]()
}},escape:function(J,N){if(!J){return J
}else{if(typeof J==="string"){return gadgets.util.escapeString(J)
}else{if(typeof J==="array"){for(var M=0,K=J.length;
M<K;
++M){J[M]=gadgets.util.escape(J[M])
}}else{if(typeof J==="object"&&N){var L={};
for(var O in J){if(J.hasOwnProperty(O)){L[gadgets.util.escapeString(O)]=gadgets.util.escape(J[O],true)
}}return L
}}}}return J
},escapeString:function(N){var K=[],M,O;
for(var L=0,J=N.length;
L<J;
++L){M=N.charCodeAt(L);
O=C[M];
if(O===true){K.push("&#",M,";")
}else{if(O!==false){K.push(N.charAt(L))
}}}return K.join("")
},unescapeString:function(J){return typeof J!=="undefined"?J.replace(/&#([0-9]+);/g,B):""
}}
}();
gadgets.util.getUrlParameters();;
var gadgets=gadgets||{};
gadgets.json=function(){function f(n){return n<10?"0"+n:n
}Date.prototype.toJSON=function(){return[this.getUTCFullYear(),"-",f(this.getUTCMonth()+1),"-",f(this.getUTCDate()),"T",f(this.getUTCHours()),":",f(this.getUTCMinutes()),":",f(this.getUTCSeconds()),"Z"].join("")
};
var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
function stringify(value){var a,i,k,l,r=/[\"\\\x00-\x1f\x7f-\x9f]/g,v;
switch(typeof value){case"string":return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];
if(c){return c
}c=a.charCodeAt();
return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)
})+'"':'"'+value+'"';
case"number":return isFinite(value)?String(value):"null";
case"boolean":case"null":return String(value);
case"object":if(!value){return"null"
}a=[];
if(typeof value.length==="number"&&!value.propertyIsEnumerable("length")){l=value.length;
for(i=0;
i<l;
i+=1){a.push(stringify(value[i])||"null")
}return"["+a.join(",")+"]"
}for(k in value){if(value.hasOwnProperty(k)){if(typeof k==="string"){v=stringify(value[k]);
if(v){a.push(stringify(k)+":"+v)
}}}}return"{"+a.join(",")+"}"
}}return{stringify:stringify,parse:function(text){if(/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/b-u]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){if(text){return eval("("+text+")")
}else{return false
}}return false
}}
}();;
var gadgets=gadgets||{};
gadgets.rpc=function(){var c="__cb";
var h="";
var G="__g2c_rpc";
var E="__c2g_rpc";
var C="GRPC____NIXVBS_wrapper";
var N="GRPC____NIXVBS_get_wrapper";
var U="GRPC____NIXVBS_handle_message";
var f="GRPC____NIXVBS_create_channel";
var R={};
var M={};
var b=[];
var i={};
var W={};
var T={};
var S=0;
var F={};
var H={};
var g={};
var A={};
var O;
if(gadgets.util){A=gadgets.util.getUrlParameters()
}T[".."]=A.rpctoken||A.ifpctok||0;
function B(){return typeof window.postMessage==="function"?"wpm":typeof document.postMessage==="function"?"dpm":window.ActiveXObject?"nix":navigator.product==="Gecko"?"fe":"ifpc"
}function l(n){if(n&&typeof n.s==="string"&&typeof n.f==="string"&&n.a instanceof Array){if(T[n.f]){if(T[n.f]!=n.t){throw new Error("Invalid auth token.")
}}if(n.c){n.callback=function(o){gadgets.rpc.call(n.f,c,null,n.c,o)
}
}var m=(M[n.s]||M[h]).apply(n,n.a);
if(n.c&&typeof m!=="undefined"){gadgets.rpc.call(n.f,c,null,n.c,m)
}}}function P(){if(O==="dpm"||O==="wpm"){window.addEventListener("message",function(o){l(gadgets.json.parse(o.data))
},false)
}if(O==="nix"){if(typeof window[N]!=="unknown"){window[U]=function(o){l(gadgets.json.parse(o))
};
window[f]=function(o,q,p){if(T[o]==p){R[o]=q
}};
var m="Class "+C+"\n Private m_Intended\nPrivate m_Auth\nPublic Sub SetIntendedName(name)\n If isEmpty(m_Intended) Then\nm_Intended = name\nEnd If\nEnd Sub\nPublic Sub SetAuth(auth)\n If isEmpty(m_Auth) Then\nm_Auth = auth\nEnd If\nEnd Sub\nPublic Sub SendMessage(data)\n "+U+"(data)\nEnd Sub\nPublic Function GetAuthToken()\n GetAuthToken = m_Auth\nEnd Function\nPublic Sub CreateChannel(channel, auth)\n Call "+f+"(m_Intended, channel, auth)\nEnd Sub\nEnd Class\nFunction "+N+"(name, auth)\nDim wrap\nSet wrap = New "+C+"\nwrap.SetIntendedName name\nwrap.SetAuth auth\nSet "+N+" = wrap\nEnd Function";
try{window.execScript(m,"vbscript")
}catch(n){O="ifpc"
}}}}O=B();
P();
M[h]=function(){throw new Error("Unknown RPC service: "+this.s)
};
M[c]=function(n,m){var o=F[n];
if(o){delete F[n];
o(m)
}};
function j(n,m){var q;
if(H[n]){return 
}if(O==="fe"){try{q=document.getElementById(n);
q[G]=function(s){l(gadgets.json.parse(s))
}
}catch(p){}}if(O==="nix"){try{q=document.getElementById(n);
var r=window[N](n,m);
q.contentWindow.opener=r
}catch(o){}}H[n]=true
}function L(o){var q=gadgets.json.stringify;
var m=[];
for(var p=0,n=o.length;
p<n;
++p){m.push(encodeURIComponent(q(o[p])))
}return m.join("&")
}function X(p){var n;
for(var m=b.length-1;
m>=0;
--m){var q=b[m];
try{if(q&&(q.recyclable||q.readyState==="complete")){q.parentNode.removeChild(q);
if(window.ActiveXObject){b[m]=q=null;
b.splice(m,1)
}else{q.recyclable=false;
n=q;
break
}}}catch(o){}}if(!n){n=document.createElement("iframe");
n.style.border=n.style.width=n.style.height="0px";
n.style.visibility="hidden";
n.style.position="absolute";
n.onload=function(){this.recyclable=true
};
b.push(n)
}n.src=p;
setTimeout(function(){document.body.appendChild(n)
},0)
}function e(m,n,s,o,p){var r=gadgets.rpc.getRelayUrl(m);
if(!r){throw new Error("No relay file assigned for IFPC")
}var q=null;
if(W[m]){q=[r,"#",L([s,S,1,0,L([s,n,"","",s].concat(p))])].join("")
}else{q=[r,"#",m,"&",s,"@",S,"&1&0&",encodeURIComponent(o)].join("")
}X(q)
}function V(m,p,s,q){try{if(s!==".."){var o=R[".."];
if(!o&&window.opener&&"GetAuthToken" in window.opener){o=window.opener;
if(o.GetAuthToken()==T[".."]){var n=T[".."];
o.CreateChannel(window[N]("..",n),n);
R[".."]=o;
window.opener=null
}}if(o){o.SendMessage(q);
return 
}}else{if(R[m]){R[m].SendMessage(q);
return 
}}}catch(r){}e(m,p,s,q)
}function D(n,o,t,p,r){try{if(t!==".."){var m=window.frameElement;
if(typeof m[G]==="function"){if(typeof m[G][E]!=="function"){m[G][E]=function(u){l(gadgets.json.parse(u))
}
}m[G](p);
return 
}}else{var s=document.getElementById(n);
if(typeof s[G]==="function"&&typeof s[G][E]==="function"){s[G][E](p);
return 
}}}catch(q){}e(n,o,t,p,r)
}function d(n,p){if(typeof g[n]==="undefined"){g[n]=false;
var o=null;
if(n===".."){o=parent
}else{o=frames[n]
}try{g[n]=o.gadgets.rpc.receiveSameDomain
}catch(m){}}if(typeof g[n]==="function"){g[n](p);
return true
}return false
}var Z=false;
var J="undefined";
var k="undefined";
var I=false;
var a=false;
function Q(){if(I&&a){if(J.substring(0,1)==="/"){i[".."]=document.location.protocol+"//"+k+J
}else{i[".."]=J
}W[".."]=Z
}}if(gadgets.config){var Y={parentRelayUrl:gadgets.config.NonEmptyStringValidator};
var K={domain:gadgets.config.NonEmptyStringValidator};
gadgets.config.register("rpc",Y,function(m){Z=!!m.rpc.useLegacyProtocol;
J=m.rpc.parentRelayUrl;
I=true;
Q()
});
gadgets.config.register("ning",K,function(m){k=m.ning.domain;
a=true;
Q()
})
}return{register:function(n,m){if(n===c){throw new Error("Cannot overwrite callback service")
}if(n===h){throw new Error("Cannot overwrite default service: use registerDefault")
}M[n]=m
},unregister:function(m){if(m===c){throw new Error("Cannot delete callback service")
}if(m===h){throw new Error("Cannot delete default service: use unregisterDefault")
}delete M[m]
},registerDefault:function(m){M[""]=m
},unregisterDefault:function(){delete M[""]
},call:function(t,p,u,s){++S;
t=t||"..";
if(u){F[S]=u
}var r="..";
if(t===".."){r=window.name
}var o={s:p,f:r,c:u?S:0,a:Array.prototype.slice.call(arguments,3),t:T[t]};
if(d(t,o)){return 
}var m=gadgets.json.stringify(o);
var n=O;
if(W[t]){n="ifpc"
}switch(n){case"dpm":var v=t===".."?parent.document:frames[t].document;
v.postMessage(m);
break;
case"wpm":var q=t===".."?parent:frames[t];
q.postMessage(m,i[t]);
break;
case"nix":V(t,p,r,m);
break;
case"fe":D(t,p,r,m,o.a);
break;
default:e(t,p,r,m,o.a);
break
}},getRelayUrl:function(m){return i[m]
},setRelayUrl:function(n,m,o){i[n]=m;
W[n]=!!o
},setAuthToken:function(m,n){T[m]=n;
j(m,n)
},getRelayChannel:function(){return O
},receive:function(m){if(m.length>4){l(gadgets.json.parse(decodeURIComponent(m[m.length-1])))
}},receiveSameDomain:function(m){m.a=Array.prototype.slice.call(m.a);
window.setTimeout(function(){l(m)
},0)
}}
}();;
