
var RENDER_STYLES = {raw:'raw',rendered:'rendered'};

var ggCurrentSerial = 0;
var ggCurrentResponseData;
var ggCurrentRenderStyle = RENDER_STYLES.raw;
var ggRenderTarget;
var ggPreRender;
var ggResponseCache = [];


function checkUiForRenderType()
{
    ggCurrentRenderStyle = $ripl('chkDetail').selectedValue();//  $RF('chkRender');
}

function prerenderPlayground()
{
    ggRenderTarget = $('dynamicArea');
    checkUiForRenderType();    
}

function ajax(url, options, successFunc,method)
{
    $('dynamicArea').update();
    var pMethod = 'get';
    if (method == 'post') pMethod = 'post';
    options.cachebust = new Date().getTime();

    new Ajax.Request(url, 
            {
            method:pMethod,
            requestHeaders: {Accept: 'application/json'},
            parameters:options,
            evalJS:false,
            evalJSON:false,
            onComplete: successFunc});
}

function getData()
{
    ggCurrentSerial++;
    var pUrl = $F('apiString');
    ggResponseCache[ggCurrentSerial] = {renderType:methodDetails.currentMethod.responseType};
    ggResponseCache[ggCurrentSerial].ajax = ajax(pUrl,{serial:ggCurrentSerial,crossSite:true},setData);        
}


function setData(response)
{
    ggCurrentResponseData = response;
    renderData();
}
function renderText(inText)
{
    try
    {
        $('dynamicArea').style.whiteSpace='pre';
        $('dynamicArea').style.whiteSpace='pre-wrap';
    }
    catch (e)
    {
    }
    $('dynamicArea').style.overflow="auto";
    $('dynamicArea').update(inText);
} 
function renderData()
{
    if (!ggCurrentResponseData) return;
    pRenderStyle = $ripl('chkRender').selectedValue();;
    var pUseXML = ggCurrentResponseData.responseXML;
    if (window.ActiveXObject)
    {
        if (ggCurrentResponseData.responseText.ripl_Trim().charAt(0) == '<')
        {
            pUseXML = true;
        }
        else
        {
            pUseXML = false;
        }
    }

    
    if (pUseXML)
    {
        renderText(ggCurrentResponseData.responseText.escapeHTML())
    } 
    else
    {
        $('dynamicArea').style.whiteSpace='normal';
        
 
        var pJson = ggCurrentResponseData.responseText.evalJSON();
        if ((pJson['serial']) && (pJson['serial'] != ggCurrentSerial)) return;
        ggResponseCache[ggCurrentSerial].json = pJson;
        
        if ((pJson['error']) || (pRenderStyle == 'raw'))
        {
//            $('dynamicArea').update(ggCurrentResponseData.responseText);
            renderText(ggCurrentResponseData.responseText.escapeHTML())
            
        }
        else if (pJson['html'])
        {
            $('dynamicArea').update(pJson['html']);
            return;
        }                   
        else if (pJson['comments'])
        {
            renderText(ggCurrentResponseData.responseText.escapeHTML())
        }            
        else if (pJson['feedItems'])
        {
            var pFeedList = new ripl.coreObjects.EventList();
        	pFeedList.addObjects(pJson.feedItems);
        	pFeedList._contentItems.addObjects(pJson.content);
        	pFeedList._userItems.addObjects(pJson.users);
        	pFeedList.displayOptions.targetstyle='usereventlist_cards'
        	pFeedList.displayOptions.renderTarget = $ripl('dynamicArea');
        	pFeedList.render();
        }
        else if (pJson['contentItems'])
        {
            var pContentList = new ContentList();
            pContentList.addObjects(pJson['contentItems']);
            if (ggResponseCache[ggCurrentSerial].renderType == API_RESPONSE_RANKEDCONTENTLIST)
            {
                pContentList.options.sortKey = 'rank';
            }   
            else if (ggResponseCache[ggCurrentSerial].renderType == API_RESPONSE_INDEXEDCONTENTLIST)
            {
                pContentList.options.sortKey = 'count';
            }
            else if (ggResponseCache[ggCurrentSerial].renderType == API_RESPONSE_RATEDCONTENTLIST)
            {
                pContentList.options.sortKey = 'rating';
            }
            pContentList.renderTo('dynamicArea');
        }
        else if (pJson['contentItem'])
        {
            var pContentList = new ContentList();
            pContentList.addObject(pJson['contentItem']);
         
            pContentList.renderTo('dynamicArea');
        }            
        else if (pJson['users'])
        {
            var pUsers = new UserList();
            pUsers.addObjects(pJson['users']);
            if (ggResponseCache[ggCurrentSerial].renderType == API_RESPONSE_RANKEDUSERLIST)
            {
                pUsers.options.sortKey = 'rank';
            }                
            pUsers.renderTo('dynamicArea');
        }
        else if (pJson['user'])
        {
            var pUsers = new UserList();
            pUsers.addObject(pJson['user']);
            pUsers.renderTo('dynamicArea');
        }
        else if (pJson['items'] != null)
        {
            renderText(ggCurrentResponseData.responseText.escapeHTML())
        }
        else if (pJson['value'] != null)
        {
            renderText(ggCurrentResponseData.responseText.escapeHTML())
        }
        else if (pJson['success'] != null)
        {
            renderText(ggCurrentResponseData.responseText.escapeHTML())
        }
        else
        {
            $('dynamicArea').update();
        }
    }
}