<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Is viewer Owner" description="" author="" author_email="" thumbnail="" screenshot="" height="380">
   <Require feature="opensocial-0.7"/>
   <Require feature="views" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
	var currentview = gadgets.views.getCurrentView().getName();
	var availableviews = gadgets.views.getSupportedViews();

	function loadData(){
    	var req = opensocial.newDataRequest();
        req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');
        req.send(onViewerLoaded);
	}
	function onViewerLoaded(dataResponse){
		var viewer = dataResponse.get('viewer').getData();
        if(viewer.isOwner()){
            document.getElementById('message').innerHTML = 'Viewer is Owner';
        } else{
        	document.getElementById('message').innerHTML = 'Viewer is not Owner';
        }
	}

	function viewerinfo() {
		document.getElementById('viewernotvisible').style.display = "none";
	    function getViewer(responseItem) {
			if(responseItem.hadError()) {
				var sErrorcode = responseItem.getErrorCode();
				if(sErrorcode == 'forbidden') {
					document.getElementById('message').innerHTML = "You are not logged in, please log in first.";
				} else if(sErrorcode == 'unauthorized') {
					document.getElementById('message').innerHTML = "This application can't see your information because you will have to give permission to share your information. Please click the button below.";
					document.getElementById('viewernotvisible').style.display = "block";
				}
			}	
	        if (opensocial.hasPermission(opensocial.Permission.VIEWER)) {
	                loadData();
	        }
	    }
	    opensocial.requestPermission([opensocial.Permission.VIEWER], 'This reason sentence is not used at the moment', getViewer);
	}

	function init() {
		// check if you have permission to see the VIEWER
		if(opensocial.hasPermission(opensocial.Permission.VIEWER)){
		     loadData();
		} else{
			// you don't have VIEWER permission, so on the profile view this means you are not the owner
			if(availableviews[currentview] == availableviews['profile']) {
				document.getElementById('message').innerHTML = 'viewer is not owner (or not logged in) because viewer information is not by default available on profile. Please click the button below.';
				document.getElementById('viewernotvisible').style.display = "block";				
			} else {
	        	loadData();
			}
		}
	}
	
	gadgets.util.registerOnLoadHandler(init);
</script>
  <div id="message"></div>
  <div id="viewernotvisible" style="display:none;"><input type="button" onclick="viewerinfo();" value="Ask for viewer permission"></div>
]]>
</Content>
</Module>