


var DEMO_HOST_URL = "http://demo.apsona.com:8080";
var BASE_URL      = DEMO_HOST_URL + "/app/app_admin";
var DEMO_USERNAME = "demo@apsona.com";
var DEMO_PASSWORD = "demo";

var _sId = null;
function hitTheApp () {
    var appId = $("#choose-app-form input[type=radio]:checked").val();
    var doLoginForm = $("#do-login");
    $("input[name=sessionId]", doLoginForm).val (_sId);
    doLoginForm[0].action = DEMO_HOST_URL + "/app/" + appId;
    doLoginForm[0].submit();
    return false;
};

function showAppsList (data) {
    var tableRowsTemplate = new sf.core.Template ('\
        <% for (var i = 0; i < apps.length; i++) {  var rowClass = i % 2 ? "oddrow" : "evenrow";  %>\
           <tr class="${rowClass}">\
             <td><input type="radio" name="appId" value="${apps[i].user_app_id}" id="appId_${i}" <% if (i == 0) { %>checked<% } %> /></td>\
             <td class="dt"><label for="appId_${i}">${apps[i].name}</label></td>\
             <td class="dd">${apps[i].description}</td>\
           </tr>\
        <% } %>');
    var appRecords = data.records.map (function (x) { return {user_app_id:  x[0], name: x[1], description: x[2]};});
    $(".demo-app-list")[0].innerHTML = tableRowsTemplate.process ({apps: appRecords});
    $("#choose-app-form")[0].onsubmit = hitTheApp;
    $("#sf-submit").css ("display", "block");
};

function onLogin (data) {
    // console.log (data);
    _sId = data.session.sessionId;
    var appIds = data.session.userProfile.allowedApps.map (function (x) { return x.appId;});
    var appIdList = appIds.map (function (x) { return x;});
    var params = sf.util.toJSONString ({neededFields: [{fieldId: "user_app_id"}, {fieldId: "name"}, {fieldId: "description"}], filter: [{fieldId: "user_app_id", op: "in", value: appIdList}]});
    jQuery.getJSON (BASE_URL + "/get/data/UserApp.js?callback=?", {
        parameters: params,
        sessionId: _sId
    }, showAppsList);
};


$(function () {
    jQuery.getJSON (BASE_URL + "/login.js?callback=?", {userName: DEMO_USERNAME, password: DEMO_PASSWORD}, onLogin);
});

