From OpenSocial Directory
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Unype Virtual World" description="Unype is a virtual world, like Second Life, that runs inside Google Earth. Socialize, chat, lead/follow, play games, mark your locations, insert 3D models, videos, voice chat or control your location from Twitter in Unype" author="Murat Aktihanoglu" author_email="muratak+unypevirtualworld@gmail.com" author_affiliation="Holoscape Inc." author_location="New York, NY, USA" thumbnail="http://unype.com/images/UnypeButtonSmaller.png" height="580">
<Require feature="opensocial-0.5" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
function onAvatarChanged()
{
var optionbox = document.getElementById('avatarChoice');
var pic = document.getElementById('avatarPic');
var newsrc = "http://unype.com/models/images/Man_Astronaut.png";
var modelIndex = optionbox.selectedIndex;
switch (modelIndex)
{
case 0: newsrc = "http://unype.com/models/images/Woman_Astronaut.png";break;
case 1: newsrc = "http://unype.com/models/images/Man_Astronaut.png";break;
case 2: newsrc = "http://unype.com/models/images/Woman_Jogging.png";break;
case 3: newsrc = "http://unype.com/models/images/Man_Hat.png";break;
case 4: newsrc = "http://unype.com/models/images/Woman_Standing.png";break;
case 5: newsrc = "http://unype.com/models/images/Man_Standing.png";break;
case 6: newsrc = "http://unype.com/models/images/Man_Walking.png";break;
case 7: newsrc = "http://unype.com/models/images/Woman_WalkingGreen.png";break;
case 8: newsrc = "http://unype.com/models/images/Man_Running.png";break;
case 9: newsrc = "http://unype.com/models/images/Man_Waving.png";break;
case 10: newsrc = "http://unype.com/models/images/Man_RunningBlue.png";break;
case 11: newsrc = "http://unype.com/models/images/Man_RunningGreen.png";break;
case 12: newsrc = "http://unype.com/models/images/Man_WalkingBlue.png";break;
case 13: newsrc = "http://unype.com/models/images/Man_WalkingGreen.png";break;
case 14: newsrc = "http://unype.com/models/images/Man_WalkingRed.png";break;
case 15: newsrc = "http://unype.com/models/images/Man_WalkingYellow.png";break;
}
pic.src = newsrc;
}
function onImChanged()
{
var optionbox = document.getElementById('imChoice');
var pic = document.getElementById('imPic');
var newsrc = "http://unype.com/models/logos/skype_logo.png";
var modelIndex = optionbox.selectedIndex;
switch (modelIndex)
{
case 0: newsrc = "http://unype.com/models/logos/skype_logo.png";break;
case 1: newsrc = "http://unype.com/models/logos/yahoo_logo.gif";break;
case 2: newsrc = "http://unype.com/models/logos/messenger_logo.gif";break;
case 3: newsrc = "http://unype.com/models/logos/aim_logo.jpg";break;
case 4: newsrc = "http://unype.com/models/logos/icq_logo.jpg";break;
case 5: newsrc = "http://unype.com/models/logos/jabber_logo.jpg";break;
case 6: newsrc = "http://unype.com/models/logos/googletalk_logo.gif";break;
}
pic.src = newsrc;
}
</script>
<div id='main'/>
</div>
<script type="text/javascript">
_IG_RegisterOnloadHandler(request);
function request() {
var req = opensocial.newDataRequest();
var req_params = { 'PROFILE_DETAILS' : opensocial.DataRequest.ProfileDetailType.FULL}
req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer");
req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER, req_params ), "owner");
req.send(response);
}
function response(data) {
// do something with the viewer data
var viewer = data.get("viewer").getData();
//if ( viewer.hadError() )
//{
// alert(viewer.getError());
// return;
//}
var viewername = viewer.getDisplayName();
var owner = data.get("owner").getData();
//if ( owner.hadError() )
//{
// alert(owner.getError());
// return;
//}
var ownername = owner.getDisplayName();
// get the container's name with this hack
var idPrefix = "or";
var containerUrl = document.URL;
if ( containerUrl.match("orkut.com") )
{
idPrefix = "or";
}
else if ( containerUrl.match("ning.com") )
{
idPrefix = "ni";
}
else if ( containerUrl.match("pulse.com") )
{
idPrefix = "pu";
}
else
{
// where are we??
alert("where are we???");
}
var id = idPrefix + owner.getField(opensocial.Person.Field.ID);
//same as display name
//var name = owner.getField(opensocial.Person.Field.NAME);
var thumb = owner.getField(opensocial.Person.Field.THUMBNAIL_URL);
var profile = owner.getField(opensocial.Person.Field.PROFILE_URL);
profile = 'http://sandbox.orkut.com' + profile;
//alert('ownername:' + ownername + ' - id:' + id + ' - thumb:'+ thumb + ' - profile:' + profile );
var html = "<br>";
if ( viewername != ownername )
{
// visitor content
html += "<a href='http://sandbox.orkut.com/Application.aspx?appId=578411107783'><img src='http://www.unype.com/images/EnterUnype.png'><br>Add Unype</a> to enter the Virtual World!";
}
else
{
// owner content
if ( !ownername )
{
ownername = id;
}
html+= 'You only need <a href="http://earth.google.com" target="_blank">Google Earth</a> to use Unype. More <a href="http://unype.com">help</a>.<br><form action="http://unype.com/unypeserver/fbgenerateuser.php" method="post">';
html+= '<table> \
<tr> \
<td valign="middle"><center><img src="http://unype.com/images/pickavatar.png"></center></td> \
<td valign="middle"><center><img src="http://unype.com/images/enterim.png"></center></td> \
<td valign="middle"> \
<center> \
<input src="http://www.unype.com/images/EnterUnype.png" name="Enter Multi-user Google Earth" value="Enter Multi-user Google Earth" alt="Enter Multi-user Google Earth" type="image" title="Click here and open the incoming file in Google Earth!" /> \
</center></td> \
</tr> \
<tr> \
<td><center><img src="http://unype.com/models/images/Woman_Astronaut.png" title="Pick your avatar" id="avatarPic"></center></td> \
<td valign="bottom"> \
<center> \
<img src="http://unype.com/images/optional.png"><br><img src="http://unype.com/models/logos/skype_logo.png" title="For voice chat" id="imPic"> \
<br><input type="text" name="imname"> \
</center> \
</td> \
<td></td> \
</tr> \
<tr> \
<td> \
<select name="avatar" onChange="onAvatarChanged();" id="avatarChoice"> \
<option value="http://unype.com/models/Woman_Astronaut.dae" selected="selected">Woman astronaut</option> \
<option value="http://unype.com/models/Man_Astronaut.dae">Man astronaut</option> \
<option value="http://unype.com/models/Woman_Jogging.dae">Woman jogging</option> \
<option value="http://unype.com/models/Man_Hat.dae">Man with hat</option> \
<option value="http://unype.com/models/Woman_Standing.dae">Woman standing</option> \
<option value="http://unype.com/models/Man_Standing.dae">Man standing</option> \
<option value="http://unype.com/models/Man_Walking.dae">Man walking</option> \
<option value="http://unype.com/models/Woman_WalkingGreen.dae">Green woman walking</option> \
<option value="http://unype.com/models/Man_Running.dae">Man running</option> \
<option value="http://unype.com/models/Man_Waving.dae">Man waving</option> \
<option value="http://unype.com/models/Man_RunningBlue.dae">Blue man running</option> \
<option value="http://unype.com/models/Man_RunningGreen.dae">Green man running</option> \
<option value="http://unype.com/models/Man_RunningRed.dae">Red man running</option> \
<option value="http://unype.com/models/Man_WalkingBlue.dae">Blue man walking</option> \
<option value="http://unype.com/models/Man_WalkingGreen.dae">Green man walking</option> \
<option value="http://unype.com/models/Man_WalkingRed.dae">Red man walking</option> \
<option value="http://unype.com/models/Man_WalkingYellow.dae">Yellow man walking</option> \
</select> \
</td> \
<td> \
<center> \
<select name="immode" onChange="onImChanged();" id="imChoice"> \
<option value="skype" selected="selected">Skype name</option> \
<option value="yahoo">Yahoo name</option> \
<option value="msn">MSN name</option> \
<option value="aim">AIM name</option> \
<option value="icq">ICQ number</option> \
<option value="jabber">Jabber name</option> \
<option value="gtalk">Google Talk name</option> \
</select> \
</center> \
</td> \
<td> \
<center> \
<a href="http://picasaweb.google.com/unype1/UnypeFacebookApplicationScreenshots/photo#s5113955105526755730" target="_ssfb" \
title="See a slideshow about Unype">What is Unype?</a> \
</center> \
</td> \
</tr> \
</table>';
html+= '<input type="hidden" name="id" value="' + id + '"/>';
html+= '<input type="hidden" name="name" value="'+ ownername + '"/>';
html+= '<input type="hidden" name="loc" value=""/>';
html+= '<input type="hidden" name="pic" value="' + thumb + '"/>';
html+= '<input type="hidden" name="sex" value=""/>';
html+= '<input type="hidden" name="birthday" value=""/>';
html+= '</form>';
html+= '<iframe src ="http://unype.com/facebook/unypeonline/map.htm" frameborder="0" style="width: 500px; height: 320px"/>';
html+= '<hr/><a href="http://unype.com">Download the Unype client</a> for more capabilities ( 200K - MS Windows only download )<br/>';
// only publish activity if owner is looking at his/her page
//NING doesn't support this for now...
//writeActivity();
}
document.getElementById('main').innerHTML = html;
}
function writeActivity() {
var streamTitle = 'Unype Virtual World';
var stream_params = {'url': 'http://unype.com' };
var stream = opensocial.newStream('', streamTitle, stream_params);
var title = 'Playing inside Unype - Virtual World inside Google Earth';
var link = 'http://unype.com';
var activity_params = {'url' : link}
var activity = opensocial.newActivity(stream, title, activity_params)
opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, getActivities);
}
// http://code.google.com/apis/opensocial/docs/javascript/index.html
function getActivities() {
}
</script>
]]>
</Content>
</Module>