function display_rs(rs_data) {
    var rs_str = '';
    for (var i = 0; i < rs_data.length; i++) {
        rs_str += '<li class="first"><a href="' + rs_data[i].href_url + '" class="first"><span>' + rs_data[i].term + '</span></a></li>';
    }
    document.getElementById('rs_container').innerHTML = '<ul>'+rs_str+'</ul>';
}

function set_sb_tokens() {
    if(token) {
        document.forms.frm_search.ltk.value = token;
    }
    if(search_token) {
        document.forms.frm_search.stk.value = search_token;
    }
}

function get_ad_ratings(ad) {
    var ad_extensions = '';
    if (typeof(ad.seller_ratings) != 'undefined') {
        var seller_rating = ad.seller_ratings;
        ad_extensions += '<div class="ad_rating">';
        ad_extensions += '<div class="ad_rating_text">' + seller_rating.advertiser_info + '</div>';
        for (var j=0; j < 5; j++) {
            var star = 'e';
            if (seller_rating.rating > 0) {
                if (seller_rating.rating >= 1) {
                star = 'f';
                } else {
                star = 'p';
                }
            }
            seller_rating.rating--;
            ad_extensions += '<div class="ad_rating_star' + star + '"></div>';
        }
        ad_extensions += ' (<a href="' + seller_rating.source_url + '" target="_blank">' + seller_rating.review_count + '</a>)';
        ad_extensions += '<div class="clearlr"></div>';
        ad_extensions += '</div>';
    }
    return ad_extensions;
}

function get_ad_sitelinks(ad) {
    var ad_extensions = '';
    if (typeof(ad.sitelinks) != 'undefined') {
        ad_extensions += '<div class="ad_sitelinks">';
        var ad_sitelinks = new Array('', '');
        for (var j=0; j < ad.sitelinks.length; j++) {
            var sitelink = ad.sitelinks[j];
            ad_sitelinks[j % 2] += '<a href="' + sitelink.catcher_url + '" target="_blank">' + sitelink.link_text + '</a><br />';
        }
        ad_extensions += '<div class="sitelinks_col1">' + ad_sitelinks[0] + '</div>';
        ad_extensions += '<div class="sitelinks_col2">' + ad_sitelinks[1] + '</div>';
        ad_extensions += '<div class="clearlr"></div>';
        ad_extensions += '</div>';
    }
    return ad_extensions;
}

function display_ads(google_ads_array,iba_url,is_ads_repeat) {
    var ads_string = '';  
    for (var i = 0; i < google_ads_array.length; i++) {
        var start = '<li>';
        var end = '</li>';
        var ad_title = '<div><a class="title" href="' + google_ads_array[i].catcher_url + '" target="_blank">' + google_ads_array[i].ad_title + '</a></div>';
        var ad_link = '<a class="url" href="' + google_ads_array[i].catcher_url + '" target="_blank">' + google_ads_array[i].visible_url + '</a>';          
        var ad_description = '<span class="abstract">';
        if (typeof(ad_format) != 'undefined' && ad_format == 2) {
            ad_description += '<span class="ad_urlline">' + ad_link + '</span>';
            ad_link = '';
        }
        ad_description += google_ads_array[i].ad_description + '</span><br>';
        var ad_ratings = get_ad_ratings(google_ads_array[i]);
        var ad_sitelinks = get_ad_sitelinks(google_ads_array[i]);
        ads_string += start + ad_title + ad_description + ad_ratings + ad_link + ad_sitelinks + end;
    }
    
    // display
    if(is_ads_repeat) { 
        target_ads = 'ads_repeat';
    }
    else {
        target_ads = 'ads';
    }

    var target_ads_container = target_ads + '_container';
    var target_ads_title = target_ads + '_title';

    document.getElementById(target_ads_container).innerHTML  = '<ul>'+ads_string+'</ul>';
    if(iba_url) {
        var sponsored_label = document.getElementById(target_ads_title).innerHTML;
        document.getElementById(target_ads_title).innerHTML = '<a href="' + iba_url + '" target="_blank">' + sponsored_label + '</a>';
    }
    document.getElementById(target_ads).style.display = 'block';
    document.getElementById("portal").style.display = 'none';
}

function display_ws(google_ws_array) {
    if(google_ws_array.length > 0) { 
        var ws_string = '';
        for (var i = 0; i < google_ws_array.length; i++) {
            var start = '<li>';
            var end = '</li>';

            var ws_title = '<a class="title" href="' + google_ws_array[i].ws_url + '" target="_blank">' + google_ws_array[i].ws_title + '</a><br>';
            var ws_description = '<span class="abstract">' + google_ws_array[i].ws_description + '</span><br>';
            var ws_link = '<a class="url" href="' + google_ws_array[i].ws_url + '" target="_blank">' + google_ws_array[i].ws_url + '</a><br>';
            
            ws_string += start + ws_title + ws_description + ws_link + end;
       }
        // display
        document.getElementById("web_container").innerHTML  = '<ul>'+ws_string+'</ul>';
    }

    document.getElementById("web").style.display = 'block';
}

function display_portal(pq, tc_array, pc_array) {
    var lpq = pq.replace(/&tk=[^&]*(?:&|$)/, '&');
    lpq = lpq.replace(/&$/, '');
    var pc_string = '';
    
    if(MAX_CAT_COUNT > 0 && MAX_CAT_COUNT <= tc_array.length)
        cat_count = MAX_CAT_COUNT;
    else
        cat_count = tc_array.length;

    // popular categories
    for (var i = 0; i < cat_count; i++) {
        var pc_href = lpq + '&aq=' + encodeURIComponent(tc_array[i]) + '&tk=' + token;
        var pc_link = '<a href="' + pc_href + '" class="first">' + tc_array[i] + '</a>';
        
        pc_string += '<li class="first">'+pc_link+'</li>';
    }

    // display
    document.getElementById("pc_container").innerHTML = '<ul>'+pc_string+'</ul>';
    document.getElementById("portal").style.display = 'block';
    document.getElementById("ads").style.display = 'none';
}

function display_bottom_categories(pq, tc_array) {
    var lpq = pq.replace(/&tk=[^&]*(?:&|$)/, '&');
    lpq = lpq.replace(/&$/, '');
    var top_pc_string = '';
    
    if(MAX_BAR_COUNT > 0 && MAX_BAR_COUNT <= tc_array.length)
        ad_count = MAX_BAR_COUNT;
    else
        ad_count = tc_array.length;

    // popular categories
    for (var i = 0; i < ad_count; i++) {
        var pc_href = lpq + '&aq=' + encodeURIComponent(tc_array[i]) + '&tk=' + token;
        var pc_link = '<a href="' + pc_href + '">' + tc_array[i] + '</a>';
        
        if (i == 0)
            top_pc_string += '<li class="first">';
        else
            top_pc_string += '<li>';
        top_pc_string += pc_link + '</li>';

    }

    // display
    document.getElementById("bottom_pc_container").innerHTML = '<ul>\n' + top_pc_string + '\n</ul>';
}

function display_content() {
    // set tokens for SB
    set_sb_tokens();

    // display rs
    display_rs(rs_data);

    // ads
    if(!force_portal) {
        display_ads(google_ads_array, iba_url, 0);
        if(gt == 'AFS' && google_ws_array) {
            display_ws(google_ws_array);
        }
        if(gt == 'AFS' && google_ads_repeat_array && google_ads_repeat_array.length > 0) {
            display_ads(google_ads_repeat_array, '', 1);
        }

    }
    //  portal
    else {
        display_portal(pq, tc_array, pc_array);
    }
    
    //popular categories
    display_bottom_categories(pq, tc_array);
}

// content display call
display_content();
