function formatdateMMMMDDYYYY(prefix, datum, suffix) { var arnr = datum.substring(0,4); var manadnr = parseInt(datum.substring(5,7)); var dagnr = parseInt(datum.substring(8,10)); if(new Date(arnr,manadnr,dagnr) <= new Date(1970,01,01)) return ''; var monthnames = new Array(" ", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var todays_Date = new Array(" ", "1st","2nd","3rd","4th","5th", "6th","7th","8th","9th","10th", "11th","12th","13th","14th","15th", "16th","17th","18th","19th","20th", "21st","22nd","23rd","24th","25th", "26th","27th","28th","29th","30th","31st"); return( prefix + monthnames[manadnr] + " " + todays_Date[dagnr] + ", " + arnr + suffix); } function GetFeed(timeObj) { var timeStr; if(timeObj.time.toString().indexOf('T') > 0) timeStr = toUTCDate(timeObj.time); else timeStr = timeObj.time.toGMTString().replace(/UTC/, 'GMT'); $.ajax({ dataType: 'xml', url: '/rss/RssService.asmx/GetFeedListIfNewer', timeout: 60000, data: {time: timeStr}, type: 'POST', success: function(xml) { if(xml.documentElement.childNodes.length == 0) return; //Add sticky items $('#FeedSticky').empty(); $('FeedItem:has(Sticky:contains(true))', xml).each(function() { var item = GetFeedLayoutItem(this); try{ $('#FeedSticky').append(item); }catch(err){} }); $('#FeedSticky').trigger('altered'); //Add internal items $('#FeedInternal').empty(); $('FeedChannel:has(Type:contains(Internal)) FeedItem:has(Sticky:contains(false))', xml).each(function() { var item = GetFeedLayoutItem(this); item = item.replace(/lb=710/, 'lb=550'); try{ $('#FeedInternal').append(item); }catch(err){ //alert(err); } }); $('#FeedInternal').trigger('altered'); //Add external items $('#FeedExternal').empty(); $('FeedChannel:has(Type:contains(External)) FeedItem:has(Sticky:contains(false))', xml).each(function() { var item = GetFeedLayoutItem(this); item = item.replace(/lb=710/, 'lb=155').replace(/height%3D16/,'height%3D12'); try{ $('#FeedExternal').append(item); }catch(err){ //alert(err); } }); $('#FeedExternal').trigger('altered'); timeObj.time = $("FeedContainer", xml).attr("ItemsAltered"); }, error: function(xml) { //alert(xml.responseXml); alert(xml.responseText); } }); } function GetFeedLayoutItem(item) { var klass = 'feedItem'; klass += ($(item).children('Hidden').text() == 'true') ? ' hidden' : ' visible'; klass += ($(item).children('Persistent').text() == 'true') ? ' persistent' : ' removable'; var target = ''; var fheight, fweight, ffont; var maxTokens = 500; if ($(item).parent().parent().find('Type').text() == 'External') { klass += ' external'; target = ' target="extWin"'; fheight = '12'; fweight = '200'; ffont = 'Arial'; maxTokens = 200; } else { klass += ' internal'; fheight = '16'; fweight = '200'; ffont = 'Impact'; //fheight = 18; //fweight = 800; //ffont = 'Trebuchet+ms'; } var retur = '
[title]

[date]

[description]
Read more

'; var descriptionTxt = $('Description', item).text().replace(/<[^>]+>/gi, '').replace(/&[^;]+;/gi,''); if(descriptionTxt.length > maxTokens) descriptionTxt = descriptionTxt.substr(0,maxTokens) + "..."; retur = retur.replace(/\[id\]/gi, encryptId($('Id', item).text())). replace(/\[icon\]/gi, $(item).parent().parent().find('Icon').text()). replace(/\[url\]/gi, $('Url', item).text()). replace(/\[date\]/gi, formatdateMMMMDDYYYY(' | ',$('LastUpdate', item).text().substring(0,16).replace(/T/, ' '), '')). replace(/\[title\]/gi, $('Title', item).text()). replace(/\[titleEscaped\]/gi, escape($('Title', item).text())). replace(/\[description\]/gi, descriptionTxt). replace(/\[class\]/gi, klass); /** retur = retur.replace(/\[id\]/gi, encryptId($('Id', item).text())). replace(/\[icon\]/gi, $(item).parent().parent().find('Icon').text()). replace(/\[url\]/gi, $('Url', item).text()). replace(/\[date\]/gi, $('LastUpdate', item).text().substring(0,16).replace(/T/, ' ')). replace(/\[title\]/gi, $('Title', item).text()). replace(/\[titleEscaped\]/gi, escape($('Title', item).text())). replace(/\[description\]/gi, $('Description', item).text().replace(/<[^>]+>/gi, '').replace(/&[^;]+;/gi,'')). replace(/\[class\]/gi, klass); **/ return retur; } function MarkSticky(id, sticky) { var realId = $('#' + id + ' a').attr('href'); $.ajax({ dataType: 'xml', data: { id: realId, sticky: sticky }, url: '/rss/RssService.asmx/MarkSticky', timeout: 60000, type: 'POST', success: function(xml) { if (sticky) AddToContainer('#FeedSticky', '#' + id); else if ($('#' + id).hasClass('internal')) AddToContainer('#FeedInternal', '#' + id); else AddToContainer('#FeedExternal', '#' + id); }, error: function(response) { } }); } function MarkPersistent(id, persistent) { var realId = $('#' + id + ' a').attr('href'); $.ajax({ dataType: 'xml', data: { id: realId, persistent: persistent }, url: '/rss/RssService.asmx/MarkPersistent', timeout: 60000, type: 'POST', success: function(xml) { if (persistent) $('#' + id).removeClass('removable').addClass('persistent'); else $('#' + id).removeClass('persistent').addClass('removable'); }, error: function(response) { } }); } function MarkHidden(id, hidden) { var realId = $('#' + id + ' a').attr('href'); $.ajax({ dataType: 'xml', data: { id: realId, hidden: hidden }, url: '/rss/RssService.asmx/MarkHidden', timeout: 60000, type: 'POST', success: function(xml) { $('#' + id).css('display', 'inherit'); if (hidden) $('#' + id).removeClass('visible').addClass('hidden'); else $('#' + id).removeClass('hidden').addClass('visible'); $('.almostHidden').removeClass('almostHidden'); $('#' + id).parent().trigger('altered'); }, error: function(response) { } }); } function AddToContainer(container, item) { $(item).removeClass('FeedBorderOver'); $(container).append($(item)).trigger('altered'); } function ItemSort($container) { var arr = $container.children().get(); $container.empty(); arr.sort(function(a, b) { var keyA = $(a).children('p[class=date]').text().toUpperCase(); var keyB = $(b).children('p[class=date]').text().toUpperCase(); if (keyA < keyB) return 1; if (keyA > keyB) return -1; return 0; }); $.each(arr, function(index, item) { $container.append(item); }); } function feedListAltered(container) { ItemSort($(container)); $('div.feedItem',container).uncorner(); if($(container).attr('id') == 'FeedSticky') $('div.feedItem',container).corner(); //else // $('div',container).uncorner(); if ($('div:visible', container).size() == 0) $(container).hide(); else{ if($(container).attr('id') == 'FeedInternal'){ if(InternalIntervalId) clearInterval(InternalIntervalId); InternalIntervalId = feedListRotateItems(container, 10); }else if($(container).attr('id') == 'FeedExternal'){ if(ExternalIntervalId) clearInterval(ExternalIntervalId); ExternalIntervalId = feedListRotateItems(container, 5); } $(container).show(); } $(container).trigger('updated'); } function feedListRotateItems(container, numItems){ if($('div.feedItem.visible', container).size() > numItems){ $('div.feedItem.visible:gt('+ (numItems-1) +')', container).hide(); return setInterval(function(){ //Hide top-item and move down $('div.feedItem.visible:first', container).hide(1000, function(){ $(this).appendTo(container); //Display first hidden item $('div.feedItem.visible:hidden:first', container).show(1000); }); }, 10000); } } function toUTCDate(dateTime){ // Gör en formattering här... // Thu, 01 Jan 1970 00:00:00 GMT // Ie6 // Wed Dec 31 16:00:00 PST 1969 // FF // Thu Jan 01 1970 01:00:00 GMT+0100 if (dateTime.toString().indexOf('T') < 11 ) { return dateTime; } else { var wekdaysnames = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); var monthnames = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); var minutes = dateTime.getUTCMinutes() if (minutes < 10){ minutes = "0" + minutes } var Seconds = dateTime.getUTCSeconds() if (Seconds < 10){ Seconds = "0" + Seconds } return (wekdaysnames[parseInt(dateTime.getUTCDay())] + ", " + dateTime.getUTCDate() + " " + monthnames[dateTime.getUTCMonth()] + " " + dateTime.getUTCFullYear() + " " + dateTime.getUTCHours() + ":" + minutes + ":" + Seconds + " GMT" ); } } function encryptId(str) { var output = ''; var validChars = "abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ"; var charVal; var pos; for (var i = 0; i < str.length; i++) { charVal = str.charCodeAt(i); pos = (charVal % validChars.length); output += validChars.substr(pos, 1); } return output; }