
var slingshot=function()
{return{debug:false,consumer_key:'',target_domain:'',log:function(message)
{if(slingshot.debug)
{console.log(message);}},init:function(consumer_key,target_domain)
{if(slingshot.debug)
{if(!window.console)
{window.console={};window.console.log=function(message)
{var divId='v_window_console';var consoleDiv=document.getElementById(divId);if(!consoleDiv)
{consoleDiv=document.createElement('div');consoleDiv.id=divId;consoleDiv.style.position='absolute';consoleDiv.style.top='0';consoleDiv.style.right='0';consoleDiv.onclick=function()
{consoleDiv.innerHTML='';};document.body.appendChild(consoleDiv);}
messageDiv=document.createElement('div');messageDiv.innerHTML=message;consoleDiv.appendChild(messageDiv);};}}
else
{if(window.console===undefined)
{window.console={};window.console.log=function(message){};}}
var settings={consumerKey:slingshot.consumer_key,targetDomain:slingshot.target_domain};MSID.Connect.init(settings);MSID.Connect.tryConnect(slingshot.handle_myspaceid_response);},handle_myspaceid_response:function(response)
{if(response.statusCode==MSID.Connect.Enums.status.READY)
{slingshot.log('READY');slingshot.inject_user_interface();}
else if(response.statusCode==MSID.Connect.Enums.status.COOKIE_NOT_FOUND)
{slingshot.log('There is no cookie, you are not logged in!');}
else if(response.statusCode==MSID.Connect.Enums.status.LIBRARY_INIT_TIMEOUT)
{slingshot.log('TIMEOUT');}
else
{slingshot.log('Status Code:',response.statusCode);}},inject_login_button:function()
{$('#login').text('');var img=$('<img/>').attr('src','myspaceid.png').attr('alt','Login with MySpaceID');$('<a>').attr('id','msid_login').attr('href','#login').html(img).appendTo('#login');$('#msid_login').click(function()
{MSID.Connect.requestLogin(slingshot.handle_myspaceid_response,3000);});$('#buttons').text('');$('#user_info').text('');$('activity_form').text('');$('#activities').text('');},inject_user_interface:function()
{$('#login').text('');$("<input type='button'/>").attr('value','Logout').attr('id','logout_button').appendTo('#login');$('#logout_button').click(function()
{MSID.Connect.logout();MSID.Connect.tryConnect(slingshot.handle_myspaceid_response);slingshot.inject_login_button();});$("<input type='button'/>").attr('value','User Info').attr('id','get_user_info').appendTo('#buttons');$("<input type='button'/>").attr('value','Get Activities').attr('id','get_activities').appendTo('#buttons');$("<input type='button'/>").attr('value','Post Activity').attr('id','post_act').appendTo('#buttons');$('#get_activities').click(activity.get_activities);$('#post_act').click(activity.post);$('#get_user_info').click(fetch.person);},render_activity:function(activity)
{var appId=activity.getField(opensocial.Activity.Field.APP_ID);var body=activity.getField(opensocial.Activity.Field.BODY);var postTime=activity.getField(opensocial.Activity.Field.POSTED_TIME);var faviconUrl=activity.getField(opensocial.Activity.Field.STREAM_FAVICON_URL);var title=activity.getField(opensocial.Activity.Field.TITLE);var titleId=activity.getField(opensocial.Activity.Field.TITLE_ID);var userId=activity.getField(opensocial.Activity.Field.USER_ID);$('<div>').attr('id',appId).appendTo('#activities');var app_id='#'+appId;$('<div>').html(title).appendTo(app_id);$('<div>').html(body).appendTo(app_id);$('<div>').html(postTime).appendTo(app_id);},render_user_info:function(data)
{var viewer=data.get(MyOpenSpace.RequestType.FETCH_PERSON).getData();var id=viewer.getField(opensocial.Person.Field.ID);var nickname=viewer.getField(opensocial.Person.Field.NICKNAME);var thumbnailUrl=viewer.getField(opensocial.Person.Field.THUMBNAIL_URL);var profileUrl=viewer.getField(opensocial.Person.Field.PROFILE_URL);if(id!=null)
{var div=$('<div>').attr('id','infos');$('<span>').text(id).appendTo(div);$('<img/>').attr('src',thumbnailUrl).appendTo(div);$('<a>').attr('href',profileUrl).text(nickname).appendTo(div);$('#user_info').html(div);}
else
{$('#user_info').text('Not Logged In.');}}};}();var fetch=function()
{return{person:function()
{var os=MSID.Container.get();var dataReqObj=os.newDataRequest();var opt_params={};var viewerReq=os.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER,opt_params);dataReqObj.add(viewerReq);dataReqObj.send(fetch.person_response);},person_response:function(person)
{slingshot.log(person);if(person.hadError())
{var thisErrorCode;var thisErrorMsg;if(person.get(MyOpenSpace.RequestType.FETCH_PERSON)!=null)
{thisErrorCode=data.get(MyOpenSpace.RequestType.FETCH_PERSON).getErrorCode();thisErrorMsg=data.get(MyOpenSpace.RequestType.FETCH_PERSON).getErrorMessage();}
else
{thisErrorCode="Unknown ErrorCode!";thisErrorMsg="Unknown ErrorMsg!";}
slingshot.log('ErrorCode: '+thisErrorCode+' | '+'Error Message: '+thisErrorMsg);return;}
slingshot.render_user_info(person);}};}();var activity=function()
{return{post:function()
{var params={};params[opensocial.Activity.Field.TITLE_ID]="DFJSLTemplate";params[opensocial.Activity.Field.TEMPLATE_PARAMS]={"name":"6221","link_url":"http://www.myspace.com/6221","article_name":"Britney Spears caught naked"};var mediaItemArray=[];mediaItemArray.push(opensocial.newMediaItem("","http://api.myspace.com/v1/users/434847079/albums/607120/photos/2824600"));params[opensocial.Activity.Field.MEDIA_ITEMS]=mediaItemArray;var act=MSID.newActivity(params);var priority=opensocial.CreateActivityPriority.HIGH;MSID.Container.get().requestCreateActivity(act,priority,activity.post_response);},post_response:function(response)
{slingshot.log('hello...');if(response.hadError())
{slingshot.log('requestCreateActivity FAILED.');return;}
else
{slingshot.log('requestCreateActivity WORKED!');}},get_activities:function()
{var id=new opensocial.IdSpec();id.setField(opensocial.IdSpec.Field.USER_ID,opensocial.IdSpec.PersonId.VIEWER);id.setField(opensocial.IdSpec.Field.NETWORK_DISTANCE,0);var dataReq=MSID.newDataRequest();dataReq.add(dataReq.newFetchActivitiesRequest(id));dataReq.send(activity.get_activities_response);},get_activities_response:function(response)
{if(response.hadError())
{slingshot.log('get_my_activities FAIL');return;}
else
{$('#activities').html('');var activities=response.get(MyOpenSpace.RequestType.FETCH_ACTIVITIES).getData();if(activities.totalSize_>0)
{slingshot.log(activities);slingshot.log("array_",activities.array_);slingshot.log("totalSize_",activities.totalSize_);var acts=activities.array_;for(var activity in acts)
{var act=acts[activity];slingshot.render_activity(act);}}
else
{slingshot.log("You have zero activities. :-(");}}}};}();