﻿var gadgets={};var gadgets=gadgets||{};gadgets.util=function(){function D(){var H;var G=document.location.href;var E=G.indexOf("?");var F=G.indexOf("#");if(F===-1){H=G.substr(E+1)}else{H=[G.substr(E+1,F-E-1),"&",G.substr(F+1)].join("")}return H.split("&")}var B=null;var A={};var C=[];return{getUrlParameters:function(){if(B!==null){return B}B={};var H=D();var K=window.decodeURIComponent?decodeURIComponent:unescape;for(var F=0,E=H.length;F<E;++F){var J=H[F].indexOf("=");if(J===-1){continue}var I=H[F].substring(0,J);var G=H[F].substring(J+1);G=G.replace(/\+/g," ");B[I]=K(G)}return B},makeClosure:function(H,J,I){var E=[];for(var G=2,F=arguments.length;G<F;++G){E.push(arguments[G])}return function(){for(var L=0,K=arguments.length;L<K;++L){E.push(arguments[L])}J.apply(H,E)}},makeEnum:function(F){var H={};for(var G=0,E;E=F[G];++G){H[E]=E}return H},getFeatureParameters:function(E){return typeof A[E]==="undefined"?null:A[E]},hasFeature:function(E){return typeof A[E]==="undefined"},registerOnLoadHandler:function(E){C.push(E)},runOnLoadHandlers:function(){for(var F=0,E=C.length;F<E;++F){C[F]()}},init:function(E){A=E}}}();var gadgets=gadgets||{};gadgets.io=function(){var A={};function B(){if(window.XMLHttpRequest){return new XMLHttpRequest()}else{if(window.ActiveXObject){var E=new ActiveXObject("Msxml2.XMLHTTP");if(!E){E=new ActiveXObject("Microsoft.XMLHTTP")}return E}}}var D="throw 1; < don't be evil' >";function C(F,M,H,G){if(G.readyState!==4){return }if(G.status!==200){M({errors:["Error "+G.status]});return }var L=G.responseText;L=L.substr(D.length);var K=gadgets.json.parse(L);K=K[F];var I={text:K.body,errors:[]};switch(H.CONTENT_TYPE){case"JSON":case"FEED":I.data=gadgets.json.parse(I.text);if(!I.data){I.errors.push("failed to parse JSON");I.data=null}break;case"DOM":var J;if(window.ActiveXObject){J=new ActiveXObject("Microsoft.XMLDOM");J.async=false;J.validateOnParse=false;J.resolveExternals=false;if(!J.loadXML(I.text)){I.errors.push("failed to parse XML")}else{I.data=J}}else{var E=new DOMParser();J=E.parseFromString(I.text,"text/xml");if("parsererror"===J.documentElement.nodeName){I.errors.push("failed to parse XML")}else{I.data=J}}break;default:I.data=I.text;break}M(I)}return{makeRequest:function(E,K,G){var L=B();var J=G||{};L.open("POST",A.jsonProxyUrl,true);if(K){L.onreadystatechange=gadgets.util.makeClosure(null,C,E,K,J,L)}L.setRequestHeader("Content-Type","application/x-www-form-urlencoded");var I,M;if(J.AUTHORIZATION&&J.AUTHORIZATION!=="NONE"){I=J.AUTHORIZATION.toLowerCase();M=gadgets.util.getUrlParameters().st}var H=J.HEADERS||{};if(J.METHOD==="POST"&&!H["Content-Type"]){H["Content-Type"]="application/x-www-form-urlencoded"}var F={url:E,httpMethod:J.METHOD||"GET",headers:gadgets.io.encodeValues(H),postData:J.POST_DATA||"",auth:I||"",st:M||""};L.send(gadgets.io.encodeValues(F))},encodeValues:function(E){var F=[];var H=false;for(var G in E){if(!H){H=true}else{F.push("&")}F.push(encodeURIComponent(G));F.push("=");F.push(encodeURIComponent(E[G]))}return F.join("")},getProxyUrl:function(E){return A.proxyUrl.replace("%url%",encodeURIComponent(E))},init:function(E){A=E;if(!A.proxyUrl||!A.jsonProxyUrl){throw new Error("proxyUrl and jsonProxyUrl are required.")}}}}();gadgets.io.RequestParameters=gadgets.util.makeEnum(["METHOD","CONTENT_TYPE","POST_DATA","HEADERS","AUTHORIZATION","NUM_ENTRIES","GET_SUMMARIES"]);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","AUTHENTICATED"]);var gadgets=gadgets||{};gadgets.prefs_=function(){var C={};function I(J){if(!C[J]){C[J]={prefs:{},msgs:{},language:"all",country:"all"}}return C[J]}function F(N,M,J){var L=I(N);if(typeof M!=="string"){for(var K in M){L.prefs[K]=M[K]}}else{L.prefs[M]=J}}function E(N,M,J){var L=I(N);if(typeof M!=="string"){for(var K in M){L.msgs[K]=M[K]}}else{L.msgs[M]=J}}var D=0;function A(J){D=J}function B(){return D}function G(J,K){I(J).language=K}function H(J,K){I(J).country=K}return{setPref:F,setMsg:E,setCountry:H,setLanguage:G,getModuleData:I,setDefaultModuleId:A,getDefaultModuleId:B}}();gadgets.Prefs=function(A){if(typeof A==="undefined"){this.moduleId_=gadgets.prefs_.getDefaultModuleId()}else{this.moduleId_=A}this.data_=gadgets.prefs_.getModuleData(this.moduleId_);this.prefs_=this.data_.prefs;this.msgs_=this.data_.msgs};gadgets.Prefs.parseUrl=function(C){var A={};var D={};var F="all";var G="all";if(gadgets.util){var E=gadgets.util.getUrlParameters();for(var B in E){if(B.indexOf("up_")===0&&B.length>3){A[B.substr(3)]=String(E[B])}else{if(B.indexOf("msg_")===0&&B.length>4){D[B.substr(4)]=String(E[B])}else{if(B==="country"){F=E[B]}else{if(B==="lang"){G=E[B]}else{if(B==="mid"){C=E[B]}}}}}}}gadgets.prefs_.setDefaultModuleId(C);gadgets.prefs_.setPref(C,A);gadgets.prefs_.setMsg(C,D);gadgets.prefs_.setLanguage(C,G);gadgets.prefs_.setCountry(C,F)};gadgets.Prefs.prototype.getPref_=function(A){var B=this.prefs_[A];return typeof B==="undefined"?null:B};gadgets.Prefs.prototype.getString=function(A){var B=this.getPref_(A);return B===null?"":B};gadgets.Prefs.prototype.getInt=function(A){var B=parseInt(this.getPref_(A),10);return isNaN(B)?0:B};gadgets.Prefs.prototype.getFloat=function(A){var B=parseFloat(this.getPref_(A));return isNaN(B)?0:B};gadgets.Prefs.prototype.getBool=function(A){var B=this.getPref_(A);if(B!==null){return B==="true"||B===true||!!parseInt(B,10)}return false};gadgets.Prefs.prototype.set=function(A,B){throw new Error("setprefs feature required to make this call.")};gadgets.Prefs.prototype.getArray=function(D){var E=this.getPref_(D);if(E!==null){var A=E.split("|");for(var C=0,B=A.length;C<B;++C){A[C]=A[C].replace(/%7C/g,"|")}return A}return[]};gadgets.Prefs.prototype.setArray=function(A,B){throw new Error("setprefs feature required to make this call.")};gadgets.Prefs.prototype.getMsg=function(A){var B=this.msgs_[A];return typeof B==="undefined"?"":B};gadgets.Prefs.prototype.getCountry=function(){return this.data_.country};gadgets.Prefs.prototype.getLang=function(){return this.data_.language};gadgets.Prefs.prototype.getModuleId=function(){return this.moduleId_};var gadgets=gadgets||{};gadgets.json=function(){var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s={"boolean":function(x){return String(x)},number:function(x){return isFinite(x)?String(x):"null"},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})}return'"'+x+'"'},object:function(x){if(x){var a=[],b,f,i,l,v;if(x instanceof Array){a[0]="[";l=x.length;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a[a.length]=v;b=true}}}a[a.length]="]"}else{if(typeof x.hasOwnProperty==="function"){a[0]="{";for(i in x){if(x.hasOwnProperty(i)){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a.push(s.string(i),":",v);b=true}}}}a[a.length]="}"}else{return }}return a.join("")}return"null"}};return{copyright:"(c)2005 JSON.org",license:"http://www.JSON.org/license.html",stringify:function(v){var f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){return v}}return null},parse:function(text){try{return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(text.replace(/("(\\.|[^"\\])*")|('(\\.|[^'\\])*')/g,"")))&&eval("("+text+")")}catch(e){return false}}}}();var JSON=gadgets.json;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(G,F){configuration=G;for(var E in A){var D=A[E],C=G[E],B=D.validators;if(!F){for(var H in B){if(!B[H](C[H])){throw new Error('Invalid config value "'+C[H]+'" for parameter "'+H+'" in component "'+E+'"')}}}if(D.callback){D.callback(G)}}},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 !!B},LikeValidator:function(B){return function(D){for(var E in B){var C=B[E];if(!C(D[E])){return false}}return true}}}}();var gadgets=gadgets||{};gadgets.views=function(){var E=null;var A={};var D={};function C(I){var F=I.views;var M=0;for(var O in F){if(F.hasOwnProperty(O)){var J=F[O];A[O]=new gadgets.views.View(J.name_,J.isOnlyVisible_);A[M]=A[O];M++;var H=J.aliases||[];for(var K=0,L;L=H[K];++K){A[L]=new gadgets.views.View(J.name_,J.isOnlyVisible_)}}}var G=gadgets.util.getUrlParameters();if(G["view-params"]){var N=gadgets.json.parse(decodeURIComponent(G["view-params"]));if(N){D=N}}E=A[G.views]||A["default"]}var B={"default":new gadgets.config.LikeValidator({isOnlyVisible_:gadgets.config.BooleanValidator})};gadgets.config.register("views",B,C);return{requestNavigateTo:function(F,G){gadgets.rpc.call(null,"requestNavigateTo",null,F.getName(),G)},getCurrentView:function(){return E},getSupportedViews:function(){return A},getParams:function(){return D}}}();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.ViewType=gadgets.util.makeEnum(["FULL_PAGE","DASHBOARD","POPUP"]);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.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)}}}());