12
International News | World News " newsbulletin.nbFooter = "" //append widget header $("#newsbulletin > .midcontainer").append(""); $("#newsbulletin > .midcontainer").append(newsbulletin.nbContainer); $("#newsbulletin > .midcontainer").append(newsbulletin.nbFooter); newsbulletin.nbDiv = document.getElementById('nbItemContainer'); nbjsId = 0; newsbulletin.load = function() //alert(newsbulletin.baseloc+'/xmldata/newsbulletin?id=14640490&twOverride=&lpos='+newsbulle tin.lpos+'&section=&'+nbjsId) //to try and handle caching in webkit browsers dynamicJS.load('newsBulletin'+nbjsId, newsbulletin.baseloc+'/xmldata/newsbulletin?id=14640490&twOverride=&lpos='+newsbulletin.lpo s2+'&section=&'+nbjsId); //dynamicJS.load('newsBulletin','http://preview.abcnews.go.com/xmldata/newsbulletin?id=13564505' ); //display items newsbulletin.displayItems = function(nbItemObj) //check if status update this.isStatusUpdate = (nbItemObj.label == 'Status Update')?true:false; //item type class this.itemTypeClass = (this.isStatusUpdate)?'orange':'blue'; //bg position this.itemBgPos = '100% 55%'; if(nbItemObj.bgPos != null)

International News | World News

Embed Size (px)

DESCRIPTION

"newsbulletin.nbFooter = ""//append widget header$("#newsbulletin > .midc

Citation preview

  • International News | World News

    "

    newsbulletin.nbFooter = ""

    //append widget header

    $("#newsbulletin > .midcontainer").append("");

    $("#newsbulletin > .midcontainer").append(newsbulletin.nbContainer);

    $("#newsbulletin > .midcontainer").append(newsbulletin.nbFooter);

    newsbulletin.nbDiv = document.getElementById('nbItemContainer');

    nbjsId = 0;

    newsbulletin.load = function()

    //alert(newsbulletin.baseloc+'/xmldata/newsbulletin?id=14640490&twOverride=&lpos='+newsbulletin.lpos+'&section=&'+nbjsId)

    //to try and handle caching in webkit browsers

    dynamicJS.load('newsBulletin'+nbjsId,newsbulletin.baseloc+'/xmldata/newsbulletin?id=14640490&twOverride=&lpos='+newsbulletin.lpos2+'&section=&'+nbjsId);

    //dynamicJS.load('newsBulletin','http://preview.abcnews.go.com/xmldata/newsbulletin?id=13564505');

    //display items

    newsbulletin.displayItems = function(nbItemObj)

    //check if status update

    this.isStatusUpdate = (nbItemObj.label == 'Status Update')?true:false;

    //item type class

    this.itemTypeClass = (this.isStatusUpdate)?'orange':'blue';

    //bg position

    this.itemBgPos = '100% 55%';

    if(nbItemObj.bgPos != null)

  • this.itemBgPos = nbItemObj.bgPos;

    //author image

    this.nbItemStyle = '';

    this.nbH4Class = 'class=nbheader';

    this.nbH4Style = '';

    this.nbItemStyleAuthor = '';

    if(nbItemObj.authorimage != null && nbItemObj.authorimage != '')

    this.nbH4Style = ' style=width:210px;';

    this.nbItemStyle = 'background:url('+nbItemObj.authorimage+') no-repeat bottom right'//+this.itemBgPos;

    this.nbItemStyleAuthor = ' nbItemContentsAuthor'

    //title

    this.title = '

    '+nbItemObj.title+'

    ';

    if(nbItemObj.link != null && nbItemObj.link != '')

    this.title = ''

    //text

    this.text = '';

    this.textCapped = '';

    this.morelink = 'More'

    if(nbItemObj.text != null)

    this.text = nbItemObj.text;

    //if item is not expanded display capped text if applicable

    if(nbItemObj.isExpanded != true)

    if(nbItemObj.text.length > 63)

  • this.textCapped = nbItemObj.text.substring(0, 63);

    this.text = this.textCapped + '...';

    if(this.isStatusUpdate)

    this.text = this.textCapped + '... ' + this.morelink;

    //social

    this.social = '';

    this.socialStyle = '';

    this.authorBlock = '';

    this.divider = '';

    this.fb = '';

    if(nbItemObj.authorfb != null && nbItemObj.authorfb != '')

  • this.fb = ''

    this.twitter = '';

    if(nbItemObj.authortwitter != null && nbItemObj.authortwitter != '')

    this.twitter = ''

    this.bio = '';

    if(nbItemObj.authorbio != null && nbItemObj.authorbio != '')

    this.bio = ''+nbItemObj.author+''

    this.authorBlock = '

    '+this.bio+'

    '

    if(nbItemObj.author != null && nbItemObj.author != '')

    if(this.fb != '' else

    this.social = '';

    this.textStyle = '';

    if(nbItemObj.authorimage != null && nbItemObj.authorimage != '')

    this.textStyle = ' style=width:208px;';

    else nbItemObj.author == '')

    this.textStyle = ' style="padding-bottom:2px; margin-bottom:5px;"';

    this.categoryTag = '';

    this.nbTextOverride = '';

    this.rowTemp = ''+this.title+'

    '+nbItemObj.date+'

    '+this.authorBlock+'

    '+this.text+'

    '+this.social+'

    ';

  • if (nbItemObj.notes)

    nbNotes = nbItemObj.notes;

    nbNoteStr = '';

    nbNoteDivider = '';

    $.each(nbNotes, function(idx)

    nbNote = nbNotes[idx];

    this.noteAuthorBlock = '';

    this.notefb = '';

    if(nbNote.noteAuthor.facebook != null && nbNote.noteAuthor.facebook != '')

    this.notefb = ''

    this.notetwitter = '';

    if(nbNote.noteAuthor.twitter != null && nbNote.noteAuthor.twitter != '')

    this.notetwitter = ''

    this.notebio = '';

    if(nbNote.noteAuthor.bio != null && nbNote.noteAuthor.bio != '')

    this.notebio = ''+nbNote.noteAuthor.name+''

    this.noteAuthorBlock = '

    '+this.notebio+'

    '

    this.notesocial = '';

    this.noteSocialStyle = '';

    if(nbNote.noteAuthor.name != null && nbNote.noteAuthor.name != '')

    if(this.notefb != '' else

    this.notesocial = '';

    if (idx == nbNotes.length-1)

  • nbNoteDivider = '';

    this.nbNoteDiv = '

    '+nbNote.noteHeadline+'

    '+this.noteAuthorBlock+'

    '+nbNote.noteOverview+'

    '+this.notesocial+'

    ';

    nbNoteStr += this.nbNoteDiv;

    );

    this.rowTemp += nbNoteStr;

    return this.rowTemp;

    function showMoreText(id)

    //grab old item height

    var oldItemHeight = $('#nbItem_'+id).height();

    //retrieve the content from the array

    $('#text_'+id).html(contentObject[id])

    //store id a list of opened objects

    fullTextList.push(id.toString());

    var newContainerHeight = $("#nbItemContainer").height() + ($('#nbItem_'+id).height()-oldItemHeight);

    $("#nbItemContainer").css('height', newContainerHeight);

    //reinitialize scroll

    window.api.reinitialise();

    lastNBObjStr = '';

    function isNewData(data)

    isNewTemp = false;

  • currNBObjStr = '';

    $.each(data.updates, function(ind)

    currNBObjStr = currNBObjStr + data.updates[ind].objId + data.updates[ind].date;

    );

    //console.log('x'+currNBObjStr);

    //console.log('y'+lastNBObjStr);

    if(currNBObjStr != lastNBObjStr)

    isNewTemp = true;

    else

    //console.log('no refresh');

    lastNBObjStr = currNBObjStr;

    return isNewTemp;

    isHeaderLinkLoaded = false; // flag to check if the header link is loaded

    isShareLinkLoaded = false; // flag to check if the share link is loaded

    isDoneLoading = false; // flag to check if the html is done loading in the jScrollPane

    function newsBulletin(data)

    if(data)

    isNewDataFlag = isNewData(data);

    if(isNewDataFlag)

    //clear contents first

    newsbulletin.nbDiv.innerHTML = '';

    //console.log('refresh');

    updates = data.updates;

    headerLink = data.widgetLink;

    shareLink = data.shareLink;

    if (headerLink != '' && headerLink != null && !isHeaderLinkLoaded)

  • var twitterImg = " "

    $("#newsbulletin > .midcontainer > .widget_head").append("");

    $("#newsbulletin > .midcontainer > .widget_head > .twitterLink a > .twitterContent").append("" +twitterImg + "");

    isHeaderLinkLoaded = true;

    //clear the author cutouts array

    newsbulletin.authorCutouts = [];

    // check to see if there is a height set for container, if so clear it

    // prevents cacheing

    var hasHeight = $('#nbItemContainer').attr('style');

    if (typeof hasHeight != 'undefined')

    $('#nbItemContainer').removeAttr('style');

    $.each(updates, function(ind)

    var itemDetails = new Object();

    it = updates[ind];

    //populate the itemDetails object

    itemDetails.id = it.objId;

    itemDetails.title = it.title;

    itemDetails.objType = it.objType;

    itemDetails.link = it.link;

    itemDetails.date = it.date;

    itemDetails.label = it.label;

    itemDetails.author = it.author.name;

    itemDetails.authorbio = it.author.bio;

    itemDetails.authorfb = it.author.facebook;

  • itemDetails.authortwitter = it.author.twitter;

    itemDetails.feed = it.feed;

    itemDetails.category = it.category;

    //set defaults if item is a status update

    if(itemDetails.label == 'Status Update')

    if(it.author.image == '')

    it.author.image = 'http://a.abcnews.com/assets/images/abc_news_logo_84x84.png'

    if(it.author.name == '')

    itemDetails.author = 'ABC News'

    itemDetails.authorfb = 'http://www.facebook.com/abcnews'

    itemDetails.authortwitter = 'http://twitter.com/abc'

    //only pass the author image if it's not displayed in any of the items yet

    if($.inArray(it.author.image, newsbulletin.authorCutouts) == -1)

    itemDetails.authorimage = it.author.image;

    //add to ignore list

    if(it.author.image != '' &&($.inArray(it.author.image, newsbulletin.authorCutouts) == -1))

    newsbulletin.authorCutouts.push(it.author.image);

    if(it.text != '')

    itemDetails.text = it.text;

  • else

    itemDetails.bgPos = 'bottom right';

    if (it.notes)

    itemDetails.notes = it.notes;

    //build a name value pair list of id/text

    contentObject[itemDetails.id] = itemDetails.text

    itemDetails.isExpanded = ($.inArray(itemDetails.id, fullTextList) > -1) ? true : false;

    //build markup

    $("#nbItemContainer").append(newsbulletin.displayItems(itemDetails));

    );

    $("#nbItemContainer").append('');

    //set the height of container div

    $("#nbItemContainer").css('height',$("#nbItemContainer").height());

    if (shareLink != '' && shareLink != null && !isShareLinkLoaded)

    $("#newsbulletin > .midcontainer > .nbFooter").css("height":"35px", "border-top":"1px solid#d5d5d5", "border-bottom":"border-bottom:1px solid #eaeaea");

    $("#newsbulletin > .midcontainer > .nbFooter").append("");

    isShareLinkLoaded = true;

    if($.browser.msie)

    if ($.browser.version .midcontainer > .nbFooter").css("display":"none");

    var timeoutId = setTimeout(function()

    $("#newsbulletin > .midcontainer > .nbFooter").css("display":"block");

    clearTimeout(timeoutId);

    , 3000);

    dynamicJS.unload('newsBulletin'+nbjsId,newsbulletin.baseloc+'/xmldata/newsbulletin?id=14640490&'+nbjsId);

    isDoneLoading = true;

  • if ($.browser.webkit)

    if(nbjsId .midcontainer > .nbFooter").css("display":"none");

    var timeoutId = setTimeout(function()

    $("#newsbulletin > .midcontainer > .nbFooter").css("display":"block");

    clearTimeout(timeoutId);

    , 3000);

    7500)

    setInterval(

    function()

    window.api.getContentPane().html(

    newsbulletin.load()

    );

    ,

    120000

    );

    setInterval(function()

    // we could call "pane.jScrollPane(settings)" again but it is

    // more convenient to call via the API as then the original

    // settings we passed in are automatically remembered.

    // Initialization of the container should be done after all the markup has been loaded

    // since there is no listener that could be passed into reinitialise() for callback

    if (isDoneLoading)

    window.api.reinitialise();

    isDoneLoading = false;

    , 5000);

  • ;addOnload(newsbulletin.load());