﻿var gadgets={};var gadgets=gadgets||{};gadgets.config=function(){var a={};return{register:function(d,c,b){if(a[d]){throw new Error('Component "'+d+'" is already registered.')}a[d]={validators:c||{},callback:b}},get:function(b){if(b){if(!a[b]){throw new Error('Component "'+b+'" not registered.')}return configuration[b]||{}}return configuration},init:function(h,g){configuration=h;for(var f in a){if(a.hasOwnProperty(f)){var e=a[f],d=h[f],b=e.validators;if(!g){for(var c in b){if(b.hasOwnProperty(c)){if(!b[c](d[c])){throw new Error('Invalid config value "'+d[c]+'" for parameter "'+c+'" in component "'+f+'"')}}}}if(e.callback){e.callback(h)}}}},EnumValidator:function(e){var d=[];if(arguments.length>1){for(var c=0,b;b=arguments[c];++c){d.push(b)}}else{d=e}return function(g){for(var f=0,h;h=d[f];++f){if(g===d[f]){return true}}};return false},RegExValidator:function(b){return function(c){return b.test(c)}},ExistsValidator:function(b){return typeof b!=="undefined"},NonEmptyStringValidator:function(b){return typeof b==="string"&&b.length>0},BooleanValidator:function(b){return typeof b==="boolean"},LikeValidator:function(b){return function(d){for(var e in b){if(b.hasOwnProperty(e)){var c=b[e];if(!c(d[e])){return false}}}return true}}}}();var gadgets=gadgets||{};gadgets.util=function(){function f(){var k;var j=document.location.href;var h=j.indexOf("?");var i=j.indexOf("#");if(i===-1){k=j.substr(h+1)}else{k=[j.substr(h+1,i-h-1),"&",j.substr(i+1)].join("")}return k.split("&")}var d=null;var c={};var e=[];var a={0:false,10:true,13:true,34:true,39:true,60:true,62:true,92:true,8232:true,8233:true};function b(h,i){return String.fromCharCode(i)}function g(h){c=h["core.util"]||{}}if(gadgets.config){gadgets.config.register("core.util",null,g)}return{getUrlParameters:function(){if(d!==null){return d}d={};var m=f();var p=window.decodeURIComponent?decodeURIComponent:unescape;for(var k=0,h=m.length;k<h;++k){var o=m[k].indexOf("=");if(o===-1){continue}var n=m[k].substring(0,o);var l=m[k].substring(o+1);l=l.replace(/\+/g," ");d[n]=p(l)}return d},makeClosure:function(m,o,n){var l=[];for(var k=2,h=arguments.length;k<h;++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(j){var l={};for(var k=0,h;h=j[k];++k){l[h]=h}return l},getFeatureParameters:function(h){return typeof c[h]==="undefined"?null:c[h]},hasFeature:function(h){return typeof c[h]!=="undefined"},registerOnLoadHandler:function(h){e.push(h)},runOnLoadHandlers:function(){for(var k=0,h=e.length;k<h;++k){e[k]()}},escape:function(h,n){if(!h){return h}else{if(typeof h==="string"){return gadgets.util.escapeString(h)}else{if(typeof h==="array"||typeof(h.constructor)===Array||h instanceof Array){for(var m=0,k=h.length;m<k;++m){h[m]=gadgets.util.escape(h[m])}}else{if(typeof h==="object"&&n){var l={};for(var o in h){if(h.hasOwnProperty(o)){l[gadgets.util.escapeString(o)]=gadgets.util.escape(h[o],true)}}return l}}}}return h},escapeString:function(n){var k=[],m,o;for(var l=0,h=n.length;l<h;++l){m=n.charCodeAt(l);o=a[m];if(o===true){k.push("&#",m,";")}else{if(o!==false){k.push(n.charAt(l))}}}return k.join("")},unescapeString:function(h){return h.replace(/&#([0-9]+);/g,b)},sanitizeHTML:function(k){var h={};h.eflags={OPTIONAL_ENDTAG:1,BREAKS_FLOW:2,EMPTY:4,NAVIGATES:8,CDATA:16,RCDATA:32,UNSAFE:64};h.atype={SCRIPT:1,STYLE:2,IDREF:3,NAME:4,NMTOKENS:5,URI:6,FRAME:7};h.ELEMENTS={a:h.eflags.NAVIGATES,abbr:0,acronym:0,address:0,applet:h.eflags.UNSAFE,area:h.eflags.EMPTY|h.eflags.NAVIGATES,b:0,base:h.eflags.UNSAFE|h.eflags.EMPTY,basefont:h.eflags.UNSAFE|h.eflags.EMPTY,bdo:0,big:0,blockquote:h.eflags.BREAKS_FLOW,body:h.eflags.UNSAFE|h.eflags.OPTIONAL_ENDTAG,br:h.eflags.EMPTY|h.eflags.BREAKS_FLOW,button:0,caption:0,center:h.eflags.BREAKS_FLOW,cite:0,code:0,col:h.eflags.EMPTY,colgroup:h.eflags.OPTIONAL_ENDTAG,dd:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,del:0,dfn:0,dir:h.eflags.BREAKS_FLOW,div:h.eflags.BREAKS_FLOW,dl:h.eflags.BREAKS_FLOW,dt:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,em:0,fieldset:0,font:0,form:h.eflags.BREAKS_FLOW|h.eflags.NAVIGATES,frame:h.eflags.UNSAFE|h.eflags.EMPTY,frameset:h.eflags.UNSAFE,h1:h.eflags.BREAKS_FLOW,h2:h.eflags.BREAKS_FLOW,h3:h.eflags.BREAKS_FLOW,h4:h.eflags.BREAKS_FLOW,h5:h.eflags.BREAKS_FLOW,h6:h.eflags.BREAKS_FLOW,head:(h.eflags.UNSAFE|h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW),hr:h.eflags.EMPTY|h.eflags.BREAKS_FLOW,html:(h.eflags.UNSAFE|h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW),i:0,iframe:h.eflags.UNSAFE,img:h.eflags.EMPTY,input:h.eflags.EMPTY,ins:0,isindex:(h.eflags.UNSAFE|h.eflags.EMPTY|h.eflags.BREAKS_FLOW|h.eflags.NAVIGATES),kbd:0,label:0,legend:0,li:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,link:h.eflags.UNSAFE|h.eflags.EMPTY,map:0,menu:h.eflags.BREAKS_FLOW,meta:h.eflags.UNSAFE|h.eflags.EMPTY,noframes:h.eflags.UNSAFE|h.eflags.BREAKS_FLOW,noscript:h.eflags.UNSAFE,object:h.eflags.UNSAFE,ol:h.eflags.BREAKS_FLOW,optgroup:0,option:h.eflags.OPTIONAL_ENDTAG,p:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,param:h.eflags.UNSAFE|h.eflags.EMPTY,plaintext:(h.eflags.OPTIONAL_ENDTAG|h.eflags.UNSAFE|h.eflags.CDATA),pre:h.eflags.BREAKS_FLOW,q:0,s:0,samp:0,script:h.eflags.UNSAFE|h.eflags.CDATA,select:0,small:0,span:0,strike:0,strong:0,style:h.eflags.UNSAFE|h.eflags.CDATA,sub:0,sup:0,table:h.eflags.BREAKS_FLOW,tbody:h.eflags.OPTIONAL_ENDTAG,td:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,textarea:h.eflags.RCDATA,tfoot:h.eflags.OPTIONAL_ENDTAG,th:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,thead:h.eflags.OPTIONAL_ENDTAG,title:(h.eflags.UNSAFE|h.eflags.BREAKS_FLOW|h.eflags.RCDATA),tr:h.eflags.OPTIONAL_ENDTAG|h.eflags.BREAKS_FLOW,tt:0,u:0,ul:h.eflags.BREAKS_FLOW,"var":0,xmp:h.eflags.CDATA};h.ATTRIBS={abbr:0,accept:0,"accept-charset":0,accesskey:0,action:h.atype.URI,align:0,alink:0,alt:0,archive:h.atype.URI,axis:0,background:h.atype.URI,bgcolor:0,border:0,cellpadding:0,cellspacing:0,"char":0,charoff:0,charset:0,checked:0,cite:h.atype.URI,"class":h.atype.NMTOKENS,classid:h.atype.URI,clear:0,code:0,codebase:h.atype.URI,codetype:0,color:0,cols:0,colspan:0,compact:0,content:0,coords:0,data:h.atype.URI,datetime:0,declare:0,defer:0,dir:0,disabled:0,enctype:0,face:0,"for":h.atype.IDREF,frame:0,frameborder:0,headers:0,height:0,href:h.atype.URI,hreflang:0,hspace:0,id:h.atype.IDREF,ismap:0,label:0,lang:0,language:0,link:0,longdesc:h.atype.URI,marginheight:0,marginwidth:0,maxlength:0,media:0,method:0,multiple:0,name:h.atype.NAME,nohref:0,noresize:0,noshade:0,nowrap:0,object:0,onblur:h.atype.SCRIPT,onchange:h.atype.SCRIPT,onclick:h.atype.SCRIPT,ondblclick:h.atype.SCRIPT,onfocus:h.atype.SCRIPT,onkeydown:h.atype.SCRIPT,onkeypress:h.atype.SCRIPT,onkeyup:h.atype.SCRIPT,onload:h.atype.SCRIPT,onmousedown:h.atype.SCRIPT,onmousemove:h.atype.SCRIPT,onmouseout:h.atype.SCRIPT,onmouseover:h.atype.SCRIPT,onmouseup:h.atype.SCRIPT,onreset:h.atype.SCRIPT,onselect:h.atype.SCRIPT,onsubmit:h.atype.SCRIPT,onunload:h.atype.SCRIPT,profile:h.atype.URI,prompt:0,readonly:0,rel:0,rev:0,rows:0,rowspan:0,rules:0,scheme:0,scope:0,scrolling:0,selected:0,shape:0,size:0,span:0,src:h.atype.URI,standby:0,start:0,style:h.atype.STYLE,summary:0,tabindex:0,target:h.atype.FRAME,text:0,title:0,type:0,usemap:h.atype.URI,valign:0,value:0,valuetype:0,version:0,vlink:0,vspace:0,width:0};var i=(function(){var x={LT:"<",GT:">",AMP:"&",NBSP:"\240",QUOT:'"',APOS:"'"};var q=/^#(\d)$/;var B=/^#x([0-9A-F])$/;function y(D){D=D.toUpperCase();if(x.hasOwnProperty(D)){return x[D]}var C=D.match(q);if(C){return String.fromCharCode(parseInt(C[1],10))}else{if(!!(C=D.match(B))){return String.fromCharCode(parseInt(C[1],16))}}return""}function z(D,C){return y(C)}var r=/&(#\d+|#x[\da-f]+|\w+);/g;function p(C){return C.replace(r,z)}var v=/&/g;var o=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi;var n=/</g;var t=/>/g;var A=/\"/g;function m(C){return C.replace(v,"&amp;").replace(n,"&lt;").replace(t,"&gt;").replace(A,"&quot;")}function w(C){return C.replace(o,"&amp;$1").replace(n,"&lt;").replace(t,"&gt;")}var u=new RegExp("^\\s*(?:"+("(?:([a-z][a-z-]*)"+("(?:\\s*=\\s*"+("(?:\"([^\"]*)\"|'([^']*)'|([^>\"'\\s]*))")+")")+"?)")+"|(/?>)|[^\\w\\s>]+)","i");var l=new RegExp("^(?:&(\\#[0-9]+|\\#[x][0-9a-f]+|\\w+);|<!--[\\s\\S]*?-->|<!w[^>]*>|<\\?[^>*]*>|<(/)?([a-z][a-z0-9]*)|([^<&]+)|([<&]))","i");function s(C){return function D(O,M){O=String(O);var G=null;var H=false;var E=[];var I;var J;var F;C.startDoc&&C.startDoc(M);while(O){var L=O.match(H?u:l);O=O.substring(L[0].length);if(H){if(L[1]){var K=L[1].toLowerCase();var N=L[2]||L[3]||L[4];var Q;if(N!=null){Q=p(N)}else{Q=K}E.push(K,Q)}else{if(L[5]){if(J!==undefined){if(F){C.startTag&&C.startTag(I,E,M)}else{C.endTag&&C.endTag(I,M)}}if(F&&(J&(h.eflags.CDATA|h.eflags.RCDATA))){if(G===null){G=O.toLowerCase()}else{G=G.substring(G.length-O.length)}var P=G.indexOf("</"+I);if(P<0){P=O.length}if(J&h.eflags.CDATA){C.cdata&&C.cdata(O.substring(0,P),M)}else{if(C.rcdata){C.rcdata(w(O.substring(0,P)),M)}}O=O.substring(P)}I=J=F=undefined;E.length=0;H=false}}}else{if(L[1]){C.pcdata&&C.pcdata(L[0],M)}else{if(L[3]){F=!L[2];H=true;I=L[3].toLowerCase();J=h.ELEMENTS.hasOwnProperty(I)?h.ELEMENTS[I]:undefined}else{if(L[4]){C.pcdata&&C.pcdata(L[4],M)}else{if(L[5]){C.pcdata&&C.pcdata(L[5]==="&"?"&amp;":"&lt;",M)}}}}}}C.endDoc&&C.endDoc(M)}}return{normalizeRCData:w,escapeAttrib:m,unescapeEntities:p,makeSaxParser:s}})();i.makeHtmlSanitizer=function(m){var l=[];var n=false;return i.makeSaxParser({startDoc:function(o){l=[];n=false},startTag:function(r,u,p){if(n){return}if(!h.ELEMENTS.hasOwnProperty(r)){return}var o=h.ELEMENTS[r];if(o&h.eflags.UNSAFE){n=!(o&h.eflags.EMPTY);return}u=m(r,u);if(u){if(!(o&h.eflags.EMPTY)){l.push(r)}p.push("<",r);for(var q=0,v=u.length;q<v;q+=2){var s=u[q],t=u[q+1];if(t!=null){p.push(" ",s,'="',i.escapeAttrib(t),'"')}}p.push(">")}},endTag:function(s,q){if(n){n=false;return}if(!h.ELEMENTS.hasOwnProperty(s)){return}var o=h.ELEMENTS[s];if(!(o&(h.eflags.UNSAFE|h.eflags.EMPTY))){var p;if(o&h.eflags.OPTIONAL_ENDTAG){for(p=l.length;--p>=0;){var t=l[p];if(t===s){break}if(!(h.ELEMENTS[t]&h.eflags.OPTIONAL_ENDTAG)){return}}}else{for(p=l.length;--p>=0;){if(l[p]===s){break}}}if(p<0){return}for(var r=l.length;--r>p;){var t=l[r];if(!(h.ELEMENTS[t]&h.eflags.OPTIONAL_ENDTAG)){q.push("</",t,">")}}l.length=p;q.push("</",s,">")}},pcdata:function(p,o){if(!n){o.push(p)}},rcdata:function(p,o){if(!n){o.push(p)}},cdata:function(p,o){if(!n){o.push(p)}},endDoc:function(o){for(var p=l.length;--p>=0;){o.push("</",l[p],">")}l.length=0}})};function j(n){var l=[];i.makeHtmlSanitizer(function m(p,s){for(var o=0;o<s.length;o+=2){var q=s[o];var r=s[o+1];if(h.ATTRIBS.hasOwnProperty(q)){switch(h.ATTRIBS[q]){case h.atype.SCRIPT:case h.atype.STYLE:r=null;break}}else{r=null}s[o+1]=r}return s})(n,l);return l.join("")}return j(k)}}}();gadgets.util.getUrlParameters();var gadgets=gadgets||{};gadgets.window=gadgets.window||{};(function(){var a;gadgets.window.getViewportDimensions=function(){var b,c;if(self.innerHeight){b=self.innerWidth;c=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;c=document.documentElement.clientHeight}else{if(document.body){b=document.body.clientWidth;c=document.body.clientHeight}else{b=0;c=0}}}return{width:b,height:c}};gadgets.window.setTitle=function(b){};gadgets.window.adjustHeight=function(i){var c=parseInt(i,10);var k=false;if(isNaN(c)){var f=gadgets.window.getViewportDimensions().height;var h=document.body;var e=document.documentElement;if(document.compatMode=="CSS1Compat"&&e.scrollHeight){c=e.scrollHeight!=f?e.scrollHeight:e.offsetHeight}else{var g=e.scrollHeight;var j=e.offsetHeight;if(e.clientHeight!=j){g=h.scrollHeight;j=h.offsetHeight}if(g>f){c=g>j?g:j}else{c=g<j?g:j}if(c===f&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.toLowerCase().indexOf("safari")>=0){var b=document.createElement("div");b.innerHTML=document.body.innerHTML;b.style.visibility="hidden";b.id="_temp_____div_for_____adjustHeight";document.body.appendChild(b);c=document.getElementById("_temp_____div_for_____adjustHeight").offsetHeight+15;b.innerHTML="";document.body.removeChild(b)}}}else{if(0===c){c=parseFloat(i);if(!isNaN(c)&&(c<=1||c>0)){k=true}}}if(c!=a||k){a=c;var d=opensocial.Container.get().params_;_IFPC.call(d.panelId,"resizeWidget",[d.panelId,c],d.remoteRelay,null,d.localRelay,null)}}}());var _IG_AdjustIFrameHeight=gadgets.window.adjustHeight;var gadgets=gadgets||{};gadgets.io=function(){var config={};var oauthState;function makeXhr(){if(window.XMLHttpRequest){return new window.XMLHttpRequest()}else{if(window.ActiveXObject){var x=new ActiveXObject("Msxml2.XMLHTTP");if(!x){x=new ActiveXObject("Microsoft.XMLHTTP")}return x}}}function hadError(xobj,callback){if(xobj.readyState!==4){return true}if(xobj.status!==200){callback({errors:["Error "+xobj.status]});return true}return false}function processNonProxiedResponse(url,callback,params,xobj){if(hadError(xobj,callback)){return}var data={body:xobj.responseText};callback(transformResponseData(params,data))}var UNPARSEABLE_CRUFT="throw 1; < don't be evil' >";function processResponse(url,callback,params,xobj){if(hadError(xobj,callback)){return}var txt=xobj.responseText;txt=txt.substr(UNPARSEABLE_CRUFT.length);var data=eval("("+txt+")");data=data[url];if(data.oauthState){oauthState=data.oauthState}if(data.st){shindig.auth.updateSecurityToken(data.st)}callback(transformResponseData(params,data))}function transformResponseData(params,data){var resp={text:data.body,oauthApprovalUrl:data.oauthApprovalUrl,oauthError:data.oauthError,oauthErrorText:data.oauthErrorText,errors:[]};if(resp.text){switch(params.CONTENT_TYPE){case"JSON":case"FEED":resp.data=gadgets.json.parse(resp.text);if(!resp.data){resp.errors.push("failed to parse JSON");resp.data=null}break;case"DOM":var dom;if(window.ActiveXObject){dom=new ActiveXObject("Microsoft.XMLDOM");dom.async=false;dom.validateOnParse=false;dom.resolveExternals=false;if(!dom.loadXML(resp.text)){resp.errors.push("failed to parse XML")}else{resp.data=dom}}else{var parser=new DOMParser();dom=parser.parseFromString(resp.text,"text/xml");if("parsererror"===dom.documentElement.nodeName){resp.errors.push("failed to parse XML")}else{resp.data=dom}}break;default:resp.data=resp.text;break}}return resp}function makeXhrRequest(realUrl,proxyUrl,callback,paramData,method,params,processResponseFunction,opt_contentType){var xhr=makeXhr();xhr.open(method,proxyUrl,true);if(callback){xhr.onreadystatechange=gadgets.util.makeClosure(null,processResponseFunction,realUrl,callback,params,xhr)}if(paramData!=null){xhr.setRequestHeader("Content-Type",opt_contentType||"application/x-www-form-urlencoded");xhr.send(paramData)}else{xhr.send(null)}}function respondWithPreload(postData,params,callback){if(gadgets.io.preloaded_&&gadgets.io.preloaded_[postData.url]){var preload=gadgets.io.preloaded_[postData.url];if(postData.httpMethod=="GET"){delete gadgets.io.preloaded_[postData.url];if(preload.rc!==200){callback({errors:["Error "+preload.rc]})}else{if(preload.oauthState){oauthState=preload.oauthState}var resp={body:preload.body,oauthApprovalUrl:preload.oauthApprovalUrl,oauthError:preload.oauthError,oauthErrorText:preload.oauthErrorText,errors:[]};callback(transformResponseData(params,resp))}return true}}return false}function init(configuration){config=configuration["core.io"]}var requiredConfig={proxyUrl:new gadgets.config.RegExValidator(/.*%(raw)?url%.*/),jsonProxyUrl:gadgets.config.NonEmptyStringValidator};gadgets.config.register("core.io",requiredConfig,init);return{makeRequest:function(url,callback,opt_params){var params=opt_params||{};var httpMethod=params.METHOD||"GET";var refreshInterval=params.REFRESH_INTERVAL;var auth,st;if(params.AUTHORIZATION&&params.AUTHORIZATION!=="NONE"){auth=params.AUTHORIZATION.toLowerCase();st=shindig.auth.getSecurityToken()}else{if(httpMethod==="GET"&&refreshInterval===undefined){refreshInterval=3600}}var signOwner=true;if("OWNER_SIGNED" in params){signOwner=params.OWNER_SIGNED}var signViewer=true;if("VIEWER_SIGNED" in params){signViewer=params.VIEWER_SIGNED}var headers=params.HEADERS||{};if(httpMethod==="POST"&&!headers["Content-Type"]){headers["Content-Type"]="application/x-www-form-urlencoded"}var urlParams=gadgets.util.getUrlParameters();var paramData={url:url,httpMethod:httpMethod,headers:gadgets.io.encodeValues(headers,false),postData:params.POST_DATA||"",authz:auth||"",st:st||"",contentType:params.CONTENT_TYPE||"TEXT",numEntries:params.NUM_ENTRIES||"3",getSummaries:!!params.GET_SUMMARIES,signOwner:signOwner,signViewer:signViewer,gadget:urlParams.url,container:urlParams.container||urlParams.synd||"default",bypassSpecCache:gadgets.util.getUrlParameters().nocache||""};if(params.AUTHORIZATION==="OAUTH"){paramData.oauthState=oauthState||"";for(opt in params){if(params.hasOwnProperty(opt)){if(opt.indexOf("OAUTH_")===0){paramData[opt]=params[opt]}}}}if(!respondWithPreload(paramData,params,callback,processResponse)){if(httpMethod==="GET"&&refreshInterval>0){var extraparams="?refresh="+refreshInterval+"&"+gadgets.io.encodeValues(paramData);makeXhrRequest(url,config.jsonProxyUrl+extraparams,callback,null,"GET",params,processResponse)}else{makeXhrRequest(url,config.jsonProxyUrl,callback,gadgets.io.encodeValues(paramData),"POST",params,processResponse)}}},makeNonProxiedRequest:function(relativeUrl,callback,opt_params,opt_contentType){var params=opt_params||{};makeXhrRequest(relativeUrl,relativeUrl,callback,params.POST_DATA,params.METHOD,params,processNonProxiedResponse,opt_contentType)},clearOAuthState:function(){oauthState=undefined},encodeValues:function(fields,opt_noEscaping){var escape=!opt_noEscaping;var buf=[];var first=false;for(var i in fields){if(fields.hasOwnProperty(i)){if(!first){first=true}else{buf.push("&")}buf.push(escape?encodeURIComponent(i):i);buf.push("=");buf.push(escape?encodeURIComponent(fields[i]):fields[i])}}return buf.join("")},getProxyUrl:function(url,opt_params){var params=opt_params||{};var refresh=params.REFRESH_INTERVAL;if(refresh===undefined){refresh="3600"}return config.proxyUrl.replace("%url%",escape(url)).replace("%rawurl%",url).replace("%refresh%",escape(refresh))}}}();gadgets.io.RequestParameters=gadgets.util.makeEnum(["METHOD","CONTENT_TYPE","POST_DATA","HEADERS","AUTHORIZATION","NUM_ENTRIES","GET_SUMMARIES","REFRESH_INTERVAL","OAUTH_SERVICE_NAME","OAUTH_TOKEN_NAME","OAUTH_REQUEST_TOKEN","OAUTH_REQUEST_TOKEN_SECRET"]);gadgets.io.ProxyUrlRequestParameters=gadgets.util.makeEnum(["REFRESH_INTERVAL"]);gadgets.io.MethodType=gadgets.util.makeEnum(["GET","POST","PUT","DELETE","HEAD"]);gadgets.io.ContentType=gadgets.util.makeEnum(["TEXT","DOM","JSON","FEED"]);gadgets.io.AuthorizationType=gadgets.util.makeEnum(["NONE","SIGNED","OAUTH"]);gadgets.io.makeRequest=function(a,j,b){if(b&&b[gadgets.io.RequestParameters.AUTHORIZATION]===gadgets.io.AuthorizationType.OAUTH){i({errorCode:opensocial.ResponseItem.Error.NOT_IMPLEMENTED,errorMessage:"gadgets.io.AuthorizationType.OAUTH is not supported."},a);return}if(b&&b[gadgets.io.RequestParameters.METHOD]===gadgets.io.MethodType.HEAD){i({errorCode:opensocial.ResponseItem.Error.NOT_IMPLEMENTED,errorMessage:"gadgets.io.MethodType.HEAD is not supported."},a);return}b=b||{};var f={};f.authType=b[gadgets.io.RequestParameters.AUTHORIZATION]||gadgets.io.AuthorizationType.NONE;f.contentType=b[gadgets.io.RequestParameters.CONTENT_TYPE]||gadgets.io.ContentType.TEXT;f.method=b[gadgets.io.RequestParameters.METHOD]||gadgets.io.MethodType.GET;f.postData=b[gadgets.io.RequestParameters.POST_DATA]||null;f.refresh=b[gadgets.io.ProxyUrlRequestParameters.REFRESH_INTERVAL]||3600;if(typeof(f.postData)!="string"){f.postData=c(f.postData)}f.postDataLength=(f.postData!=null&&f.postData.length>0)?f.postData.length:0;f.headers=b[gadgets.io.RequestParameters.HEADERS]||null;f.numEntries=b[gadgets.io.RequestParameters.NUM_ENTRIES]||3;f.summariesOnly=b[gadgets.io.RequestParameters.GET_SUMMARIES]||false;f.noTimestamp=b[MyOpenSpace.RequestParameters.NO_TIMESTAMP]||false;if(a.indexOf("/proxy/relay.proxy")!==-1){var d=a}else{var d="/proxy/relay.proxy?opensocial_url="+escape(a);if(f.authType===gadgets.io.AuthorizationType.SIGNED){var e="";var g=opensocial.getEnvironment();if(g&&g.currentApplication){e=g.currentApplication.getField(MyOpenSpace.Application.Field.PROFILE_URL)}d+="&opensocial_authtype=SIGNED&opensocial_app_url="+escape(e)}else{if(f.authType===gadgets.io.AuthorizationType.NONE){d+="&refresh="+f.refresh}else{i({errorCode:opensocial.ResponseItem.Error.NOT_IMPLEMENTED,errorMessage:"only gadgets.io.AuthorizationType.NONE and .SIGNED are supported."},a);return}}}MyOpenSpace.Ajax.sendContentRequest(d,h,i,f);function h(m,l,o){b=b||{};if(m.readyState!==4){return}if(m.status!==200){j({errors:["Error "+m.status]});return}var s=m.responseText;var r={};r.body=m.responseText;var p={text:r.body,errors:[]};switch(o.contentType){case"JSON":p.data=gadgets.json.parse(p.text);if(!p.data){p.errors.push("failed to parse JSON");p.data=null}break;case"FEED":var q;if(window.ActiveXObject){q=new ActiveXObject("Microsoft.XMLDOM");q.async=false;q.validateOnParse=false;q.resolveExternals=false;if(!q.loadXML(p.text)){p.errors.push("failed to parse XML")}else{p.data=q}}else{var k=new DOMParser();q=k.parseFromString(p.text,"text/xml");if("parsererror"===q.documentElement.nodeName){p.errors.push("failed to parse XML")}else{p.data=q}}if(o.summariesOnly){p.data=new MyOpenSpace.Feed.RSS2.Channel(p.data,true,o.numEntries)}else{p.data=new MyOpenSpace.Feed.RSS2.Channel(p.data,false,o.numEntries)}break;case"DOM":var q;if(window.ActiveXObject){q=new ActiveXObject("Microsoft.XMLDOM");q.async=false;q.validateOnParse=false;q.resolveExternals=false;if(!q.loadXML(p.text)){p.errors.push("failed to parse XML")}else{p.data=q}}else{var k=new DOMParser();q=k.parseFromString(p.text,"text/xml");if("parsererror"===q.documentElement.nodeName){p.errors.push("failed to parse XML")}else{p.data=q}}break;default:p.data=p.text;break}var n=(p.errors.length>=1)?true:false;if(!n){if(b.LEGACY){p=p.data}}j(p,l,n)}function i(k,l){j(k,l,true)}function c(k){var l=[];var n=false;for(var m in k){if(!n){n=true}else{l.push("&")}l.push(encodeURIComponent(m));l.push("=");l.push(encodeURIComponent(k[m]))}return l.join("")}};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){try{if(/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/b-u]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){return eval("("+text+")")}}catch(e){return false}return false}}}();var gadgets=gadgets||{};(function(){var b=null;var c={};var e={};var g="en";var f="US";var d=0;function a(){var j=gadgets.util.getUrlParameters();for(var h in j){if(j.hasOwnProperty(h)){if(h.indexOf("up_")===0&&h.length>3){c[h.substr(3)]=String(j[h])}else{if(h==="country"){f=j[h]}else{if(h==="lang"){g=j[h]}else{if(h==="mid"){d=j[h]}}}}}}}gadgets.Prefs=function(){if(!b){a();b=this}return b};gadgets.Prefs.setInternal_=function(i,j){if(typeof i==="string"){c[i]=j}else{for(var h in i){if(i.hasOwnProperty(h)){c[h]=i[h]}}}};gadgets.Prefs.setMessages_=function(h){msgs=h};gadgets.Prefs.prototype.getString=function(h){return c[h]?gadgets.util.escapeString(c[h]):""};gadgets.Prefs.prototype.getInt=function(h){var i=parseInt(c[h],10);return isNaN(i)?0:i};gadgets.Prefs.prototype.getFloat=function(h){var i=parseFloat(c[h]);return isNaN(i)?0:i};gadgets.Prefs.prototype.getBool=function(h){var i=c[h];if(i){return i==="true"||i===true||!!parseInt(i,10)}return false};gadgets.Prefs.prototype.set=function(h,i){throw new Error("setprefs feature required to make this call.")};gadgets.Prefs.prototype.getArray=function(n){var o=c[n];if(o){var h=o.split("|");var k=gadgets.util.escapeString;for(var m=0,l=h.length;m<l;++m){h[m]=k(h[m].replace(/%7C/g,"|"))}return h}return[]};gadgets.Prefs.prototype.setArray=function(h,i){throw new Error("setprefs feature required to make this call.")};gadgets.Prefs.prototype.getMsg=function(h){return msgs[h]||""};gadgets.Prefs.prototype.getCountry=function(){return f};gadgets.Prefs.prototype.getLang=function(){return g};gadgets.Prefs.prototype.getModuleId=function(){return d}})();var gadgets=gadgets||{};gadgets.views=function(){var d=null;var a={};var c={};function b(j){var e=j.views;for(var o in e){if(e.hasOwnProperty(o)){var k=e[o];if(!k){continue}a[o]=new gadgets.views.View(o,k.isOnlyVisible);var h=k.aliases||[];for(var l=0,m;m=h[l];++l){a[m]=new gadgets.views.View(o,k.isOnlyVisible)}}}var g=gadgets.util.getUrlParameters();if(g.p){var n=gadgets.json.parse(decodeURIComponent(g.p));if(n){c=n;for(var f in c){if(c.hasOwnProperty(f)){if(null!==c[f]&&"undefined"!==typeof(c[f])){c[f]=gadgets.util.escapeString(c[f])}}}}}if(0===g.views.indexOf("profile.")){g.views=gadgets.views.ViewType.PROFILE}d=a[g.views]||a["default"]}gadgets.config.register("views",null,b);return{requestNavigateTo:function(e,g,f){gadgets.rpc.call(null,"requestNavigateTo",null,e.getName(),g,f)},bind:function(f,e){},getCurrentView:function(){return d},getSupportedViews:function(){return a},getParams:function(){return c}}}();gadgets.views.View=function(a,b){this.name_=a;this.isOnlyVisible_=!!b};gadgets.views.View.prototype.getName=function(){return this.name_};gadgets.views.View.prototype.isOnlyVisibleGadget=function(){return this.isOnlyVisible_};gadgets.views.View.prototype.bind=function(a){};gadgets.views.View.prototype.getUrlTemplate=function(){};gadgets.views.ViewType=gadgets.util.makeEnum(["CANVAS","HOME","PREVIEW","PROFILE"]);gadgets.views.requestNavigateTo=function(a,d,b){if(b){return{errorCode:opensocial.ResponseItem.Error.NOT_IMPLEMENTED,errorMessage:"opt_ownerId in gadgets.views.requestNavigateTo is not supported."}}if(a&&a.name_){var c=a.getName();if(0===c.indexOf("profile.")){c=gadgets.views.ViewType.PROFILE}var e=opensocial.Container.get().params_;_IFPC.call(e.panelId,"requestNavigateTo",[e.appid,e.ownerid,c.toLowerCase(),d],e.remoteRelay,null,e.localRelay,null)}};
