// JScript File
function initCanvas_Callback(data) {
    owner = data.get('owner');
    viewer = data.get('viewer');
    if (owner && owner.getData) {
        owner = owner.getData();
        ownerID = owner.getField(opensocial.Person.Field.ID);
    }
    if (viewer && viewer.getData) {
        viewer = viewer.getData();
        viewerID = viewer.getField(opensocial.Person.Field.ID);
    }
    
    var subnav = 'app';
    if ( gadgets.views && gadgets.views.getParams().param )
    	subnav = gadgets.views.getParams().param;
    	
	if (isSameUser() ) {
		if ( subnav == 'poll' )
			makeCachedRequest("http://jr.polldaddy.com/get-owners-poll.php?h=" + host + "&owner=" + ownerID, getPollID_Callback, 1);
		else
			redirectPage();
	}
	else{
		//show poll
		
		var ownerdata = data.get("owner_data");
	    pollID = null;
	
		if (ownerdata && ownerdata.getData) {
            ownerdata = ownerdata.getData();
            if (ownerdata) {
                if (ownerdata[ownerID]) {
                    ownerdata = ownerdata[ownerID];
                    pollID = ownerdata["poll_id"];
                    if (parseInt(pollID) == 0) {
                        pollID = null;
                    }
                }
            }
        }
        if (pollID>0) {
            pushStyle();
            pushHTML();
            poll_url = poll_path + pollID + '.js';
        	renderPage();
		}
		else {
			makeCachedRequest("http://jr.polldaddy.com/get-owners-poll.php?h=" + host + "&owner=" + ownerID, getPollID_Callback, 1);
		}
		
	}
    
}

function redirectPage() {
	viewerID = viewer.getField(opensocial.Person.Field.ID);
	viewerUrl = viewer.getField(opensocial.Person.Field.PROFILE_URL);
	viewerIUrl = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL);
	viewerGender = viewer.getField(opensocial.Person.Field.GENDER);
	viewerDOB = viewer.getField(opensocial.Person.Field.DATE_OF_BIRTH);
	viewerDisplayName = viewer.getDisplayName();
	var name = viewerDisplayName;
	viewerFirstName = name.substring(0, name.indexOf(" "));
	viewerLastName = name.substring(name.indexOf(" ") + 1);
	var qs = '?opensocial_viewer_id=' + viewerID + '&h=' + host +
	((viewerDisplayName) ? "&pun=" + viewerDisplayName.replace(" ", "_") : "") +
	((viewerFirstName) ? "&pufn=" + viewerFirstName: "") +
	((viewerLastName) ? "&puln=" + viewerLastName: "") +
	((viewerIUrl) ? "&puiurl=" + viewerIUrl: "") +
	((viewerUrl) ? "&puwurl=" + viewerUrl: "") +
	((viewerGender) ? "&pug=" + viewerGender.key: "") +
	((viewerDOB) ? "&pudob=" + viewerDOB: "");
	location.href = "http://jr.polldaddy.com/auth.php" + qs;
	gadgets.window.adjustHeight(470);
}

gadgets.util.registerOnLoadHandler(function() {
    host = 3;
    var req = opensocial.newDataRequest();
	var idspec = opensocial.newIdSpec({ "userId" : "OWNER", "groupId" : "SELF" });
	if ( idspec ){
		req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.OWNER), 'owner');
	    req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), 'viewer');
		req.add(req.newFetchPersonAppDataRequest( idspec, "poll_id" ), "owner_data");
	}
	else{
		req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), 'owner');
	    req.add(req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), 'viewer');
		req.add(req.newFetchPersonAppDataRequest(opensocial.DataRequest.PersonId.OWNER, ["poll_id"]), "owner_data");
	}
    req.send(initCanvas_Callback);
});

