function canvas_appinstall_performRedirect(redirectUrl) {
    if(redirectUrl != null && redirectUrl != "") {
        var appparams =  _proxy_jslib_handle( _proxy_jslib_handle(window, 'location', '', 0, 0), 'search', '', 0, 0).match(/appparams=([^&$]*)/i);
        if(appparams != null) {
            var params = gadgets.JSON.parse(decodeURIComponent(appparams[1]));
        }
        var ownerid = MySpaceClientContext.UserId;
        var friendid =   _proxy_jslib_handle( _proxy_jslib_handle(window, 'location', '', 0, 0), 'search', '', 0, 0).match(/friendid=([^&$]*)/i);
        if(friendid != null) {
            ownerid = parseInt(friendid[1]);
        }        
        var q = "";         
        var advParam = MySpace.Apps.getFIMAdvParameter();
        if(advParam) {
            var q = "adv=" + advParam; 
        }
        ifpc_widget_requestNavigateToEx(MySpaceAppProfileContext.appId, ownerid, "canvas", params, null, true, q);
    }
}


function canvas_appinstall_failed(content) {
    if( _proxy_jslib_handle(null, 'content', content, 0, 0)) {
        alert( _proxy_jslib_handle(null, 'content', content, 0, 0));
    }
}

function canvas_uninstallFailedCallback(msg) {
    if(msg) {
        alert(msg);
    }
}

function canvas_uninstallSuccessCallback() {
     _proxy_jslib_handle(null, 'location', location, 0, 0).reload(true);
}

function canvas_appuninstall() {
    handler = function(sender, args) {
        if(args.target.isCancel) {
            return;
        }
        
        MySpace.Apps.uninstallApplication(MySpaceAppProfileContext.token, 
            canvas_uninstallSuccessCallback,
            canvas_uninstallFailedCallback);
    };
    
     content= _proxy_jslib_assign_rval('', 'content', '=', ( MySpaceRes.ProfileDisplay.AppUninstallConfirm), content);    
    headerContent = MySpaceRes.ProfileDisplay.AppInstallUninstallHeader;
    buttonContent = MySpaceRes.ProfileDisplay.AppInstallPopupButtonUninstall;
    
    var p = MySpace.UI.AppsPopup.create( _proxy_jslib_handle(null, 'content', content, 0, 0), headerContent);
    p.add_button(buttonContent);
    p.add_button(MySpaceRes.ProfileDisplay.AppInstallPopupButtonCancel, true).isCancel = true;
    p.show( handler );  
}


function ifpc_requestInstall() {

    headerContent = MySpaceRes.ProfileDisplay.AppInstallHeader + MySpaceAppProfileContext.appDisplayName;
    
    MySpace.UI.AppsPopup.ajaxAddApp(MySpaceAppProfileContext.appId, headerContent,
	
		function(sender, params) {            
            if(params.target.parentNode.isCancel || params.target.isCancel) 
            {
                return;
            }
                    
            var installPermissions = MySpace.UI.AppsPopup.getSelectedPermissions(sender);
            
            MySpace.Web.Services.Apps.Apps.InstallApplication(MySpaceAppProfileContext.token,
                installPermissions,
                function(args) {
                    if(args != undefined) {
                        switch(args.status) {
                            case 0:
								if (args.callbackUrl != null) {
									MySpace.Apps.executeInstallCallback(args.callbackUrl);
								}
                                //MySpace.Apps.tryAdvCallback("http://conv.opt.fimserve.com/conv/");
                                 _proxy_jslib_handle(null, 'setTimeout', setTimeout, 1, 0)("canvas_appinstall_performRedirect('" + args.redirectUrl + "');", 2 * 1000);
                                return;
                            case 1:
                                canvas_appinstall_failed( _proxy_jslib_handle(args, 'content', '', 0, 0));
                                return;
                            default:
                                canvas_appinstall_failed( _proxy_jslib_handle(args, 'content', '', 0, 0));
                                return;
                        }
                    }
                },
                function(args) {
                    canvas_appinstall_failed(null);
                });                                         
        } );                     
}

function ifpc_requestPreferences() {
    headerContent =  _proxy_jslib_handle(MySpaceRes.AppManagement.UserAppPref_Heading, 'replace', '', 1, 0)("{0}", MySpaceAppProfileContext.appDisplayName);
    
    MySpace.UI.AppsPopup.ajaxPreferences(MySpaceAppProfileContext.appId, headerContent, function(status, p) {});                     
}

var appinstall_link = $get("apptopnav_appinstall_link");
if(appinstall_link) { $addHandler(appinstall_link, "click", ifpc_requestInstall); }
//_IFPC.registerService('requestInstall', ifpc_requestInstall);

var appsettings_link = $get("apptopnav_appsettings_link");
if(appsettings_link) { $addHandler(appsettings_link, "click", ifpc_requestPreferences); }

var appuninstall_link = $get("apptopnav_appuninstall_link");
if(appuninstall_link) { $addHandler(appuninstall_link, "click", canvas_appuninstall); }
 ;
_proxy_jslib_flush_write_buffers() ;