﻿/// <reference path="jquery-1.4.1.min.js" />
// Create a MaltParameters object,
// and initialize it with default values.
function createMaltParameters() {
    var maltParameters = new Encyclopedia4.Common.MaltParameters();
    maltParameters.DisplayPubLogo = true;
    maltParameters.IncludeReference = true;
    maltParameters.Docclass = DocClass_ALL;
    maltParameters.MaltSource = MaltType_REF;
    return maltParameters;
}

// Not used anymore
function getMalt(maltParameters, onMaltSucceeded, onMaltFailed) {
    Encyclopedia4.WebServices.MaltSvc.GetMalt(maltParameters, onMaltSucceeded, onMaltFailed, maltParameters);
}

function displayMalt(maltTableBody, maltRowTemplate, results, maltParameters, clientID) {
    for (var resultIndex in results.Results) {
        var result = results.Results[resultIndex];
        var row = maltRowTemplate.clone();
        row.attr('id', row.attr('id') + '_' + result.DocID);

        var docTitleLink = $gp(clientID, "DocTitleLink", row);
        docTitleLink.attr('id', docTitleLink.attr('id') + '_' + result.DocID);
        docTitleLink.html(result.Title);
        docTitleLink.attr('href', result.Url);

        var pubImg = $gp(clientID, "PubLogo", row);
        pubImg.attr('src', result.PublicationImage);
        pubImg.attr('title', result.Publication);
        pubImg.attr('alt', result.Publication);

        var freeLogoLink = $gp(clientID, "FreeLogoLink", row);
        freeLogoLink.attr('id', freeLogoLink.attr('id') + '_' + result.DocID);
        freeLogoLink.attr('href', result.Url);

        var freeImg = $('img', freeLogoLink);
        freeImg.attr('title', result.Publication);

        var readMoreLink = $gp(clientID, "ReadMoreLink", row);
        var byLine = $gp(clientID, "ByLine", row);

        if (maltParameters.IsYouTubeMalt) {
            freeLogoLink.attr('target', '_blank');
            docTitleLink.attr('target', '_blank');

            readMoreLink.css('display', 'none');
            readMoreLink.html('');
            
            byLine.css('display', 'none');
            
        }
        else
        {
            
            readMoreLink.attr('id', readMoreLink.attr('id') + '_' + result.DocID);
            readMoreLink.attr('href', result.Url);

            byLine.attr('id', byLine.attr('id') + '_' + result.DocID);
            byLine.html(result.ByLine + ' ');
        }

        var docContent = $gp(clientID, "DocContent", row);
        docContent.attr('id', docContent.attr('id') + '_' + result.DocID);
        docContent.html(result.Teaser + ' ');
        
        var rowHtml = row.html();
        
        // Follow / NoFollow
        if (!maltParameters.FreeArticleTopicPage
            && !maltParameters.IsTopicPagePremMalt
            && !maltParameters.NoFollow) {
            rowHtml = rowHtml.replace(/f_docrel/g, 'follow');
        }
        if (result.UseFullDocPage //|| maltParameters.NoFollow
        //|| maltParameters.IsTopicPagePremMalt || maltParameters.FreeArticleTopicPage
            ) {
            // f_docrel may already have been replaced with 'follow', that's ok.
            rowHtml = rowHtml.replace(/f_docrel/g, 'nofollow');
            rowHtml = rowHtml.replace(/f_readmorerel/g, 'nofollow');
        } else {
            rowHtml = rowHtml.replace(/f_docrel/g, '');
            rowHtml = rowHtml.replace(/f_readmorerel/g, '');
        }

        // Omniture LinkNames
        var docOmniture;
        if (maltParameters.IsReferenceMalt) {
            docOmniture = '.referenceMALT';
        } else if (maltParameters.FreeArticleTopicPage) {
            docOmniture = '.FreeMALT';
        } else {
            docOmniture = '.ArticleeMALT';
        }
        rowHtml = rowHtml.replace(/f_docomniture/g, maltParameters.PageName + docOmniture);
        var readMoreOmniture;
        if (maltParameters.FreeArticleTopicPage || maltParameters.FreeArticleEntryPage)
            readMoreOmniture = '.FreeMALT';
        else
            readMoreOmniture = '.CustomerClickOnSearchResult';
        rowHtml = rowHtml.replace(/f_readmoreomniture/g, maltParameters.PageName + readMoreOmniture);
        
        row.html(rowHtml);
        row.css('display', 'block');
        maltTableBody.append(row);

        // Read More link visibility (by name, all at once)
        if (maltParameters.FreeArticleTopicPage
            || maltParameters.FreeArticleEntryPage
            || maltParameters.IsWallPage) {
           $('a[name=' + clientID + '_ReadMore]').css('display', 'none');
        }
        
        // Image Visibility (by name, all at once)
        if (maltParameters.DisplayPubLogo) {
            $('td[name=' + clientID + '_PubLogo]').css('display', '');
        }
        if (maltParameters.FreeArticleTopicPage || maltParameters.FreeArticleEntryPage || maltParameters.IsYouTubeMalt) {
            $('td[name=' + clientID + '_FreeLogo]').css('display', '');
        }
    }

    if (results.Results.length >= results.TotalResults)
        $("#" + clientID.replace("_ctl00", "_divSeeAllWrapper")).hide();
}

// ------- Pagination -------
function createPageLink(clientID, container, spanTemplate, linkTemplate, pageNumber, currentPage) {
    var spn = spanTemplate.clone();
    spn.css('display', 'inline');
    spn.html(" ");

    var pageLink = linkTemplate.clone();
    pageLink.text(pageNumber);
    pageLink.css('display', 'inline');
    if (pageNumber != currentPage) {
        pageLink.attr('href', getPageLink(clientID, pageNumber));
    }

    container.append(spn);
    spn.append(pageLink);
}

function getPageLink(clientID, pageNumber) {
    return 'javascript:' + clientID + '_searchNav(' + pageNumber + ');';
}

function CountMaltReturn(success) {
//    if (typeof _numMalts != 'undefined') {
//        if (success)
//            _numMaltsWithResults++;
//        else
//            _numMaltsNoResults++;
//        SetNoResultsVisibility();
//    }
}

function $g(clientID, id) {
    return $('#' + clientID + "_" + id);
}

function $gp(clientID, id, parentElement) {
    return $('#' + clientID + "_" + id, parentElement);
}
