|<!\\w[^>]*>|<\\?[^>*]*>|<(/)?([a-z][a-z0-9]*)|([^<&>]+)|([<&>]))','i');function
makeSaxParser(handler){return function parse(htmlText,param){var attribName,attribs,dataEnd,decodedValue,eflags,encodedValue,htmlLower,inTag,m,openTag,tagName;htmlText=String(htmlText),htmlLower=null,inTag=false,attribs=[],tagName=void
0,eflags=void 0,openTag=void 0,handler.startDoc&&handler.startDoc(param);while(htmlText){m=htmlText.match(inTag?INSIDE_TAG_TOKEN:OUTSIDE_TAG_TOKEN),htmlText=htmlText.substring(m[0].length);if(inTag){if(m[1]){attribName=lcase(m[1]);if(m[2]){encodedValue=m[3];switch(encodedValue.charCodeAt(0)){case
34:case 39:encodedValue=encodedValue.substring(1,encodedValue.length-1)}decodedValue=unescapeEntities(stripNULs(encodedValue))}else
decodedValue=attribName;attribs.push(attribName,decodedValue)}else if(m[4])eflags!==void
0&&(openTag?handler.startTag&&handler.startTag(tagName,attribs,param):handler.endTag&&handler.endTag(tagName,param)),openTag&&eflags&(html4.eflags.CDATA|html4.eflags.RCDATA)&&(htmlLower===null?(htmlLower=lcase(htmlText)):(htmlLower=htmlLower.substring(htmlLower.length-htmlText.length)),dataEnd=htmlLower.indexOf('</'+tagName),dataEnd<0 amp="amp" dataend="htmlText.length),eflags&html4.eflags.CDATA?handler.cdata&&handler.cdata(htmlText.substring(0,dataEnd),param):handler.rcdata&&handler.rcdata(normalizeRCData(htmlText.substring(0,dataEnd)),param),htmlText=htmlText.substring(dataEnd)),tagName=eflags=openTag=void</p"> 0>
0,attribs.length=0,inTag=false}else if(m[1])handler.pcdata&&handler.pcdata(m[0],param);else
if(m[3])openTag=!m[2],inTag=true,tagName=lcase(m[3]),eflags=html4.ELEMENTS.hasOwnProperty(tagName)?html4.ELEMENTS[tagName]:void 0;else if(m[4])handler.pcdata&&handler.pcdata(m[4],param);else
if(m[5]){if(handler.pcdata)switch(m[5]){case'<':handler.pcdata('<',param);break;case'>':handler.pcdata('>',param);break;default:handler.pcdata('&',param)}}}handler.endDoc&&handler.endDoc(param)}}return{'normalizeRCData':normalizeRCData,'escapeAttrib':escapeAttrib,'unescapeEntities':unescapeEntities,'makeSaxParser':makeSaxParser}})(),html.makeHtmlSanitizer=function(sanitizeAttributes){var
ignoring,stack;return html.makeSaxParser({'startDoc':function(_){stack=[],ignoring=false},'startTag':function(tagName,attribs,out){var
attribName,eflags,i,n,value;if(ignoring)return;if(!html4.ELEMENTS.hasOwnProperty(tagName))return;eflags=html4.ELEMENTS[tagName];if(eflags&html4.eflags.FOLDABLE)return;else if(eflags&html4.eflags.UNSAFE)return ignoring=!(eflags&html4.eflags.EMPTY),void 0;attribs=sanitizeAttributes(tagName,attribs);if(attribs){eflags&html4.eflags.EMPTY||stack.push(tagName),out.push('<',tagName);for(i=0,n=attribs.length;i
0&&out.push(' ',attribName,'=\"',html.escapeAttrib(value),'\"');out.push('>')}},'endTag':function(tagName,out){var
eflags,i,index,stackEl;if(ignoring)return ignoring=false,void 0;if(!html4.ELEMENTS.hasOwnProperty(tagName))return;eflags=html4.ELEMENTS[tagName];if(!(eflags&(html4.eflags.UNSAFE|html4.eflags.EMPTY|html4.eflags.FOLDABLE))){if(eflags&html4.eflags.OPTIONAL_ENDTAG)for(index=stack.length;--index>=0;){stackEl=stack[index];if(stackEl===tagName)break;if(!(html4.ELEMENTS[stackEl]&html4.eflags.OPTIONAL_ENDTAG))return}else for(index=stack.length;--index>=0;)if(stack[index]===tagName)break;if(index<0 for="for" i="stack.length;--i" return="return">index;)stackEl=stack[i],html4.ELEMENTS[stackEl]&html4.eflags.OPTIONAL_ENDTAG||out.push('</',stackEl,'>');stack.length=index,out.push('</',tagName,'>')}},'pcdata':function(text,out){ignoring||out.push(text)},'rcdata':function(text,out){ignoring||out.push(text)},'cdata':function(text,out){ignoring||out.push(text)},'endDoc':function(out){var0>
i;for(i=stack.length;--i>=0;)out.push('</',stack[i],'>');stack.length=0}})};function
html_sanitize(htmlText,opt_uriPolicy,opt_nmTokenPolicy){var out=[];return html.makeHtmlSanitizer(function
sanitizeAttribs(tagName,attribs){var attribKey,attribName,atype,i,value;for(i=0;i
html4.atype.SCRIPT:case html4.atype.STYLE:value=null;break;case html4.atype.ID:case
html4.atype.IDREF:case html4.atype.IDREFS:case html4.atype.GLOBAL_NAME:case html4.atype.LOCAL_NAME:case html4.atype.CLASSES:value=opt_nmTokenPolicy?opt_nmTokenPolicy(value):value;break;case
html4.atype.URI:value=opt_uriPolicy&&opt_uriPolicy(value);break;case html4.atype.URI_FRAGMENT:value&&'#'===value.charAt(0)?(value=opt_nmTokenPolicy?opt_nmTokenPolicy(value):value,value&&(value='#'+value)):(value=null);break;default:value=null}else
value=null;attribs[i+1]=value}return attribs})(htmlText,out),out.join('')}}
gadgets.window=gadgets.window||{};(function(){gadgets.window.getViewportDimensions=function(){var x=0;var y=0;if(self.innerHeight){x=self.innerWidth;y=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}else if(document.body){x=document.body.clientWidth;y=document.body.clientHeight;}
return{width:x,height:y};};})();
var opensocial=opensocial||{};opensocial.requestSendMessage=function(recipients,message,opt_callback,opt_params){return opensocial.Container.get().requestSendMessage(recipients,message,opt_callback,opt_params);};opensocial.requestShareApp=function(recipients,reason,opt_callback,opt_params){opensocial.Container.get().requestShareApp(recipients,reason,opt_callback,opt_params);};opensocial.requestCreateActivity=function(activity,priority,opt_callback){if(!activity||(!activity.getField(opensocial.Activity.Field.TITLE)&&!activity.getField(opensocial.Activity.Field.TITLE_ID))){if(opt_callback){window.setTimeout(function(){opt_callback(new opensocial.ResponseItem(null,null,opensocial.ResponseItem.Error.BAD_REQUEST,"You must pass in an activity with a title or title id."));},0);}
return;}
opensocial.Container.get().requestCreateActivity(activity,priority,opt_callback);};opensocial.CreateActivityPriority={HIGH:'HIGH',LOW:'LOW'};opensocial.hasPermission=function(permission){return opensocial.Container.get().hasPermission(permission);};opensocial.requestPermission=function(permissions,reason,opt_callback){opensocial.Container.get().requestPermission(permissions,reason,opt_callback);};opensocial.Permission={VIEWER:'viewer'};opensocial.getEnvironment=function(){return opensocial.Container.get().getEnvironment();};opensocial.newDataRequest=function(){return opensocial.Container.get().newDataRequest();};opensocial.newActivity=function(params){return opensocial.Container.get().newActivity(params);};opensocial.newAlbum=function(opt_params){return opensocial.Container.get().newAlbum(opt_params);};opensocial.newMediaItem=function(mimeType,url,opt_params){return opensocial.Container.get().newMediaItem(mimeType,url,opt_params);};opensocial.newMessage=function(body,opt_params){return opensocial.Container.get().newMessage(body,opt_params);};opensocial.EscapeType={HTML_ESCAPE:'htmlEscape',NONE:'none'};opensocial.newIdSpec=function(params){return opensocial.Container.get().newIdSpec(params);};opensocial.newNavigationParameters=function(params){return opensocial.Container.get().newNavigationParameters(params);};opensocial.invalidateCache=function(){opensocial.Container.get().invalidateCache();};Function.prototype.inherits=function(parentCtor){function tempCtor(){}
tempCtor.prototype=parentCtor.prototype;this.superClass_=parentCtor.prototype;this.prototype=new tempCtor();this.prototype.constructor=this;};opensocial.Activity=function(params){this.fields_=params;};opensocial.Activity.Field={TITLE_ID:'titleId',TITLE:'title',TEMPLATE_PARAMS:'templateParams',URL:'url',MEDIA_ITEMS:'mediaItems',BODY_ID:'bodyId',BODY:'body',EXTERNAL_ID:'externalId',STREAM_TITLE:'streamTitle',STREAM_URL:'streamUrl',STREAM_SOURCE_URL:'streamSourceUrl',STREAM_FAVICON_URL:'streamFaviconUrl',PRIORITY:'priority',ID:'id',USER_ID:'userId',APP_ID:'appId',POSTED_TIME:'postedTime'};opensocial.Activity.prototype.getId=function(){return this.getField(opensocial.Activity.Field.ID);};opensocial.Activity.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Activity.prototype.setField=function(key,data){return(this.fields_[key]=data);};opensocial.Address=function(opt_params){this.fields_=opt_params||{};};opensocial.Address.Field={TYPE:'type',UNSTRUCTURED_ADDRESS:'unstructuredAddress',PO_BOX:'poBox',STREET_ADDRESS:'streetAddress',EXTENDED_ADDRESS:'extendedAddress',REGION:'region',LOCALITY:'locality',POSTAL_CODE:'postalCode',COUNTRY:'country',LATITUDE:'latitude',LONGITUDE:'longitude'};opensocial.Address.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Album=function(opt_params){this.fields_=opt_params||{};};opensocial.Album.Field={DESCRIPTION:'description',ID:'id',LOCATION:'location',MEDIA_ITEM_COUNT:'mediaITemCount',MEDIA_MIME_TYPE:'MEDIA_MIME_TYPE',MEDIA_TYPE:'MEDIA_TYPE',OWNER_ID:'ownerId',THUMBNAIL_URL:'thumbnailUrl',TITLE:'title'};opensocial.Album.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Album.prototype.setField=function(key,data){return this.fields_[key]=data;};opensocial.BodyType=function(opt_params){this.fields_=opt_params||{};};opensocial.BodyType.Field={BUILD:'build',HEIGHT:'height',WEIGHT:'weight',EYE_COLOR:'eyeColor',HAIR_COLOR:'hairColor'};opensocial.BodyType.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Collection=function(array,opt_offset,opt_totalSize){this.array_=array||[];this.offset_=opt_offset||0;this.totalSize_=opt_totalSize||this.array_.length;};opensocial.Collection.prototype.getById=function(id){for(var i=0;i
return null;};opensocial.Collection.prototype.size=function(){return this.array_.length;};opensocial.Collection.prototype.each=function(fn){for(var i=0;i
this.fields_[opensocial.MediaItem.Field.MIME_TYPE]=mimeType;this.fields_[opensocial.MediaItem.Field.URL]=url;};opensocial.MediaItem.Type={IMAGE:'image',VIDEO:'video',AUDIO:'audio'};opensocial.MediaItem.Field={TYPE:'type',MIME_TYPE:'mimeType',URL:'url'};opensocial.MediaItem.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.MediaItem.prototype.setField=function(key,data){return(this.fields_[key]=data);};opensocial.MessageCollection=function(opt_params){this.fields_=opt_params||{};};opensocial.MessageCollection.Field={ID:'id',TITLE:'title',TOTAL:'total',UNREAD:'unread',UPDATED:'updated',URLS:'urls'};opensocial.MessageCollection.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.MessageCollection.prototype.setField=function(key,data){return this.fields_[key]=data;};opensocial.Message=function(body_or_params,opt_params){if(typeof body_or_params=='string'){this.fields_=opt_params||{};this.fields_[opensocial.Message.Field.BODY]=body_or_params;}else{this.fields_=body_or_params||{};}};opensocial.Message.Field={APP_URL:'appUrl',BODY:'body',BODY_ID:'bodyId',COLLECTION_IDS:'collectionIds',ID:'id',PARENT_ID:'parentId',RECIPIENTS:'recipients',SENDER_ID:'senderId',STATUS:'status',TIME_SENT:'timeSent',TITLE:'title',TITLE_ID:'titleId',TYPE:'type',UPDATED:'updated',URLS:'urls'};opensocial.Message.Type={EMAIL:'email',NOTIFICATION:'notification',PRIVATE_MESSAGE:'privateMessage',PUBLIC_MESSAGE:'publicMessage'};opensocial.Message.Status={NEW:'new',DELETED:'deleted',FLAGGED:'flagged'};opensocial.Message.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Message.prototype.setField=function(key,data){return(this.fields_[key]=data);};opensocial.Name=function(opt_params){this.fields_=opt_params||{};};opensocial.Name.Field={FAMILY_NAME:'familyName',GIVEN_NAME:'givenName',ADDITIONAL_NAME:'additionalName',HONORIFIC_PREFIX:'honorificPrefix',HONORIFIC_SUFFIX:'honorificSuffix',UNSTRUCTURED:'unstructured'};opensocial.Name.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.NavigationParameters=function(opt_params){this.fields_=opt_params||{};};opensocial.NavigationParameters.Field={VIEW:'view',OWNER:'owner',PARAMETERS:'parameters'};opensocial.NavigationParameters.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.NavigationParameters.prototype.setField=function(key,data){return(this.fields_[key]=data);};opensocial.NavigationParameters.DestinationType={VIEWER_DESTINATION:"viewerDestination",RECIPIENT_DESTINATION:"recipientDestination"};opensocial.Organization=function(opt_params){this.fields_=opt_params||{};};opensocial.Organization.Field={NAME:'name',TITLE:'title',DESCRIPTION:'description',FIELD:'field',SUB_FIELD:'subField',START_DATE:'startDate',END_DATE:'endDate',SALARY:'salary',ADDRESS:'address',WEBPAGE:'webpage'};opensocial.Organization.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Person=function(opt_params,opt_isOwner,opt_isViewer){this.fields_=opt_params||{};this.isOwner_=opt_isOwner;this.isViewer_=opt_isViewer;};opensocial.Person.Field={ID:'id',NAME:'name',NICKNAME:'nickname',THUMBNAIL_URL:'thumbnailUrl',PROFILE_URL:'profileUrl',CURRENT_LOCATION:'currentLocation',ADDRESSES:'addresses',EMAILS:'emails',PHONE_NUMBERS:'phoneNumbers',ABOUT_ME:'aboutMe',STATUS:'status',PROFILE_SONG:'profileSong',PROFILE_VIDEO:'profileVideo',GENDER:'gender',SEXUAL_ORIENTATION:'sexualOrientation',RELATIONSHIP_STATUS:'relationshipStatus',AGE:'age',DATE_OF_BIRTH:'dateOfBirth',BODY_TYPE:'bodyType',ETHNICITY:'ethnicity',SMOKER:'smoker',DRINKER:'drinker',CHILDREN:'children',PETS:'pets',LIVING_ARRANGEMENT:'livingArrangement',TIME_ZONE:'timeZone',LANGUAGES_SPOKEN:'languagesSpoken',JOBS:'jobs',JOB_INTERESTS:'jobInterests',SCHOOLS:'schools',INTERESTS:'interests',URLS:'urls',MUSIC:'music',MOVIES:'movies',TV_SHOWS:'tvShows',BOOKS:'books',ACTIVITIES:'activities',SPORTS:'sports',HEROES:'heroes',QUOTES:'quotes',CARS:'cars',FOOD:'food',TURN_ONS:'turnOns',TURN_OFFS:'turnOffs',TAGS:'tags',ROMANCE:'romance',SCARED_OF:'scaredOf',HAPPIEST_WHEN:'happiestWhen',FASHION:'fashion',HUMOR:'humor',LOOKING_FOR:'lookingFor',RELIGION:'religion',POLITICAL_VIEWS:'politicalViews',HAS_APP:'hasApp',NETWORK_PRESENCE:'networkPresence'};opensocial.Person.prototype.getId=function(){return this.getField(opensocial.Person.Field.ID);};var ORDERED_NAME_FIELDS_=[opensocial.Name.Field.HONORIFIC_PREFIX,opensocial.Name.Field.GIVEN_NAME,opensocial.Name.Field.FAMILY_NAME,opensocial.Name.Field.HONORIFIC_SUFFIX,opensocial.Name.Field.ADDITIONAL_NAME];opensocial.Person.prototype.getDisplayName=function(){var name=this.getField(opensocial.Person.Field.NAME);if(name){var unstructured=name.getField(opensocial.Name.Field.UNSTRUCTURED);if(unstructured){return unstructured;}
var fullName='';for(var i=0;i
return fullName.replace(/^\s+|\s+$/g,'');}
return this.getField(opensocial.Person.Field.NICKNAME);};opensocial.Person.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.Person.prototype.getAppData=function(key){};opensocial.Person.prototype.isViewer=function(){return!!this.isViewer_;};opensocial.Person.prototype.isOwner=function(){return!!this.isOwner_;};opensocial.Phone=function(opt_params){this.fields_=opt_params||{};};opensocial.Phone.Field={TYPE:'type',NUMBER:'number'};opensocial.Phone.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};opensocial.ResponseItem=function(originalDataRequest,data,opt_errorCode,opt_errorMessage){this.originalDataRequest_=originalDataRequest;this.data_=data;this.errorCode_=opt_errorCode;this.errorMessage_=opt_errorMessage;};opensocial.ResponseItem.prototype.hadError=function(){return!!this.errorCode_;};opensocial.ResponseItem.Error={NOT_IMPLEMENTED:'notImplemented',UNAUTHORIZED:'unauthorized',FORBIDDEN:'forbidden',BAD_REQUEST:'badRequest',INTERNAL_ERROR:'internalError',LIMIT_EXCEEDED:'limitExceeded'};opensocial.ResponseItem.prototype.getErrorCode=function(){return this.errorCode_;};opensocial.ResponseItem.prototype.getErrorMessage=function(){return this.errorMessage_;};opensocial.ResponseItem.prototype.getOriginalDataRequest=function(){return this.originalDataRequest_;};opensocial.ResponseItem.prototype.getData=function(){return this.data_;};opensocial.Url=function(opt_params){this.fields_=opt_params||{};};opensocial.Url.Field={TYPE:'type',LINK_TEXT:'linkText',ADDRESS:'address'};opensocial.Url.prototype.getField=function(key,opt_params){return opensocial.Container.getField(this.fields_,key,opt_params);};var tamings___=tamings___||[];tamings___.push(function(imports){___.grantRead(opensocial,'CreateActivityPriority');___.grantRead(opensocial,'EscapeType');___.grantRead(opensocial.Activity,'Field');___.grantRead(opensocial.Address,'Field');___.grantRead(opensocial.Album,'Field');___.grantRead(opensocial.BodyType,'Field');___.grantRead(opensocial.DataRequest,'ActivityRequestFields');___.grantRead(opensocial.DataRequest,'DataRequestFields');___.grantRead(opensocial.DataRequest,'FilterType');___.grantRead(opensocial.DataRequest,'Group');___.grantRead(opensocial.DataRequest,'PeopleRequestFields');___.grantRead(opensocial.DataRequest,'SortOrder');___.grantRead(opensocial.Email,'Field');___.grantRead(opensocial.Enum,'Smoker');___.grantRead(opensocial.Enum,'Drinker');___.grantRead(opensocial.Enum,'Gender');___.grantRead(opensocial.Enum,'LookingFor');___.grantRead(opensocial.Enum,'Presence');___.grantRead(opensocial.IdSpec,'Field');___.grantRead(opensocial.IdSpec,'GroupId');___.grantRead(opensocial.IdSpec,'PersonId');___.grantRead(opensocial.MediaItem,'Field');___.grantRead(opensocial.Message,'Field');___.grantRead(opensocial.MessageCollection,'Field');___.grantRead(opensocial.Name,'Field');___.grantRead(opensocial.NavigationParameters,'Field');___.grantRead(opensocial.Organization,'Field');___.grantRead(opensocial.Person,'Field');___.grantRead(opensocial.Phone,'Field');___.grantRead(opensocial.ResponseItem,'Error');___.grantRead(opensocial.Url,'Field');___.grantRead(JsonRpcRequestItem,'rpc');___.grantRead(JsonRpcRequestItem,'processData');___.grantRead(JsonRpcRequestItem,'processResponse');___.grantRead(JsonRpcRequestItem,'errors');___.grantInnocentMethod(JsonPerson.prototype,'getDisplayName');___.grantInnocentMethod(JsonPerson.prototype,'getAppData');caja___.whitelistCtors([[window,'JsonRpcRequestItem',Object],[opensocial,'Activity',Object],[opensocial,'Address',Object],[opensocial,'Album',Object],[opensocial,'BodyType',Object],[opensocial,'Container',Object],[opensocial,'Collection',Object],[opensocial,'DataRequest',Object],[opensocial,'DataResponse',Object],[opensocial,'Email',Object],[opensocial,'Enum',Object],[opensocial,'Environment',Object],[opensocial,'IdSpec',Object],[opensocial,'MediaItem',Object],[opensocial,'Message',Object],[opensocial,'Name',Object],[opensocial,'NavigationParameters',Object],[opensocial,'Organization',Object],[opensocial,'Person',Object],[opensocial,'Phone',Object],[opensocial,'ResponseItem',Object],[opensocial,'Url',Object]]);caja___.whitelistMeths([[opensocial.Activity,'getField'],[opensocial.Activity,'getId'],[opensocial.Activity,'setField'],[opensocial.Address,'getField'],[opensocial.Album,'getField'],[opensocial.BodyType,'getField'],[opensocial.Container,'getEnvironment'],[opensocial.Container,'requestSendMessage'],[opensocial.Container,'requestShareApp'],[opensocial.Container,'requestCreateActivity'],[opensocial.Container,'hasPermission'],[opensocial.Container,'requestPermission'],[opensocial.Container,'requestData'],[opensocial.Container,'newCreateAlbumRequest'],[opensocial.Container,'newCreateMediaItemRequest'],[opensocial.Container,'newDeleteAlbumRequest'],[opensocial.Container,'newFetchPersonRequest'],[opensocial.Container,'newFetchPeopleRequest'],[opensocial.Container,'newFetchPersonAppDataRequest'],[opensocial.Container,'newUpdatePersonAppDataRequest'],[opensocial.Container,'newRemovePersonAppDataRequest'],[opensocial.Container,'newUpdateAlbumRequest'],[opensocial.Container,'newUpdateMediaItemRequest'],[opensocial.Container,'newFetchActivitiesRequest'],[opensocial.Container,'newFetchAlbumsRequest'],[opensocial.Container,'newFetchMessageCollectionsRequest'],[opensocial.Container,'newFetchMessagesRequest'],[opensocial.Container,'newCollection'],[opensocial.Container,'newPerson'],[opensocial.Container,'newActivity'],[opensocial.Container,'newMediaItem'],[opensocial.Container,'newMessage'],[opensocial.Container,'newIdSpec'],[opensocial.Container,'newNavigationParameters'],[opensocial.Container,'newResponseItem'],[opensocial.Container,'newDataResponse'],[opensocial.Container,'newDataRequest'],[opensocial.Container,'newEnvironment'],[opensocial.Container,'invalidateCache'],[opensocial.Collection,'asArray'],[opensocial.Collection,'each'],[opensocial.Collection,'getById'],[opensocial.Collection,'getOffset'],[opensocial.Collection,'getTotalSize'],[opensocial.Collection,'size'],[opensocial.DataRequest,'add'],[opensocial.DataRequest,'newCreateAlbumRequest'],[opensocial.DataRequest,'newCreateMediaItemRequest'],[opensocial.DataRequest,'newDeleteAlbumRequest'],[opensocial.DataRequest,'newFetchActivitiesRequest'],[opensocial.DataRequest,'newFetchAlbumsRequest'],[opensocial.DataRequest,'newFetchPeopleRequest'],[opensocial.DataRequest,'newFetchPersonAppDataRequest'],[opensocial.DataRequest,'newUpdateAlbumRequest'],[opensocial.DataRequest,'newUpdateMediaItemRequest'],[opensocial.DataRequest,'newFetchPersonRequest'],[opensocial.DataRequest,'newRemovePersonAppDataRequest'],[opensocial.DataRequest,'newUpdatePersonAppDataRequest'],[opensocial.DataRequest,'send'],[opensocial.DataResponse,'get'],[opensocial.DataResponse,'getErrorMessage'],[opensocial.DataResponse,'hadError'],[opensocial.Email,'getField'],[opensocial.Enum,'getDisplayValue'],[opensocial.Enum,'getKey'],[opensocial.Environment,'getDomain'],[opensocial.Environment,'supportsField'],[opensocial.IdSpec,'getField'],[opensocial.IdSpec,'setField'],[opensocial.MediaItem,'getField'],[opensocial.MediaItem,'setField'],[opensocial.Message,'getField'],[opensocial.Message,'setField'],[opensocial.Name,'getField'],[opensocial.NavigationParameters,'getField'],[opensocial.NavigationParameters,'setField'],[opensocial.Organization,'getField'],[opensocial.Person,'getDisplayName'],[opensocial.Person,'getField'],[opensocial.Person,'getId'],[opensocial.Person,'isOwner'],[opensocial.Person,'isViewer'],[opensocial.Phone,'getField'],[opensocial.ResponseItem,'getData'],[opensocial.ResponseItem,'getErrorCode'],[opensocial.ResponseItem,'getErrorMessage'],[opensocial.ResponseItem,'getOriginalDataRequest'],[opensocial.ResponseItem,'hadError'],[opensocial.Url,'getField']]);caja___.whitelistFuncs([[opensocial.Container,'setContainer'],[opensocial.Container,'get'],[opensocial.Container,'getField'],[opensocial,'getEnvironment'],[opensocial,'hasPermission'],[opensocial,'newActivity'],[opensocial,'newDataRequest'],[opensocial,'newIdSpec'],[opensocial,'newMediaItem'],[opensocial,'newMessage'],[opensocial,'newNavigationParameters'],[opensocial,'requestCreateActivity'],[opensocial,'requestPermission'],[opensocial,'requestSendMessage'],[opensocial,'requestShareApp']]);});
gadgets.rpctx=gadgets.rpctx||{};if(!gadgets.rpctx.wpm){gadgets.rpctx.wpm=function(){var process,ready;var postMessage;var pmSync=false;var pmEventDomain=false;var isForceSecure=false;function testPostMessage(){var hit=false;function receiveMsg(event){if(event.data=="postmessage.test"){hit=true;if(typeof event.origin==="undefined"){pmEventDomain=true;}}}
gadgets.util.attachBrowserEvent(window,"message",receiveMsg,false);window.postMessage("postmessage.test","*");if(hit){pmSync=true;}
gadgets.util.removeBrowserEvent(window,"message",receiveMsg,false);}
function onmessage(packet){var rpc=gadgets.json.parse(packet.data);if(isForceSecure){if(!rpc||!rpc.f){return;}
var origRelay=gadgets.rpc.getRelayUrl(rpc.f)||gadgets.util.getUrlParameters()["parent"];var origin=gadgets.rpc.getOrigin(origRelay);if(!pmEventDomain?packet.origin!==origin:packet.domain!==/^.+:\/\/([^:]+).*/.exec(origin)[1]){return;}}
process(rpc);}
return{getCode:function(){return'wpm';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){process=processFn;ready=readyFn;testPostMessage();if(!pmSync){postMessage=function(win,msg,origin){win.postMessage(msg,origin);};}else{postMessage=function(win,msg,origin){window.setTimeout(function(){win.postMessage(msg,origin);},0);};}
gadgets.util.attachBrowserEvent(window,'message',onmessage,false);ready('..',true);return true;},setup:function(receiverId,token,forceSecure){isForceSecure=forceSecure;if(receiverId==='..'){if(isForceSecure){gadgets.rpc._createRelayIframe(token);}else{gadgets.rpc.call(receiverId,gadgets.rpc.ACK);}}
return true;},call:function(targetId,from,rpc){var targetWin=gadgets.rpc._getTargetWin(targetId);var origRelay=gadgets.rpc.getRelayUrl(targetId)||gadgets.util.getUrlParameters()["parent"];var origin=gadgets.rpc.getOrigin(origRelay);if(origin){postMessage(targetWin,gadgets.json.stringify(rpc),origin);}else{gadgets.error("No relay set (used as window.postMessage targetOrigin)"+", cannot send cross-domain message");}
return true;},relayOnload:function(receiverId,data){ready(receiverId,true);}};}();}
gadgets.rpctx=gadgets.rpctx||{};if(!gadgets.rpctx.frameElement){gadgets.rpctx.frameElement=function(){var FE_G2C_CHANNEL='__g2c_rpc';var FE_C2G_CHANNEL='__c2g_rpc';var process;var ready;function callFrameElement(targetId,from,rpc){try{if(from!=='..'){var fe=window.frameElement;if(typeof fe[FE_G2C_CHANNEL]==='function'){if(typeof fe[FE_G2C_CHANNEL][FE_C2G_CHANNEL]!=='function'){fe[FE_G2C_CHANNEL][FE_C2G_CHANNEL]=function(args){process(gadgets.json.parse(args));};}
fe[FE_G2C_CHANNEL](gadgets.json.stringify(rpc));return true;}}else{var frame=document.getElementById(targetId);if(typeof frame[FE_G2C_CHANNEL]==='function'&&typeof frame[FE_G2C_CHANNEL][FE_C2G_CHANNEL]==='function'){frame[FE_G2C_CHANNEL][FE_C2G_CHANNEL](gadgets.json.stringify(rpc));return true;}}}catch(e){}
return false;}
return{getCode:function(){return'fe';},isParentVerifiable:function(){return false;},init:function(processFn,readyFn){process=processFn;ready=readyFn;return true;},setup:function(receiverId,token){if(receiverId!=='..'){try{var frame=document.getElementById(receiverId);frame[FE_G2C_CHANNEL]=function(args){process(gadgets.json.parse(args));};}catch(e){return false;}}
if(receiverId==='..'){ready('..',true);var ackFn=function(){window.setTimeout(function(){gadgets.rpc.call(receiverId,gadgets.rpc.ACK);},500);};gadgets.util.registerOnLoadHandler(ackFn);}
return true;},call:function(targetId,from,rpc){return callFrameElement(targetId,from,rpc);}};}();}
gadgets.rpctx=gadgets.rpctx||{};if(!gadgets.rpctx.nix){gadgets.rpctx.nix=function(){var NIX_WRAPPER='GRPC____NIXVBS_wrapper';var NIX_GET_WRAPPER='GRPC____NIXVBS_get_wrapper';var NIX_HANDLE_MESSAGE='GRPC____NIXVBS_handle_message';var NIX_CREATE_CHANNEL='GRPC____NIXVBS_create_channel';var MAX_NIX_SEARCHES=10;var NIX_SEARCH_PERIOD=500;var nix_channels={};var isForceSecure={};var ready;var numHandlerSearches=0;function conductHandlerSearch(){var handler=nix_channels['..'];if(handler){return;}
if(++numHandlerSearches>MAX_NIX_SEARCHES){gadgets.warn('Nix transport setup failed, falling back...');ready('..',false);return;}
if(!handler&&window.opener&&"GetAuthToken"in window.opener){handler=window.opener;if(handler.GetAuthToken()==gadgets.rpc.getAuthToken('..')){var token=gadgets.rpc.getAuthToken('..');handler.CreateChannel(window[NIX_GET_WRAPPER]('..',token),token);nix_channels['..']=handler;window.opener=null;ready('..',true);return;}}
window.setTimeout(function(){conductHandlerSearch();},NIX_SEARCH_PERIOD);}
function getLocationNoHash(){var loc=window.location.href;var idx=loc.indexOf('#');if(idx==-1){return loc;}
return loc.substring(0,idx);}
function setupSecureRelayToParent(rpctoken){var childToken=(0x7FFFFFFF*Math.random())|0;var data=[getLocationNoHash(),childToken];gadgets.rpc._createRelayIframe(rpctoken,data);var hash=window.location.href.split('#')[1]||'';function relayTimer(){var newHash=window.location.href.split('#')[1]||'';if(newHash!==hash){clearInterval(relayTimerId);var params=gadgets.util.getUrlParameters(window.location.href);if(params.childtoken==childToken){conductHandlerSearch();return;}
ready('..',false);}}
var relayTimerId=setInterval(relayTimer,100);}
return{getCode:function(){return'nix';},isParentVerifiable:function(opt_receiverId){if(opt_receiverId){return isForceSecure[opt_receiverId];}
return false;},init:function(processFn,readyFn){ready=readyFn;if(typeof window[NIX_GET_WRAPPER]!=='unknown'){window[NIX_HANDLE_MESSAGE]=function(data){window.setTimeout(function(){processFn(gadgets.json.parse(data));},0);};window[NIX_CREATE_CHANNEL]=function(name,channel,token){if(gadgets.rpc.getAuthToken(name)===token){nix_channels[name]=channel;ready(name,true);}};var vbscript='Class '+NIX_WRAPPER+'\n '
+'Private m_Intended\n'
+'Private m_Auth\n'
+'Public Sub SetIntendedName(name)\n '
+'If isEmpty(m_Intended) Then\n'
+'m_Intended = name\n'
+'End If\n'
+'End Sub\n'
+'Public Sub SetAuth(auth)\n '
+'If isEmpty(m_Auth) Then\n'
+'m_Auth = auth\n'
+'End If\n'
+'End Sub\n'
+'Public Sub SendMessage(data)\n '
+NIX_HANDLE_MESSAGE+'(data)\n'
+'End Sub\n'
+'Public Function GetAuthToken()\n '
+'GetAuthToken = m_Auth\n'
+'End Function\n'
+'Public Sub CreateChannel(channel, auth)\n '
+'Call '+NIX_CREATE_CHANNEL+'(m_Intended, channel, auth)\n'
+'End Sub\n'
+'End Class\n'
+'Function '+NIX_GET_WRAPPER+'(name, auth)\n'
+'Dim wrap\n'
+'Set wrap = New '+NIX_WRAPPER+'\n'
+'wrap.SetIntendedName name\n'
+'wrap.SetAuth auth\n'
+'Set '+NIX_GET_WRAPPER+' = wrap\n'
+'End Function';try{window.execScript(vbscript,'vbscript');}catch(e){return false;}}
return true;},setup:function(receiverId,token,forcesecure){isForceSecure[receiverId]=!!forcesecure;if(receiverId==='..'){if(forcesecure){setupSecureRelayToParent(token);}else{conductHandlerSearch();}
return true;}
try{var frame=document.getElementById(receiverId);var wrapper=window[NIX_GET_WRAPPER](receiverId,token);frame.contentWindow.opener=wrapper;}catch(e){return false;}
return true;},call:function(targetId,from,rpc){try{if(nix_channels[targetId]){nix_channels[targetId].SendMessage(gadgets.json.stringify(rpc));}}catch(e){return false;}
return true;},relayOnload:function(receiverId,data){var src=data[0]+'#childtoken='+data[1];var childIframe=document.getElementById(receiverId);childIframe.src=src;}};}();}
gadgets.rpctx=gadgets.rpctx||{};if(!gadgets.rpctx.rmr){gadgets.rpctx.rmr=function(){var RMR_SEARCH_TIMEOUT=500;var RMR_MAX_POLLS=10;var rmr_channels={};var process;var ready;function appendRmrFrame(channelFrame,relayUri,data,opt_frameId){var appendFn=function(){document.body.appendChild(channelFrame);channelFrame.src='about:blank';if(opt_frameId){channelFrame.onload=function(){processRmrData(opt_frameId);};}
channelFrame.src=relayUri+'#'+data;};if(document.body){appendFn();}else{gadgets.util.registerOnLoadHandler(function(){appendFn();});}}
function setupRmr(frameId){if(typeof rmr_channels[frameId]==="object"){return;}
var channelFrame=document.createElement('iframe');var frameStyle=channelFrame.style;frameStyle.position='absolute';frameStyle.top='0px';frameStyle.border='0';frameStyle.opacity='0';frameStyle.width='10px';frameStyle.height='1px';channelFrame.id='rmrtransport-'+frameId;channelFrame.name=channelFrame.id;var relayUri=gadgets.rpc.getRelayUrl(frameId);if(!relayUri){relayUri=gadgets.rpc.getOrigin(gadgets.util.getUrlParameters()["parent"])+'/robots.txt';}
rmr_channels[frameId]={frame:channelFrame,receiveWindow:null,relayUri:relayUri,searchCounter:0,width:10,waiting:true,queue:[],sendId:0,recvId:0};if(frameId!=='..'){appendRmrFrame(channelFrame,relayUri,getRmrData(frameId));}
conductRmrSearch(frameId);}
function conductRmrSearch(frameId){var channelWindow=null;rmr_channels[frameId].searchCounter++;try{var targetWin=gadgets.rpc._getTargetWin(frameId);if(frameId==='..'){channelWindow=targetWin.frames['rmrtransport-'+gadgets.rpc.RPC_ID];}else{channelWindow=targetWin.frames['rmrtransport-..'];}}catch(e){}
var status=false;if(channelWindow){status=registerRmrChannel(frameId,channelWindow);}
if(!status){if(rmr_channels[frameId].searchCounter>RMR_MAX_POLLS){return;}
window.setTimeout(function(){conductRmrSearch(frameId);},RMR_SEARCH_TIMEOUT);}}
function callRmr(targetId,serviceName,from,rpc){var handler=null;if(from!=='..'){handler=rmr_channels['..'];}else{handler=rmr_channels[targetId];}
if(handler){if(serviceName!==gadgets.rpc.ACK){handler.queue.push(rpc);}
if(handler.waiting||(handler.queue.length===0&&!(serviceName===gadgets.rpc.ACK&&rpc&&rpc.ackAlone===true))){return true;}
if(handler.queue.length>0){handler.waiting=true;}
var url=handler.relayUri+"#"+getRmrData(targetId);try{handler.frame.contentWindow.location=url;var newWidth=handler.width==10?20:10;handler.frame.style.width=newWidth+'px';handler.width=newWidth;}catch(e){return false;}}
return true;}
function getRmrData(toFrameId){var channel=rmr_channels[toFrameId];var rmrData={id:channel.sendId};if(channel){rmrData.d=Array.prototype.slice.call(channel.queue,0);rmrData.d.push({s:gadgets.rpc.ACK,id:channel.recvId});}
return gadgets.json.stringify(rmrData);}
function processRmrData(fromFrameId){var channel=rmr_channels[fromFrameId];var data=channel.receiveWindow.location.hash.substring(1);var rpcObj=gadgets.json.parse(decodeURIComponent(data))||{};var rpcArray=rpcObj.d||[];var nonAckReceived=false;var noLongerWaiting=false;var numBypassed=0;var numToBypass=(channel.recvId-rpcObj.id);for(var i=0;i
channel.waiting=false;var newlyAcked=Math.max(0,rpc.id-channel.sendId);channel.queue.splice(0,newlyAcked);channel.sendId=Math.max(channel.sendId,rpc.id||0);continue;}
nonAckReceived=true;if(++numBypassed<=numToBypass){continue;}
++channel.recvId;process(rpc);}
if(nonAckReceived||(noLongerWaiting&&channel.queue.length>0)){var from=(fromFrameId==='..')?gadgets.rpc.RPC_ID:'..';callRmr(fromFrameId,gadgets.rpc.ACK,from,{ackAlone:nonAckReceived});}}
function registerRmrChannel(frameId,channelWindow){var channel=rmr_channels[frameId];try{var canAccess=false;canAccess='document'in channelWindow;if(!canAccess){return false;}
canAccess=typeof channelWindow['document']=='object';if(!canAccess){return false;}
var loc=channelWindow.location.href;if(loc==='about:blank'){return false;}}catch(ex){return false;}
channel.receiveWindow=channelWindow;function onresize(){processRmrData(frameId);};if(typeof channelWindow.attachEvent==="undefined"){channelWindow.onresize=onresize;}else{channelWindow.attachEvent("onresize",onresize);}
if(frameId==='..'){appendRmrFrame(channel.frame,channel.relayUri,getRmrData(frameId),frameId);}else{processRmrData(frameId);}
return true;}
return{getCode:function(){return'rmr';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){process=processFn;ready=readyFn;return true;},setup:function(receiverId,token){try{setupRmr(receiverId);}catch(e){gadgets.warn('Caught exception setting up RMR: '+e);return false;}
return true;},call:function(targetId,from,rpc){return callRmr(targetId,rpc.s,from,rpc);}};}();}
gadgets.rpctx=gadgets.rpctx||{};if(!gadgets.rpctx.ifpc){gadgets.rpctx.ifpc=function(){var iframePool=[];var callId=0;var ready;function encodeLegacyData(args){var argsEscaped=[];for(var i=0,j=args.length;i
return argsEscaped.join('&');}
function emitInvisibleIframe(src){var iframe;for(var i=iframePool.length-1;i>=0;--i){var ifr=iframePool[i];try{if(ifr&&(ifr.recyclable||ifr.readyState==='complete')){ifr.parentNode.removeChild(ifr);if(window.ActiveXObject){iframePool[i]=ifr=null;iframePool.splice(i,1);}else{ifr.recyclable=false;iframe=ifr;break;}}}catch(e){}}
if(!iframe){iframe=document.createElement('iframe');iframe.style.border=iframe.style.width=iframe.style.height='0px';iframe.style.visibility='hidden';iframe.style.position='absolute';iframe.onload=function(){this.recyclable=true;};iframePool.push(iframe);}
iframe.src=src;window.setTimeout(function(){document.body.appendChild(iframe);},0);}
return{getCode:function(){return'ifpc';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){ready=readyFn;ready('..',true);return true;},setup:function(receiverId,token){ready(receiverId,true);return true;},call:function(targetId,from,rpc){var relay=gadgets.rpc.getRelayUrl(targetId);++callId;if(!relay){gadgets.warn('No relay file assigned for IFPC');return false;}
var src=null;if(rpc.l){var callArgs=rpc.a;src=[relay,'#',encodeLegacyData([from,callId,1,0,encodeLegacyData([from,rpc.s,'','',from].concat(callArgs))])].join('');}else{src=[relay,'#',targetId,'&',from,'@',callId,'&1&0&',encodeURIComponent(gadgets.json.stringify(rpc))].join('');}
emitInvisibleIframe(src);return true;}};}();}
if(!gadgets.rpc){gadgets.rpc=function(){var CALLBACK_NAME='__cb';var DEFAULT_NAME='';var ACK='__ack';var SETUP_FRAME_TIMEOUT=500;var SETUP_FRAME_MAX_TRIES=10;var services={};var relayUrl={};var useLegacyProtocol={};var authToken={};var callId=0;var callbacks={};var setup={};var sameDomain={};var params={};var receiverTx={};var earlyRpcQueue={};var isChild=(window.top!==window.self);var rpcId=window.name;var securityCallback=function(){};var LOAD_TIMEOUT=0;var FRAME_PHISH=1;var FORGED_MSG=2;var fallbackTransport=(function(){function logFn(name){return function(){gadgets.log("gadgets.rpc."+name+"("+
gadgets.json.stringify(Array.prototype.slice.call(arguments))+"): call ignored. [caller: "+document.location+", isChild: "+isChild+"]");};}
return{getCode:function(){return"noop";},isParentVerifiable:function(){return true;},init:logFn("init"),setup:logFn("setup"),call:logFn("call")};})();if(gadgets.util){params=gadgets.util.getUrlParameters();}
function getTransport(){return typeof window.postMessage==='function'?gadgets.rpctx.wpm:typeof window.postMessage==='object'?gadgets.rpctx.wpm:window.ActiveXObject?gadgets.rpctx.nix:navigator.userAgent.indexOf('WebKit')>0?gadgets.rpctx.rmr:navigator.product==='Gecko'?gadgets.rpctx.frameElement:gadgets.rpctx.ifpc;}
function transportReady(receiverId,readySuccess){var tx=transport;if(!readySuccess){tx=fallbackTransport;}
receiverTx[receiverId]=tx;var earlyQueue=earlyRpcQueue[receiverId]||[];for(var i=0;i
earlyRpcQueue[receiverId]=[];}
var mainPageUnloading=false,hookedUnload=false;function hookMainPageUnload(){if(hookedUnload){return;}
function onunload(){mainPageUnloading=true;}
gadgets.util.attachBrowserEvent(window,'unload',onunload,false);hookedUnload=true;}
function relayOnload(targetId,sourceId,token,data,relayWindow){if(!authToken[sourceId]||authToken[sourceId]!==token){gadgets.error("Invalid auth token. "+authToken[sourceId]+" vs "+token);securityCallback(sourceId,FORGED_MSG);}
relayWindow.onunload=function(){if(setup[sourceId]&&!mainPageUnloading){securityCallback(sourceId,FRAME_PHISH);gadgets.rpc.removeReceiver(sourceId);}};hookMainPageUnload();data=gadgets.json.parse(decodeURIComponent(data));transport.relayOnload(sourceId,data);}
function process(rpc){if(rpc&&typeof rpc.s==='string'&&typeof rpc.f==='string'&&rpc.a instanceof Array){if(authToken[rpc.f]){if(authToken[rpc.f]!==rpc.t){gadgets.error("Invalid auth token. "+authToken[rpc.f]+" vs "+rpc.t);securityCallback(rpc.f,FORGED_MSG);}}
if(rpc.s===ACK){window.setTimeout(function(){transportReady(rpc.f,true);},0);return;}
if(rpc.c){rpc.callback=function(result){gadgets.rpc.call(rpc.f,CALLBACK_NAME,null,rpc.c,result);};}
var result=(services[rpc.s]||services[DEFAULT_NAME]).apply(rpc,rpc.a);if(rpc.c&&typeof result!=='undefined'){gadgets.rpc.call(rpc.f,CALLBACK_NAME,null,rpc.c,result);}}}
function getOrigin(url){if(!url){return"";}
url=url.toLowerCase();if(url.indexOf("//")==0){url=window.location.protocol+url;}
if(url.indexOf("://")==-1){url=window.location.protocol+"//"+url;}
var host=url.substring(url.indexOf("://")+3);var slashPos=host.indexOf("/");if(slashPos!=-1){host=host.substring(0,slashPos);}
var protocol=url.substring(0,url.indexOf("://"));var portStr="";var portPos=host.indexOf(":");if(portPos!=-1){var port=host.substring(portPos+1);host=host.substring(0,portPos);if((protocol==="http"&&port!=="80")||(protocol==="https"&&port!=="443")){portStr=":"+port;}}
return protocol+"://"+host+portStr;}
function getTargetWin(id){if(typeof id==="undefined"||id===".."){return window.parent;}
id=String(id);var target=window.frames[id];if(target){return target;}
target=document.getElementById(id);if(target&&target.contentWindow){return target.contentWindow;}
return null;}
var transport=getTransport();services[DEFAULT_NAME]=function(){gadgets.warn('Unknown RPC service: '+this.s);};services[CALLBACK_NAME]=function(callbackId,result){var callback=callbacks[callbackId];if(callback){delete callbacks[callbackId];callback(result);}};function setupFrame(frameId,token,forcesecure){if(setup[frameId]===true){return;}
if(typeof setup[frameId]==='undefined'){setup[frameId]=0;}
var tgtFrame=document.getElementById(frameId);if(frameId==='..'||tgtFrame!=null){if(transport.setup(frameId,token,forcesecure)===true){setup[frameId]=true;return;}}
if(setup[frameId]!==true&&setup[frameId]++
function callSameDomain(target,rpc){if(typeof sameDomain[target]==='undefined'){sameDomain[target]=false;var targetRelay=gadgets.rpc.getRelayUrl(target);if(getOrigin(targetRelay)!==getOrigin(window.location.href)){return false;}
var targetEl=getTargetWin(target);try{sameDomain[target]=targetEl.gadgets.rpc.receiveSameDomain;}catch(e){gadgets.error("Same domain call failed: parent= incorrectly set.");}}
if(typeof sameDomain[target]==='function'){sameDomain[target](rpc);return true;}
return false;}
function setRelayUrl(targetId,url,opt_useLegacy){if(!/http(s)?:\/\/.+/.test(url)){if(url.indexOf("//")==0){url=window.location.protocol+url;}else if(url.charAt(0)=='/'){url=window.location.protocol+"//"+window.location.host+url;}else if(url.indexOf("://")==-1){url=window.location.protocol+"//"+url;}}
relayUrl[targetId]=url;useLegacyProtocol[targetId]=!!opt_useLegacy;}
function getAuthToken(targetId){return authToken[targetId];}
function setAuthToken(targetId,token,forcesecure){token=token||"";authToken[targetId]=String(token);setupFrame(targetId,token,forcesecure);}
function setupContainerGadgetContext(rpctoken,opt_forcesecure){function init(config){var configRpc=config?config.rpc:{};var parentRelayUrl=configRpc.parentRelayUrl;if(parentRelayUrl.substring(0,7)!=='http://'&&parentRelayUrl.substring(0,8)!=='https://'&&parentRelayUrl.substring(0,2)!=='//'){if(typeof params.parent==="string"&¶ms.parent!==""){if(parentRelayUrl.substring(0,1)!=='/'){var lastSlash=params.parent.lastIndexOf('/');parentRelayUrl=params.parent.substring(0,lastSlash+1)+parentRelayUrl;}else{parentRelayUrl=getOrigin(params.parent)+parentRelayUrl;}}}
var useLegacy=!!configRpc.useLegacyProtocol;setRelayUrl('..',parentRelayUrl,useLegacy);if(useLegacy){transport=gadgets.rpctx.ifpc;transport.init(process,transportReady);}
var forceSecure=opt_forcesecure||params.forcesecure||false;setAuthToken('..',rpctoken,forceSecure);}
var requiredConfig={parentRelayUrl:gadgets.config.NonEmptyStringValidator};gadgets.config.register("rpc",requiredConfig,init);}
function setupContainerGenericIframe(rpctoken,opt_parent,opt_forcesecure){var forcesecure=opt_forcesecure||params.forcesecure||false;var parent=opt_parent||params.parent;if(parent){setRelayUrl('..',parent);setAuthToken('..',rpctoken,forcesecure);}}
function setupChildIframe(gadgetId,opt_frameurl,opt_authtoken,opt_forcesecure){if(!gadgets.util){return;}
var childIframe=document.getElementById(gadgetId);if(!childIframe){throw new Error("Cannot set up gadgets.rpc receiver with ID: "+gadgetId+", element not found.");}
var relayUrl=opt_frameurl||childIframe.src;setRelayUrl(gadgetId,relayUrl);var childParams=gadgets.util.getUrlParameters(childIframe.src);var rpctoken=opt_authtoken||childParams.rpctoken;var forcesecure=opt_forcesecure||childParams.forcesecure;setAuthToken(gadgetId,rpctoken,forcesecure);}
function setupReceiver(targetId,opt_receiverurl,opt_authtoken,opt_forcesecure){if(targetId==='..'){var rpctoken=opt_authtoken||params.rpctoken||params.ifpctok||"";if(window['__isgadget']===true){setupContainerGadgetContext(rpctoken,opt_forcesecure);}else{setupContainerGenericIframe(rpctoken,opt_receiverurl,opt_forcesecure);}}else{setupChildIframe(targetId,opt_receiverurl,opt_authtoken,opt_forcesecure);}}
return{config:function(config){if(typeof config.securityCallback==='function'){securityCallback=config.securityCallback;}},register:function(serviceName,handler){if(serviceName===CALLBACK_NAME||serviceName===ACK){throw new Error("Cannot overwrite callback/ack service");}
if(serviceName===DEFAULT_NAME){throw new Error("Cannot overwrite default service:"
+" use registerDefault");}
services[serviceName]=handler;},unregister:function(serviceName){if(serviceName===CALLBACK_NAME||serviceName===ACK){throw new Error("Cannot delete callback/ack service");}
if(serviceName===DEFAULT_NAME){throw new Error("Cannot delete default service:"
+" use unregisterDefault");}
delete services[serviceName];},registerDefault:function(handler){services[DEFAULT_NAME]=handler;},unregisterDefault:function(){delete services[DEFAULT_NAME];},forceParentVerifiable:function(){if(!transport.isParentVerifiable()){transport=gadgets.rpctx.ifpc;}},call:function(targetId,serviceName,callback,var_args){targetId=targetId||'..';var from='..';if(targetId==='..'){from=rpcId;}
++callId;if(callback){callbacks[callId]=callback;}
var rpc={s:serviceName,f:from,c:callback?callId:0,a:Array.prototype.slice.call(arguments,3),t:authToken[targetId],l:useLegacyProtocol[targetId]};if(targetId!=='..'&&!document.getElementById(targetId)){gadgets.log("WARNING: attempted send to nonexistent frame: "+targetId);return;}
if(callSameDomain(targetId,rpc)){return;}
var channel=receiverTx[targetId];if(!channel){if(!earlyRpcQueue[targetId]){earlyRpcQueue[targetId]=[rpc];}else{earlyRpcQueue[targetId].push(rpc);}
return;}
if(useLegacyProtocol[targetId]){channel=gadgets.rpctx.ifpc;}
if(channel.call(targetId,from,rpc)===false){receiverTx[targetId]=fallbackTransport;transport.call(targetId,from,rpc);}},getRelayUrl:function(targetId){var url=relayUrl[targetId];if(url&&url.substring(0,1)==='/'){if(url.substring(1,2)==='/'){url=document.location.protocol+url;}else{url=document.location.protocol+'//'+document.location.host+url;}}
return url;},setRelayUrl:setRelayUrl,setAuthToken:setAuthToken,setupReceiver:setupReceiver,getAuthToken:getAuthToken,removeReceiver:function(receiverId){delete relayUrl[receiverId];delete useLegacyProtocol[receiverId];delete authToken[receiverId];delete setup[receiverId];delete sameDomain[receiverId];delete receiverTx[receiverId];},getRelayChannel:function(){return transport.getCode();},receive:function(fragment,otherWindow){if(fragment.length>4){process(gadgets.json.parse(decodeURIComponent(fragment[fragment.length-1])));}else{relayOnload.apply(null,fragment.concat(otherWindow));}},receiveSameDomain:function(rpc){rpc.a=Array.prototype.slice.call(rpc.a);window.setTimeout(function(){process(rpc);},0);},getOrigin:getOrigin,getReceiverOrigin:function(receiverId){var channel=receiverTx[receiverId];if(!channel){return null;}
if(!channel.isParentVerifiable(receiverId)){return null;}
var origRelay=gadgets.rpc.getRelayUrl(receiverId)||gadgets.util.getUrlParameters().parent;return gadgets.rpc.getOrigin(origRelay);},init:function(){if(transport.init(process,transportReady)===false){transport=fallbackTransport;}
if(isChild){setupReceiver('..');}},_getTargetWin:getTargetWin,_createRelayIframe:function(token,data){var relay=gadgets.rpc.getRelayUrl('..');if(!relay){return null;}
var src=relay+'#..&'+rpcId+'&'+token+'&'+
encodeURIComponent(gadgets.json.stringify(data));var iframe=document.createElement('iframe');iframe.style.border=iframe.style.width=iframe.style.height='0px';iframe.style.visibility='hidden';iframe.style.position='absolute';function appendFn(){document.body.appendChild(iframe);iframe.src='javascript:""';iframe.src=src;}
if(document.body){appendFn();}else{gadgets.util.registerOnLoadHandler(function(){appendFn();});}
return iframe;},ACK:ACK,RPC_ID:rpcId,SEC_ERROR_LOAD_TIMEOUT:LOAD_TIMEOUT,SEC_ERROR_FRAME_PHISH:FRAME_PHISH,SEC_ERROR_FORGED_MSG:FORGED_MSG};}();gadgets.rpc.init();}
gadgets.rpc.register('update_security_token',function(token){shindig.auth.updateSecurityToken(token);});
gadgets.window=gadgets.window||{};(function(){var oldHeight;function parseIntFromElemPxAttribute(elem,attr){var style=window.getComputedStyle(elem,"");var value=style.getPropertyValue(attr);value.match(/^([0-9]+)/);return parseInt(RegExp.$1,10);}
function getHeightForWebkit(){var result=0;var queue=[document.body];while(queue.length>0){var elem=queue.shift();var children=elem.childNodes;for(var i=0;i
parseIntFromElemPxAttribute(child,"margin-bottom");result=Math.max(result,bottom);}
queue.push(child);}}
return result
+parseIntFromElemPxAttribute(document.body,"border-bottom")
+parseIntFromElemPxAttribute(document.body,"margin-bottom")
+parseIntFromElemPxAttribute(document.body,"padding-bottom");}
gadgets.window.adjustHeight=function(opt_height){var newHeight=parseInt(opt_height,10);var heightAutoCalculated=false;if(isNaN(newHeight)){heightAutoCalculated=true;var vh=gadgets.window.getViewportDimensions().height;var body=document.body;var docEl=document.documentElement;if(document.compatMode==='CSS1Compat'&&docEl.scrollHeight){newHeight=docEl.scrollHeight!==vh?docEl.scrollHeight:docEl.offsetHeight;}else if(navigator.userAgent.indexOf('AppleWebKit')>=0){newHeight=getHeightForWebkit();}else if(body&&docEl){var sh=docEl.scrollHeight;var oh=docEl.offsetHeight;if(docEl.clientHeight!==oh){sh=body.scrollHeight;oh=body.offsetHeight;}
if(sh>vh){newHeight=sh>oh?sh:oh;}else{newHeight=sh
if(!isNaN(newHeight)&&!(heightAutoCalculated&&newHeight===0)){oldHeight=newHeight;document.getElementById("iframe_proxy").src="http://apps.337.com/proxy.html?rand="+Math.random()+"#"+newHeight;}};}());var _IG_AdjustIFrameHeight=gadgets.window.adjustHeight;var tamings___=tamings___||[];tamings___.push(function(imports){caja___.whitelistFuncs([[gadgets.window,'adjustHeight'],[gadgets.window,'getViewportDimensions']]);});
window['FieldTranslations']=(function(){function translateEnumJson(enumJson){if(enumJson){enumJson.key=enumJson.value;}};function translateUrlJson(urlJson){if(urlJson){urlJson.address=urlJson.value;}};return{'translateEnumJson':translateEnumJson,'translateUrlJson':translateUrlJson,'translateServerPersonToJsPerson':function(serverJson,opt_params){if(serverJson.emails){for(var i=0;i
if(serverJson.phoneNumbers){for(var p=0;p
if(serverJson.birthday){serverJson.dateOfBirth=serverJson.birthday;}
if(serverJson.utcOffset){serverJson.timeZone=serverJson.utcOffset;}
if(serverJson.addresses){for(var j=0;j
if(serverJson.gender){var key=serverJson.gender=='male'?'MALE':(serverJson.gender=='female')?'FEMALE':null;serverJson.gender={key:key,displayValue:serverJson.gender};}
translateUrlJson(serverJson.profileSong);translateUrlJson(serverJson.profileVideo);if(serverJson.urls){for(var u=0;u
translateEnumJson(serverJson.drinker);translateEnumJson(serverJson.lookingFor);translateEnumJson(serverJson.networkPresence);translateEnumJson(serverJson.smoker);if(serverJson.organizations){serverJson.jobs=[];serverJson.schools=[];for(var o=0;o
if(serverJson.name){serverJson.name.unstructured=serverJson.name.formatted;}
if(serverJson.appData){serverJson.appData=opensocial.Container.escape(serverJson.appData,opt_params,true);}},'translateJsPersonFieldsToServerFields':function(fields){for(var i=0;i
fields.push('id');fields.push('displayName');},'translateIsoStringToDate':function(isoString){var regexp='([0-9]{4})(-([0-9]{2})(-([0-9]{2})'+'(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?'+'(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?';var d=isoString.match(new RegExp(regexp));var offset=0;var date=new Date(d[1],0,1);if(d[3]){date.setMonth(d[3]-1);}
if(d[5]){date.setDate(d[5]);}
if(d[7]){date.setHours(d[7]);}
if(d[8]){date.setMinutes(d[8]);}
if(d[10]){date.setSeconds(d[10]);}
if(d[12]){date.setMilliseconds(Number("0."+d[12])*1000);}
if(d[14]){offset=(Number(d[16])*60)+Number(d[17]);offset*=((d[15]=='-')?1:-1);}
offset-=date.getTimezoneOffset();var time=(Number(date)+(offset*60*1000));return new Date(Number(time));},'addAppDataAsProfileFields':function(opt_params){if(opt_params){if(opt_params['appData']){var appDataKeys=opt_params['appData'];if(typeof appDataKeys==='string'){appDataKeys=[appDataKeys];}
var profileDetail=opt_params['profileDetail']||[];for(var i=0;i
opt_params['appData']=appDataKeys;}}},'translateStandardArguments':function(opt_params,rpc_params){if(opt_params['first']){rpc_params.startIndex=opt_params['first'];}
if(opt_params['max']){rpc_params.count=opt_params['max'];}
if(opt_params['sortOrder']){rpc_params.sortBy=opt_params['sortOrder'];}
if(opt_params['filter']){rpc_params.filterBy=opt_params['filter'];}
if(opt_params['filterOp']){rpc_params.filterOp=opt_params['filterOp'];}
if(opt_params['filterValue']){rpc_params.filterValue=opt_params['filterValue'];}
if(opt_params['fields']){rpc_params.fields=opt_params['fields'];}},'translateNetworkDistance':function(idSpec,rpc_params){if(idSpec.getField('networkDistance')){rpc_params.networkDistance=idSpec.getField('networkDistance');}}};})();var JsonActivity=function(opt_params,opt_skipConversions){opt_params=opt_params||{};if(!opt_skipConversions){JsonActivity.constructArrayObject(opt_params,"mediaItems",JsonMediaItem);}
opensocial.Activity.call(this,opt_params);};JsonActivity.inherits(opensocial.Activity);JsonActivity.prototype.toJsonObject=function(){var jsonObject=JsonActivity.copyFields(this.fields_);var oldMediaItems=jsonObject['mediaItems']||[];var newMediaItems=[];for(var i=0;i
jsonObject['mediaItems']=newMediaItems;return jsonObject;};var JsonMediaItem=function(opt_params){opensocial.MediaItem.call(this,opt_params['mimeType'],opt_params['url'],opt_params);};JsonMediaItem.inherits(opensocial.MediaItem);JsonMediaItem.prototype.toJsonObject=function(){return JsonActivity.copyFields(this.fields_);};JsonActivity.constructArrayObject=function(map,fieldName,className){var fieldValue=map[fieldName];if(fieldValue){for(var i=0;i
return newObject;};var JsonPerson=function(opt_params){opt_params=opt_params||{};JsonPerson.constructObject(opt_params,"bodyType",opensocial.BodyType);JsonPerson.constructObject(opt_params,"currentLocation",opensocial.Address);JsonPerson.constructObject(opt_params,"name",opensocial.Name);JsonPerson.constructObject(opt_params,"profileSong",opensocial.Url);JsonPerson.constructObject(opt_params,"profileVideo",opensocial.Url);JsonPerson.constructDate(opt_params,"dateOfBirth");JsonPerson.constructArrayObject(opt_params,"addresses",opensocial.Address);JsonPerson.constructArrayObject(opt_params,"emails",opensocial.Email);JsonPerson.constructArrayObject(opt_params,"jobs",opensocial.Organization);JsonPerson.constructArrayObject(opt_params,"phoneNumbers",opensocial.Phone);JsonPerson.constructArrayObject(opt_params,"schools",opensocial.Organization);JsonPerson.constructArrayObject(opt_params,"urls",opensocial.Url);JsonPerson.constructEnum(opt_params,"gender");JsonPerson.constructEnum(opt_params,"smoker");JsonPerson.constructEnum(opt_params,"drinker");JsonPerson.constructEnum(opt_params,"networkPresence");JsonPerson.constructEnumArray(opt_params,"lookingFor");opensocial.Person.call(this,opt_params,opt_params['isOwner'],opt_params['isViewer']);};JsonPerson.inherits(opensocial.Person);JsonPerson.constructEnum=function(map,fieldName){var fieldValue=map[fieldName];if(fieldValue){map[fieldName]=new opensocial.Enum(fieldValue.key,fieldValue.displayValue);}};JsonPerson.constructEnumArray=function(map,fieldName){var fieldValue=map[fieldName];if(fieldValue){for(var i=0;i
return newObject;};var JsonMessage=function(body,opt_params){opt_params=opt_params||{};opensocial.Message.call(this,body,opt_params);};JsonMessage.inherits(opensocial.Message);JsonMessage.prototype.toJsonObject=function(){return JsonMessage.copyFields(this.fields_);};JsonMessage.copyFields=function(oldObject){var newObject={};for(var field in oldObject){newObject[field]=oldObject[field];}
return newObject;};
var JsonRpcContainer=function(configParams){opensocial.Container.call(this);var path=configParams.path;this.path_=path.replace("%host%",document.location.host);var invalidatePath=configParams.invalidatePath;this.invalidatePath_=invalidatePath.replace("%host%",document.location.host);var supportedFieldsArray=configParams.supportedFields;var supportedFieldsMap={};for(var objectType in supportedFieldsArray){if(supportedFieldsArray.hasOwnProperty(objectType)){supportedFieldsMap[objectType]={};for(var i=0;i
this.environment_=new opensocial.Environment(configParams.domain,supportedFieldsMap);this.securityToken_=shindig.auth.getSecurityToken();gadgets.rpc.register('shindig.requestShareApp_callback',JsonRpcContainer.requestShareAppCallback_);};var JsonRpcRequestItem=function(rpc,opt_processData){this.rpc=rpc;this.processData=opt_processData||function(rawJson){return rawJson;};this.processResponse=function(originalDataRequest,rawJson,error,errorMessage){var errorCode=error?JsonRpcContainer.translateHttpError(error['code']):null;return new opensocial.ResponseItem(originalDataRequest,error?null:this.processData(rawJson),errorCode,errorMessage);};};(function(){var callbackIdStore={};JsonRpcContainer.inherits(opensocial.Container);JsonRpcContainer.prototype.getEnvironment=function(){return this.environment_;};JsonRpcContainer.prototype.requestShareApp=function(recipientIds,reason,opt_callback,opt_params){var callbackId="cId_"+Math.random();callbackIdStore[callbackId]=opt_callback;var body=gadgets.util.unescapeString(reason.getField(opensocial.Message.Field.BODY));if(!body||body.length===0){var bodyMsgKey=gadgets.util.unescapeString(reason.getField(opensocial.Message.Field.BODY_ID));body=gadgets.Prefs.getMsg(bodyMsgKey);}
gadgets.rpc.call('..','shindig.requestShareApp',null,callbackId,recipientIds,body);};JsonRpcContainer.requestShareAppCallback_=function(callbackId,success,opt_errorCode,recipientIds){callback=callbackIdStore[callbackId];if(callback){callbackIdStore[callbackId]=null;var data=null;if(recipientIds){data={'recipientIds':recipientIds};}
var responseItem=new opensocial.ResponseItem(null,data,opt_errorCode);callback(responseItem);}};JsonRpcContainer.prototype.requestCreateActivity=function(activity,priority,opt_callback){opt_callback=opt_callback||function(){};var req=opensocial.newDataRequest();var viewer=opensocial.newIdSpec({'userId':'VIEWER'});req.add(this.newCreateActivityRequest(viewer,activity),'key');req.send(function(response){opt_callback(response.get('key'));});};JsonRpcContainer.prototype.requestData=function(dataRequest,callback){callback=callback||function(){};var requestObjects=dataRequest.getRequestObjects();var totalRequests=requestObjects.length;if(totalRequests===0){window.setTimeout(function(){callback(new opensocial.DataResponse({},true));},0);return;}
var jsonBatchData=new Array(totalRequests);for(var j=0;j
var sendResponse=function(result){if(result.errors[0]){JsonRpcContainer.generateErrorResponse(result,requestObjects,callback);return;}
result=result.result||result.data;var globalError=false;var responseMap={};for(var i=0;i
for(var k=0;k
var rawData=response.result||response.data;var error=response.error;var errorMessage="";if(error){errorMessage=error.message;}
var processedData=request.request.processResponse(request.request,rawData,error,errorMessage);globalError=globalError||processedData.hadError();if(request.key){responseMap[request.key]=processedData;}}
var dataResponse=new opensocial.DataResponse(responseMap,globalError);callback(dataResponse);};var makeRequestParams={"CONTENT_TYPE":"JSON","METHOD":"POST","AUTHORIZATION":"SIGNED","POST_DATA":gadgets.json.stringify(jsonBatchData)};var url=[this.path_];var token=shindig.auth.getSecurityToken();if(token){url.push("?st=",encodeURIComponent(token));}
this.sendRequest(url.join(''),sendResponse,makeRequestParams,"application/json");};JsonRpcContainer.prototype.sendRequest=function(relativeUrl,callback,params,contentType){gadgets.io.makeNonProxiedRequest(relativeUrl,callback,params,contentType);};JsonRpcContainer.generateErrorResponse=function(result,requestObjects,callback){var globalErrorCode=JsonRpcContainer.translateHttpError(result.rc||result.result.error||result.data.error)||opensocial.ResponseItem.Error.INTERNAL_ERROR;var errorResponseMap={};for(var i=0;i
callback(new opensocial.DataResponse(errorResponseMap,true));};JsonRpcContainer.translateHttpError=function(httpError){if(httpError==501){return opensocial.ResponseItem.Error.NOT_IMPLEMENTED;}else if(httpError==401){return opensocial.ResponseItem.Error.UNAUTHORIZED;}else if(httpError==403){return opensocial.ResponseItem.Error.FORBIDDEN;}else if(httpError==400){return opensocial.ResponseItem.Error.BAD_REQUEST;}else if(httpError==500){return opensocial.ResponseItem.Error.INTERNAL_ERROR;}else if(httpError==404){return opensocial.ResponseItem.Error.BAD_REQUEST;}else if(httpError==417){return opensocial.ResponseItem.Error.LIMIT_EXCEEDED;}};JsonRpcContainer.prototype.makeIdSpec=function(id){return opensocial.newIdSpec({'userId':id});};JsonRpcContainer.prototype.translateIdSpec=function(newIdSpec){var userIds=newIdSpec.getField('userId');var groupId=newIdSpec.getField('groupId');if(!opensocial.Container.isArray(userIds)){userIds=[userIds];}
for(var i=0;i
if(groupId==='FRIENDS'){groupId="@friends";}else if(groupId=='ALL'){groupId="@all";}else if(groupId==='SELF'||!groupId){groupId="@self";}
return{userId:userIds,groupId:groupId};};JsonRpcContainer.prototype.newFetchPersonRequest=function(id,opt_params){var peopleRequest=this.newFetchPeopleRequest(this.makeIdSpec(id),opt_params);var me=this;return new JsonRpcRequestItem(peopleRequest.rpc,function(rawJson){return me.createPersonFromJson(rawJson,opt_params);});};JsonRpcContainer.prototype.newFetchPeopleRequest=function(idSpec,opt_params){var rpc={method:"people.get"};rpc.params=this.translateIdSpec(idSpec);FieldTranslations.addAppDataAsProfileFields(opt_params);FieldTranslations.translateStandardArguments(opt_params,rpc.params);FieldTranslations.translateNetworkDistance(idSpec,rpc.params);if(opt_params['profileDetail']){FieldTranslations.translateJsPersonFieldsToServerFields(opt_params['profileDetail']);rpc.params.fields=opt_params['profileDetail'];}
var me=this;return new JsonRpcRequestItem(rpc,function(rawJson){var jsonPeople;if(rawJson['list']){jsonPeople=rawJson['list'];}else{jsonPeople=[rawJson];}
var people=[];for(var i=0;i
return new opensocial.Collection(people,rawJson['startIndex'],rawJson['totalResults']);});};JsonRpcContainer.prototype.createPersonFromJson=function(serverJson,opt_params){FieldTranslations.translateServerPersonToJsPerson(serverJson,opt_params);return new JsonPerson(serverJson);};JsonRpcContainer.prototype.getFieldsList=function(keys){if(this.hasNoKeys(keys)||this.isWildcardKey(keys[0])){return[];}else{return keys;}};JsonRpcContainer.prototype.hasNoKeys=function(keys){return!keys||keys.length===0;};JsonRpcContainer.prototype.isWildcardKey=function(key){return key==="*";};JsonRpcContainer.prototype.newFetchPersonAppDataRequest=function(idSpec,keys,opt_params){var rpc={method:"appdata.get"};rpc.params=this.translateIdSpec(idSpec);rpc.params.appId="@app";rpc.params.fields=this.getFieldsList(keys);FieldTranslations.translateNetworkDistance(idSpec,rpc.params);return new JsonRpcRequestItem(rpc,function(appData){return opensocial.Container.escape(appData,opt_params,true);});};JsonRpcContainer.prototype.newUpdatePersonAppDataRequest=function(key,value){var rpc={method:"appdata.update"};rpc.params={userId:["@viewer"],groupId:"@self"};rpc.params.appId="@app";rpc.params.data={};rpc.params.data[key]=value;rpc.params.fields=key;return new JsonRpcRequestItem(rpc);};JsonRpcContainer.prototype.newRemovePersonAppDataRequest=function(keys){var rpc={method:"appdata.delete"};rpc.params={userId:["@viewer"],groupId:"@self"};rpc.params.appId="@app";rpc.params.fields=this.getFieldsList(keys);return new JsonRpcRequestItem(rpc);};JsonRpcContainer.prototype.newFetchActivitiesRequest=function(idSpec,opt_params){var rpc={method:"activities.get"};rpc.params=this.translateIdSpec(idSpec);rpc.params.appId="@app";FieldTranslations.translateStandardArguments(opt_params,rpc.params);FieldTranslations.translateNetworkDistance(idSpec,rpc.params);return new JsonRpcRequestItem(rpc,function(rawJson){rawJson=rawJson['list'];var activities=[];for(var i=0;i
return new opensocial.Collection(activities);});};JsonRpcContainer.prototype.newActivity=function(opt_params){return new JsonActivity(opt_params,true);};JsonRpcContainer.prototype.newMediaItem=function(mimeType,url,opt_params){opt_params=opt_params||{};opt_params['mimeType']=mimeType;opt_params['url']=url;return new JsonMediaItem(opt_params);};JsonRpcContainer.prototype.newCreateActivityRequest=function(idSpec,activity){var rpc={method:"activities.create"};rpc.params=this.translateIdSpec(idSpec);rpc.params.appId="@app";FieldTranslations.translateNetworkDistance(idSpec,rpc.params);rpc.params.activity=activity.toJsonObject();return new JsonRpcRequestItem(rpc);};JsonRpcContainer.prototype.invalidateCache=function(){var rpc={method:"cache.invalidate"};var invalidationKeys={invalidationKeys:["@viewer"]};rpc.params=invalidationKeys;var makeRequestParams={"CONTENT_TYPE":"JSON","METHOD":"POST","AUTHORIZATION":"SIGNED","POST_DATA":gadgets.json.stringify(rpc)};var url=[this.invalidatePath_];var token=shindig.auth.getSecurityToken();if(token){url.push("?st=",encodeURIComponent(token));}
this.sendRequest(url.join(''),null,makeRequestParams,"application/json");};})();JsonRpcContainer.prototype.newMessage=function(body,opt_params){return new JsonMessage(body,opt_params);};JsonRpcContainer.prototype.newMessageCollection=function(opt_params){return new JsonMessageCollection(opt_params);};JsonRpcContainer.prototype.newFetchMessageCollectionsRequest=function(idSpec,opt_params){var rpc={method:"messages.get"};rpc.params=this.translateIdSpec(idSpec);return new JsonRpcRequestItem(rpc,function(rawJson){rawJson=rawJson['list'];var messagecollections=[];for(var i=0;i
return new opensocial.Collection(messagecollections);});};JsonRpcContainer.prototype.newFetchMessagesRequest=function(idSpec,msgCollId,opt_params){var rpc={method:"messages.get"};rpc.params=this.translateIdSpec(idSpec);rpc.params.msgCollId=msgCollId;return new JsonRpcRequestItem(rpc,function(rawJson){rawJson=rawJson['list'];var messages=[];for(var i=0;i
return new opensocial.Collection(messages);});};
var requiredConfig={"path":gadgets.config.NonEmptyStringValidator,"invalidatePath":gadgets.config.NonEmptyStringValidator,"domain":gadgets.config.NonEmptyStringValidator,"enableCaja":gadgets.config.BooleanValidator,"supportedFields":gadgets.config.ExistsValidator};gadgets.config.register("opensocial",requiredConfig,function(config){ShindigContainer=function(){JsonRpcContainer.call(this,config["opensocial"]);};ShindigContainer.inherits(JsonRpcContainer);opensocial.Container.setContainer(new ShindigContainer());});
opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest_09=opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest;opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest=function(id,key,value){if(id!==opensocial.IdSpec.PersonId.VIEWER){throw Error("Cannot update app data for person "+id);}
return this.newUpdatePersonAppDataRequest_09(key,value);};opensocial.DataRequest.prototype.newRemovePersonAppDataRequest_09=opensocial.DataRequest.prototype.newRemovePersonAppDataRequest;opensocial.DataRequest.prototype.newRemovePersonAppDataRequest=function(id,keys){if(id!==opensocial.IdSpec.PersonId.VIEWER){throw Error("Cannot remove app data for person "+id);}
return this.newRemovePersonAppDataRequest_09(keys);};
gadgets.config.init({"core.io":{"proxyUrl":"\/\/%host%\/gadgets\/proxy?container=default&refresh=%refresh%&url=%url%%rewriteMime%","jsonProxyUrl":"\/\/%host%\/gadgets\/makeRequest"},"rpc":{"parentRelayUrl":"\/container\/rpc_relay.html","useLegacyProtocol":false},"opensocial":{"path":"http:\/\/%host%\/rpc","invalidatePath":"http:\/\/%host%\/rpc","domain":"shindig","enableCaja":false,"supportedFields":{"person":["id",{"name":["familyName","givenName","unstructured"]},"thumbnailUrl","profileUrl"],"activity":["appId","body","bodyId","externalId","id","mediaItems","postedTime","priority","streamFaviconUrl","streamSourceUrl","streamTitle","streamUrl","templateParams","title","url","userId"],"album":["id","thumbnailUrl","title","description","location","ownerId"],"mediaItem":["album_id","created","description","duration","file_size","id","language","last_updated","location","mime_type","num_comments","num_views","num_votes","rating","start_time","tagged_people","tags","thumbnail_url","title","type","url"]}},"core.util":{"core.none":{},"globals":{},"core.config":{},"core.json":{},"core.log":{},"core.util":{},"core.prefs":{},"shindig.auth":{},"core.io":{},"core.legacy":{},"core":{},"dynamic-height.util":{},"locked-domain":{},"opensocial-reference":{},"rpc":{},"auth-refresh":{},"dynamic-height":{},"opensocial-base":{},"security-token":{},"opensocial-jsonrpc":{},"opensocial":{},"opensocial-0.9":{},"opensocial-0.8":{}},"osapi.services":{"gadgets.rpc":["container.listMethods"],"http:\/\/%host%\/rpc":["messages.update","albums.update","activities.delete","activities.update","activities.supportedFields","albums.get","activities.get","mediaitems.update","messages.get","appdata.get","system.listMethods","people.supportedFields","messages.create","mediaitems.delete","mediaitems.create","people.get","people.create","albums.delete","messages.delete","appdata.update","activities.create","mediaitems.get","albums.create","appdata.delete","people.update","appdata.create"],"http:\/\/%host%\/gadgets\/api\/rpc":["cache.invalidate","http.head","http.get","http.put","http.post","http.delete"]}});
gadgets.Prefs.setMessages_([]);
gadgets.Prefs.setDefaultPrefs_([]);
gadgets.io.preloaded_ = {};
-->
.gif)
