Template:WebChattr - Live Chat Rooms Code

From OpenSocial Directory

Jump to: navigation, search
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs render_inline="optional" title="webChattr - Live Chat Rooms" author="Widgetbox" author_email="support@widgetbox.com" author_link="http://widgetserver.com/developer/9769cbf2-26dd-41f9-be38-ebc74628584c" width="350" height="450" scrolling="false" screenshot="http://widgetserver.com/syndication/images/goog-ig-screen.png" thumbnail="http://www.widgetbox.com/media/thumbs/a5c8e046-283a-4cd3-bac8-a7d1c37d1f1b.png">
<Require feature="opensocial-0.5"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<link rel='stylesheet' type='text/css' href='http://widgetserver.com/syndication/opensocial/snappbase.css' />
<div id='btnset'>
	<a href='javascript:WIDGETBOX.subscriber.WbxSnapp.showSettings()' id='editlink' style='display:none' title='Edit settings'>Edit</a>
	<a href='javascript:WIDGETBOX.subscriber.WbxSnapp.showPopup()' id='poplink' style='display:none' title='Open in a new window.'>Pop-Up</a>
	<a href='javascript:WIDGETBOX.subscriber.WbxSnapp.hideSettings()' id='closelink' style='display:none' title='Close'>Close</a>
	<img id='loadergif' src='http://widgetserver.com/syndication/opensocial/images/indicator-os.gif' border='0' alt='Loading...' title='Loading...' />
</div>

<div id='widget-div' style='display:none; text-align:center;'></div>

<iframe id='snapp-iframe' src='#' frameBorder='0' style='display:none' width='100%' height='100%' onload='WIDGETBOX.subscriber.WbxSnapp.onSettingsLoad()'></iframe>

<script type='text/javascript'>
var head = document.getElementsByTagName('head').item(0);
var appId = null;
var owner = null;
var viewer = null;
var firstView = false;
var hasConfig = true;

function getData() {
	var dataRequest = opensocial.newDataRequest();
	dataRequest.add(dataRequest.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), 'owner');
	dataRequest.add(dataRequest.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');
	dataRequest.send(loadData);
}

function loadData(response) {
	var ownerData = response.get('owner');

	if (response.hadError() || ownerData.hadError()) {
		return;
	}

	owner = ownerData.getData();

	var viewerData = response.get('viewer');

	if (viewerData.hadError()) {
		return;
	}

	viewer = viewerData.getData();

	lookupAppId();
}

function lookupAppId() {
	var lookupScript = document.createElement('script');
	lookupScript.setAttribute('src', 'http://widgetserver.com/syndication/OpenSocialLookup.js?regId=a5c8e046-283a-4cd3-bac8-a7d1c37d1f1b&ownerId=' + escape(owner.getId()) + '&location=' + escape(window.location) + '&callback=handleLookupAppId');

	head.appendChild(lookupScript);
}

function handleLookupAppId(response) {
	if (response.appId) {
		appId = response.appId;
		loadMain();
	} else {
		doInstall();
	}
}

function doInstall() {
	var installScript = document.createElement('script')
	installScript.setAttribute('src', 'http://www.widgetbox.com/OpenSocialInstall.js?regId=a5c8e046-283a-4cd3-bac8-a7d1c37d1f1b&ownerId=' + escape(owner.getId()) + '&location=' + escape(window.location) + '&callback=handleInstall');

	head.appendChild(installScript);
}

function handleInstall(response) {
	if (response.appId) {
		appId = response.appId;
		firstView = true;
	}

	if (appId == null) {
		return;
	}

	loadMain();
}

function loadMain() {
	var getWidgetInfoScript = document.createElement('script');
	getWidgetInfoScript.setAttribute('src', 'http://widgetserver.com/syndication/subscriber/Main.js');
	getWidgetInfoScript.setAttribute('id', 'widgetbox_insertwidget_script');
	getWidgetInfoScript.type = 'text/javascript';
	head.appendChild(getWidgetInfoScript);

	var iframe = document.getElementById('snapp-iframe');
	iframe.setAttribute('src', 'http://www.widgetbox.com/integration/socialapp_subscription.jsp?appInstId=' + appId + '&ownerId=' + escape(owner.getId()));

	insertTracker();

	if (!window.WIDGETBOX) {
		if (!window.WIDGETBOXINITLISTENERS) window.WIDGETBOXINITLISTENERS = new Array();
		window.WIDGETBOXINITLISTENERS.push(loadHandler);
	} else {
		loadHandler();
	}
}

function insertTracker() {
	var body = document.getElementsByTagName('body').item(0);
	var img = document.createElement('img');
	img.setAttribute('border', '0');
	img.setAttribute('width', '0');
	img.setAttribute('height', '0');
	img.setAttribute('src', 'http://runtime.widgetbox.com/syndication/track/' + appId + '.gif');
	body.appendChild(img);
	img.style.visibility = 'hidden';
	img.style.width = '0px';
	img.style.height = '0px';
}

function loadHandler() {
	WIDGETBOX.load('opensocial.snapp', libReadyCallback);
}

function libReadyCallback() {
	WIDGETBOX.subscriber.WbxSnapp.appInstId = appId;
	WIDGETBOX.subscriber.WbxSnapp.ownerId = owner.getId();

	if (firstView && hasConfig) {
		WIDGETBOX.subscriber.WbxSnapp.showSettings();
	} else {
		WIDGETBOX.subscriber.WbxSnapp.hideSettings();
	}
}

getData();
</script>
]]>
</Content>
</Module>
Personal tools
communication