var domain = "http://myspace.vtap.com"
var path = domain + const_base_url;
var initialClipGid = '';
var initialFoldGid = '';
var initialAppID = '104235';
var appProfileDict = new Object;
appProfileDict = { '101410':'332546634', '101197':'330796452', '104235':'355899332', '101976':'336278377'};
var appInstallationPage = "http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&friendid=";

function getChildrenByAttribute(parent, param, value)
{
    var childElem = null;
    var childrenElems = new Array();
    if(parent)
    {
        var counter = 0;
        var children = parent.childNodes;
        var childNode = children[counter];
        while(childNode)
        {
            //var paramVal = eval("childNode." + param);
            var paramVal = childNode[param];
            if(paramVal == value)
            {
                childElem = childNode;
                childrenElems.push(childNode);
            }
            counter++;
            childNode = children[counter]
        }
    }
    return childrenElems;
}

function getTLS(doAll)
{
    var retList = "";
    var leftElem = document.getElementById("leftPart2");
    var topicDivs = getChildrenByAttribute(leftElem, "className", "topic");
    if(!topicDivs || !topicDivs.length)
        return "";

    for(var ii=0; ii<topicDivs.length; ii++)
    {
        var topicElem = topicDivs[ii];
        var checkElem = topicElem.getElementsByTagName("div")[1];
        if(checkElem && (checkElem.className=="checked" || doAll==true))
        {
            retList += topicElem.getAttribute("gid") 
                if(ii<topicDivs.length-1) {
                    if (doAll) {
                        retList += ";";
                    }
                    else {
                        retList += ",";
                    }
                }
        }
    }
    //alert(retList);
    return retList;
}

function unhiliteAllTabs(container)
{
    var friendArray = getChildrenByAttribute(container, "className", "friend_hilite");
    for(var ii=0; ii<friendArray.length; ii++)
        friendArray[ii].className = "friend";
}

//Globals for top feed and topic url.
var currentFeedURL = "";
var currentTopicURL = "";
function renderFriendFeed(elem, urlID, friendName,ID, isMyself, doLoadIFrame) {
    var friendElem = elem.parentNode;
    var friendContainer = friendElem.parentNode;
    unhiliteAllTabs(friendContainer );
    friendElem.className = "friend_hilite";

    var profileURL = urlID; //"http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&friendid=" + ID;
    var tlsList = '';
    var render = "myspace-friends";
    var vtapid = "myspace_" + viewerId + ",myspace_" + ID;
    if(isMyself == true)
    {
        render = "myspace";
        vtapid = "myspace_" + viewerId;
    }
    /*
    var os_params = {};
    os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
    os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
    os_params[gadgets.io.RequestParameters.POST_DATA] = "urlstr=" + escape(profileURL) + "&debug=True&render=" + render;
    */
    currentFeedURL = path + 'topic.html?da=pc&pg=f&'+'msfurl=' + escape(profileURL) + '&vtapid='+vtapid+'&currId='+viewerId + '&friendName=' + friendName;
    currentTopicURL=path+'gettls?'+'urlstr=' + escape(profileURL) + '&debug=True&render=' + render + '&vtapid='+vtapid+'&currId='+viewerId + '&friendName=' + friendName;


    var sharePageUrl=''
    if(isMyself)
    {
        if (initialClipGid.length > 1) {
        sharePageUrl = path + 'app_login?da=pc&pg=v&os=vp:mi:0~' + initialClipGid + '&index=1&opt=Login&email=myspace_' + viewerId + '&password=myspace_' + viewerId + '&referer=myspace';
        initialClipGid = '';
        }
        else if (initialFoldGid.length > 1) {
        sharePageUrl = path + 'app_login?da=pc&pg=t&gid=' + initialFoldGid + '&os=vp:bm:0~' + initialFoldGid + '~&index=1&opt=Login&email=myspace_' + viewerId + '&password=myspace_' + viewerId + '&referer=myspace';
        initialFoldGid = '';
        }
        currentFeedURL = path + 'app_login?da=pc&pg=h&index=1&opt=Login&email=myspace_' + viewerId + '&password=myspace_' + viewerId + '&referer=myspace';
    }
    if(doLoadIFrame != false)
    {
            var iframe_src=currentFeedURL;
            if(sharePageUrl!='')
                iframe_src=sharePageUrl;
            var target = document.getElementById('leftPart1');
            var iframesrc='<iframe name="myfeedFrame" onload="document.getElementById(\'friendLoading\').style.display=\'none\'" id="topicsFrame" frameborder="0" scrolling="no" width="778px" height="870px" src="'+iframe_src+'"/>';
            var friendFeedLink = '<div id="friendLoading">Loading ' + friendName + '\'s Feed... </div>';
            target.innerHTML=friendFeedLink + iframesrc;
    }
    document.getElementById("mytopics").href = currentTopicURL;
    document.getElementById("myfeed").href = currentFeedURL;
}

function launchFriendFeed(profileURL, friendName, friendId)
{
    document.getElementById('myspace').src= path+"topic.html?da=pc&pg=f&vtapid=myspace_" + friendId + "&msfurl=" + escape(profileURL) + '&friendName=' + friendName;
    //showVTap();
    return;    


    /**** code for nulti-tabs UI ********/
    var tab = getTabFromPool();
    var liId = tab[0];
    var tabId = tab[1];
    var iFrameCId = tabId + "-div";
    var liSpanId = liId + "-span";

    document.getElementById(iFrameCId).innerHTML = '<iframe FRAMEBORDER="0" scrolling="no" id="friendSpace" width="800px" height="870px" src="'+path+'topic.html?da=pc&pg=f&vtapid=myspace_' + friendId + '&msfurl=' + escape(profileURL) + '"/>';
                document.getElementById(liSpanId).innerHTML = friendName + "'s vTap &nbsp"
                document.getElementById(liId).style.visibility = "visible";
                document.getElementById(liId).style.width='auto';
                
                //hideAllTabs();

                document.getElementById(liId).className = "ui-tabs-selected";
                document.getElementById(tabId).className = "ui-tabs-container";
                
                document.getElementById('friends-li3').className = "";
                document.getElementById('friends-tab3').className = "ui-tabs-container ui-tabs-hide";
                document.getElementById('friends-tab3').style.display = "";

}


function dataLoadCallbackForFriends(data) {
    myspaceFriendsData = data;
    //
    var myself=true; //b'coz we are hiliting default my image
    var tmpString = '<div class="friend_hilite" >';
    tmpString += '<img onclick="renderFriendFeed(this, \'' + viewerProfileURL + '\',\'' + viewerName + '\',\'' + viewerId + '\', true );" src="' + viewerThumbnailURL + '" width="106" height="75"></img>';
    tmpString += '<br>' + viewerName;
    tmpString += '</div>';
    var tmpHtml = tmpString;
    if(myspaceFriendsData) {
        var friendsData = myspaceFriendsData.get(opensocial.DataRequest.Group.VIEWER_FRIENDS).getData();
        var friendsArray = friendsData.asArray();
        for(var ii=0; ii<friendsArray.length; ii++)
        {
            var friendData = friendsArray[ii];
            var ID = friendData.getField(opensocial.Person.Field.ID);
            var friendName = friendData.getField(opensocial.Person.Field.NAME);
            //var friendName = friendData.getFieldOld(opensocial.Person.Field.NAME);
            var friendThumbnailUrl = friendData.getField(opensocial.Person.Field.THUMBNAIL_URL);
            var friendPageURL = friendData.getField(opensocial.Person.Field.PROFILE_URL)
            var tmpString = '<div class="friend" >';
            tmpString += '<img onclick="renderFriendFeed(this, \'' + friendPageURL + '\',\'' + friendName + '\',\'' + ID + '\');" src="' + friendThumbnailUrl + '" width="106" height="75"></img>';
            tmpString += '<br>' + friendName;
            tmpString += '</div>';
            tmpHtml += tmpString
        }
        updateFriendsInVtap(friendsArray);
        friendDataDone = true;
    }
    document.getElementById('leftPart3').innerHTML = '<div style="clear:both; height:1px; overflow:hidden">__</div>' + tmpHtml + '<div style="clear:both; height:1px; overflow:hidden">__</div>';
    /*var firstFriendElem = getChildrenByAttribute(document.getElementById("leftPart3"), "className", "friend_hilite")[0] ;
    var firstFriendElemImg = firstFriendElem.getElementsByTagName("img")[0];
    if(firstTime == false) 
        renderFriendFeed(firstFriendElemImg, viewerProfileURL, viewerName, viewerId, myself, true);
    else 
        //started showing harvested topics; if it is empty then redirection happens auto in that iframe; no need show feed page 
        //hence passing doLoadIFrame false that will update just topics,feed links
        renderFriendFeed(firstFriendElemImg, viewerProfileURL, viewerName, viewerId, myself, false);*/
    /*
    if(myspaceFriendsData)
        renderFriendFeed(firstFriendElemImg, viewerProfileURL, viewerName, viewerId, true, false);
    else
        renderFriendFeed(firstFriendElemImg, viewerProfileURL, viewerName, viewerId, true, true);
    */
    setTimeout("checkPrevNext()", 100);
}

function updateFriendsInVtap(friendsArray)
{
    var friends_list='';
    for(var ii=0; ii<friendsArray.length; ii++)
    {
        var friendData = friendsArray[ii];
        var ID = friendData.getField(opensocial.Person.Field.ID);
        var friendName = friendData.getField(opensocial.Person.Field.NAME);
        if(ID != '' && friendName != '')
            friends_list+='myspace_'+ID+':'+friendName+',';
    }

    if(friends_list == '') return;
    friends_list='myfriends#'+friends_list;
    os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
    os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
    os_params[gadgets.io.RequestParameters.POST_DATA] = "opt=updatetls&id=" + viewerId + "&name=" + viewerName + "&tls=" + friends_list;
    try {
        gadgets.io.makeRequest(path+"myspace.html", function(content, url, error) {}, os_params);
    }
    catch(er){
        trace('Error: ' + er.message);
    }
}

function showMyFriends() {
    //hideAllTabs();
    /*
    document.getElementById("friends-li3").className = "ui-tabs-selected";
    document.getElementById("tabList").style.display = "";
    document.getElementById("friends-tab3").className = "ui-tabs-container";
    document.getElementById("friendMsg").style.display="block";
    */
    if ( friendDataDone == false) {
        var os = opensocial.Container.get();
        var dataReqObj = os.newDataRequest();

        var param = {};
        param[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = 
            [opensocial.Person.Field.ID,
            MyOpenSpace.Person.Field.HEROES,
            MyOpenSpace.Person.Field.MOVIES,
            MyOpenSpace.Person.Field.MUSIC,
            MyOpenSpace.Person.Field.TELEVISION,
            MyOpenSpace.Person.Field.BOOKS];

        var viewerFriendsReq = os.newFetchPeopleRequest(opensocial.DataRequest.Group.VIEWER_FRIENDS, param);
        dataReqObj.add(viewerFriendsReq);
        dataReqObj.send(dataLoadCallbackForFriends);
    }
                else
                     setTimeout("checkPrevNext()", 100);
}

function showMyFeed(elem, event, doForce, doOnlyTopics)
{
    if(!firstTime)
    {
        var myself=true; //b'coz we are hiliting default my image
        var tmpString = '<div class="friend_hilite" >';
        tmpString += '<img onclick="renderFriendFeed(this, \'' + viewerProfileURL + '\',\'' + viewerName + '\',\'' + viewerId + '\', true );" src="' + viewerThumbnailURL + '" width="106" height="75"></img>';
        tmpString += '<br>' + viewerName;
        tmpString += '</div>';
        tmpString += '<div> Loading friends... </div>';
        var tmpHtml = tmpString;
        document.getElementById('leftPart3').innerHTML = '<div style="clear:both; height:1px; overflow:hidden">__</div>' + tmpHtml + '<div style="clear:both; height:1px; overflow:hidden">__</div>';
        var firstFriendElem = getChildrenByAttribute(document.getElementById("leftPart3"), "className", "friend_hilite")[0] ;
        var firstFriendElemImg = firstFriendElem.getElementsByTagName("img")[0];
        renderFriendFeed(firstFriendElemImg, viewerProfileURL, viewerName, viewerId, myself, true);
        setTimeout("showMyFriends()", 5000);
        return;
    }

     //MMS: Clean up this code
     if(doOnlyTopics == true)
     {
         showMyTopics();
         //document.getElementById('mytopics').style.display = "none";
         return;
     }

     if(!firstTime && !doForce)
     {
           launchIFrame();
           showVTap();
           return;
     }
     var os_params = {};
     var tls = getTLS();
     
    os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
    os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
    os_params[gadgets.io.RequestParameters.POST_DATA] = "opt=updatetls&id=" + viewerId + "&name=" + viewerName + "&tls=" + tls;
    //alert( "Requesting update with tls = " + tls);

    try {
        gadgets.io.makeRequest(
                path+"myspace.py", 
                function(content, url, error) 
                {
                    //var left2 = document.getElementById("left2");
                    //if(left2)
                    //    left2.id = "left1";
                    launchIFrame();
                    //elem.style.display="none";
                    elem.value = "continue"
                    document.getElementById("actionTitle").innerHTML = "My Feed";
                    
                }, os_params);
    elem.value="loading...";
    document.getElementById("actionTitle").innerHTML = "Loading My Feed...";
    document.getElementById('leftPart1').innerHTML = "Loading vTap..."
                 if(doOnlyTopics != true)
                     showVTap();
                }
    catch(er){
        trace('Error: ' + er.message);
        }
}

function hideAllTabs()
{
                    document.getElementById("harvest-li1").className = "";
                    document.getElementById("friends-li3").className = "";
                    document.getElementById("friendsVTap-li4").className = "";
                    document.getElementById("friends1VTap-li5").className = "";
                    document.getElementById("friends2VTap-li6").className = "";
                    document.getElementById("vtap-li2").className = "";
                    document.getElementById("harvest-tab1").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("harvest-tab1").style.display = "";
                    document.getElementById("friends-tab3").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("friends-tab3").style.display = "";
                    document.getElementById("friendsVTap-tab4").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("friendsVTap-tab4").style.display = "";
                    document.getElementById("friends1VTap-tab5").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("friends1VTap-tab5").style.display = "";
                    document.getElementById("friends2VTap-tab6").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("friends2VTap-tab6").style.display = "";
                    document.getElementById("vtap-tab2").className = "ui-tabs-container ui-tabs-hide";
                    document.getElementById("vtap-tab2").style.display = "";
document.getElementById("friendMsg").style.display="none";
}

function showVTap()
{
    return;
                    //hideAllTabs();
                    document.getElementById("instruction").style.display = "none";
                    document.getElementById("vtap-li2").className = "ui-tabs-selected";
                    document.getElementById("tabList").style.display = "";
                    document.getElementById("vtap-tab2").className = "ui-tabs-container";
}

function showFriendsTab()
{
    return;
    //hideAllTabs();
    document.getElementById("friends-li3").className = "ui-tabs-selected";
    document.getElementById("tabList").style.display = "";
    document.getElementById("friends-tab3").className = "ui-tabs-container";
}

function launchIFrame(friendName)
{
    var friendFeedLink = '';
    if(friendName)
        if(friendName == "me")
            var friendFeedLink = '<div id="friendLoading">Loading My Feed... </div>';
        else
            var friendFeedLink = '<div id="friendLoading">Loading ' + friendName + '\'s topics... </div>';
    var pgpart = 'pg=h';
    if (initialClipGid.length > 1) {
        pgpart = 'pg=v&os=vp:mi:0~' + initialClipGid;
        initialClipGid = '';
    }
    else if (initialFoldGid.length > 1) {
        pgpart = 'pg=t&gid=' + initialFoldGid + '&os=vp:bm:0~' + initialFoldGid + '~';
        initialFoldGid = '';
    }
    document.getElementById('leftPart1').innerHTML = friendFeedLink + '<iframe onload="showVTap()" name="myfeedFrame" FRAMEBORDER="0" scrolling="no" id="myspace" width="800px" height="870px" src="'+path+'app_login?da=pc&' + pgpart + '&index=1&opt=Login&email=myspace_' + viewerId + '&password=myspace_' + viewerId + '&referer=myspace"/>';
}

function showMyTopics()
{
    //hideAllTabs()
    /*
    document.getElementById("harvest-li1").className = "ui-tabs-selected";
    document.getElementById("harvest-li1").style.visibility = "visible";
        document.getElementById("harvest-li1").style.width = "auto";
        document.getElementById("tabList").style.display = "";
    document.getElementById("harvest-tab1").className = "ui-tabs-container";
    */
    if (mytopicDone == false) {
        var textlist;
        textlist = getTextlistFromViewer( viewer);
        //document.getElementById('leftPart2').innerHTML = "<img src='http://www.viphaklay.com/jquery/spinner.gif'/>" + "<img src='http://www.viphaklay.com/jquery/spinner.gif'/>" ;
        var tlsList;
        mytopicDone = true;
        tlsList = getTlsList( textlist, true);
    }
    showMyFriends();
}


var html = '';
var heading = '';
var aid = '';
var sid = '';
var firstTime = false;
//var firstTime = true;
var mytopicDone = false;
var friendDataDone = false;
var myspaceData;
var viewer;

function app_login(content, url, error)
{ 
    if(error!=true) {
        var arr = content.text.split('#<>#');   
        if ( 3 == arr.length ) { 
            aid = arr[0]; 
            sid = arr[1]; 
            if ( arr[2].indexOf('True') != -1) 
            { 
                firstTime = true; 
            } 
        } 
    }
    if (firstTime) { 
        renderForOtherTimes( myspaceData, viewer); 
    } 
    else { 
        renderForFirstTime( myspaceData, viewer); 
    }

    //showMyFriends();
}

function isFirstTime( id, name) {
    os_params = {};
    os_params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
    os_params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
    os_params[gadgets.io.RequestParameters.POST_DATA] = "opt=isfirsttime&id=" + id + "&name=" + name;

    var fnStr = "gadgets.io.makeRequest(\""+path+"myspace.html\", app_login, os_params)";
    eval(fnStr);

    //setTimeout(fnStr, 100); 

}

function getCookie(c_doc,c_name)
{
    if (c_doc.cookie.length>0)
    {
        var c_start=c_doc.cookie.indexOf(c_name + "=")
        var c_end;
        if (c_start!=-1)
        { 
            c_start=c_start + c_name.length+1 
            c_end=c_doc.cookie.indexOf(";",c_start)
            if (c_end==-1) c_end=c_doc.cookie.length
            return unescape(c_doc.cookie.substring(c_start,c_end))
        } 
    }
    return ""
}

function setCookie_ex(c_doc,c_name,value,expiredays,path,domain)
{
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    var cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) + ((path==null)?"":";path="+path) +((domain==null)?"":";domain="+domain)
    c_doc.cookie=cookie;
}

function setCookie(c_doc,c_name,value,expiredays)
{
    setCookie_ex(c_doc,c_name,value,expiredays,'/',null);
}

function getSetCookie( c_doc, c_name, c_name2) {
    var tmpVtapGid = getCookie( c_doc, c_name);
    var tmpVtapFold = getCookie( c_doc, c_name2);
    if (initialClipGid.length <= 1 && tmpVtapGid.length > 1) {
        initialClipGid = tmpVtapGid;
    }
    else if (initialFoldGid.length <= 1 && tmpVtapFold.length > 1) {
        initialFoldGid = tmpVtapFold;
    }
    setCookie( c_doc, c_name, '', 1);
    setCookie( c_doc, c_name2, '', 1);
}

function init() {
    var params = gadgets.views.getParams();
    if ('undefined'===typeof(params) || 'undefined' === typeof(params['gid']) || 'undefined' === typeof(params['fold']))
    {
    }
    else
    {
        initialClipGid = params['gid'];
        initialFoldGid = params['fold'];
        initialAppID = params['appid'];
    }

    MYOS_TRACE = true; 
    var os = opensocial.Container.get();
    var dataReqObj = os.newDataRequest();

    var param = {};
    param[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS] = 
        [opensocial.Person.Field.ID,
        MyOpenSpace.Person.Field.HEROES,
        MyOpenSpace.Person.Field.MOVIES,
        MyOpenSpace.Person.Field.MUSIC,
        MyOpenSpace.Person.Field.TELEVISION,
        MyOpenSpace.Person.Field.BOOKS];

    var viewerReq = os.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER, param);
    dataReqObj.add(viewerReq);
    dataReqObj.send(dataLoadCallback);
    document.getElementById("leftPart1").innerHTML = '<iframe onload="showVTap()" name="myfeedFrame" FRAMEBORDER="0" scrolling="no" id="myspace" width="800px" height="870px" />'
}

function getTextlistFromViewer( viewer) {
    var heroes = viewer.getField(MyOpenSpace.Person.Field.HEROES);
    var tv = viewer.getField(MyOpenSpace.Person.Field.TELEVISION);
    var movies = viewer.getField(MyOpenSpace.Person.Field.MOVIES);
    var music = viewer.getField(MyOpenSpace.Person.Field.MUSIC);
    var books = viewer.getField(MyOpenSpace.Person.Field.BOOKS);
    //
    var textlist = '';
    textlist += movies + '<>movie#<>#';
    textlist += music + '<>music#<>#';
    textlist += tv + '<>tv#<>#';
    textlist += books + '<>book';
    return textlist
}

function getTlsList( textlist, doOnlyTopics) {
    var tlsList = '';
    var os_params2 = {};
    os_params2 [opensocial.ContentRequestParameters.METHOD] = opensocial.ContentRequestParameters.MethodType.POST;
    os_params2 [opensocial.ContentRequestParameters.CONTENT_TYPE] = opensocial.ContentRequestParameters.ContentType.HTML;
    os_params2 [opensocial.ContentRequestParameters.POST_DATA] = "textlist=" + escape(textlist) + "&debug=True&render=myspace&vtapid=myspace_"+viewerId;
    //os_params2 [opensocial.ContentRequestParameters.POST_DATA] = "textlist=" + escape(textlist);

    var target = document.getElementById('leftPart1');
    if(firstTime)
        var url = path+"gettls?textlist=" + escape(textlist) + "&debug=True&firstTime=1&render=myspace&vtapid=myspace_"+viewerId+"&currId="+viewerId + "&friendName=" + viewerName;
    else
        var url = path+"gettls?textlist=" + escape(textlist) + "&debug=True&render=myspace&vtapid=myspace_"+viewerId+"&currId="+viewerId + "&friendName=" + viewerName;
    var iframesrc='<iframe name="myfeedFrame" onload1="this.setAttribute(\'height\', \'870px\')" id="topicsFrame" scrolling="no" frameborder="0" width="778px" height="870px" src="'+url+'"/>';
    target.innerHTML=iframesrc;
    //document.getElementById('harvest-li1-span').innerHTML = "My vTap Profile"
    //document.getElementById('loading').style.display = 'none';
    if(!firstTime) {        
        showMyFeed(document.getElementById('continue'), null, false, doOnlyTopics);
        document.getElementById('instruction').style.display = "none";
    }
    else
    {
         showMyTopics();
    }
    /*
    try{
        opensocial.Container.get().makeRequest(
                path+"gettls", 
                function(content, url, error) 
                {
                document.getElementById('harvest-li1-span').innerHTML = "My Topics"
                document.getElementById('loading').style.display = 'none';
                
                target.innerHTML = content;
                }, os_params2);
                if(!firstTime) {        
                    showMyFeed(document.getElementById('continue'), null, false, doOnlyTopics);
                    document.getElementById('instruction').style.display = "none";
                }
        

    }
    catch(er){
        target.style.backgroundColor = '#f00';
        target.style.color = '#fff';
        target.innerHTML = er.message;  
    }
    */
    return tlsList;
}

function renderForFirstTime( data, viewer) {
    if(!firstTime) {        
        showMyFeed(document.getElementById('continue'), null, false);
        //showMyFeed(document.getElementById('continue'), null, false, doOnlyTopics);
        document.getElementById('instruction').style.display = "none";
    }
    
    document.getElementById('heading').innerHTML = heading;
    if(firstTime)
    {
        document.getElementById('instruction').style.display = "none";//"block";
        showMyTopics(true);
    }
    document.getElementById('heading').innerHTML = 'hi ' + viewer.getDisplayName();
}

function renderForOtherTimes( data, viewer) {
    renderForFirstTime(data, viewer, false);
    //showMyFeed(document.getElementById('continue'), null);
    return;
}

function dataLoadCallback(data) {
    myspaceData = data;
    viewer = data.get(opensocial.DataRequest.PersonId.VIEWER).getData();
    if (!viewer)
    {
        //alert("Oops!!! Please install our app first.");
        var appInstallationProfileID = appProfileDict[initialAppID]; 
        window.parent.location = appInstallationPage + appInstallationProfileID;
        //window.location = appInstallationPage + appInstallationProfileID;
    }
    else
    {
        getSetCookie( document, 'vtap_gid', 'vtap_fold');
    }
    viewerId = viewer.getField(opensocial.Person.Field.ID);
    viewerName = viewer.getDisplayName();
    viewerThumbnailURL = viewer.getField(opensocial.Person.Field.THUMBNAIL_URL);
    viewerProfileURL = viewer.getField(opensocial.Person.Field.PROFILE_URL);

    //
    isFirstTime( viewerId, viewerName);
    //
    //dataLoadCallbackForFriends(null);
}

gap = 0;
currentTop = 0;

function getOffset(p, c, doSetGap)
{
    return currentTop;
    if(navigator.userAgent.indexOf('MSIE')>=0)
        var top = c.offsetTop;
    else
        var top = c.offsetTop - p.offsetTop;

    if(doSetGap == true)
        gap = top;

    return top-gap;
}

function checkNext(p, c)
{
    var top = getOffset(p, c);

    if(c.offsetHeight + top <= p.offsetHeight )
        return false;
    else
        return true;
}

function checkPrevNext(elem, event)
{
    p = document.getElementById("leftPart3p");
    c = document.getElementById("leftPart3");
    c.style.top = "0px";
    currentTop = 0;
    getOffset(p, c, true);

    if(checkPrev(p, c))
        showPrev();
    else
        hidePrev();

    if(checkNext(p, c))
        showNext();
    else
        hideNext();
    
}

function checkPrev(p, c)
{
    var top = getOffset(p,c);
    if(top < 0)
        return true;
    else
        return false;
}

function clickNext(elem, evt)
{
    if(elem.parentNode.className != "hilite")
        return;
    var top = getOffset(p,c);
    var newTop = top - p.offsetHeight;
    currentTop = newTop;
    c.style.top = newTop + "px";
    if(checkNext(p, c))
        showNext();
    else
        hideNext();
    showPrev();
}

function clickPrev(elem, evt)
{
    if(elem.parentNode.className != "hilite")
        return;
    var top = getOffset(p,c);
    var newTop = top + p.offsetHeight;
    currentTop = newTop;
    c.style.top = newTop + "px";
    if(checkPrev(p, c))
        showPrev();
    else
        hidePrev();
    showNext();
}

function showNext()
{
    document.getElementById("nextLink").parentNode.className = "hilite";
}

function showPrev()
{
    document.getElementById("prevLink").parentNode.className = "hilite";
}


function hideNext()
{
    document.getElementById("nextLink").parentNode.className = "";
}

function hidePrev()
{
    document.getElementById("prevLink").parentNode.className = "";
}

/* Tab Pool Logic for last 3 used tabs */

//global map-Array for storing pool of tabs
// You can append to this list to increase/decrease the no of tabs available for pool

//The array is like this -->
//   li-id, tab-id, bAvailability, timestamp
var gTabPool = 
[
  ["friendsVTap-li4",   "friendsVTap-tab4",  true, 0],
  ["friends1VTap-li5", "friends1VTap-tab5", true, 0],
  ["friends2VTap-li6", "friends2VTap-tab6", true, 0]
]

function getTabFromPool()
{
    var ii = 0;
    //Assume the first one is the LRU tab 
    var ret = 0;
    for(ii=0; ii<gTabPool.length; ii++)
    {
        var iTab = gTabPool[ii];
        //Return the tab which is available
        if(iTab[2])
        {
            ret = ii;
            break;
        }
        //Maintain the minimum timestamp from the tabPool
        if(iTab[3]<gTabPool[ret][3])
            ret = ii;
    }
    gTabPool[ret][2] = false;
    var timeStamp = (new Date()).getTime();
    gTabPool[ret][3] = timeStamp;
    return gTabPool[ret];
}

function putTabToPool(liId)
{
    var ii = 0;
    for(ii=0; ii<gTabPool.length; ii++)
    {
         var iTab = gTabPool[ii];
         if(iTab[0] == liId)
         {
             iTab[2] = true;
             iTab[3] = 0;
         }
    }
}

/*Tab Pool Code ends here*/

function closeFriendsTab(liId, tabId)
{
    document.getElementById(liId).style.visibility='hidden';
    document.getElementById(liId).style.width='1px';
    showMyFriends();
    putTabToPool(liId);
    return cancelThisEvent(event);
}

function cancelThisEvent(evt)
{
if(!evt)
return;
if(evt && evt.target && evt.target.type=='submit')
return;
if(evt && evt.stopPropagation)
evt.stopPropagation();

if(evt && evt.preventDefault)
evt.preventDefault();

evt.cancelBubble = true;

return false;
}
function loadPage()
{
    url=frames['friendTopicsFrame'].location.href;
}
init();

