{"version":3,"sources":["../../js/vendor/underscore-min.js","../../js/vendor/jquery.number_format.js","../../js/vendor/jquery.number.min-deprecation-fixes.js","../../js/vendor/cision.websolution/texts.js","../../js/vendor/cision.websolution/texts-insiders.js","../../js/vendor/cision.websolution/settings.js","../../js/vendor/cision.websolution/ticker.trades.js","../../js/vendor/cision.websolution/_console.polyfill.js","../../js/vendor/cision.websolution/_format-helpers.js","../../js/vendor/cision.websolution/calendar.js","../../js/vendor/cision.websolution/dividend.js","../../js/vendor/cision.websolution/estimate.annual.js","../../js/vendor/cision.websolution/estimate.historical.js","../../js/vendor/cision.websolution/estimate.quarterly.js","../../js/vendor/cision.websolution/estimate.recommendations.js","../../js/vendor/cision.websolution/insiders.js","../../js/vendor/cision.websolution/live.rss.js","../../js/vendor/cision.websolution/mediafeed.js","../../js/vendor/cision.websolution/newsfeed.js","../../js/vendor/cision.websolution/orderbook.js","../../js/vendor/cision.websolution/ownership.js","../../js/vendor/cision.websolution/printed.material.js","../../js/vendor/cision.websolution/sharecalculator.js","../../js/vendor/cision.websolution/sharegraph.js","../../js/vendor/cision.websolution/ticker.js","../../js/vendor/cision.websolution/ticker.performance.js","../../components/other/cision/cision-init/cision-init.js","../../components/other/cision/share/share.js","../../components/other/share-teaser/share-teaser.js","../../components/other/share-calculator/share-calculator.js","../../js/vendor/fontfaceobserver/fontfaceobserver.js","../../js/vendor/fontfaceobserver/fonts-fontfaceobserver.js"],"names":["n","this","t","_","r","Array","prototype","e","Object","u","Function","i","push","a","slice","o","concat","l","toString","c","hasOwnProperty","f","isArray","s","keys","p","bind","h","_wrapped","exports","module","VERSION","g","call","apply","arguments","iteratee","identity","isFunction","isObject","matches","property","each","forEach","length","map","collect","v","reduce","foldl","inject","TypeError","reduceRight","foldr","find","detect","some","filter","select","reject","negate","every","all","any","contains","include","values","indexOf","invoke","pluck","where","findWhere","max","min","shuffle","random","sample","Math","sortBy","value","index","criteria","sort","m","groupBy","has","indexBy","countBy","sortedIndex","toArray","size","partition","first","head","take","initial","last","rest","tail","drop","compact","y","isArguments","flatten","without","difference","uniq","unique","isBoolean","union","intersection","zip","object","lastIndexOf","range","ceil","d","partial","bindAll","Error","memoize","cache","delay","setTimeout","defer","throttle","leading","now","clearTimeout","trailing","debounce","wrap","compose","after","before","once","pairs","invert","functions","methods","extend","pick","omit","String","defaults","clone","tap","b","constructor","pop","isEqual","isEmpty","isString","isElement","nodeType","isFinite","isNaN","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","times","floor","Date","getTime","&","<",">","\"","'","`","w","j","join","RegExp","test","replace","escape","unescape","result","x","uniqueId","templateSettings","evaluate","interpolate","A","k","\\","\r","\n","
","
","O","F","template","source","variable","chain","_chain","E","mixin","define","amd","jQuery","fn","number_format","numero","params","options","numberOfDecimals","decimalSeparator","thousandSeparator","symbol","number","decimals","dec_point","thousands_sep","currencySymbol","exponent","numberstr","eindex","substring","temp","pow","round","sign","integer","abs","fractional","z","createTextRange","collapse","moveStart","moveEnd","setSelectionRange","focus","toLowerCase","document","selection","createRange","duplicate","expand","setEndPoint","text","codes","46","188","109","190","191","192","220","222","221","219","173","187","186","189","110","shifts","96","49","50","51","52","53","54","55","56","57","48","45","61","91","93","92","59","39","44","47","charCodeAt","is","on","keydown.format","data","keyCode","which","shiftKey","fromCharCode","match","ctrlKey","metaKey","preventDefault","init","isPartialSelection","val","altKey","keyup.format","paste.format","originalEvent","window","clipboardData","getData","regex_dec_num","regex_dec","isPlainObject","valHooks","get","set","Number","toLocaleString","charAt","split","cision","websolution","texts","TextComparison","TextIndicator","TextOption","TextCompSubtitle","TextViewSubtitle","TextPercent","TextNone","TextShowVolume","TextPartOfDay","TextEndOfDay","TextReport","TextPress","TextIndex","TextPeers","TextReleases","TextClose","TextIntra","Text1V","Text1M","Text3M","Text6M","Text1Y","TextInsider","TextDividend","TextDownload","TextPrintChart","TextDownloadAsPNG","TextDownloadAsJPEG","TextDownloadAsSVG","TextDownloadAsPDF","TextDownloadShareHistory","TextShareOptions","TextOrderBook","TextTrades","TextPerformance","TextInsiderTrans","TextInsiderPersons","TextDate","TextDateTime","TextBack","TextInsiderPerson","TextPosition","TextInstrument","TextTransaction","TextFrom","TextTo","TextHoldings","TextSecurity","TextTransactions","TextLastTransaction","TextHolder","TextSharePriceSEK","TextChangeInSEK","TextChangeInPercent","TextNumberRec","TextHeader1","TextHeader2","TextLastUpdate","TextName","TextBuy","TextStrongBuy","TextVolume","TextSell","TextStrongSell","TextHold","TextMean","TextSymbol","TextCurrency","TextMarketPlace","TextLatestPrice","TextClosingPrice","TextLatestChange","TextLastChange","TextAtHigh","TextAtLast","TextYearHigh","TextYearLow","TextNumberOfShares","TextShareValue","TextShareCompute","TextPurchaseDate","TextShareType","TextShareTypeHelp","TextShareSettings","TextDownloadResultsAndShareHistory","TextPeriodHelp","TextYear","TextMonth","TextDay","TextFromIncluding","TextToIncluding","TextNumberOfSharesHelp","TextOpenPrice","TextChange","TextShareCalculatorResults","TextShareCalculatorHistory","TextInitialInvestment","TextEndValue","TextSharePrice","TextSharesBought","TextAnnualizedChange","TextEndOfTheDay","TextPartOfTheDay","TextNoTradesYet","TextPrice","TextBuyer","TextSeller","TextTime","TextAsk","TextBid","TextHigh","TextLow","TextTotal","TextVotes","TextValue","TextShare","TextHolders","TextValueSEK","TextValueKSEK","TextArea","TextOwnershipAreaNames","Sweden","Usa","Nordic","Europe","World","Total","TextVoting","TextTurnover","TextMarket","TextLatest","TextAnnual","TextQuarterly","TextHistorical","TextRec","TextHistoricalRec","TextSME","TextSource","TextLargest","TextRange","TextDist","TextGrouped","TextAnalyticsCount","TextPrintOrderFail","TextPrintOrderSuccess","TextCompany","TextAddress","TextPostalCode","TextSubmit","TextCity","TextCountry","TextQuantity","Languages","sv","en","fi","da","no","de","fr","pt","nl","TextAttachment","TextWhenWhere","TextDigitalVersion","TextRequired","TextFirstEvent","TextEvents","TextEvent","TextAddToCal","TextUpcomingEvents","TextEventArchive","TextTitle","TextPrintLang","TextPrintLink","TextPrintQuant","TextOrderPrint","TextAll","TextPrintOrderSuccessHeader","TextPrintOrderFailHeader","TextLanguage","ge","calendarTexts","weekdays","months","shortMonths","rangeSelectorFrom","rangeSelectorTo","downloadJPEG","downloadPDF","downloadPNG","downloadSVG","printChart","insidersDescriptions","transactionTypes","positionTypes","holderTypes","securityTypes","settings","lang","baseUrl","defaultLang","$","attr","general","serviceEndpoint","uiLanguage","siteKey","useProxyHandler","startDate","endDate","pageIndex","pageSize","dateFormat","isTest","maxAmountOfItems","useMediabankViaHttps","numberFormatOptions","decimalPrecision","dateFormatOptions","dateTimeFormat","timeFormat","dateFormatNews","separateFirstRelease","introMaxLength","titleMaxLength","LargestPieShowCount","LargestListShowCount","dateFormatEvent","separateFirstEvent","printedMaterialCategory","tickerImageMinus","tickerImagePlus","tickerImageUnchanged","dateFormatTrades","startDateYear","chartContainerId","chartTitle","backgroundImage","barBackgroundColor","lineWidth","buttonBackgroundColor","buttonArrowColor","rifleColor","plotBackgroundColor","defaultSeriesType","shapeColor","shapeOutlineColor","shapeTextColor","shapeWidth","shapeHeight","rangeSelectorInputStyleColor","rangeSelectorLabelStyleColor","trackBackgroundColor","trackBorderColor","chartComparison","typeOfChart","navigatorColor","navigatorLineColor","showReleaseLink","gridLineWidth","plotBorderWidth","mainInstruments","marketPlace","currency","name","indexInstruments","peersInstruments","releasesOnSeries","packageName","shape","title","instrumentColors","uniqueKey","preferredColor","dividendType","effectiveYieldSuffix","insidersUniqueKey","dividendsUniqueKey","showVolume","enableNavigator","enableReleasesOnIntraday","yAxisSize","share","top","height","volume","releaseLinkFormatter","insidersTitle","graphUniqueKey","showHorisontalTicker","estimateCurrency","graphColor","field","valuePrefix","valueSuffix","dateFormatTooltip","unit","quantum","tooltipHeaderEstimate","tooltipHeaderReal","tooltipDateLabel","tooltipAmountLabel","suffixEstimate","suffixActual","fields","sales","th_sep","dec_sep","precision","volumes","ebit","ebitda","eps","dps","periodStart","periodEnd","dateString","amountString","hideEstimateIfActualExists","ownershipTabLoaded","estimateTabLoaded","orderbook","accessKey","estimate","accessKeyTicker","ticker","sharegraph","shareHistoryKey","sharecalculator","minisharegraph","dividend","insider","moment","locale","Highcharts","setOptions","decimalPoint","thousandsSep","global","console","prop","method","con","dummy","properties","formatHelpers","formatNumber","inputNumber","defaultOptions","formatCurrency","prefix","suffix","formattedNumber","formatDate","input","format","formatTime","formatDateTime","calendar","eventsList","categories","firstRunEvent","firstRunArchive","generateUrl","path","proxyHandler","getEventByGuid","eventGuid","url","ajax","type","dataType","eventguid","LanguageCode","done","objEvent","EventDateFormatted","EventTime","EventTimeFormattedDate","EventTimeFormattedTime","PublishTimeFormatted","PublishTime","ArchiveTimeFormatted","ArchiveTime","compositeModel","renderedHtml","render","html","fail","log","renderEventList","Deferred","languageCode","calendarPageIndex","calendarPageSize","category","calendarCategory","rawData","objFirstEvent","Events","idx","EventTimeFormatted","EventWeekDay","LogoUrl","HasImage","ICalUrl","EventGuid","EventDuration","duration","asHours","EndDateWeekDay","add","EndDateFormattedDate","EndDateFormattedTime","IsOneDay","Categories","idx2","objCategory","shift","tplElement","calendarTemplateElement","renderedEventHtml","renderedCategories","tplTarget","calendarOutputTargetElement","resolve","promise","renderArchiveList","renderSidebarCalendar","EndTimeFormatted","sidebarCalendarTemplateElement","sidebarCalendarOutputTargetElement","renderToGraph","objChart","objPackage","Instruments","pointsDividends","Dividends","objDividend","EventDate","dividendsTitle","DividendTransaction","objInstrument","UniqueKey","objChartSeries","id","color","objOriginal","visible","tooltip","useHTML","pointFormat","addSeries","always","annual","dataObj","keyFigures","periodsWithActual","objHorizontalMatrix","periodList","AnnualKeyFigures","ix","objKeyFigure","Type","Period","isEstimate","colName","colHHeader","date","Name","Header","IsEstimate","Currency","toUpperCase","Field","Average","Count","lastDate","item","LastDateFormatted","PeriodList","historical","getDateFormated","dateNumber","formatString","getNumrericFormat","formatted","objRawData","objSeriesList","seriesList","objXAxis","objYAxis","objTooltip","objLegend","HistoricalKeyFigures","Unit","key","valueOf","labels","formatter","tickPixelInterval","margin","series","getCurrencyWithPrefixes","enabled","borderColor","labelFormatter","Chart","chart","renderTo","xAxis","yAxis","plotOptions","line","states","hover","marker","radius","legend","credits","quarterly","QuarterlyKeyFigures","recommendations","renderCurrent","Recomendations","objRecomendation","LastDate","StrongBuyDistribution","StrongBuy","TotalCount","BuyDistribution","Buy","HoldDistribution","Hold","SellDistribution","Sell","StrongSellDistribution","StrongSell","Mean","MeanDistribution","renderHistory","objGroupedMatrix","objMeanValues","arr","objGroupedData","BuyRecomendations","HoldRecomendations","SellRecomendations","objEstimate","yearMonth","substr","aspect","Aspect","Month","MonthName","objMonth","meanValue","toFixed","Months","loopThrough","renderTicker","LatestQuote","Quotes","objQuote","QuoteTime","QuoteTimeFormatted","insiders","textsInsidersDescriptions","renderTransactionsList","Transactions","objTransaction","TransactionDateFormatted","TransactionDate","SecurityTypeDescription","SecurityTypeId","TransactionTypeDescription","TransactionTypeId","PositionDescription","PositionId","HolderTypeDescription","HolderTypeId","HolderName","pointsInsiders","DetailsLink","InsiderName","PlusMinus","Quantity","InsiderTransaction","liverss","liveRss","releases","processReleases","pager","releasesList","$el","append","parseHTML","appendTo","paragraphs","showPage","renderListing","callback","serviceEndpointRss","xml","retrieveReleases","mediafeed","mediaRestriction","tags","objResponse","mediaList","Images","Videos","Embedded","Medias","objMedia","CreateDate","ThumbnailUrlImage","UrlTo200x200ArResized","UrlTo200x200Thumbnail","DownloadUrl","LargeThumbnailUrl","MediaType","EmbeddedItem","EmbedCode","PageIndex","PageSize","PreviousPageExists","PreviousPageIndex","NextPageIndex","NextPageExists","TotalFound","PageCount","reverse","renderThumbnails","imagesList","ThumbnailUrl","renderTags","showNumberOfTags","mainTypes","tagList","Tags","objRelease","numberOfTags","newsfeed","searchTerm","regulatory","objFirstRelease","releaseList","Releases","PublishDateFormatted","PublishDate","DetailUrl","EncryptedId","years","objImage","UrlTo100x100ArResized","UrlTo400x400ArResized","UrlTo800x800ArResized","UrlTo100x100Thumbnail","encodedTitle","EncodedUrl","Title","TitleForUrl","encodeURI","Intro","trim","ImageUrl","TotalFoundReleases","images","currentImageFallbackIx","helpers","getFallbackImage","imgSrc","compositeModelFirst","renderedHtmlFirst","toRender","renderTpl","show","hide","renderDetail","releaseIdentifier","Release","HtmlBody","Files","objFile","Url","ext","FileName","FileType","renderYears","yearList","Years","renderContactsAndAbout","$tplNewsroomAbout","$targetNewsroomAbout","renderedHtmlAbout","$tplLogoUrl","$targetLogoUrl","renderedHtmlLogoUrl","$tplNewsroomContactListDetail","$targetNewsroomContactListDetail","renderedHtmlContactsDetail","$tplNewsroomContactListSidebar","$targetNewsroomContactListSidebar","renderedHtmlContactsSidebar","renderHighlights","languageCodes","LastUpdateFormatted","LastUpdate","OrderBookItems","objItem","BidPrice","BidQuantity","AskPrice","AskQuantity","BidVisualComparison","AskVisualComparison","renderResult","ownership","renderLargestShareholdersChart","dataArray","othersPercent","ShareHolders","objShareHolder","OwnershipPercent","sliced","highcharts","plotShadow","pie","allowPointSelect","cursor","dataLabels","connectorColor","renderShareHolderAreasChart","Areas","objArea","AreaName","renderLargestGroupedShareholdersChart","renderLargestShareholders","TotalAmount","DateFormatted","AmountInList","renderNewShareholders","renderShareSizeGroups","renderShareHolderAreas","reorderedAreas","ownershipAreasNames","textsAreaNames","objAreaSweden","sweden","objAreaUsa","usa","objAreaNordic","nordic","objAreaEurope","europe","objAreaWorld","world","objAreaTotal","renderLargestGroupedShareholders","printedMaterial","itemsList","firstRunList","firstRunArchiveList","getItemByGuid","itemGuid","PrintDateFormatted","PrintDate","dateFormatPrinted","renderItemList","Items","PrintTimeFormatted","PrintTime","PrintTimeFormattedDate","PrintTimeFormattedTime","MaxOrder","CategoryName","printedMaterialTemplateElement","printedMaterialOutputTargetElement","ItemGuid","leftPad","targetLength","output","dateSettings","Days","year","StartDateSelectedYear","EndDateSelectedYear","SelectedMonth","month","SelectedDay","GetDatePickerSettings","tickerSymbol","quoteType","typeOfCalclator","calculatorData","TickerSymbol","Checked","tickerTypeHtml","RenderShareType","compute","resultsModel","historyModel","shareType","numberOfShares","holdingValue","instrument","RenderResults","Results","results","StartDateQuote","EndDateQuote","TradeCurrency","StartDateFormated","EndDateFormated","NumberOfShares","parseInt","Price","StartValue","StartPrice","EndValue","EndPrice","Change","ChangePercent","base","diffDays","diff","ChangeAnnualizedPercent","GetResults","history","quotes","PartOfDayHelp","QuoteTimeFormated","QuoteType","GetShareHistory","exportCsv","filename","$table","$rows","tmpColDelim","tmpRowDelim","rowDelim","csv","formatRows","grabRow","$headers","csvData","encodeURIComponent","navigator","msSaveOrOpenBlob","blob","Blob","decodeURIComponent","msSaveBlob","download","href","trigger","rows","row","$row","$cols","grabCol","col","exportTableToCSV","getPreferredColor","dateToStartFrom","dateToEnd","shareData","seriesVolumeList","isVisible","isMain","MarketPlace","qix","objMainInstrument","isHidden","points","pointsEffectiveYield","pointsVolume","DeltaPercentage","quoteUnixTime","extras","valueDecimals","EffectiveYields","objInstrumentEffectiveYield","TickerName","TickerType","objEffectiveYieldFirst","eyix","objEffectiveYield","ObsDate","x1","LastAdjReInv","LastAdj","zIndex","objTitle","objPlotOptions","turboThreshold","compare","objExporting","sourceHeight","sourceWidth","width","objScrollbar","barBorderRadius","barBorderWidth","buttonBorderWidth","buttonBorderRadius","trackBorderWidth","trackBorderRadius","minPadding","maxPadding","opposite","offset","objRangeSelector","buttons","inputStyle","labelStyle","inputEnabled","inputDateFormat","inputEditDateFormat","inputDateParser","UTC","rangeSelectorZoom","contextButtonTitle","StockChart","plotBackgroundImage","rangeSelector","scrollbar","shadow","align","backgroundColor","borderWidth","layout","verticalAlign","exporting","maskFill","isMiniShareGraph","lineColor","netr","string","translate","timeout","releaseData","releasePackageList","idxIns","objReleasePackage","releaseTitle","seriesId","seriesShape","objSetting","seriesData","idxQuote","res","onSeries","fillColor","style","releaseUrl","headerFormat","success","setVisibility","makeVisible","objSerie","objCurrentInstrument","userOptions","setVisible","tickers","tickerData","sharePerformanceData","sortedTickerData","instrumentIx","quote","model","Time","lastPrice","LastPrice","ClosePrice1D","marketCap","mcapTotalRaw","mcapTotalKilo","mcapTotalMega","mcapTotal","Delta","ArrowImageurl","$targetTicker","documentReadyFunctions","urlTicker","urlPerformance","performance","renderTrades","rawInstruments","instruments","sortedPerformanceData","htmls","AthDateFormatted","AthDate","AtlDateFormatted","AtlDate","HighPriceYtdDateFormatted","HighPriceYtdDate","DividendDateFormatted","DividendDate","KeyRatioTimeFormatted","KeyRatioTime","trades","Trades","objTrade","TradeTimeFormatted","TradeTime","support","cors","cisionHandler","subtract","insiderName","queryObj","fieldType","removeClass","addClass","actions","compareType","activeChangeOfType","loadingTimeoutId","graphContainer","inputFrom","inputTo","endOfDayStartFrom","endOfDayEndTime","today","firstTypeChange","wrapper","graphContainerSelector","templateSelector","renderTargetSelector","updateDateFields","from","to","datepicker","resetReportAndPress","destroyChart","destroy","showLoading","state","parent","undefined","disableFormControls","el","not","showEndOfDay","volumeOffset","reinitializeState","when","afterRender","showPartOfDay","daysBack","daysFrom","beforePrint","setSize","afterPrint","resetParams","matchMedia","addListener","mql","onbeforeprint","onafterprint","updateInstrumentSeries","updateCompareType","dataset","triggercomparison","checked","comparePercent","comparePrice","setCompare","getElementById","setExtremes","ex","getExtremes","minValue","partofday","endofday","percent","showComparisonChart","price","showPriceChart","evt","obj","dataPeriodDays1","dataPeriodWeeks1","dataPeriodMonths1","dataPeriodMonths3","dataPeriodMonths6","dataPeriodYears1","dataPeriodYears5","dataPeriodYears10","dataPeriodYearsAll","event","arg","delegate","hasClass","toggleClass","target","selectedOption","selectedIndex","chartContainer","location","print","exportChart","maxDate","gotoCurrent","defaultDate","minDate","mediaQueryList","initPrintEvent","netrCustomSelect","element","isFound","serie","update","redraw","dataMin","shareCalculatorContainer","resultsContainer","historyContainer","initResponsiveTableAndAnimate","columnpicker","tablescroll","mediaquery","animate","scrollTop","whenMutated","then","q","Promise","race","addEventListener","attachEvent","createElement","setAttribute","appendChild","createTextNode","cssText","offsetWidth","scrollLeft","scrollWidth","parentNode","B","family","weight","stretch","C","D","J","fonts","L","font","K","load","H","vendor","exec","userAgent","G","M","N","removeChild","dir","body","I","hidden","removeEventListener","readyState","detachEvent","FontFaceObserver","aktivGrotesk","documentElement","classList"],"mappings":"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","file":"cision-websolution.min.js","sourcesContent":["// Underscore.js 1.7.0\n// http://underscorejs.org\n// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n(function(){var n=this,t=n._,r=Array.prototype,e=Object.prototype,u=Function.prototype,i=r.push,a=r.slice,o=r.concat,l=e.toString,c=e.hasOwnProperty,f=Array.isArray,s=Object.keys,p=u.bind,h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};\"undefined\"!=typeof exports?(\"undefined\"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):n._=h,h.VERSION=\"1.7.0\";var g=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}};h.iteratee=function(n,t,r){return null==n?h.identity:h.isFunction(n)?g(n,t,r):h.isObject(n)?h.matches(n):h.property(n)},h.each=h.forEach=function(n,t,r){if(null==n)return n;t=g(t,r);var e,u=n.length;if(u===+u)for(e=0;u>e;e++)t(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,t,r){if(null==n)return[];t=h.iteratee(t,r);for(var e,u=n.length!==+n.length&&h.keys(n),i=(u||n).length,a=Array(i),o=0;i>o;o++)e=u?u[o]:o,a[o]=t(n[e],e,n);return a};var v=\"Reduce of empty array with no initial value\";h.reduce=h.foldl=h.inject=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length,o=0;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[o++]:o++]}for(;a>o;o++)u=i?i[o]:o,r=t(r,n[u],u,n);return r},h.reduceRight=h.foldr=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[--a]:--a]}for(;a--;)u=i?i[a]:a,r=t(r,n[u],u,n);return r},h.find=h.detect=function(n,t,r){var e;return t=h.iteratee(t,r),h.some(n,function(n,r,u){return t(n,r,u)?(e=n,!0):void 0}),e},h.filter=h.select=function(n,t,r){var e=[];return null==n?e:(t=h.iteratee(t,r),h.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e)},h.reject=function(n,t,r){return h.filter(n,h.negate(h.iteratee(t)),r)},h.every=h.all=function(n,t,r){if(null==n)return!0;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,!t(n[u],u,n))return!1;return!0},h.some=h.any=function(n,t,r){if(null==n)return!1;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,t(n[u],u,n))return!0;return!1},h.contains=h.include=function(n,t){return null==n?!1:(n.length!==+n.length&&(n=h.values(n)),h.indexOf(n,t)>=0)},h.invoke=function(n,t){var r=a.call(arguments,2),e=h.isFunction(t);return h.map(n,function(n){return(e?t:n[t]).apply(n,r)})},h.pluck=function(n,t){return h.map(n,h.property(t))},h.where=function(n,t){return h.filter(n,h.matches(t))},h.findWhere=function(n,t){return h.find(n,h.matches(t))},h.max=function(n,t,r){var e,u,i=-1/0,a=-1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],e>i&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(u>a||u===-1/0&&i===-1/0)&&(i=n,a=u)});return i},h.min=function(n,t,r){var e,u,i=1/0,a=1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],i>e&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(a>u||1/0===u&&1/0===i)&&(i=n,a=u)});return i},h.shuffle=function(n){for(var t,r=n&&n.length===+n.length?n:h.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=h.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},h.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=h.values(n)),n[h.random(n.length-1)]):h.shuffle(n).slice(0,Math.max(0,t))},h.sortBy=function(n,t,r){return t=h.iteratee(t,r),h.pluck(h.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),\"value\")};var m=function(n){return function(t,r,e){var u={};return r=h.iteratee(r,e),h.each(t,function(e,i){var a=r(e,i,t);n(u,e,a)}),u}};h.groupBy=m(function(n,t,r){h.has(n,r)?n[r].push(t):n[r]=[t]}),h.indexBy=m(function(n,t,r){n[r]=t}),h.countBy=m(function(n,t,r){h.has(n,r)?n[r]++:n[r]=1}),h.sortedIndex=function(n,t,r,e){r=h.iteratee(r,e,1);for(var u=r(t),i=0,a=n.length;a>i;){var o=i+a>>>1;r(n[o])t?[]:a.call(n,0,t)},h.initial=function(n,t,r){return a.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},h.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:a.call(n,Math.max(n.length-t,0))},h.rest=h.tail=h.drop=function(n,t,r){return a.call(n,null==t||r?1:t)},h.compact=function(n){return h.filter(n,h.identity)};var y=function(n,t,r,e){if(t&&h.every(n,h.isArray))return o.apply(e,n);for(var u=0,a=n.length;a>u;u++){var l=n[u];h.isArray(l)||h.isArguments(l)?t?i.apply(e,l):y(l,t,r,e):r||e.push(l)}return e};h.flatten=function(n,t){return y(n,t,!1,[])},h.without=function(n){return h.difference(n,a.call(arguments,1))},h.uniq=h.unique=function(n,t,r,e){if(null==n)return[];h.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=h.iteratee(r,e));for(var u=[],i=[],a=0,o=n.length;o>a;a++){var l=n[a];if(t)a&&i===l||u.push(l),i=l;else if(r){var c=r(l,a,n);h.indexOf(i,c)<0&&(i.push(c),u.push(l))}else h.indexOf(u,l)<0&&u.push(l)}return u},h.union=function(){return h.uniq(y(arguments,!0,!0,[]))},h.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!h.contains(t,i)){for(var a=1;r>a&&h.contains(arguments[a],i);a++);a===r&&t.push(i)}}return t},h.difference=function(n){var t=y(a.call(arguments,1),!0,!0,[]);return h.filter(n,function(n){return!h.contains(t,n)})},h.zip=function(n){if(null==n)return[];for(var t=h.max(arguments,\"length\").length,r=Array(t),e=0;t>e;e++)r[e]=h.pluck(arguments,e);return r},h.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},h.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if(\"number\"!=typeof r)return e=h.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}for(;u>e;e++)if(n[e]===t)return e;return-1},h.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=n.length;for(\"number\"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1));--e>=0;)if(n[e]===t)return e;return-1},h.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var d=function(){};h.bind=function(n,t){var r,e;if(p&&n.bind===p)return p.apply(n,a.call(arguments,1));if(!h.isFunction(n))throw new TypeError(\"Bind must be called on a function\");return r=a.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(a.call(arguments)));d.prototype=n.prototype;var u=new d;d.prototype=null;var i=n.apply(u,r.concat(a.call(arguments)));return h.isObject(i)?i:u}},h.partial=function(n){var t=a.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===h&&(e[u]=arguments[r++]);for(;r=e)throw new Error(\"bindAll must be passed function names\");for(t=1;e>t;t++)r=arguments[t],n[r]=h.bind(n[r],n);return n},h.memoize=function(n,t){var r=function(e){var u=r.cache,i=t?t.apply(this,arguments):e;return h.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},h.delay=function(n,t){var r=a.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},h.defer=function(n){return h.delay.apply(h,[n,1].concat(a.call(arguments,1)))},h.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var l=function(){o=r.leading===!1?0:h.now(),a=null,i=n.apply(e,u),a||(e=u=null)};return function(){var c=h.now();o||r.leading!==!1||(o=c);var f=t-(c-o);return e=this,u=arguments,0>=f||f>t?(clearTimeout(a),a=null,o=c,i=n.apply(e,u),a||(e=u=null)):a||r.trailing===!1||(a=setTimeout(l,f)),i}},h.debounce=function(n,t,r){var e,u,i,a,o,l=function(){var c=h.now()-a;t>c&&c>0?e=setTimeout(l,t-c):(e=null,r||(o=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,a=h.now();var c=r&&!e;return e||(e=setTimeout(l,t)),c&&(o=n.apply(i,u),i=u=null),o}},h.wrap=function(n,t){return h.partial(t,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},h.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},h.before=function(n,t){var r;return function(){return--n>0?r=t.apply(this,arguments):t=null,r}},h.once=h.partial(h.before,2),h.keys=function(n){if(!h.isObject(n))return[];if(s)return s(n);var t=[];for(var r in n)h.has(n,r)&&t.push(r);return t},h.values=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},h.pairs=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},h.invert=function(n){for(var t={},r=h.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},h.functions=h.methods=function(n){var t=[];for(var r in n)h.isFunction(n[r])&&t.push(r);return t.sort()},h.extend=function(n){if(!h.isObject(n))return n;for(var t,r,e=1,u=arguments.length;u>e;e++){t=arguments[e];for(r in t)c.call(t,r)&&(n[r]=t[r])}return n},h.pick=function(n,t,r){var e,u={};if(null==n)return u;if(h.isFunction(t)){t=g(t,r);for(e in n){var i=n[e];t(i,e,n)&&(u[e]=i)}}else{var l=o.apply([],a.call(arguments,1));n=new Object(n);for(var c=0,f=l.length;f>c;c++)e=l[c],e in n&&(u[e]=n[e])}return u},h.omit=function(n,t,r){if(h.isFunction(t))t=h.negate(t);else{var e=h.map(o.apply([],a.call(arguments,1)),String);t=function(n,t){return!h.contains(e,t)}}return h.pick(n,t,r)},h.defaults=function(n){if(!h.isObject(n))return n;for(var t=1,r=arguments.length;r>t;t++){var e=arguments[t];for(var u in e)n[u]===void 0&&(n[u]=e[u])}return n},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,t){return t(n),n};var b=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof h&&(n=n._wrapped),t instanceof h&&(t=t._wrapped);var u=l.call(n);if(u!==l.call(t))return!1;switch(u){case\"[object RegExp]\":case\"[object String]\":return\"\"+n==\"\"+t;case\"[object Number]\":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case\"[object Date]\":case\"[object Boolean]\":return+n===+t}if(\"object\"!=typeof n||\"object\"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]===n)return e[i]===t;var a=n.constructor,o=t.constructor;if(a!==o&&\"constructor\"in n&&\"constructor\"in t&&!(h.isFunction(a)&&a instanceof a&&h.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c,f;if(\"[object Array]\"===u){if(c=n.length,f=c===t.length)for(;c--&&(f=b(n[c],t[c],r,e)););}else{var s,p=h.keys(n);if(c=p.length,f=h.keys(t).length===c)for(;c--&&(s=p[c],f=h.has(t,s)&&b(n[s],t[s],r,e)););}return r.pop(),e.pop(),f};h.isEqual=function(n,t){return b(n,t,[],[])},h.isEmpty=function(n){if(null==n)return!0;if(h.isArray(n)||h.isString(n)||h.isArguments(n))return 0===n.length;for(var t in n)if(h.has(n,t))return!1;return!0},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=f||function(n){return\"[object Array]\"===l.call(n)},h.isObject=function(n){var t=typeof n;return\"function\"===t||\"object\"===t&&!!n},h.each([\"Arguments\",\"Function\",\"String\",\"Number\",\"Date\",\"RegExp\"],function(n){h[\"is\"+n]=function(t){return l.call(t)===\"[object \"+n+\"]\"}}),h.isArguments(arguments)||(h.isArguments=function(n){return h.has(n,\"callee\")}),\"function\"!=typeof/./&&(h.isFunction=function(n){return\"function\"==typeof n||!1}),h.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&n!==+n},h.isBoolean=function(n){return n===!0||n===!1||\"[object Boolean]\"===l.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return n===void 0},h.has=function(n,t){return null!=n&&c.call(n,t)},h.noConflict=function(){return n._=t,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(n){return function(t){return t[n]}},h.matches=function(n){var t=h.pairs(n),r=t.length;return function(n){if(null==n)return!r;n=new Object(n);for(var e=0;r>e;e++){var u=t[e],i=u[0];if(u[1]!==n[i]||!(i in n))return!1}return!0}},h.times=function(n,t,r){var e=Array(Math.max(0,n));t=g(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},h.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var _={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},w=h.invert(_),j=function(n){var t=function(t){return n[t]},r=\"(?:\"+h.keys(n).join(\"|\")+\")\",e=RegExp(r),u=RegExp(r,\"g\");return function(n){return n=null==n?\"\":\"\"+n,e.test(n)?n.replace(u,t):n}};h.escape=j(_),h.unescape=j(w),h.result=function(n,t){if(null==n)return void 0;var r=n[t];return h.isFunction(r)?n[t]():r};var x=0;h.uniqueId=function(n){var t=++x+\"\";return n?n+t:t},h.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g};var A=/(.)^/,k={\"'\":\"'\",\"\\\\\":\"\\\\\",\"\\r\":\"r\",\"\\n\":\"n\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},O=/\\\\|'|\\r|\\n|\\u2028|\\u2029/g,F=function(n){return\"\\\\\"+k[n]};h.template=function(n,t,r){!t&&r&&(t=r),t=h.defaults({},t,h.templateSettings);var e=RegExp([(t.escape||A).source,(t.interpolate||A).source,(t.evaluate||A).source].join(\"|\")+\"|$\",\"g\"),u=0,i=\"__p+='\";n.replace(e,function(t,r,e,a,o){return i+=n.slice(u,o).replace(O,F),u=o+t.length,r?i+=\"'+\\n((__t=(\"+r+\"))==null?'':_.escape(__t))+\\n'\":e?i+=\"'+\\n((__t=(\"+e+\"))==null?'':__t)+\\n'\":a&&(i+=\"';\\n\"+a+\"\\n__p+='\"),t}),i+=\"';\\n\",t.variable||(i=\"with(obj||{}){\\n\"+i+\"}\\n\"),i=\"var __t,__p='',__j=Array.prototype.join,\"+\"print=function(){__p+=__j.call(arguments,'');};\\n\"+i+\"return __p;\\n\";try{var a=new Function(t.variable||\"obj\",\"_\",i)}catch(o){throw o.source=i,o}var l=function(n){return a.call(this,n,h)},c=t.variable||\"obj\";return l.source=\"function(\"+c+\"){\\n\"+i+\"}\",l},h.chain=function(n){var t=h(n);return t._chain=!0,t};var E=function(n){return this._chain?h(n).chain():n};h.mixin=function(n){h.each(h.functions(n),function(t){var r=h[t]=n[t];h.prototype[t]=function(){var n=[this._wrapped];return i.apply(n,arguments),E.call(this,r.apply(h,n))}})},h.mixin(h),h.each([\"pop\",\"push\",\"reverse\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=r[n];h.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),\"shift\"!==n&&\"splice\"!==n||0!==r.length||delete r[0],E.call(this,r)}}),h.each([\"concat\",\"join\",\"slice\"],function(n){var t=r[n];h.prototype[n]=function(){return E.call(this,t.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},\"function\"==typeof define&&define.amd&&define(\"underscore\",[],function(){return h})}).call(this);\n//# sourceMappingURL=underscore-min.map","/*\n* @Copyright (c) 2010 Ricardo Andrietta Mendes - eng.rmendes@gmail.com\n* \n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n* \n* How to use it:\n* var formated_value = $().number_format(final_value);\n* \n* Advanced:\n* var formated_value = $().number_format(final_value, \n* \t\t\t\t\t\t\t\t\t\t\t\t\t{\n* \t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfDecimals:3,\n* \t\t\t\t\t\t\t\t\t\t\t\t\tdecimalSeparator: '.',\n* \t\t\t\t\t\t\t\t\t\t\t\t\tthousandSeparator: ',',\n* \t\t\t\t\t\t\t\t\t\t\t\t\tsymbol: 'R$'\n* \t\t\t\t\t\t\t\t\t\t\t\t\t});\n*/\n//indica que est� sendo criado um plugin\njQuery.fn.extend({ //indica que est� sendo criado um plugin\n\t\n\tnumber_format: function(numero, params) //indica o nome do plugin que ser� criado com os parametros a serem informados\n\t\t{ \n\t\t//parametros default\n\t\tvar sDefaults = \n\t\t\t{\t\t\t\n\t\t\tnumberOfDecimals: 2,\n\t\t\tdecimalSeparator: ',',\n\t\t\tthousandSeparator: '.',\n\t\t\tsymbol: ''\n\t\t\t}\n \n\t\t//fun��o do jquery que substitui os parametros que n�o foram informados pelos defaults\n\t\tvar options = jQuery.extend(sDefaults, params);\n\n\t\t//CORPO DO PLUGIN\n\t\tvar number = numero; \n\t\tvar decimals = options.numberOfDecimals;\n\t\tvar dec_point = options.decimalSeparator;\n\t\tvar thousands_sep = options.thousandSeparator;\n\t\tvar currencySymbol = options.symbol;\n\t\t\n\t\tvar exponent = \"\";\n\t\tvar numberstr = number.toString ();\n\t\tvar eindex = numberstr.indexOf (\"e\");\n\t\tif (eindex > -1)\n\t\t{\n\t\texponent = numberstr.substring (eindex);\n\t\tnumber = parseFloat (numberstr.substring (0, eindex));\n\t\t}\n\t\t\n\t\tif (decimals != null)\n\t\t{\n\t\tvar temp = Math.pow (10, decimals);\n\t\tnumber = Math.round (number * temp) / temp;\n\t\t}\n\t\tvar sign = number < 0 ? \"-\" : \"\";\n\t\tvar integer = (number > 0 ? \n\t\t Math.floor (number) : Math.abs (Math.ceil (number))).toString ();\n\t\t\n\t\tvar fractional = number.toString ().substring (integer.length + sign.length);\n\t\tdec_point = dec_point != null ? dec_point : \".\";\n\t\tfractional = decimals != null && decimals > 0 || fractional.length > 1 ? \n\t\t\t\t (dec_point + fractional.substring (1)) : \"\";\n\t\tif (decimals != null && decimals > 0)\n\t\t{\n\t\tfor (i = fractional.length - 1, z = decimals; i < z; ++i)\n\t\t fractional += \"0\";\n\t\t}\n\t\t\n\t\tthousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? \n\t\t\t\t\t thousands_sep : null;\n\t\tif (thousands_sep != null && thousands_sep != \"\")\n\t\t{\n\t\tfor (i = integer.length - 3; i > 0; i -= 3)\n\t\t integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);\n\t\t}\n\t\t\n\t\tif (options.symbol == '')\n\t\t{\n\t\treturn sign + integer + fractional + exponent;\n\t\t}\n\t\telse\n\t\t{\n\t\treturn currencySymbol + ' ' + sign + integer + fractional + exponent;\n\t\t}\n\t\t//FIM DO CORPO DO PLUGIN\t\n\t\t\n\t}\n});","!function(e){\"use strict\";function t(e){return\"function\"==typeof e}function a(e,t){if(this.createTextRange){var a=this.createTextRange();a.collapse(!0),a.moveStart(\"character\",e),a.moveEnd(\"character\",t-e),a.select()}else this.setSelectionRange&&(this.focus(),this.setSelectionRange(e,t))}function i(e){var t=this.value.length;if(e=\"start\"==e.toLowerCase()?\"Start\":\"End\",document.selection){var a,i,n,l=document.selection.createRange();return(a=l.duplicate()).expand(\"textedit\"),a.setEndPoint(\"EndToEnd\",l),n=(i=a.text.length-l.text.length)+l.text.length,\"Start\"==e?i:n}return void 0!==this[\"selection\"+e]&&(t=this[\"selection\"+e]),t}var n={codes:{46:127,188:44,109:45,190:46,191:47,192:96,220:92,222:39,221:93,219:91,173:45,187:61,186:59,189:45,110:46},shifts:{96:\"~\",49:\"!\",50:\"@\",51:\"#\",52:\"$\",53:\"%\",54:\"^\",55:\"&\",56:\"*\",57:\"(\",48:\")\",45:\"_\",61:\"+\",91:\"{\",93:\"}\",92:\"|\",59:\":\",39:'\"',44:\"<\",46:\">\",47:\"?\"}};e.fn.number=function(t,l,s,r){r=void 0===r?\",\":r,l=void 0===l?0:l;var h=\"\\\\u\"+(\"0000\"+(s=void 0===s?\".\":s).charCodeAt(0).toString(16)).slice(-4),u=new RegExp(\"[^\"+h+\"0-9]\",\"g\"),o=new RegExp(h,\"g\");return!0===t?this.is(\"input:text\")?this.on({\"keydown.format\":function(t){var h=e(this),u=h.data(\"numFormat\"),o=t.keyCode?t.keyCode:t.which,c=\"\",v=i.apply(this,[\"start\"]),d=i.apply(this,[\"end\"]),p=\"\",g=!1;if(n.codes.hasOwnProperty(o)&&(o=n.codes[o]),!t.shiftKey&&o>=65&&o<=90?o+=32:!t.shiftKey&&o>=69&&o<=105?o-=48:t.shiftKey&&n.shifts.hasOwnProperty(o)&&(c=n.shifts[o]),\"\"==c&&(c=String.fromCharCode(o)),8!=o&&45!=o&&127!=o&&c!=s&&!c.match(/[0-9]/)){var f=t.keyCode?t.keyCode:t.which;if(46==f||8==f||127==f||9==f||27==f||13==f||(65==f||82==f||80==f||83==f||70==f||72==f||66==f||74==f||84==f||90==f||61==f||173==f||48==f)&&!0===(t.ctrlKey||t.metaKey)||(86==f||67==f||88==f)&&!0===(t.ctrlKey||t.metaKey)||f>=35&&f<=39||f>=112&&f<=123)return;return t.preventDefault(),!1}if(0==v&&d==this.value.length?8==o?(v=d=1,this.value=\"\",u.init=l>0?-1:0,u.c=l>0?-(l+1):0,a.apply(this,[0,0])):c==s?(v=d=1,this.value=\"0\"+s+new Array(l+1).join(\"0\"),u.init=l>0?1:0,u.c=l>0?-(l+1):0):45==o?(v=d=2,this.value=\"-0\"+s+new Array(l+1).join(\"0\"),u.init=l>0?1:0,u.c=l>0?-(l+1):0,a.apply(this,[2,2])):(u.init=l>0?-1:0,u.c=l>0?-l:0):u.c=d-this.value.length,u.isPartialSelection=v!=d,l>0&&c==s&&v==this.value.length-l-1)u.c++,u.init=Math.max(0,u.init),t.preventDefault(),g=this.value.length+u.c;else if(45!=o||0==v&&0!=this.value.indexOf(\"-\"))if(c==s)u.init=Math.max(0,u.init),t.preventDefault();else if(l>0&&127==o&&v==this.value.length-l-1)t.preventDefault();else if(l>0&&8==o&&v==this.value.length-l)t.preventDefault(),u.c--,g=this.value.length+u.c;else if(l>0&&127==o&&v>this.value.length-l-1){if(\"\"===this.value)return;\"0\"!=this.value.slice(v,v+1)&&(p=this.value.slice(0,v)+\"0\"+this.value.slice(v+1),h.val(p)),t.preventDefault(),g=this.value.length+u.c}else if(l>0&&8==o&&v>this.value.length-l){if(\"\"===this.value)return;\"0\"!=this.value.slice(v-1,v)&&(p=this.value.slice(0,v-1)+\"0\"+this.value.slice(v),h.val(p)),t.preventDefault(),u.c--,g=this.value.length+u.c}else 127==o&&this.value.slice(v,v+1)==r?t.preventDefault():8==o&&this.value.slice(v-1,v)==r?(t.preventDefault(),u.c--,g=this.value.length+u.c):l>0&&v==d&&this.value.length>l+1&&v>this.value.length-l-1&&isFinite(+c)&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&1===c.length&&(p=d===this.value.length?this.value.slice(0,v-1):this.value.slice(0,v)+this.value.slice(v+1),this.value=p,g=v);else t.preventDefault();!1!==g&&a.apply(this,[g,g]),h.data(\"numFormat\",u)},\"keyup.format\":function(t){var n,s=e(this),r=s.data(\"numFormat\"),h=t.keyCode?t.keyCode:t.which,u=i.apply(this,[\"start\"]),o=i.apply(this,[\"end\"]);0!==u||0!==o||189!==h&&109!==h||(s.val(\"-\"+s.val()),u=1,r.c=1-this.value.length,r.init=1,s.data(\"numFormat\",r),n=this.value.length+r.c,a.apply(this,[n,n])),\"\"===this.value||(h<48||h>57)&&(h<96||h>105)&&8!==h&&46!==h&&110!==h||(s.val(s.val()),l>0&&(r.init<1?(u=this.value.length-l-(r.init<0?1:0),r.c=u-this.value.length,r.init=1,s.data(\"numFormat\",r)):u>this.value.length-l&&8!=h&&(r.c++,s.data(\"numFormat\",r))),46!=h||r.isPartialSelection||(r.c++,s.data(\"numFormat\",r)),n=this.value.length+r.c,a.apply(this,[n,n]))},\"paste.format\":function(t){var a=e(this),i=t.originalEvent,n=null;return window.clipboardData&&window.clipboardData.getData?n=window.clipboardData.getData(\"Text\"):i.clipboardData&&i.clipboardData.getData&&(n=i.clipboardData.getData(\"text/plain\")),a.val(n),t.preventDefault(),!1}}).each(function(){var t=e(this).data(\"numFormat\",{c:-(l+1),decimals:l,thousands_sep:r,dec_point:s,regex_dec_num:u,regex_dec:o,init:!!this.value.indexOf(\".\")});\"\"!==this.value&&t.val(t.val())}):this.each(function(){var t=e(this),a=+t.text().replace(u,\"\").replace(o,\".\");t.number(isFinite(a)?+a:0,l,s,r)}):this.text(e.number.apply(window,arguments))};var l=null,s=null;e.isPlainObject(e.valHooks.text)?(t(e.valHooks.text.get)&&(l=e.valHooks.text.get),t(e.valHooks.text.set)&&(s=e.valHooks.text.set)):e.valHooks.text={},e.valHooks.text.get=function(a){var i,n=e(a).data(\"numFormat\");return n?\"\"===a.value?\"\":(i=+a.value.replace(n.regex_dec_num,\"\").replace(n.regex_dec,\".\"),(0===a.value.indexOf(\"-\")?\"-\":\"\")+(isFinite(i)?i:0)):t(l)?l(a):void 0},e.valHooks.text.set=function(a,i){var n=e(a).data(\"numFormat\");if(n){var l=e.number(i,n.decimals,n.dec_point,n.thousands_sep);return t(s)?s(a,l):a.value=l}return t(s)?s(a,i):void 0},e.number=function(e,t,a,i){i=void 0===i?\"1000\"!==new Number(1e3).toLocaleString()?new Number(1e3).toLocaleString().charAt(1):\"\":i,a=void 0===a?new Number(.1).toLocaleString().charAt(1):a,t=isFinite(+t)?Math.abs(t):0;var n=\"\\\\u\"+(\"0000\"+a.charCodeAt(0).toString(16)).slice(-4),l=\"\\\\u\"+(\"0000\"+i.charCodeAt(0).toString(16)).slice(-4);e=(e+\"\").replace(\".\",a).replace(new RegExp(l,\"g\"),\"\").replace(new RegExp(n,\"g\"),\".\").replace(new RegExp(\"[^0-9+-Ee.]\",\"g\"),\"\");var s=isFinite(+e)?+e:0,r=\"\";return(r=(t?function(e,t){return\"\"+ +(Math.round((\"\"+e).indexOf(\"e\")>0?e:e+\"e+\"+t)+\"e-\"+t)}(s,t):\"\"+Math.round(s)).split(\".\"))[0].length>3&&(r[0]=r[0].replace(/\\B(?=(?:\\d{3})+(?!\\d))/g,i)),(r[1]||\"\").length SME Direkt. Beräkningarna är baserade på prognoser från svenska och internationella analytiker. SME Direkt är Nordens ledande konsensusestimattjänst och omfattar 149 nordiska företag. SME Direkt grundades 1994 och är en del av Nyhetsbyrån Direkt. Medverkande är de ledande bankerna och mäklarna i Norden och internationella investmentbanker.\",\n TextSource: \"Källa\",\n TextLargest: \"Största Aktieägarna\",\n TextRange: \"Storleksklasser\",\n TextDist: \"Geografisk fördelning\",\n TextGrouped: \"Största Grupperade Aktieägarna\",\n TextAnalyticsCount: \"Antal analytiker\",\n\n // general translations\n TextPrintOrderFail: \"Ett fel uppstod och din beställning har inte gått igenom. Var vänlig kontrollera alla uppgifter och försk igen.\",\n TextPrintOrderSuccess: \"Du har beställt följande trycksaker: \",\n TextCompany: \"Företag\",\n TextAddress: \"Adress\",\n TextPostalCode: \"Postkod\",\n TextSubmit: \"Skicka\",\n TextCity: \"Stad\",\n TextCountry: \"Land\",\n TextQuantity: \"Kvantitet\",\n Languages: {\n sv: \"Svenska\",\n en: \"Engelska\",\n fi: \"Finska\",\n da: \"Danska\",\n no: \"Norska\",\n de: \"Tyska\",\n fr: \"Franska\",\n pt: \"Portugisiska\",\n nl: \"Holländska\"\n },\n TextAttachment: \"Bilagor\",\n TextWhenWhere: \"Var och När\",\n TextDigitalVersion: \"Digital version\",\n TextRequired: \"Obligatoriska fält\",\n TextFirstEvent: \"Nästkommande händelse\",\n TextEvents: \"Händelser\",\n TextEvent: \"Händelse\",\n TextAddToCal: \"Lägg till i din kalender\",\n TextUpcomingEvents: \"Kommande händelser\",\n TextEventArchive: \"Arkiv\",\n TextTitle: \"Titel\",\n TextPrintLang: \"Tryckspråk\",\n TextPrintLink: \"Länk till digital version\",\n TextPrintQuant: \"Kvantitet att beställa\",\n TextOrderPrint: \"Beställ trycksaker\",\n TextAll: \"Allt\",\n TextPrintOrderSuccessHeader: \"Beställningen mottagen!\",\n TextPrintOrderFailHeader: \"Beställningen misslyckades!\"\n};\n\n//DPS = utdelning per aktie\n//Sales = Omsättning\n//EPS = Vinst per aktie\n//EBIT = Rörelseresultat\n\ncision.websolution.texts[\"en\"] = {\n // Sharegraph translations\n TextComparison: \"Comparisons\",\n TextIndicator: \"Indicators\",\n TextOption: \"Options\",\n TextCompSubtitle: \"Comparison Type\",\n TextViewSubtitle: \"Show View\",\n TextPercent: \"Percent\",\n TextNone: \"Price\",\n TextShowVolume: \"Show Volume\",\n TextPartOfDay: \"1D\",\n TextEndOfDay: \"Default View\",\n TextReport: \"Reports\",\n TextPress: \"Press Releases\",\n TextIndex: \"Index\",\n TextPeers: \"Peers\",\n TextReleases: \"Regulatory Information\",\n TextClose: \"Close\",\n TextIntra: \"1D\",\n Text1V: \"1W\",\n Text1M: \"1M\",\n Text3M: \"3M\",\n Text6M: \"6M\",\n Text1Y: \"1Y\",\n TextAll: \"All\",\n TextInsider: \"Insider\",\n TextDividend: \"Dividend\",\n TextPrintChart: \"Print graph\",\n TextDownloadAsPNG: \"Export as PNG\",\n TextDownloadAsJPEG: \"Export as JPEG\",\n TextDownloadAsSVG: \"Export as SVG\",\n TextDownloadAsPDF: \"Export as PDF\",\n TextShareOptions: \"Share options\",\n TextOrderBook: \"Order book\",\n TextTrades: \"Trades\",\n TextPerformance: \"Performance\",\n\n // Insider translations\n TextInsiderTrans: \"Insider transactions\",\n TextInsiderPersons: \"Insider persons\",\n TextBack: \"Back\",\n TextInsiderPerson: \"Insider\",\n TextPosition: \"Position\",\n TextInstrument: \"Instrument\",\n TextTransaction: \"Transaction\",\n TextFrom: \"From\",\n TextTo: \"To\",\n TextHoldings: \"Holdings\",\n TextSecurity: \"Security\",\n TextTransactions: \"Transactions\",\n TextLastTransaction: \"Last Transaction\",\n TextHolder: \"Holder\",\n\n // Ticker translations\n TextSharePriceSEK: \"Share price in SEK\",\n TextChangeInSEK: \"Change in SEK\",\n TextChangeInPercent: \"Change in %\",\n\n // other ir modules translations\n TextNumberRec: \"Number of recommendations\",\n TextHeader1: \"Share Information\",\n TextHeader2: \"Current distribution of recommendations\",\n TextLastUpdate: \"Latest update\",\n TextName: \"Name\",\n TextBuy: \"Buy\",\n TextStrongBuy: \"Strong buy\",\n TextSell: \"Sell\",\n TextStrongSell: \"Strong sell\",\n TextHold: \"Hold\",\n TextMean: \"Mean\",\n TextSymbol: \"Symbol\",\n TextCurrency: \"Currency\",\n TextMarketPlace: \"Market place\",\n TextLatestPrice: \"Latest price\",\n TextClosingPrice: \"Closing price\",\n TextLatestChange: \"Latest change\",\n TextAtHigh: \"All time high\",\n TextAtLast: \"All time low\",\n TextYearHigh: \"Year high\",\n TextYearLow: \"Year low\",\n TextNumberOfShares: \"Number of shares\",\n TextShareValue: \"Value\",\n TextNoTradesYet: \"There has not been any trades yet\",\n\n TextShareCompute: \"Compute\",\n TextPurchaseDate: \"Purchase date\",\n TextShareType: \"Share type\",\n TextShareTypeHelp: \"Choose you share type\",\n TextShareSettings: \"Settings\",\n TextDownloadResultsAndShareHistory: \"Download results and share history\",\n TextPeriodHelp: \"Enter the time period\",\n TextYear: \"Year\",\n TextMonth: \"Month\",\n TextDay: \"Day\",\n TextFromIncluding: \"From including\",\n TextToIncluding: \"To including\",\n TextNumberOfSharesHelp: \"Enter number of shares OR the value of your holdings\",\n TextOpenPrice: \"Open price\",\n TextChange: \"Change\",\n TextShareCalculatorResults: \"Results\",\n TextShareCalculatorHistory: \"History\",\n TextInitialInvestment: \"Initial investment\",\n TextEndValue: \"End value\",\n TextSharePrice: \"Share price\",\n TextSharesBought: \"Shares bought\",\n TextAnnualizedChange: \"Annualized change\",\n TextEndOfTheDay: \"End of the day\",\n TextPartOfTheDay: \"Part of the day\",\n\n TextPrice: \"Price\",\n TextBuyer: \"Buyer\",\n TextSeller: \"Seller\",\n TextTime: \"Time\",\n TextAsk: \"Ask\",\n TextBid: \"Bid\",\n TextHigh: \"High\",\n TextLow: \"Low\",\n TextVolume: \"Volume\",\n TextTurnover: \"Turnover\",\n TextMarket: \"Total Market Cap\",\n TextTotal: \"Total Shares\",\n TextVotes: \"Votes %\",\n TextValue: \"Value\",\n TextShare: \"Share\",\n TextHolders: \"Share Holders\",\n TextValueKSEK: \"Value in KSEK\",\n TextArea: \"Area Name\",\n TextOwnershipAreaNames: {\n 'Sweden': 'SWEDEN',\n 'Usa': 'USA',\n 'Nordic': 'REST OF NORDICS',\n 'Europe': 'REST OF EUROPE',\n 'World': 'REST OF WORLD',\n 'Total': 'TOTAL'\n },\n TextVoting: \"Voting Rights\",\n TextLatest: \"Latest\",\n TextDownload: \"Download\",\n TextDownloadShareHistory: \"Download share history\",\n TextAnnual: \"Annual\",\n TextQuarterly: \"Quarterly\",\n TextHistorical: \"Historical\",\n TextRec: \"Recommendations\",\n TextHistoricalRec: \"Historical Recommendations\",\n TextSME: \"The estimates are collected and calculated by SME Direkt. The estimates are based on projections from Swedish and International Analysts. SME Direkt is the leading Nordic consensus estimates service and it covers 149 Nordic companies. SME Direkt was founded in 1994 and is a part of Nyhetsbyrån Direkt. Contributors are the leading banks and brokers in the Nordic area and international investment banks.\",\n TextSource: \"Source\",\n TextLargest: \"Largest Shareholders\",\n TextRange: \"Share Ranges\",\n TextDist: \"Geographical Distribution\",\n TextGrouped: \"Largest Grouped Shareholders\",\n TextAnalyticsCount: \"Covering analysts\",\n\n // general translations\n TextCompany: \"Company\",\n TextAddress: \"Address\",\n TextPostalCode: \"Postal code\",\n TextSubmit: \"Send\",\n TextCity: \"City\",\n TextLanguage: \"Language code\",\n TextCountry: \"Country\",\n TextQuantity: \"Quantity\",\n Languages: {\n sv: \"Swedish\",\n en: \"English\",\n fi: \"Finnish\",\n de: \"Danish\",\n no: \"Norweigian\",\n ge: \"German\",\n fr: \"French\",\n pt: \"Portugese\",\n nl: \"Dutch\"\n },\n TextAttachment: \"Attachments\",\n TextWhenWhere: \"When and Where\",\n TextDigitalVersion: \"Digital version\",\n TextRequired: \"Required fields\",\n TextFirstEvent: \"Next coming event\",\n TextEvents: \"Events\",\n TextDate: \"Date\",\n TextDateTime: \"Date and time\",\n TextEvent: \"Event\",\n TextAddToCal: \"Add to your calendar\",\n TextUpcomingEvents: \"Upcoming events\",\n TextEventArchive: \"Archive\",\n TextTitle: \"Title\",\n TextPrintLang: \"Print language\",\n TextPrintLink: \"Link to digital version\",\n TextPrintQuant: \"Quantity to order\",\n TextOrderPrint: \"Order printed materials\",\n TextPrintOrderSuccess: \"Order successful!\",\n TextPrintOrderFail: \"Order failed!\"\n\n};\n\n// dk, fi, no and de translations is not complete.\n\ncision.websolution.texts[\"dk\"] = {\n // Sharegraph translations\n TextComparison: \"Sammenligninger\",\n TextIndicator: \"Indikatorer\",\n TextOption: \"Optioner\",\n TextCompSubtitle: \"Sammenligning\",\n TextViewSubtitle: \"Vis\",\n TextPercent: \"Procent\",\n TextValue: \"Værdi\",\n TextNone: \"Pris\",\n TextShowVolume: \"Vis volumen\",\n TextPartOfDay: \"Intraday\",\n TextEndOfDay: \"Standardvisning\",\n TextReport: \"Rapporter\",\n TextPress: \"Pressemeddelelser\",\n TextIndex: \"Indeks\",\n TextPeers: \"Sammenlignelige virksomheder\",\n TextReleases: \"Lovmæssig information\",\n TextClose: \"Luk\",\n TextIntra: \"Intraday\",\n Text1V: \"1V\",\n Text1M: \"1M\",\n Text3M: \"3M\",\n Text6M: \"6M\",\n Text1Y: \"1Y\",\n TextAll: \"Alle\",\n TextInsider: \"Insider\",\n TextDividend: \"Udbytte\",\n\n // Insiders translations\n TextNumberRec: \"Number of recommendations\",\n TextHeader1: \"Share Information\",\n TextHeader2: \"Current distribution of recommendations\",\n TextLastUpdate: \"Latest update\",\n TextName: \"Name\",\n TextBuy: \"Buy\",\n TextStrongBuy: \"Strong buy\",\n TextSell: \"Sell\",\n TextStrongSell: \"Strong sell\",\n TextHold: \"Hold\",\n TextMean: \"Mean\",\n TextSymbol: \"Symbol\",\n TextCurrency: \"Currency\",\n TextMarketPlace: \"Market place\",\n TextLatestPrice: \"Latest price\",\n TextClosingPrice: \"Closing price\",\n TextLatestChange: \"Latest change\",\n TextAtHigh: \"All time high\",\n TextAtLast: \"All time low\",\n TextYearHigh: \"Year high\",\n TextYearLow: \"Year low\",\n TextNumberOfShares: \"Number of shares\",\n TextShareValue: \"Value\",\n TextShareCompute: \"Compute\",\n TextPurchaseDate: \"Purchase date\",\n TextShareType: \"Share type\",\n TextShareTypeHelp: \"Choose you share type\",\n TextShareSettings: \"Settings\",\n TextDownloadResultsAndShareHistory: \"Download results and share history\",\n TextPeriodHelp: \"Enter the time period\",\n TextYear: \"Year\",\n TextMonth: \"Month\",\n TextDay: \"Day\",\n TextFromIncluding: \"From including\",\n TextToIncluding: \"To including\",\n TextNumberOfSharesHelp: \"Enter number of shares OR the value of your holdings\",\n TextOpenPrice: \"Open price\",\n TextChange: \"Change\",\n TextShareCalculatorResults: \"Results\",\n TextShareCalculatorHistory: \"History\",\n TextInitialInvestment: \"Initial investment\",\n TextEndValue: \"End value\",\n TextSharePrice: \"Share price\",\n TextSharesBought: \"Shares bought\",\n TextAnnualizedChange: \"Annualized change\",\n TextEndOfTheDay: \"End of the day\",\n TextPartOfTheDay: \"Part of the day\",\n\n TextPrice: \"Price\",\n TextBuyer: \"Buyer\",\n TextSeller: \"Seller\",\n TextTime: \"Time\",\n TextAsk: \"Ask\",\n TextBid: \"Bid\",\n TextHigh: \"High\",\n TextLow: \"Low\",\n TextVolume: \"Volume\",\n TextTurnover: \"Turnover\",\n TextMarket: \"Total Market Cap\",\n TextShare: \"Share\",\n TextLatest: \"Latest\",\n TextDownload: \"Download\",\n TextDownloadShareHistory: \"Download share history\"\n};\n\ncision.websolution.texts[\"no\"] = {\n // Sharegraph translations\n TextComparison: \"Sammenligninger\",\n TextIndicator: \"Indikatorer\",\n TextOption: \"Alternativer\",\n TextCompSubtitle: \"Sammenligningstype\",\n TextViewSubtitle: \"visning\",\n TextPercent: \"Prosent\",\n TextValue: \"Verdi\",\n TextNone: \"Pris\",\n TextShowVolume: \"Vis volum\",\n TextPartOfDay: \"I løpet av dagen\",\n TextEndOfDay: \"Standard visning\",\n TextReport: \"Rapporter\",\n TextPress: \"Pressemeldinger\",\n TextShare: \"Aksje\",\n TextIndex: \"Stikkordliste\",\n TextPeers: \"Likestilte\",\n TextReleases: \"Regulerende informasjon\",\n TextClose: \"Lukk\",\n TextIntra: \"I løpet av dagen\",\n Text1V: \"1V\",\n Text1M: \"1M\",\n Text3M: \"3M\",\n Text6M: \"6M\",\n Text1Y: \"1Y\",\n TextAll: \"Alle\",\n TextInsider: \"Insider\",\n TextDividend: \"Utbytte\",\n TextPrintChart: \"Print graph\",\n TextDownloadAsPNG: \"Export as PNG\",\n TextDownloadAsJPEG: \"Export as JPEG\",\n TextDownloadAsSVG: \"Export as SVG\",\n TextDownloadAsPDF: \"Export as PDF\",\n TextShareOptions: \"Share options\",\n TextOrderBook: \"Order book\",\n TextTrades: \"Trades\",\n TextPerformance: \"Performance\",\n\n // Insider translations\n TextInsiderTrans: \"Insider transactions\",\n TextInsiderPersons: \"Insider persons\",\n TextBack: \"Back\",\n TextInsiderPerson: \"Insider\",\n TextPosition: \"Position\",\n TextInstrument: \"Instrument\",\n TextTransaction: \"Transaction\",\n TextFrom: \"From\",\n TextTo: \"To\",\n TextHoldings: \"Holdings\",\n TextSecurity: \"Security\",\n TextTransactions: \"Transactions\",\n TextLastTransaction: \"Last Transaction\",\n TextHolder: \"Holder\",\n\n // Ticker translations\n TextSharePriceSEK: \"Share price in SEK\",\n TextChangeInSEK: \"Change in SEK\",\n TextChangeInPercent: \"Change in %\",\n\n // other ir modules translations\n TextNumberRec: \"Number of recommendations\",\n TextHeader1: \"Share Information\",\n TextHeader2: \"Current distribution of recommendations\",\n TextLastUpdate: \"Latest update\",\n TextName: \"Name\",\n TextBuy: \"Buy\",\n TextStrongBuy: \"Strong buy\",\n TextSell: \"Sell\",\n TextStrongSell: \"Strong sell\",\n TextHold: \"Hold\",\n TextMean: \"Mean\",\n TextSymbol: \"Symbol\",\n TextCurrency: \"Currency\",\n TextMarketPlace: \"Market place\",\n TextLatestPrice: \"Latest price\",\n TextClosingPrice: \"Closing price\",\n TextLatestChange: \"Latest change\",\n TextAtHigh: \"All time high\",\n TextAtLast: \"All time low\",\n TextYearHigh: \"Year high\",\n TextYearLow: \"Year low\",\n TextNumberOfShares: \"Number of shares\",\n TextShareValue: \"Value\",\n TextNoTradesYet: \"There has not been any trades yet\",\n\n TextShareCompute: \"Compute\",\n TextPurchaseDate: \"Purchase date\",\n TextShareType: \"Share type\",\n TextShareTypeHelp: \"Choose you share type\",\n TextShareSettings: \"Settings\",\n TextDownloadResultsAndShareHistory: \"Download results and share history\",\n TextPeriodHelp: \"Enter the time period\",\n TextYear: \"Year\",\n TextMonth: \"Month\",\n TextDay: \"Day\",\n TextFromIncluding: \"From including\",\n TextToIncluding: \"To including\",\n TextNumberOfSharesHelp: \"Enter number of shares OR the value of your holdings\",\n TextOpenPrice: \"Open price\",\n TextChange: \"Change\",\n TextShareCalculatorResults: \"Results\",\n TextShareCalculatorHistory: \"History\",\n TextInitialInvestment: \"Initial investment\",\n TextEndValue: \"End value\",\n TextSharePrice: \"Share price\",\n TextSharesBought: \"Shares bought\",\n TextAnnualizedChange: \"Annualized change\",\n TextEndOfTheDay: \"End of the day\",\n TextPartOfTheDay: \"Part of the day\",\n\n TextPrice: \"Price\",\n TextBuyer: \"Buyer\",\n TextSeller: \"Seller\",\n TextTime: \"Time\",\n TextAsk: \"Ask\",\n TextBid: \"Bid\",\n TextHigh: \"High\",\n TextLow: \"Low\",\n TextVolume: \"Volume\",\n TextTurnover: \"Turnover\",\n TextMarket: \"Total Market Cap\",\n TextTotal: \"Total Shares\",\n TextVotes: \"Votes %\",\n TextValue: \"Value\",\n TextShare: \"Share\",\n TextHolders: \"Share Holders\",\n TextValueSEK: \"Value in SEK\",\n\tTextValueKSEK: \"Value in KSEK\",\n TextArea: \"Area Name\",\n TextOwnershipAreaNames: {\n 'Sweden': 'SWEDEN',\n 'Usa': 'USA',\n 'Nordic': 'REST OF NORDICS',\n 'Europe': 'REST OF EUROPE',\n 'World': 'REST OF WORLD',\n 'Total': 'TOTAL'\n },\n TextVoting: \"Voting Rights\",\n TextLatest: \"Latest\",\n TextDownload: \"Download\",\n TextDownloadShareHistory: \"Download share history\",\n TextAnnual: \"Annual\",\n TextQuarterly: \"Quarterly\",\n TextHistorical: \"Historical\",\n TextRec: \"Recommendations\",\n TextHistoricalRec: \"Historical Recommendations\",\n TextSME: \"The estimates are collected and calculated by SME Direkt. The estimates are based on projections from Swedish and International Analysts. SME Direkt is the leading Nordic consensus estimates service and it covers 149 Nordic companies. SME Direkt was founded in 1994 and is a part of Nyhetsbyrån Direkt. Contributors are the leading banks and brokers in the Nordic area and international investment banks.\",\n TextSource: \"Source\",\n TextLargest: \"Largest Shareholders\",\n TextRange: \"Share Ranges\",\n TextDist: \"Geographical Distribution\",\n TextGrouped: \"Largest Grouped Shareholders\",\n TextAnalyticsCount: \"Covering analysts\",\n\n // general translations\n TextCompany: \"Company\",\n TextAddress: \"Address\",\n TextPostalCode: \"Postal code\",\n TextSubmit: \"Send\",\n TextCity: \"City\",\n TextLanguage: \"Language code\",\n TextCountry: \"Country\",\n TextQuantity: \"Quantity\",\n Languages: {\n sv: \"Swedish\",\n en: \"English\",\n fi: \"Finnish\",\n de: \"Danish\",\n no: \"Norweigian\",\n ge: \"German\",\n fr: \"French\",\n pt: \"Portugese\",\n nl: \"Dutch\"\n },\n TextAttachment: \"Attachments\",\n TextWhenWhere: \"When and Where\",\n TextDigitalVersion: \"Digital version\",\n TextRequired: \"Required fields\",\n TextFirstEvent: \"Next coming event\",\n TextEvents: \"Events\",\n TextDate: \"Date\",\n TextDateTime: \"Date and time\",\n TextEvent: \"Event\",\n TextAddToCal: \"Add to your calendar\",\n TextUpcomingEvents: \"Upcoming events\",\n TextEventArchive: \"Archive\",\n TextTitle: \"Title\",\n TextPrintLang: \"Print language\",\n TextPrintLink: \"Link to digital version\",\n TextPrintQuant: \"Quantity to order\",\n TextOrderPrint: \"Order printed materials\",\n TextPrintOrderSuccess: \"Order successful!\",\n TextPrintOrderFail: \"Order failed!\"\n};\n\ncision.websolution.texts[\"fi\"] = {\n // Sharegraph translations\n TextComparison: \"Vertailut\",\n TextIndicator: \"Indikaattorit\",\n TextOption: \"Vaihtoehdot\",\n TextCompSubtitle: \"Vertailutyyppi\",\n TextViewSubtitle: \"Näytä näkymä\",\n TextPercent: \"Prosentti\",\n TextValue: \"Arvo\",\n TextNone: \"Hinta\",\n TextShowVolume: \"Näytä volyymi\",\n TextPartOfDay: \"Päiväkauppa\",\n TextEndOfDay: \"Oletusnäkymä\",\n TextReport: \"Raportit\",\n TextPress: \"Lehdistötiedotteet\",\n TextShare: \"Osake\",\n TextIndex: \"Indeksi\",\n TextPeers: \"Vertaisryhmään kuuluvat\",\n TextReleases: \"Sääntelytiedot\",\n TextClose: \"Sulje\",\n    TextIntra: \"1PÄ\",\n    Text1V: \"1VI\",\n    Text1M: \"1KU\",\n    Text3M: \"3KU\",\n    Text6M: \"6KU\",\n    Text1Y: \"1VU\",\n TextAll: \"Kaikki\",\n TextInsider: \"Sisäpiiriläinen\",\n TextDividend: \"Osinko\",\n TextDownload: \"Lataa\",\n TextPrintChart: \"Tulosta graafi\",\n TextDownloadAsPNG: \"Vie PNG:nä\",\n TextDownloadAsJPEG: \"Vie JPEG:nä\",\n TextDownloadAsSVG: \"Vie SVG:nä\",\n TextDownloadAsPDF: \"Vie PDF:nä\",\n TextDownloadShareHistory: \"Lataa kurssitieto\",\n TextShareOptions: \"Osakevalinnat\",\n TextOrderBook: \"Tilauskanta\",\n TextTrades: \"Viimeisimmät kaupat\",\n TextPerformance: \"Kaupankäyntitieto\",\n // Insider translations\n TextInsiderTrans: \"Sisäpiirin kaupat\",\n TextInsiderPersons: \"Sisäpiiriläiset\",\n TextDate: \"Päivämäärä\",\n TextDateTime: \"Päivämäärä ja aika\",\n TextBack: \"Takaisin\",\n TextInsiderPerson: \"Sisäpiiriläinen\",\n TextPosition: \"Asema\",\n TextInstrument: \"Instrumentti\",\n TextTransaction: \"Liiketoimi\",\n TextFrom: \"From\",\n TextTo: \"To\",\n TextHoldings: \"Omistukset\",\n TextSecurity: \"Security\",\n TextTransactions: \"Liiketoimet\",\n TextLastTransaction: \"Viimeisin liiketoimi\",\n TextHolder: \"Omistaja\",\n\n // Ticker translations\n TextSharePriceSEK: \"Share price in SEK\",\n TextChangeInSEK: \"Change in SEK\",\n TextChangeInPercent: \"Change in %\",\n\n // other ir modules translations\n TextNumberRec: \"Suositusten määrä\",\n TextHeader1: \"Osaketieto\",\n TextHeader2: \"Suositusten jakauma\",\n TextLastUpdate: \"Viimeisin päivitys\",\n TextName: \"Nimi\",\n TextBuy: \"Osta\",\n TextStrongBuy: \"Vahva osta\",\n TextVolume: \"Volyymi\",\n TextSell: \"Myy\",\n TextStrongSell: \"Vahva myy\",\n TextHold: \"Pidä\",\n TextMean: \"Keskiarvo\",\n TextSymbol: \"Tunnus\",\n TextCurrency: \"Valuutta\",\n TextMarketPlace: \"Markkinapaikka\",\n TextLatestPrice: \"Viimeisin hinta\",\n TextClosingPrice: \"Päätöskurssi\",\n TextLatestChange: \"Viimeisin muutos\",\n TextLastChange: \"Viimeisin muutos\",\n TextAtHigh: \"Kaikkien aikojen ylin\",\n TextAtLast: \"Kaikkien aikojen alin\",\n TextYearHigh: \"Vuoden ylin\",\n TextYearLow: \"Vuoden alin\",\n TextNumberOfShares: \"Osakkeiden lukumäärä\",\n TextShareValue: \"Arvo\",\n TextShareCompute: \"Laske\",\n TextPurchaseDate: \"Ostopäivämäärä\",\n TextShareType: \"Osaketyyppi\",\n TextShareTypeHelp: \"Valitse osaketyyppi\",\n TextShareSettings: \"Asetukset\",\n TextDownloadResultsAndShareHistory: \"Lataa tulos- ja osaketiedot\",\n TextPeriodHelp: \"Valitse aikaväli\",\n TextYear: \"Vuosi\",\n TextMonth: \"Kuukausi\",\n TextDay: \"Päivä\",\n TextFromIncluding: \"Alkaen\",\n TextToIncluding: \"Asti\",\n TextNumberOfSharesHelp: \"Syötä osakkeiden lukumäärä tai omistustesi arvo\",\n TextOpenPrice: \"Avauskurssi\",\n TextChange: \"Muutos\",\n TextShareCalculatorResults: \"Tulokset\",\n TextShareCalculatorHistory: \"Historia\",\n TextInitialInvestment: \"Alkuperäinen sijoitus\",\n TextEndValue: \"Päätösarvo\",\n TextSharePrice: \"Osakehinta\",\n TextSharesBought: \"Ostetut osakkeet\",\n TextAnnualizedChange: \"Annualisoitu muutos\",\n TextEndOfTheDay: \"Päivän päätös\",\n TextPartOfTheDay: \"Päivän osa\",\n TextNoTradesYet: \"Ei vielä kauppoja\",\n TextPrice: \"Hinta\",\n TextBuyer: \"Ostaja\",\n TextSeller: \"Myyjä\",\n TextTime: \"Aika\",\n TextAsk: \"Myynti\",\n TextBid: \"Osto\",\n TextHigh: \"Ylin\",\n TextLow: \"Alin\",\n TextTurnover: \"Liikevaihto\",\n TextMarket: \"Markkina-arvo\",\n TextTotal: \"Osakkeiden lukumäärä\",\n TextVotes: \"Äänet %\",\n TextHolders: \"Osakkeenomistajat\",\n TextValueSEK: \"Arvo SEK\",\n\tTextValueKSEK: \"Arvo KSEK\",\n TextArea: \"Aluenimi\",\n TextOwnershipAreaNames: {\n 'Sweden': 'RUOTSI',\n 'Usa': 'USA',\n 'Nordic': 'MUUT POHJOISMAAT',\n 'Europe': 'MUU EUROOPPA',\n 'World': 'MUU MAAILMA',\n 'Total': 'YHTEENSÄ'\n },\n TextVoting: \"Äänestysoikeudet\",\n TextLatest: \"Viimeisin\",\n TextAnnual: \"Vuosittainen\",\n TextQuarterly: \"Neljännesvuosittainen\",\n TextHistorical: \"Historiallinen\",\n TextRec: \"Suositukset\",\n TextHistoricalRec: \"Historialliset suositukset\",\n TextSME: \"Arviot kerätään ja lasketaan SME Direktin. toimesta. Arviot perustuvat ruotsalaisten ja kansainvälisten analyytikoiden näkemyksiin. SME Direkt on Pohjoismaiden johtava konsensusarviopalvelu, joka kattaa 149 Pohjoismaalaista yritystä. SME Direkt perustettiin 1994 ja on osa Nyhetsbyrån Direktiä. Arvioiden tuottajina toimivat Pohjoismaiset johtavat pankit ja välittäjät sekä kansainväliset investointipankit. \",\n TextSource: \"Lähde\",\n TextLargest: \"Suurimmat osakkeenomistajat\",\n TextRange: \"Osakevaihtelut\",\n TextDist: \"Maantieteellinen jakauma\",\n TextGrouped: \"Suurimmat osakkeenomistajat ryhmiteltyinä\",\n TextAnalyticsCount: \"Analyytikot\",\n\n // general translations\n TextCompany: \"Yritys\",\n TextAddress: \"Osoite\",\n TextPostalCode: \"Postinumero\",\n TextSubmit: \"Lähetä\",\n TextCity: \"Kaupunki\",\n TextCountry: \"Maa\",\n TextQuantity: \"Määrä\",\n Languages: {\n sv: \"ruotsi\",\n en: \"englanti\",\n fi: \"suomi\",\n de: \"tanska\",\n no: \"norja\",\n ge: \"saksa\",\n fr: \"ranska\",\n pt: \"portugali\",\n nl: \"hollanti\"\n },\n TextAttachment: \"Liitteet\",\n TextWhenWhere: \"Missä ja milloin\",\n TextDigitalVersion: \"Digitaalinen versio\",\n TextRequired: \"Vaaditut kentät\",\n TextFirstEvent: \"Seuraava tapahtuma\",\n TextEvents: \"Tapahtumat\",\n TextEvent: \"Tapahtuma\",\n TextAddToCal: \"Lisää kalenteriisi\",\n TextUpcomingEvents: \"Tulevat tapahtumat\",\n TextEventArchive: \"Arkisto\",\n TextTitle: \"Otsikko\",\n TextPrintLang: \"Painokieli\",\n TextPrintLink: \"Linkki digitaaliseen versioon\",\n TextPrintQuant: \"Tilausmäärä\",\n TextOrderPrint: \"Tilaa tulostettuina\",\n TextPrintOrderSuccess: \"Tilaus onnistui\",\n TextPrintOrderFail: \"Tilaus epäonnistui\",\n    TextPrintOrderFail: \"Tilaus epäonnistui, ota yhteyttä asiakaspalveluun\",\n    TextPrintOrderSuccess: \"Olet tilannut seuraavat tuotteet\"\n};\n\ncision.websolution.texts[\"de\"] = {\n // Sharegraph translations\n TextComparison: \"Vergleiche\",\n TextIndicator: \"Indikatoren\",\n TextOption: \"Optionen\",\n TextCompSubtitle: \"Vergleichstyp\",\n TextViewSubtitle: \"Ansicht anzeigen\",\n TextPercent: \"Prozent\",\n TextValue: \"Wert\",\n TextNone: \"Preis\",\n TextShowVolume: \"Menge anzeigen\",\n TextPartOfDay: \"Intra Day\",\n TextEndOfDay: \"Standardansicht\",\n TextReport: \"Berichte\",\n TextPress: \"Pressemitteilungen\",\n TextShare: \"Aktie\",\n TextIndex: \"Index\",\n TextPeers: \"Fachkollegen\",\n TextReleases: \"Vorgeschriebene Information\",\n TextClose: \"Schließen\",\n TextIntra: \"Intraday\",\n Text1V: \"1V\",\n Text1M: \"1M\",\n Text3M: \"3M\",\n Text6M: \"6M\",\n Text1Y: \"1Y\",\n TextAll: \"Alle\",\n TextInsider: \"Insider\",\n TextDividend: \"Dividende\",\n TextPrintChart: \"Print graph\",\n TextDownloadAsPNG: \"Export as PNG\",\n TextDownloadAsJPEG: \"Export as JPEG\",\n TextDownloadAsSVG: \"Export as SVG\",\n TextDownloadAsPDF: \"Export as PDF\",\n TextShareOptions: \"Share options\",\n TextOrderBook: \"Order book\",\n TextTrades: \"Trades\",\n TextPerformance: \"Performance\",\n\n // Insider translations\n TextInsiderTrans: \"Insider transactions\",\n TextInsiderPersons: \"Insider persons\",\n TextBack: \"Back\",\n TextInsiderPerson: \"Insider\",\n TextPosition: \"Position\",\n TextInstrument: \"Instrument\",\n TextTransaction: \"Transaction\",\n TextFrom: \"From\",\n TextTo: \"To\",\n TextHoldings: \"Holdings\",\n TextSecurity: \"Security\",\n TextTransactions: \"Transactions\",\n TextLastTransaction: \"Last Transaction\",\n TextHolder: \"Holder\",\n\n // Ticker translations\n TextSharePriceSEK: \"Share price in SEK\",\n TextChangeInSEK: \"Change in SEK\",\n TextChangeInPercent: \"Change in %\",\n\n // other ir modules translations\n TextNumberRec: \"Number of recommendations\",\n TextHeader1: \"Share Information\",\n TextHeader2: \"Current distribution of recommendations\",\n TextLastUpdate: \"Latest update\",\n TextName: \"Name\",\n TextBuy: \"Buy\",\n TextStrongBuy: \"Strong buy\",\n TextSell: \"Sell\",\n TextStrongSell: \"Strong sell\",\n TextHold: \"Hold\",\n TextMean: \"Mean\",\n TextSymbol: \"Symbol\",\n TextCurrency: \"Currency\",\n TextMarketPlace: \"Market place\",\n TextLatestPrice: \"Latest price\",\n TextClosingPrice: \"Closing price\",\n TextLatestChange: \"Latest change\",\n TextAtHigh: \"All time high\",\n TextAtLast: \"All time low\",\n TextYearHigh: \"Year high\",\n TextYearLow: \"Year low\",\n TextNumberOfShares: \"Number of shares\",\n TextShareValue: \"Value\",\n TextNoTradesYet: \"There has not been any trades yet\",\n\n TextShareCompute: \"Compute\",\n TextPurchaseDate: \"Purchase date\",\n TextShareType: \"Share type\",\n TextShareTypeHelp: \"Choose you share type\",\n TextShareSettings: \"Settings\",\n TextDownloadResultsAndShareHistory: \"Download results and share history\",\n TextPeriodHelp: \"Enter the time period\",\n TextYear: \"Year\",\n TextMonth: \"Month\",\n TextDay: \"Day\",\n TextFromIncluding: \"From including\",\n TextToIncluding: \"To including\",\n TextNumberOfSharesHelp: \"Enter number of shares OR the value of your holdings\",\n TextOpenPrice: \"Open price\",\n TextChange: \"Change\",\n TextShareCalculatorResults: \"Results\",\n TextShareCalculatorHistory: \"History\",\n TextInitialInvestment: \"Initial investment\",\n TextEndValue: \"End value\",\n TextSharePrice: \"Share price\",\n TextSharesBought: \"Shares bought\",\n TextAnnualizedChange: \"Annualized change\",\n TextEndOfTheDay: \"End of the day\",\n TextPartOfTheDay: \"Part of the day\",\n\n TextPrice: \"Price\",\n TextBuyer: \"Buyer\",\n TextSeller: \"Seller\",\n TextTime: \"Time\",\n TextAsk: \"Ask\",\n TextBid: \"Bid\",\n TextHigh: \"High\",\n TextLow: \"Low\",\n TextVolume: \"Volume\",\n TextTurnover: \"Turnover\",\n TextMarket: \"Total Market Cap\",\n TextTotal: \"Total Shares\",\n TextVotes: \"Votes %\",\n TextValue: \"Value\",\n TextShare: \"Share\",\n TextHolders: \"Share Holders\",\n TextValueSEK: \"Value in SEK\",\n\tTextValueKSEK: \"Value in KSEK\",\n TextArea: \"Area Name\",\n TextOwnershipAreaNames: {\n 'Sweden': 'SWEDEN',\n 'Usa': 'USA',\n 'Nordic': 'REST OF NORDICS',\n 'Europe': 'REST OF EUROPE',\n 'World': 'REST OF WORLD',\n 'Total': 'TOTAL'\n },\n TextVoting: \"Voting Rights\",\n TextLatest: \"Latest\",\n TextDownload: \"Download\",\n TextDownloadShareHistory: \"Download share history\",\n TextAnnual: \"Annual\",\n TextQuarterly: \"Quarterly\",\n TextHistorical: \"Historical\",\n TextRec: \"Recommendations\",\n TextHistoricalRec: \"Historical Recommendations\",\n TextSME: \"The estimates are collected and calculated by SME Direkt. The estimates are based on projections from Swedish and International Analysts. SME Direkt is the leading Nordic consensus estimates service and it covers 149 Nordic companies. SME Direkt was founded in 1994 and is a part of Nyhetsbyrån Direkt. Contributors are the leading banks and brokers in the Nordic area and international investment banks.\",\n TextSource: \"Source\",\n TextLargest: \"Largest Shareholders\",\n TextRange: \"Share Ranges\",\n TextDist: \"Geographical Distribution\",\n TextGrouped: \"Largest Grouped Shareholders\",\n TextAnalyticsCount: \"Covering analysts\",\n\n // general translations\n TextCompany: \"Company\",\n TextAddress: \"Address\",\n TextPostalCode: \"Postal code\",\n TextSubmit: \"Send\",\n TextCity: \"City\",\n TextLanguage: \"Language code\",\n TextCountry: \"Country\",\n TextQuantity: \"Quantity\",\n Languages: {\n sv: \"Swedish\",\n en: \"English\",\n fi: \"Finnish\",\n de: \"Danish\",\n no: \"Norweigian\",\n ge: \"German\",\n fr: \"French\",\n pt: \"Portugese\",\n nl: \"Dutch\"\n },\n TextAttachment: \"Attachments\",\n TextWhenWhere: \"When and Where\",\n TextDigitalVersion: \"Digital version\",\n TextRequired: \"Required fields\",\n TextFirstEvent: \"Next coming event\",\n TextEvents: \"Events\",\n TextDate: \"Date\",\n TextDateTime: \"Date and time\",\n TextEvent: \"Event\",\n TextAddToCal: \"Add to your calendar\",\n TextUpcomingEvents: \"Upcoming events\",\n TextEventArchive: \"Archive\",\n TextTitle: \"Title\",\n TextPrintLang: \"Print language\",\n TextPrintLink: \"Link to digital version\",\n TextPrintQuant: \"Quantity to order\",\n TextOrderPrint: \"Order printed materials\",\n TextPrintOrderSuccess: \"Order successful!\",\n TextPrintOrderFail: \"Order failed!\"\n};\n\n\n// $.fn.datepicker.dates['fi'] = {\n// days: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'],\n// daysShort: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n// daysMin: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n// months: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'],\n// monthsShort: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],\n// today: \"Tänään\",\n// clear: \"Tyhjennä\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\n\ncision.websolution.texts[\"fi\"].calendarTexts = {\n weekdays: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'],\n months: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'],\n shortMonths: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],\n rangeSelectorFrom: ['From'],\n rangeSelectorTo: ['To'],\n downloadJPEG: ['Download JPEG image'],\n downloadPDF: ['Download PDF document'],\n downloadPNG: ['Download PNG image'],\n downloadSVG: ['Download SVG vector image'],\n printChart: ['Print chart'],\n source: ['Source']\n};\n\n// $.fn.datepicker.dates['sv'] = {\n// days: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'],\n// daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n// daysMin: [\"Sö\", \"Må\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lö\"],\n// months: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],\n// monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n// today: \"Idag\",\n// clear: \"Rensa\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\n// $.fn.datepicker.dates['en'] = {\n// days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n// daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n// daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n// months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n// monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n// today: \"Today\",\n// clear: \"Clear\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\n// $.fn.datepicker.dates['no'] = {\n// days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n// daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n// daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n// months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n// monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n// today: \"Today\",\n// clear: \"Clear\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\n// $.fn.datepicker.dates['de'] = {\n// days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n// daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n// daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n// months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n// monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n// today: \"Today\",\n// clear: \"Clear\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\n// $.fn.datepicker.dates['dk'] = {\n// days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n// daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n// daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n// months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n// monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n// today: \"Today\",\n// clear: \"Clear\",\n// format: \"yyyy-mm-dd\",\n// titleFormat: \"MM yyyy\", /* Leverages same syntax as 'format' */\n// weekStart: 0\n// };\ncision.websolution.texts[\"en\"].calendarTexts = {\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n rangeSelectorFrom: ['From'],\n rangeSelectorTo: ['To'],\n downloadJPEG: ['Download JPEG image'],\n downloadPDF: ['Download PDF document'],\n downloadPNG: ['Download PNG image'],\n downloadSVG: ['Download SVG vector image'],\n printChart: ['Print chart'],\n source: ['Source']\n};\n\ncision.websolution.texts[\"sv\"].calendarTexts = {\n weekdays: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'],\n months: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\n rangeSelectorFrom: ['Från'],\n rangeSelectorTo: ['Till'],\n downloadJPEG: ['Ladda ner JPEG bild'],\n downloadPDF: ['Ladda ner PDF dokument'],\n downloadPNG: ['Ladda ner PNG bild'],\n downloadSVG: ['Ladda ner SVG bild'],\n printChart: ['Skriv ut graf'],\n source: ['Källa']\n};\n\n","\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\n\n\ncision.websolution.texts[\"sv\"].insidersDescriptions = function() {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n transactionTypes[0] = \"Orsak okänd vid reg.\";\n transactionTypes[1] = \"Innehavsanmälan\";\n transactionTypes[2] = \"Köp\";\n transactionTypes[3] = \"Försäljning\";\n transactionTypes[4] = \"Korrigering upp\";\n transactionTypes[5] = \"Korrigering ned\";\n transactionTypes[6] = \"Omräkning +\";\n transactionTypes[7] = \"Omräkning -\";\n transactionTypes[8] = \"Förfall\";\n transactionTypes[9] = \"Tilldelning\";\n transactionTypes[10] = \"Aktiesparplan\";\n transactionTypes[11] = \"Teckning\";\n transactionTypes[12] = \"Bonus\";\n transactionTypes[13] = \"Återköp\";\n transactionTypes[14] = \"Gåva\";\n transactionTypes[15] = \"Start dispens\";\n transactionTypes[16] = \"Split\";\n transactionTypes[17] = \"Omvänd split\";\n transactionTypes[18] = \"Överföring\";\n transactionTypes[19] = \"Utfärdad option\";\n transactionTypes[20] = \"Ingående balans\";\n transactionTypes[21] = \"Konvertering\";\n transactionTypes[22] = \"Omstämpling\";\n transactionTypes[23] = \"Inlösen\";\n transactionTypes[24] = \"Aktielån\";\n transactionTypes[25] = \"Byte av värdepapper\";\n transactionTypes[26] = \"Nyemission\";\n transactionTypes[27] = \"Apportemission\";\n transactionTypes[28] = \"Arvsskifte\";\n transactionTypes[29] = \"Optionslösen\";\n transactionTypes[30] = \"Arv\";\n transactionTypes[31] = \"Slutdatum optioner\";\n transactionTypes[32] = \"Utdelning\";\n transactionTypes[33] = \"Fondemission\";\n transactionTypes[34] = \"Fusion\";\n transactionTypes[35] = \"Uttag\";\n transactionTypes[36] = \"Bodelning\";\n transactionTypes[37] = \"Ny närstående\";\n transactionTypes[38] = \"Vinst\";\n transactionTypes[39] = \"Sortbyte\";\n transactionTypes[40] = \"Utskiftning\";\n transactionTypes[41] = \"Uppköp\";\n transactionTypes[42] = \"Aktietermin\";\n transactionTypes[43] = \"Terminslösen\";\n transactionTypes[44] = \"Indragning\";\n transactionTypes[45] = \"Avyttring\";\n transactionTypes[46] = \"Interna överf VPC\";\n transactionTypes[47] = \"Återbetalning\";\n transactionTypes[48] = \"Omräkning\";\n transactionTypes[49] = \"Fission\";\n transactionTypes[50] = \"Utbyte\";\n transactionTypes[51] = \"Förlagslån\";\n transactionTypes[52] = \"Övrig förändring\";\n transactionTypes[53] = \"Avslut av insyn\";\n\n\n holderTypes[1] = \"Eget\";\n holderTypes[2] = \"Maka/Make\";\n holderTypes[3] = \"Jur person\";\n holderTypes[4] = \"Barn\";\n holderTypes[5] = \"Närstående\";\n holderTypes[6] = \"Sambo\";\n\n\n positionTypes[1] = \"VD\";\n positionTypes[2] = \"VD dotterbolag\";\n positionTypes[3] = \"VD moderföretag\";\n positionTypes[4] = \"Vice VD\";\n positionTypes[5] = \"Vice VD dotterbolag\";\n positionTypes[6] = \"Vice VD moderföretag\";\n positionTypes[7] = \"Styrelseledamot\";\n positionTypes[8] = \"Styrelseledamot dotterbol\";\n positionTypes[9] = \"Styrelseledamot moderftg\";\n positionTypes[10] = \"Styrelsesuppleant\";\n positionTypes[11] = \"Styrelsesuppl dotterbolag\";\n positionTypes[12] = \"Styrelsesuppl moderftg\";\n positionTypes[13] = \"Revisor\";\n positionTypes[14] = \"Revisor dotterbolag\";\n positionTypes[15] = \"Revisor moderftg\";\n positionTypes[16] = \"Revisorssuppleant\";\n positionTypes[17] = \"Revisorssuppl dotterbolag\";\n positionTypes[18] = \"Revisorssuppl moderftg\";\n positionTypes[19] = \"Större Innehavare\";\n positionTypes[20] = \"Annan befattning\";\n positionTypes[21] = \"Annan befattn dotterbolag\";\n positionTypes[22] = \"Annan befattn moderftg\";\n positionTypes[23] = \"Aktiemarknadsbolag\";\n\n\n securityTypes[1] = \"Aktie\";\n securityTypes[2] = \"Aktie PR\";\n securityTypes[3] = \"Köpoption\";\n securityTypes[4] = \"Säljoption\";\n securityTypes[5] = \"Aktietermin\";\n securityTypes[6] = \"Syntetisk option\";\n securityTypes[7] = \"American depository receipts\";\n securityTypes[8] = \"Svenskt Depåbevis\";\n securityTypes[9] = \"Konvertibel\";\n securityTypes[10] = \"Betald tecknad aktie\";\n securityTypes[11] = \"Interimsaktie\";\n securityTypes[12] = \"Betald tecknad unit\";\n securityTypes[13] = \"Uniträtt\";\n securityTypes[14] = \"Teckningsrätt, aktie\";\n securityTypes[15] = \"Teckningsoption\";\n securityTypes[16] = \"Optionsbevis\";\n securityTypes[17] = \"Inlösenrätt\";\n securityTypes[18] = \"Speciell rätt\";\n securityTypes[19] = \"övriga derivat\";\n securityTypes[20] = \"Delbevis\";\n securityTypes[21] = \"Räntebärande värdepapper\";\n securityTypes[22] = \"Inlösenaktie\";\n securityTypes[23] = \"Konvertibelt vinstandelsbevis\";\n securityTypes[24] = \"Säljrätt\";\n securityTypes[25] = \"Interimsbevis\";\n securityTypes[26] = \"Delrätt, aktie\";\n securityTypes[27] = \"Betald tecknad konvertibel\";\n securityTypes[28] = \"Förlagslån\";\n securityTypes[29] = \"0-innehav\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n}(jQuery);\n\n\ncision.websolution.texts[\"en\"].insidersDescriptions = function() {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n transactionTypes[0] = \" Reason unknown at time of reg.\";\n transactionTypes[1] = \" Holding notification\";\n transactionTypes[2] = \"Purchase\";\n transactionTypes[3] = \"Sale\";\n transactionTypes[4] = \"Correction up\";\n transactionTypes[5] = \"Correction down\";\n transactionTypes[6] = \"Conversion +\";\n transactionTypes[7] = \"Conversion -\";\n transactionTypes[8] = \"Maturity\";\n transactionTypes[9] = \"Allotment\";\n transactionTypes[10] = \"Share investment plan\";\n transactionTypes[11] = \"Subscription\";\n transactionTypes[12] = \"Dividend\";\n transactionTypes[13] = \"Withdrawal\";\n transactionTypes[14] = \"Gift\";\n transactionTypes[15] = \"Exemption\";\n transactionTypes[16] = \"Split\";\n transactionTypes[17] = \"Reverse split\";\n transactionTypes[18] = \"Transfer\";\n transactionTypes[19] = \"Issued option\";\n transactionTypes[20] = \"Opening balance\";\n transactionTypes[21] = \"Conversion\";\n transactionTypes[22] = \"Reclassification\";\n transactionTypes[23] = \"Redemption\";\n transactionTypes[24] = \"Share loan\";\n transactionTypes[25] = \"Maturity\";\n transactionTypes[26] = \"New Share issue\";\n transactionTypes[27] = \"Issue in kind\";\n transactionTypes[28] = \"Estate distribution\";\n transactionTypes[29] = \" Exercised options\";\n transactionTypes[30] = \" Inheritance\";\n transactionTypes[31] = \"End date options\";\n transactionTypes[32] = \"Dividend\";\n transactionTypes[33] = \"Bonus issue\";\n transactionTypes[34] = \"Fusion\";\n transactionTypes[35] = \"Withdrawal\";\n transactionTypes[36] = \"Division of matrimonial property\";\n transactionTypes[37] = \"New related party\";\n transactionTypes[38] = \"Yield\";\n transactionTypes[39] = \"Class change\";\n transactionTypes[40] = \"Distribution\";\n transactionTypes[41] = \"Acquisition\";\n transactionTypes[42] = \"Share future\";\n transactionTypes[43] = \"Redemption of futures\";\n transactionTypes[44] = \"Withdrawal\";\n transactionTypes[45] = \"Sale\";\n transactionTypes[46] = \"Interna överf VPC\";\n transactionTypes[47] = \"Refund\";\n transactionTypes[48] = \"Conversion\";\n transactionTypes[49] = \"Fission\";\n transactionTypes[50] = \"Utbyte\";\n transactionTypes[51] = \"Subordinated loan\";\n transactionTypes[52] = \"Övrig förändring\";\n transactionTypes[53] = \"Avslut av insyn\";\n\n\n holderTypes[1] = \"Own\";\n holderTypes[2] = \"Spouse\";\n holderTypes[3] = \"Legal person\";\n holderTypes[4] = \"Child\";\n holderTypes[5] = \"Related party\";\n holderTypes[6] = \"Cohabitee\";\n\n\n positionTypes[1] = \"MD\";\n positionTypes[2] = \"MD subsidiary\";\n positionTypes[3] = \"MD parent firm\";\n positionTypes[4] = \"Deputy MD\";\n positionTypes[5] = \"Deputy MD subsidiary\";\n positionTypes[6] = \"Deputy MD parent firm\";\n positionTypes[7] = \"Board member\";\n positionTypes[8] = \"Board member subsidiary\";\n positionTypes[9] = \"Board member parent firm\";\n positionTypes[10] = \" Alt. board member \";\n positionTypes[11] = \" Alt. board member subsidiary\";\n positionTypes[12] = \"Alt. board member parent firm\";\n positionTypes[13] = \"Auditor\";\n positionTypes[14] = \"Auditor subsidiary\";\n positionTypes[15] = \"Auditor parent firm\";\n positionTypes[16] = \"Deputy Auditor\";\n positionTypes[17] = \"Deputy Auditor subsidiary\";\n positionTypes[18] = \"Deputy Auditor parent firm\";\n positionTypes[19] = \"Larger Shareholder\";\n positionTypes[20] = \"Other position\";\n positionTypes[21] = \"Other position subsidiary\";\n positionTypes[22] = \"Other position parent firm\";\n positionTypes[23] = \"Listed company\";\n\n\n securityTypes[1] = \"Share\";\n securityTypes[2] = \"Share PR\";\n securityTypes[3] = \"Call option\";\n securityTypes[4] = \"Put option\";\n securityTypes[5] = \"Stock futures \";\n securityTypes[6] = \"Synthetic option\";\n securityTypes[7] = \"American depository receipts\";\n securityTypes[8] = \"Swedish depository receipts \";\n securityTypes[9] = \"Convertible\";\n securityTypes[10] = \"Payed subscribed share\";\n securityTypes[11] = \"Interim share\";\n securityTypes[12] = \"Payed subscribed unit\";\n securityTypes[13] = \"Unit right\";\n securityTypes[14] = \"Subscription right, share\";\n securityTypes[15] = \"Subscribed option\";\n securityTypes[16] = \"Option receipts \";\n securityTypes[17] = \"Redemption right\";\n securityTypes[18] = \"Special right\";\n securityTypes[19] = \"other derivat\";\n securityTypes[20] = \"Delbevis\";\n securityTypes[21] = \"Interest bearing security\";\n securityTypes[22] = \"Redemption share\";\n securityTypes[23] = \"Convertible participation certificates\";\n securityTypes[24] = \"Sale right\";\n securityTypes[25] = \"Interim certificates\";\n securityTypes[26] = \"Delrätt, aktie\";\n securityTypes[27] = \"Payed subscribed convertible\";\n securityTypes[28] = \"Subordinated loan\";\n securityTypes[29] = \" Indicates 0 holdings\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n}(jQuery);\n\ncision.websolution.texts[\"fi\"].insidersDescriptions = function () {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n transactionTypes[0] = \"Syy tuntematon kirjaushetkellä.\";\n transactionTypes[1] = \"Omistusosuuksien ilmoittaminen\";\n transactionTypes[2] = \"Osto\";\n transactionTypes[3] = \"Myynti\";\n transactionTypes[4] = \"Korjaus ylöspäin\";\n transactionTypes[5] = \"Korjaus alaspäin\";\n transactionTypes[6] = \"Muunnos +\";\n transactionTypes[7] = \"Muunnos -\";\n transactionTypes[8] = \"Erääntyminen\";\n transactionTypes[9] = \"Osakeanti\";\n transactionTypes[10] = \"Osakeinvestointisuunnitelma\";\n transactionTypes[11] = \"Tilaus\";\n transactionTypes[12] = \"Osinko\";\n transactionTypes[13] = \"Luopuminen\";\n transactionTypes[14] = \"Lahja\";\n transactionTypes[15] = \"Poikkeus\";\n transactionTypes[16] = \"Jakaminen\";\n transactionTypes[17] = \"Yhdistely\";\n transactionTypes[18] = \"Siirto\";\n transactionTypes[19] = \"Liikkeeseen laskettu optio\";\n transactionTypes[20] = \"Avaussaldo\";\n transactionTypes[21] = \"Muunnos\";\n transactionTypes[22] = \"Uudelleen luokitus\";\n transactionTypes[23] = \"Lunastaminen\";\n transactionTypes[24] = \"Osakelaina\";\n transactionTypes[25] = \"Erääntyminen\";\n transactionTypes[26] = \"Osakkeiden uusanti\";\n transactionTypes[27] = \"Liikkeeseenlasku luontoisetuna\";\n transactionTypes[28] = \"Pesänjako\";\n transactionTypes[29] = \" Käytetyt optiot\";\n transactionTypes[30] = \" Perintö\";\n transactionTypes[31] = \"Päättymispäivä optiot\";\n transactionTypes[32] = \"Osinko\";\n transactionTypes[33] = \"Ilmaisanti\";\n transactionTypes[34] = \"Fuusio\";\n transactionTypes[35] = \"Luopuminen\";\n transactionTypes[36] = \"Ositus\";\n transactionTypes[37] = \"Uusi lähipiiriin kuuluva\";\n transactionTypes[38] = \"Tuotto\";\n transactionTypes[39] = \"Luokan muutos\";\n transactionTypes[40] = \"Jakelu\";\n transactionTypes[41] = \"Hankinta\";\n transactionTypes[42] = \"Osakefutuuri\";\n transactionTypes[43] = \"Futuureiden lunastaminen\";\n transactionTypes[44] = \"Luopuminen\";\n transactionTypes[45] = \"Myynti\";\n transactionTypes[46] = \"Sisäiset siirrot arvo-osuusrekistereihin\";\n transactionTypes[47] = \"Hyvitys\";\n transactionTypes[48] = \"Muunnos\";\n transactionTypes[49] = \"Jakautuminen\";\n transactionTypes[50] = \"Vaihto\";\n transactionTypes[51] = \"Pääomalaina\";\n transactionTypes[52] = \"Muu muutos\";\n transactionTypes[53] = \"Tarkastustulos\";\n\n\n holderTypes[1] = \"Oma\";\n holderTypes[2] = \"Puoliso\";\n holderTypes[3] = \"Juridinen henkilö\";\n holderTypes[4] = \"Lapsi\";\n holderTypes[5] = \"Lähipiiriin kuuluva\";\n holderTypes[6] = \"Avopuoliso\";\n\n\n positionTypes[1] = \"Toimitusjohtaja\";\n positionTypes[2] = \"Toimitusjohtaja tytäryhtiö\";\n positionTypes[3] = \"Toimitusjohtaja emoyhtiö\";\n positionTypes[4] = \"Varatoimitusjohtaja\";\n positionTypes[5] = \"Varatoimitusjohtaja tytäryhtiö\";\n positionTypes[6] = \"Varatoimitusjohtaja emoyhtiö\";\n positionTypes[7] = \"Hallituksen jäsen\";\n positionTypes[8] = \"Hallituksen jäsen tytäryhtiö\";\n positionTypes[9] = \"Hallituksen jäsen emoyhtiö\";\n positionTypes[10] = \"Hallituksen varajäsen\";\n positionTypes[11] = \"Hallituksen varajäsen tytäryhtiö\";\n positionTypes[12] = \"Hallituksen varajäsen emoyhtiö\";\n positionTypes[13] = \"Tilintarkastaja\";\n positionTypes[14] = \"Tilintarkastaja tytäryhtiö\";\n positionTypes[15] = \"Tilintarkastaja emoyhtiö\";\n positionTypes[16] = \"Varatilintarkastaja\";\n positionTypes[17] = \"Varatilintarkastaja tytäryhtiö\";\n positionTypes[18] = \"Varatilintarkastaja emoyhtiö\";\n positionTypes[19] = \"Merkittävä osakkeenomistaja\";\n positionTypes[20] = \"Muu asema\";\n positionTypes[21] = \"Muu asema tytäryhtiö\";\n positionTypes[22] = \"Muu asema emoyhtiö\";\n positionTypes[23] = \"Listattu yhtiö\";\n\n\n securityTypes[1] = \"Osake\";\n securityTypes[2] = \"Osake  PR\";\n securityTypes[3] = \"Osto-optio\";\n securityTypes[4] = \"Myyntioptio\";\n securityTypes[5] = \"Osakefutuurit\";\n securityTypes[6] = \"Synteettinen optio\";\n securityTypes[7] = \"ADR-todistukset\";\n securityTypes[8] = \"Swedish depository receipts \";\n securityTypes[9] = \"Vaihtovelkakirja\";\n securityTypes[10] = \"Maksettu osakemerkintä\";\n securityTypes[11] = \"Väliaikainen osake\";\n securityTypes[12] = \"Maksettu merkintäosuus\";\n securityTypes[13] = \"Sijoitusrahasto-osuus\";\n securityTypes[14] = \"Merkintäoikeus, osake\";\n securityTypes[15] = \"Merkitty option\";\n securityTypes[16] = \"Optiotodistukset\";\n securityTypes[17] = \"Lunastusoikeus\";\n securityTypes[18] = \"Eritysoikeus\";\n securityTypes[19] = \"muu johdannainen\";\n securityTypes[20] = \"Osatodistus\";\n securityTypes[21] = \"Korkoa tuottava arvopaperi\";\n securityTypes[22] = \"Lunastus osake\";\n securityTypes[23] = \"Vaihdettavat sijoitustodistukset\";\n securityTypes[24] = \"Myyntioikeus\";\n securityTypes[25] = \"Väliaikaistodistukset\";\n securityTypes[26] = \"Osaoikeus, osake\";\n securityTypes[27] = \"Maksettu vaihtovelkakirjan merkintä\";\n securityTypes[28] = \"Pääomalaina\";\n securityTypes[29] = \"Osoittaa 0 omistusta\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n} (jQuery);\n\ncision.websolution.texts[\"no\"].insidersDescriptions = function () {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n transactionTypes[0] = \"Årsak ukjent ved registering.\";\n transactionTypes[1] = \"Beholdningsvarsling\";\n transactionTypes[2] = \"Kjøp\";\n transactionTypes[3] = \"Salg\";\n transactionTypes[4] = \"Korrigering, opp\";\n transactionTypes[5] = \"Korrigering, ned\";\n transactionTypes[6] = \"Konvertering +\";\n transactionTypes[7] = \"Konvertering -\";\n transactionTypes[8] = \"Modenhet\";\n transactionTypes[9] = \"Fordeling\";\n transactionTypes[10] = \"Investeringsplan for aksje\";\n transactionTypes[11] = \"Abonnement\";\n transactionTypes[12] = \"Utbytte\";\n transactionTypes[13] = \"Uttak\";\n transactionTypes[14] = \"Gave\";\n transactionTypes[15] = \"Unntak\";\n transactionTypes[16] = \"Splitt\";\n transactionTypes[17] = \"Omvendt splitt\";\n transactionTypes[18] = \"Overføring\";\n transactionTypes[19] = \"Utstedt opsjon\";\n transactionTypes[20] = \"Åpningsbalanse\";\n transactionTypes[21] = \"Konvertering\";\n transactionTypes[22] = \"Reklassifisering\";\n transactionTypes[23] = \"Innløsning\";\n transactionTypes[24] = \"Aksjelån\";\n transactionTypes[25] = \"Modenhet\";\n transactionTypes[26] = \"Ny aksjeemisjon\";\n transactionTypes[27] = \"Utstedelse in natura\";\n transactionTypes[28] = \"Eiendomsdistribusjon\";\n transactionTypes[29] = \"Innfrielsesalternativer\";\n transactionTypes[30] = \"Arv\";\n transactionTypes[31] = \"Sluttdato-opsjoner\";\n transactionTypes[32] = \"Utbytte\";\n transactionTypes[33] = \"Bonusutstedelse\";\n transactionTypes[34] = \"Fusjon\";\n transactionTypes[35] = \"Uttak\";\n transactionTypes[36] = \"Deling av felleseie\";\n transactionTypes[37] = \"Ny relatert selskap\";\n transactionTypes[38] = \"Resultat\";\n transactionTypes[39] = \"Klasseendring\";\n transactionTypes[40] = \"Dirstribusjon\";\n transactionTypes[41] = \"Anskaffelse\";\n transactionTypes[42] = \"Aksje, future\";\n transactionTypes[43] = \"Innløsning av futures\";\n transactionTypes[44] = \"Uttak\";\n transactionTypes[45] = \"Salg\";\n transactionTypes[46] = \"Intern overf. VPC\";\n transactionTypes[47] = \"Refusjon\";\n transactionTypes[48] = \"Konvertering\";\n transactionTypes[49] = \"Fisjon\";\n transactionTypes[50] = \"Utbytte\";\n transactionTypes[51] = \"Ansvarlig lån\";\n transactionTypes[52] = \"Øvrig forandring\";\n transactionTypes[53] = \"Avslutning av innsyn\";\n\n\n holderTypes[1] = \"Egen\";\n holderTypes[2] = \"Partner\";\n holderTypes[3] = \"Juridisk person\";\n holderTypes[4] = \"Barn\";\n holderTypes[5] = \"Relatert selskap\";\n holderTypes[6] = \"Samboer\";\n\n\n positionTypes[1] = \"Adm.dir.\";\n positionTypes[2] = \"Adm. dir. datterselskap\";\n positionTypes[3] = \"Adm. dir. morselskap\";\n positionTypes[4] = \"Viseadm. dir.\";\n positionTypes[5] = \"Viseadm. dir. datterselskap\";\n positionTypes[6] = \"Viseadm. dir. morselskap\";\n positionTypes[7] = \"Styremedlem\";\n positionTypes[8] = \"Styremedlem datterselskap\";\n positionTypes[9] = \"Styremedlem morselskap\";\n positionTypes[10] = \"Varamedlem styre\";\n positionTypes[11] = \"Varamedlem styre datterselskap\";\n positionTypes[12] = \"Varamedlem styre morselskap\";\n positionTypes[13] = \"Revisor\";\n positionTypes[14] = \"Revisor datterselskap\";\n positionTypes[15] = \"Revisor morselskap\";\n positionTypes[16] = \"Stedfortredende revisor\";\n positionTypes[17] = \"Stedfortredende revisor datterselskap\";\n positionTypes[18] = \"Stedfortredende revisor morselskap\";\n positionTypes[19] = \"Større aksjonær\";\n positionTypes[20] = \"Annen posisjon\";\n positionTypes[21] = \"Annen posisjon datterselskap\";\n positionTypes[22] = \"Annen posisjon morselskap\";\n positionTypes[23] = \"Børsnotert selskap\";\n\n\n securityTypes[1] = \"Aksje\";\n securityTypes[2] = \"Aksje PR\";\n securityTypes[3] = \"Kjøpsopsjon\";\n securityTypes[4] = \"Salgsopsjon\";\n securityTypes[5] = \"Framtidig aksjeportefølje \";\n securityTypes[6] = \"Syntetisk opsjon\";\n securityTypes[7] = \"Amerikanske depotbevis\";\n securityTypes[8] = \"Swedish depository receipts \";\n securityTypes[9] = \"Konverterbart\";\n securityTypes[10] = \"Betalt abonnert aksje\";\n securityTypes[11] = \"Mellomaksje\";\n securityTypes[12] = \"Betalt abonnert enhet\";\n securityTypes[13] = \"Enhetsrettighet\";\n securityTypes[14] = \"Abonneringsrettinghet, aksje\";\n securityTypes[15] = \"Abonnert opsjon\";\n securityTypes[16] = \"Opsjonskvitteringer \";\n securityTypes[17] = \"Innløsningsrettigheter\";\n securityTypes[18] = \"Spesielle rettigheter\";\n securityTypes[19] = \"Andre derivater\";\n securityTypes[20] = \"Delbevis\";\n securityTypes[21] = \"Rentebærende verdipapir\";\n securityTypes[22] = \"Innløsingsaksjer\";\n securityTypes[23] = \"Konvertebare deltakersertfikater\";\n securityTypes[24] = \"Salgsrettigheter\";\n securityTypes[25] = \"Midlertidige sertifikater\";\n securityTypes[26] = \"Delrett, aksje\";\n securityTypes[27] = \"Betalt abonnert enhet\";\n securityTypes[28] = \"Ansvarlig lån\";\n securityTypes[29] = \"Indikerer 0 andeler\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n} (jQuery);\n\ncision.websolution.texts[\"dk\"].insidersDescriptions = function () {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n transactionTypes[0] = \"Årsag ukendt på reg.tidspunkt.\";\n transactionTypes[1] = \"Indberetning af aktiebeholdning\";\n transactionTypes[2] = \"Køb\";\n transactionTypes[3] = \"Salg\";\n transactionTypes[4] = \"Korrektion op\";\n transactionTypes[5] = \"Korrektion ned\";\n transactionTypes[6] = \"Konvertering +\";\n transactionTypes[7] = \"Konvertering -\";\n transactionTypes[8] = \"Udløbsdato\";\n transactionTypes[9] = \"Pulje (allotment)\";\n transactionTypes[10] = \"Aktie investerings plan\";\n transactionTypes[11] = \"Tegning\";\n transactionTypes[12] = \"Udbytte\";\n transactionTypes[13] = \"Tilbagekaldelse\";\n transactionTypes[14] = \"Gave\";\n transactionTypes[15] = \"Dispensation\";\n transactionTypes[16] = \"Aktiesplit\";\n transactionTypes[17] = \"Omvendt aktiesplit\";\n transactionTypes[18] = \"Overførsel\";\n transactionTypes[19] = \"Udstedt option\";\n transactionTypes[20] = \"Åbningsbalance\";\n transactionTypes[21] = \"Konvertering\";\n transactionTypes[22] = \"Omgruppering\";\n transactionTypes[23] = \"Indfrielse\";\n transactionTypes[24] = \"Aktielån\";\n transactionTypes[25] = \"Udløbsdato\";\n transactionTypes[26] = \"Ny aktieudstedelse\";\n transactionTypes[27] = \"Udstedelsestype\";\n transactionTypes[28] = \"Formuefordeling\";\n transactionTypes[29] = \"Aftalte optioner\";\n transactionTypes[30] = \"Arv\";\n transactionTypes[31] = \"Udløbsdato optioner\";\n transactionTypes[32] = \"Udbytte\";\n transactionTypes[33] = \"Emission af fondsaktier\";\n transactionTypes[34] = \"Fusion\";\n transactionTypes[35] = \"Tilbagekaldelse\";\n transactionTypes[36] = \"Opdeling af ægteskabelig formue\";\n transactionTypes[37] = \"Nyt partnerskab\";\n transactionTypes[38] = \"Afkast\";\n transactionTypes[39] = \"Ændring af klasse\";\n transactionTypes[40] = \"Fordeling\";\n transactionTypes[41] = \"Erhvervelse\";\n transactionTypes[42] = \"Aktiefuture\";\n transactionTypes[43] = \"Indfrielse af futures\";\n transactionTypes[44] = \"Tilbagekaldelse\";\n transactionTypes[45] = \"Salg\";\n transactionTypes[46] = \"Intern overf. VPC (Sveriges Værdipapircentral)\";\n transactionTypes[47] = \"Refundering\";\n transactionTypes[48] = \"Konvertering\";\n transactionTypes[49] = \"Spaltning\";\n transactionTypes[50] = \"Utbytte\";\n transactionTypes[51] = \"Efterstillet lån\";\n transactionTypes[52] = \"Øvrige ændringer\";\n transactionTypes[53] = \"Afslutning af indsigt\";\n\n\n holderTypes[1] = \"Eget\";\n holderTypes[2] = \"Ægtefælle\";\n holderTypes[3] = \"Juridisk person\";\n holderTypes[4] = \"Barn\";\n holderTypes[5] = \"Beslægtet person\";\n holderTypes[6] = \"Samboende\";\n\n\n positionTypes[1] = \"Adm. direktør\";\n positionTypes[2] = \"Adm. direktør, datterselskab\";\n positionTypes[3] = \"Direktør, moderselskab\";\n positionTypes[4] = \"Vicedirektør\";\n positionTypes[5] = \"Vicedirektør, datterselskab\";\n positionTypes[6] = \"Adm. direktør, moderselskab\";\n positionTypes[7] = \"Bestyrelsesmedlem\";\n positionTypes[8] = \"Bestyrelsesmedlem, datterselskab\";\n positionTypes[9] = \"Bestyrelsesmedlem, moderselskab\";\n positionTypes[10] = \"Alternativt bestyrelsesmedlem\";\n positionTypes[11] = \"Alternativt bestyrelsesmedlem, datterselskab\";\n positionTypes[12] = \"Alternativt bestyrelsesmedlem, moderselskab\";\n positionTypes[13] = \"Revisor\";\n positionTypes[14] = \"Revisor, datterselskab\";\n positionTypes[15] = \"Revisor, moderselskab\";\n positionTypes[16] = \"Assisterende revisor\";\n positionTypes[17] = \"Assisterende revisor, datterselskab\";\n positionTypes[18] = \"Assisterende revisor, moderselskab\";\n positionTypes[19] = \"Indehaver af større aktiebeholdning\";\n positionTypes[20] = \"Anden stilling\";\n positionTypes[21] = \"Anden stilling, datterselskab\";\n positionTypes[22] = \"Anden stilling, moderselskab\";\n positionTypes[23] = \"Børsnoteret selskab\";\n\n\n securityTypes[1] = \"Aktie\";\n securityTypes[2] = \"Aktie, købsanmodning\";\n securityTypes[3] = \"Købsrettighed (call option)\";\n securityTypes[4] = \"Salgsrettighed (put option)\";\n securityTypes[5] = \"Aktieoptioner \";\n securityTypes[6] = \"Syntetisk option\";\n securityTypes[7] = \"Kvitteringer fra amerikansk værdipapircentral\";\n securityTypes[8] = \"Swedish depository receipts \";\n securityTypes[9] = \"Konvertibel\";\n securityTypes[10] = \"Betalt tegnet aktie\";\n securityTypes[11] = \"Interim-aktie\";\n securityTypes[12] = \"Betalt tegnet enhed\";\n securityTypes[13] = \"Enhed, rettighed\";\n securityTypes[14] = \"Tegningsret, aktie\";\n securityTypes[15] = \"Tegnet option\";\n securityTypes[16] = \"Optionskvitteringer\";\n securityTypes[17] = \"Indfrielsesret\";\n securityTypes[18] = \"Særrettighed\";\n securityTypes[19] = \"andre afledte aktiver\";\n securityTypes[20] = \"Delbevis\";\n securityTypes[21] = \"Rentebærende værdipapir\";\n securityTypes[22] = \"Indfrielsesaktie\";\n securityTypes[23] = \"Konvertible deltagelsesbeviser\";\n securityTypes[24] = \"Salgsrettighed\";\n securityTypes[25] = \"Interim-beviser\";\n securityTypes[26] = \"Delret, aktie\";\n securityTypes[27] = \"Betalt tegnet konvertibel\";\n securityTypes[28] = \"Efterstillet lån\";\n securityTypes[29] = \"Indikerer 0 investeringer\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n} (jQuery);\n\ncision.websolution.texts[\"de\"].insidersDescriptions = function () {\n var transactionTypes = [];\n var positionTypes = [];\n var holderTypes = [];\n var securityTypes = [];\n\n //incomplete translation 90% in english\n\n transactionTypes[0] = \"Grund zum Zeitpunkt der Reg. unbekannt\";\n transactionTypes[1] = \"Holding-Mitteilung\";\n transactionTypes[2] = \"Kauf, Einkauf\";\n transactionTypes[3] = \"Verkauf\";\n transactionTypes[4] = \"Korrektur nach oben\";\n transactionTypes[5] = \"Korrektur nach unten\";\n transactionTypes[6] = \"Umwandlung +\";\n transactionTypes[7] = \"Umwandllung -\";\n transactionTypes[8] = \"Ablauf\";\n transactionTypes[9] = \"Zuteilung\";\n transactionTypes[10] = \"Aktien Investitions plan\";\n transactionTypes[11] = \"Abonnement\";\n transactionTypes[12] = \"Dividende\";\n transactionTypes[13] = \"Withdrawal\";\n transactionTypes[14] = \"Gift\";\n transactionTypes[15] = \"Exemption\";\n transactionTypes[16] = \"Split\";\n transactionTypes[17] = \"Reverse split\";\n transactionTypes[18] = \"Transfer\";\n transactionTypes[19] = \"Issued option\";\n transactionTypes[20] = \"Opening balance\";\n transactionTypes[21] = \"Conversion\";\n transactionTypes[22] = \"Reclassification\";\n transactionTypes[23] = \"Redemption\";\n transactionTypes[24] = \"Share loan\";\n transactionTypes[25] = \"Maturity\";\n transactionTypes[26] = \"New Share issue\";\n transactionTypes[27] = \"Issue in kind\";\n transactionTypes[28] = \"Estate distribution\";\n transactionTypes[29] = \" Exercised options\";\n transactionTypes[30] = \" Inheritance\";\n transactionTypes[31] = \"End date options\";\n transactionTypes[32] = \"Dividend\";\n transactionTypes[33] = \"Bonus issue\";\n transactionTypes[34] = \"Fusion\";\n transactionTypes[35] = \"Withdrawal\";\n transactionTypes[36] = \"Division of matrimonial property\";\n transactionTypes[37] = \"New related party\";\n transactionTypes[38] = \"Yield\";\n transactionTypes[39] = \"Class change\";\n transactionTypes[40] = \"Distribution\";\n transactionTypes[41] = \"Acquisition\";\n transactionTypes[42] = \"Share future\";\n transactionTypes[43] = \"Redemption of futures\";\n transactionTypes[44] = \"Withdrawal\";\n transactionTypes[45] = \"Sale\";\n transactionTypes[46] = \"Interna överf VPC\";\n transactionTypes[47] = \"Refund\";\n transactionTypes[48] = \"Conversion\";\n transactionTypes[49] = \"Fission\";\n transactionTypes[50] = \"Utbyte\";\n transactionTypes[51] = \"Subordinated loan\";\n transactionTypes[52] = \"Övrig förändring\";\n transactionTypes[53] = \"Avslut av insyn\";\n\n\n holderTypes[1] = \"Own\";\n holderTypes[2] = \"Spouse\";\n holderTypes[3] = \"Legal person\";\n holderTypes[4] = \"Child\";\n holderTypes[5] = \"Related party\";\n holderTypes[6] = \"Cohabitee\";\n\n\n positionTypes[1] = \"MD\";\n positionTypes[2] = \"MD subsidiary\";\n positionTypes[3] = \"MD parent firm\";\n positionTypes[4] = \"Deputy MD\";\n positionTypes[5] = \"Deputy MD subsidiary\";\n positionTypes[6] = \"Deputy MD parent firm\";\n positionTypes[7] = \"Board member\";\n positionTypes[8] = \"Board member subsidiary\";\n positionTypes[9] = \"Board member parent firm\";\n positionTypes[10] = \" Alt. board member \";\n positionTypes[11] = \" Alt. board member subsidiary\";\n positionTypes[12] = \"Alt. board member parent firm\";\n positionTypes[13] = \"Auditor\";\n positionTypes[14] = \"Auditor subsidiary\";\n positionTypes[15] = \"Auditor parent firm\";\n positionTypes[16] = \"Deputy Auditor\";\n positionTypes[17] = \"Deputy Auditor subsidiary\";\n positionTypes[18] = \"Deputy Auditor parent firm\";\n positionTypes[19] = \"Larger Shareholder\";\n positionTypes[20] = \"Other position\";\n positionTypes[21] = \"Other position subsidiary\";\n positionTypes[22] = \"Other position parent firm\";\n positionTypes[23] = \"Listed company\";\n\n\n securityTypes[1] = \"Share\";\n securityTypes[2] = \"Share PR\";\n securityTypes[3] = \"Call option\";\n securityTypes[4] = \"Put option\";\n securityTypes[5] = \"Stock futures \";\n securityTypes[6] = \"Synthetic option\";\n securityTypes[7] = \"American depository receipts\";\n securityTypes[8] = \"Swedish depository receipts \";\n securityTypes[9] = \"Convertible\";\n securityTypes[10] = \"Payed subscribed share\";\n securityTypes[11] = \"Interim share\";\n securityTypes[12] = \"Payed subscribed unit\";\n securityTypes[13] = \"Unit right\";\n securityTypes[14] = \"Subscription right, share\";\n securityTypes[15] = \"Subscribed option\";\n securityTypes[16] = \"Option receipts \";\n securityTypes[17] = \"Redemption right\";\n securityTypes[18] = \"Special right\";\n securityTypes[19] = \"other derivat\";\n securityTypes[20] = \"Delbevis\";\n securityTypes[21] = \"Interest bearing security\";\n securityTypes[22] = \"Redemption share\";\n securityTypes[23] = \"Convertible participation certificates\";\n securityTypes[24] = \"Sale right\";\n securityTypes[25] = \"Interim certificates\";\n securityTypes[26] = \"Delrätt, aktie\";\n securityTypes[27] = \"Payed subscribed convertible\";\n securityTypes[28] = \"Subordinated loan\";\n securityTypes[29] = \" Indicates 0 holdings\";\n\n return {\n positionTypes: positionTypes,\n holderTypes: holderTypes,\n securityTypes: securityTypes,\n transactionTypes: transactionTypes\n };\n} (jQuery);","// This JavaScript file is created by Cision and holds settings for all our modules.\n// This file works as a config file for all the modules and here you will find genrall settings and a specific sektion for each module with its access key.\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.settings = cision.websolution.settings || {};\n\nvar baseUrl = '/';\nvar defaultLang = 'en';\nvar lang;\n\nif ($('html').attr('lang') == 'sv' || $('html').attr('lang') == 'en' ) { \n lang = $('html').attr('lang');\n} else {\n lang = defaultLang;\n}\n\ncision.websolution.settings = {\n general: {\n // Settings that apply to all modules\n serviceEndpoint: 'https://publish.ne.cision.com/papi/',\n uiLanguage: lang,\n siteKey: 'se',\n // proxyHandler: '/project/templates/styleguide/ProxyCallsHttpHandler.php', // Change this to the one below if you can't run C#\n //proxyHandler: 'ProxyCallsHttpHandler.php',\n useProxyHandler: false,\n startDate: '',\n endDate: '',\n pageIndex: 1,\n pageSize: 10,\n dateFormat: 'D MMM YYYY',\n isTest: false,\n maxAmountOfItems: 10,\n useMediabankViaHttps: false, // for images in releases, set to true if you want to collect data via https\n numberFormatOptions: {\n thousandSeparator: ' ',\n decimalSeparator: '.',\n decimalPrecision: 2\n },\n dateFormatOptions: {\n dateTimeFormat: 'DD MMM YYYY HH:mm',\n dateFormat: 'DD MMM YYYY',\n timeFormat: 'HH:mm'\n },\n\n // Newsfeed specific settings\n dateFormatNews: \"DD-MMM HH:mm\",\n separateFirstRelease: false,\n introMaxLength: 155,\n titleMaxLength: null,\n\n // ownership specific settings\n LargestPieShowCount: 25,\n LargestListShowCount: 25,\n\n // Calendar specific settings\n dateFormatEvent: \"YYYY-DD-MM, HH:mm\",\n separateFirstEvent: false,\n\n // Printed Material specific settings\n printedMaterialCategory: '',\n\n // Ticker specific settings\n //tickerImageMinus: \"http://feed.ne.cision.com/client/_images/papi/storminus.png\",\n //tickerImagePlus: \"http://feed.ne.cision.com/client/_images/papi/storplus.png\",\n //tickerImageUnchanged: \"http://feed.ne.cision.com/client/_images/papi/storunadjusted.png\",\n tickerImageMinus: baseUrl + \"delta-down.png\",\n tickerImagePlus: baseUrl + \"delta-up.png\",\n tickerImageUnchanged: baseUrl + \"delta-unchanged.png\",\n dateFormatTrades: \"DD-MMM\",\n\n //Share calculator specific settings\n startDateYear: 2007,\n\n // Sharegraph specific settings\n chartContainerId: 'container',\n chartTitle: '',\n backgroundImage: '',\n barBackgroundColor: 'gray',\n lineWidth: '2',\n buttonBackgroundColor: 'gray',\n buttonArrowColor: 'white',\n rifleColor: 'white',\n plotBackgroundColor: 'white',\n defaultSeriesType: 'spline', /*Can be one of area, areaspline, bar, column, line, pie, scatter, spline, candlestick or ohlc. Since 1.1.7, types can also be arearange, areasplinerange and columnrange. */\n shapeColor: '#f27b7b',\n shapeOutlineColor: '#f27b7b',\n shapeTextColor: 'white',\n shapeWidth: 10,\n shapeHeight: 11,\n rangeSelectorInputStyleColor: '#f27b7b',\n rangeSelectorLabelStyleColor: '#f27b7b',\n trackBackgroundColor: 'white',\n trackBorderColor: 'silver',\n chartComparison: 'none', /* Default comparison type */\n typeOfChart: 'EndOfDay',\n navigatorColor: '#f27b7b',\n navigatorLineColor: '#f27b7b',\n showReleaseLink: true,\n gridLineWidth: '0',\n plotBorderWidth: '0',\n mainInstruments: [ /* As array of instruments to consider primary while others become Peers and Indexes */\n { symbol: 'SAND', marketPlace: 'XSTO', currency: 'SEKEFFECTIVEYIELD', name: 'Sandvik AB [Total Return]'}\n // { symbol: 'SAND', marketPlace: 'XSTO', currency: 'SEK', name: 'Sandvik AB' }\n ],\n indexInstruments: [\n { symbol: 'OMXSPI', marketPlace: 'XSTO', currency: 'SEK', name: 'OMX Stockholm PI' },\n\t\t\t{ symbol: 'OMXS30', marketPlace: 'XSTO', currency: 'SEK', name: 'OMX Stockholm 30 Index' },\n\t\t\t{ symbol: 'SX2000PI', marketPlace: 'XSTO', currency: 'SEK', name: 'OMX Stockholm Industrials PI' },\n\t\t\t{ symbol: 'OMXN40', marketPlace: 'XSTO', currency: 'EUR', name: 'OMX Nordic 40' }\n ],\n peersInstruments: [\n //{ symbol: 'TEL2 B', marketPlace: 'XSTO', currency: 'SEK', name: 'Tele 2' }\n ],\n releasesOnSeries: [\n { packageName: 'Regulatory RPT', symbol: 'SAND', marketPlace: 'XSTO', currency: 'SEK', shape: 'squarepin', title: 'R' },\n { packageName: 'Regulatory PRM', shape: 'squarepin', title: 'P' }\n ],\n instrumentColors: [\n // { uniqueKey: 'SANDXSTOSEK', preferredColor: '#f27b7b' },\n // { uniqueKey: 'OMXSPIXSTOSEK', preferredColor: '#4286f4' },\n // { uniqueKey: 'SANDXSTOSEKVOLUME', preferredColor: '#f38127' }\n { uniqueKey: 'SANDXSTOSEKEFFECTIVEYIELD', preferredColor: '#ff6a00' },\n { uniqueKey: 'SANDXSTOSEK', preferredColor: '#0099ff' },\n\t\t\t{ uniqueKey: 'OMXSPIXSTOSEK', preferredColor: '#d3d3d3' },\n\t\t\t{ uniqueKey: 'SANDXSTOSEKVOLUME', preferredColor: '#0099ff' }\n ],\n dividendType: 'Annual', /* Can be one of : Annual, Bonus, Monthly, Quarterly, HalfYear */\n effectiveYieldSuffix: 'EFFECTIVEYIELD',\n insidersUniqueKey: 'INSIDERS',\n dividendsUniqueKey: 'DIVIDEND',\n showVolume: true,\n enableNavigator: true,\n enableReleasesOnIntraday: true,\n yAxisSize: { share: { top: 0, height: 200 }, volume: { top: 300, height: 75 } },\n releaseLinkFormatter: 'https://publish.ne.cision.com/Release/ViewReleaseHtml/',\n insidersTitle: 'INS',\n graphUniqueKey: 'INSIDERS' /* Used when insiders placed on a shareGraph */,\n showHorisontalTicker: true,\n\n // Estimates specific settings\n estimateCurrency: '',\n graphColor: null,\n field: 'SALES' /* Sales-Volumes-ebit-DPS-EPS */,\n valuePrefix: '',\n valueSuffix: ' SEK',\n dateFormatTooltip: \"Do MMMM YYYY\",\n unit: \"\",\n quantum: \"\",\n tooltipHeaderEstimate: \"Estimate - \",\n tooltipHeaderReal: \"Actual - \",\n tooltipDateLabel: \"\",\n tooltipAmountLabel: \"\",\n suffixEstimate: ' FC',\n suffixActual: '',\n fields: {\n sales: { th_sep: ',', dec_sep: '.', precision: 0 },\n volumes: { th_sep: ',', dec_sep: '.', precision: 0 },\n ebit: { th_sep: ',', dec_sep: '.', precision: 0 },\n ebitda: { th_sep: ',', dec_sep: '.', precision: 0 },\n eps: { th_sep: ',', dec_sep: '.', precision: 2 },\n dps: { th_sep: ',', dec_sep: '.', precision: 2 }\n },\n periodStart: '',\n periodEnd: '',\n dateString: \"\",\n amountString: \"\",\n hideEstimateIfActualExists: true,\n\n //stores data if ownership tab is rendered\n ownershipTabLoaded: [],\n //stores data if estimate tab is rendered\n estimateTabLoaded: []\n },\n\n orderbook: {\n accessKey: 'CCBFBF90F13047028A7DA5F434E0DA1E'\n },\n\n// ownership: {\n// accessKey: '79B318BC2D6A4088BD690116403614CA'\n// },\n\n estimate: {\n accessKey: 'ADB9BA0873B04695B2D964FC95D89A12',\n accessKeyTicker: 'F2E063DEE79D46FA9114B158607A909B'\n },\n\n ticker: {\n accessKey: 'F2E063DEE79D46FA9114B158607A909B'\n },\n\n sharegraph: {\n accessKey: '403076B46AAE4AA3A23375D6F0DB394C',\n shareHistoryKey: '604503DCAD3A480889124A34280AED4D'\n },\n\n sharecalculator: {\n accessKey: 'CDB7A641484D42059453C084C5B634FF'\n },\n\n minisharegraph: {\n accessKey: '403076B46AAE4AA3A23375D6F0DB394C'\n },\n\n// newsfeed: {\n// accessKey: 'D004154BB1DA488FBA38A1C39D5DDBC4'\n// },\n\n// mediafeed: {\n// accessKey: '40073D268F8A4B69AF8CBC79CB901753'\n// },\n\n dividend: {\n accessKey: 'F2E063DEE79D46FA9114B158607A909B'\n },\n\n insider: {\n accessKey: '0C9AD8114C9E427D8709F3AD693D62EC'\n }\n\n// calendar: {\n// accessKey: 'AA6EFCAD94EA4F51AF041BC724F2328D'\n// },\n\n// printedMaterial: {\n// accessKey: '2D28E57C84A3444A802C85E94FB79FAA'\n// }\n\n};\n\n// Switch moment language\ntry {\n moment.locale(cision.websolution.settings.general.uiLanguage);\n} catch (e) {\n\n}\n\ntry {\n Highcharts.setOptions({\n lang: {\n decimalPoint: cision.websolution.settings.general.numberFormatOptions.decimalSeparator,\n thousandsSep: cision.websolution.settings.general.numberFormatOptions.thousandSeparator\n }\n });\n} catch (e) {\n\n}\n","// This JavaScript file is created by Cision for our ticker trades module.\n// This is the first version of this file so far.\n// This should be combined with trades.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.trades = !cision.websolution.settings.ticker ? {}: function ($) {\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.ticker.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n var renderTrades = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ticker access key.\");\n return;\n }\n var url = generateUrl('Ticker/' + accessKey + '/Trades');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (rawData) {\n // Retrieve the Instrument\n var objInstrument = rawData.Instruments[0]; // TODO: find the correct instrument, in case we have many in the Module\n $.each(objInstrument.Trades, function (idx, objTrade) {\n objTrade.TradeTimeFormatted = moment(objTrade.TradeTime).locale(settings.uiLanguage).format(settings.dateFormatTrades);\n });\n\n var compositeModel = $.extend(objInstrument, texts, settings);\n\n var renderedHtml = $(\"#tplTickerTrades\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-trades\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve trades data');\n })\n .always(function() {\n\n });\n };\n\n return {\n render: renderTrades,\n renderTrades: renderTrades\n };\n}(jQuery);","// Console-polyfill. MIT license.\n// https://github.com/paulmillr/console-polyfill\n// Make it safe to do console.log() always.\n(function(global) {\n 'use strict';\n if (!global.console) {\n global.console = {};\n }\n var con = global.console;\n var prop, method;\n var dummy = function() {};\n var properties = ['memory'];\n var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' +\n 'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' +\n 'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',');\n while (prop = properties.pop()) if (!con[prop]) con[prop] = {};\n while (method = methods.pop()) if (typeof con[method] !== 'function') con[method] = dummy;\n // Using `this` for web workers & supports Browserify / Webpack.\n})(typeof window === 'undefined' ? this : window);","var cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.formatHelpers.formatNumber = function (inputNumber, decimalPrecision, decimalSeparator, thousandSeparator) {\n // Uses https://github.com/customd/jquery-number\n // function( number, decimals, dec_point, thousands_sep )\n\n if (typeof inputNumber === 'undefined' || inputNumber === null) {\n return inputNumber;\n }\n\n var defaultOptions = cision.websolution.settings.general.numberFormatOptions || {};\n\n // Remark: following is to make sure that ZERO is treated as such for decimalPrecision\n if (typeof decimalPrecision === 'undefined' || decimalPrecision === null) {\n if (typeof defaultOptions.decimalPrecision === 'undefined' || defaultOptions.decimalPrecision === null) {\n decimalPrecision = 2;\n } else {\n decimalPrecision = defaultOptions.decimalPrecision;\n }\n }\n\n // Empty strings should treated as such for thousandSeparator\n if (typeof decimalSeparator === 'undefined' || decimalSeparator === null) {\n if (typeof defaultOptions.decimalSeparator === 'undefined' || defaultOptions.decimalSeparator === null) {\n decimalSeparator = ',';\n } else {\n decimalSeparator = defaultOptions.decimalSeparator;\n }\n }\n\n // Empty strings should treated as such for thousandSeparator\n if (typeof thousandSeparator === 'undefined' || thousandSeparator === null) {\n if (typeof defaultOptions.thousandSeparator === 'undefined' || defaultOptions.thousandSeparator === null) {\n thousandSeparator = '';\n } else {\n thousandSeparator = defaultOptions.thousandSeparator;\n }\n }\n\n var formattedNumber = jQuery.number(inputNumber,\n decimalPrecision,\n decimalSeparator || ',',\n thousandSeparator\n );\n\n return formattedNumber;\n};\n\ncision.websolution.formatHelpers.formatCurrency = function (inputNumber, prefix, suffix) {\n if (typeof inputNumber === 'undefined' || inputNumber === null) {\n return inputNumber;\n }\n\n var formattedNumber = cision.websolution.formatHelpers.formatNumber(inputNumber);\n\n if (typeof formattedNumber === 'undefined' || formattedNumber === null) {\n return formattedNumber;\n }\n\n return (prefix || '') + formattedNumber + (suffix || '');\n};\n\ncision.websolution.formatHelpers.formatDate = function (input, dateFormat) {\n\n var defaultOptions = cision.websolution.settings.general.dateFormatOptions || {};\n\n return moment(input).format(dateFormat || defaultOptions.dateFormat || 'DD MMM YYYY');\n};\n\ncision.websolution.formatHelpers.formatTime = function (input, timeFormat) {\n\n var defaultOptions = cision.websolution.settings.general.dateFormatOptions || {};\n\n return moment(input).format(timeFormat || defaultOptions.timeFormat || 'HH:mm');\n};\n\ncision.websolution.formatHelpers.formatDateTime = function (input, dateTimeFormat) {\n\n var defaultOptions = cision.websolution.settings.general.dateFormatOptions || {};\n\n return moment(input).format(dateTimeFormat || defaultOptions.dateTimeFormat || 'DD MMM YYYY HH:mm');\n};","// This JavaScript file is created by Cision for our calendar module.\n// This is the first version of this file so far.\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.calendar = function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = (cision.websolution.settings.calendar || {}).accessKey,\n texts = cision.websolution.texts[settings.uiLanguage],\n eventsList = [],\n categories = [],\n firstRunEvent = true,\n firstRunArchive = true;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n return url;\n }\n\n var renderEventList = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!accessKey) {\n console.log(\"You must provide your Calendar access key.\");\n return;\n }\n var url = generateUrl('Calendar/' + accessKey);\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCode: settings.uiLanguage,\n pageIndex: settings.calendarPageIndex,\n pageSize: settings.calendarPageSize || 50,\n startDate: settings.startDate,\n endDate: settings.endDate,\n category: settings.calendarCategory\n }\n })\n .done(function (rawData) {\n var objFirstEvent = null;\n $.each(rawData.Events, function (idx, objEvent) {\n objEvent.EventTimeFormatted = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.EventTimeFormattedDate = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objEvent.EventTimeFormattedTime = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.timeFormat);\n objEvent.EventWeekDay = moment(objEvent.EventTime).locale(settings.uiLanguage).format(\"dddd\");\n if (objEvent.LogoUrl > 0) {\n objEvent.HasImage = true;\n } else {\n objEvent.HasImage = false;\n }\n objEvent.PublishTimeFormatted = moment(objEvent.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ArchiveTimeFormatted = moment(objEvent.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ICalUrl = settings.serviceEndpoint + 'Calendar/' + accessKey + '/EventDetailIcs' +\n '?eventGuid=' + objEvent.EventGuid +\n '&languageCode=' + settings.uiLanguage;\n\n objEvent.EventDuration = moment.duration(objEvent.EventDuration, \"minutes\").asHours();\n objEvent.EndDateWeekDay = moment(objEvent.EventTime).add(objEvent.EventDuration, \"hours\").locale(settings.uiLanguage).format(\"dddd\");\n objEvent.EndDateFormattedDate = moment(objEvent.EventTime).add(objEvent.EventDuration, \"hours\").format(settings.dateFormat);\n objEvent.EndDateFormattedTime = moment(objEvent.EventTime).add(objEvent.EventDuration, \"hours\").format(settings.timeFormat);\n objEvent.IsOneDay = objEvent.EventTimeFormattedDate == objEvent.EndDateFormattedDate;\n\n if (firstRunEvent && objEvent.Categories) {\n $.each(objEvent.Categories, function(idx2, objCategory) {\n categories.push(objCategory);\n });\n }\n\n if (settings.separateFirstEvent === true && objFirstEvent === null && settings.calendarCategory == '') {\n objFirstEvent = objEvent;\n if (objEvent.HasImage) {\n objFirstEvent.LogoUrl = objEvent.LogoUrl;\n }\n }\n\n });\n\n categories = _.uniq(categories);\n\n if (settings.separateFirstEvent === true && settings.calendarCategory == '') {\n rawData.Events.shift();\n }\n\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var tplElement = '#' + (settings.calendarTemplateElement || 'tplCalendarEventListing');\n var renderedHtml = $(tplElement).render(compositeModel, cision.websolution.formatHelpers);\n\n if (settings.separateFirstEvent && firstRunEvent && objFirstEvent) {\n $.extend(objFirstEvent, texts, settings);\n var renderedEventHtml = $(\"#tplTopEvent\").render(objFirstEvent, cision.websolution.formatHelpers);\n $(\"#target-event-top\").html(renderedEventHtml);\n }\n if (firstRunEvent) {\n texts.Categories = categories;\n //$.extend(categories, texts);\n var renderedCategories = $(\"#tplCategories\").render(texts);\n $(\"#target-categories-2\").html(renderedCategories);\n\n }\n\n var tplTarget = '#' + (settings.calendarOutputTargetElement || 'eventListTarget');\n $(tplTarget).html(renderedHtml);\n\n firstRunEvent = false;\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve active calendar data');\n d.reject();\n });\n return d.promise();\n };\n\n var renderSidebarCalendar = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!accessKey) {\n console.log(\"You must provide your Calendar access key.\");\n return;\n }\n var url = generateUrl('Calendar/' + accessKey);\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCode: settings.uiLanguage,\n pageIndex: settings.calendarPageIndex,\n pageSize: settings.calendarPageSize || 50,\n startDate: settings.startDate,\n endDate: settings.endDate,\n category: settings.calendarCategory\n }\n })\n .done(function (rawData) {\n var objFirstEvent = null;\n $.each(rawData.Events, function (idx, objEvent) {\n objEvent.EventTimeFormatted = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.EventTimeFormattedDate = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objEvent.EventTimeFormattedTime = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.timeFormat);\n objEvent.EventWeekDay = moment(objEvent.EventTime).locale(settings.uiLanguage).format(\"dddd\");\n if (objEvent.LogoUrl > 0) {\n objEvent.HasImage = true;\n } else {\n objEvent.HasImage = false;\n }\n\n objEvent.PublishTimeFormatted = moment(objEvent.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ArchiveTimeFormatted = moment(objEvent.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ICalUrl = settings.serviceEndpoint + 'Calendar/' + accessKey + '/EventDetailIcs' +\n '?eventGuid=' + objEvent.EventGuid +\n '&languageCode=' + settings.uiLanguage;\n\n objEvent.EventDuration = moment.duration(objEvent.EventDuration, \"minutes\").asHours();\n objEvent.EndTimeFormatted = moment(objEvent.EventTime).locale(settings.uiLanguage).add(objEvent.EventDuration, \"hours\").format(settings.timeFormat);\n\n if (firstRunEvent && objEvent.Categories) {\n $.each(objEvent.Categories, function (idx2, objCategory) {\n categories.push(objCategory);\n });\n }\n\n if (settings.separateFirstEvent === true && objFirstEvent === null && settings.calendarCategory == '') {\n objFirstEvent = objEvent;\n if (objEvent.HasImage) {\n objFirstEvent.LogoUrl = objEvent.LogoUrl;\n }\n }\n\n });\n\n categories = _.uniq(categories);\n\n if (settings.separateFirstEvent === true && settings.calendarCategory == '') {\n rawData.Events.shift();\n }\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var tplElement = '#' + (settings.sidebarCalendarTemplateElement || 'tplSidebarCalendar');\n var renderedHtml = $(tplElement).render(compositeModel, cision.websolution.formatHelpers);\n\n var tplTarget = '#' + (settings.sidebarCalendarOutputTargetElement || 'sidebarCalendarTarget');\n $(tplTarget).html(renderedHtml);\n\n firstRunEvent = false;\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve active calendar data');\n d.reject();\n });\n return d.promise();\n };\n\n var renderArchiveList = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!accessKey) {\n console.log(\"You must provide your Calendar access key.\");\n return;\n }\n\n var url = generateUrl('Calendar/' + accessKey + '/Archive');\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCode: settings.uiLanguage,\n pageIndex: settings.calendarPageIndex,\n pageSize: settings.calendarPageSize || 50,\n startDate: settings.startDate,\n endDate: settings.endDate,\n category: settings.calendarCategory\n }\n })\n .done(function (rawData) {\n $.each(rawData.Events, function (idx, objEvent) {\n objEvent.EventTimeFormatted = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.EventTimeFormattedDate = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objEvent.EventTimeFormattedTime = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.timeFormat);\n\n objEvent.PublishTimeFormatted = moment(objEvent.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ArchiveTimeFormatted = moment(objEvent.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n\n if (firstRunArchive && objEvent.Categories) {\n $.each(objEvent.Categories, function (idx2, objCategory) {\n categories.push(objCategory);\n });\n }\n\n eventsList[objEvent.EventGuid] = objEvent;\n });\n //console.log(categories);\n categories = _.uniq(categories);\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var tplElement = '#' + (settings.calendarTemplateElement || 'tplCalendarArchiveListing');\n var renderedHtml = $(tplElement).render(compositeModel, cision.websolution.formatHelpers);\n\n if (firstRunArchive) {\n var renderedCategories = $(\"#tplCategories\").render({ categories: categories });\n $(\"#target-categories\").html(renderedCategories);\n }\n\n var tplTarget = '#' + (settings.calendarOutputTargetElement || 'archiveEventListTarget');\n $(tplTarget).html(renderedHtml);\n\n firstRunArchive = false;\n\n })\n .fail(function () {\n console.log('Could not retrieve archived calendar data');\n });\n };\n\n var getEventByGuid = function (options) {\n\n var eventGuid = options.eventGuid;\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!eventGuid) {\n console.log(\"You must provide a event guid.\");\n return;\n }\n\n var url = generateUrl('Calendar/' + accessKey + '/EventDetail');\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n eventguid: eventGuid,\n LanguageCode: settings.uiLanguage\n }\n })\n .done(function (objEvent) {\n objEvent.EventDateFormatted = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormatEvent);\n objEvent.EventTimeFormattedDate = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objEvent.EventTimeFormattedTime = moment(objEvent.EventTime).locale(settings.uiLanguage).format(settings.timeFormat);\n\n objEvent.PublishTimeFormatted = moment(objEvent.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objEvent.ArchiveTimeFormatted = moment(objEvent.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n\n var compositeModel = $.extend({}, objEvent, texts, settings),\n renderedHtml = $(\"#tplEventDetail\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-event-detail\").html(renderedHtml);\n\n })\n .fail(function () {\n console.log('Could not retrieve release Detailed data');\n });\n };\n\n return {\n getEventByGuid: getEventByGuid,\n renderEventList: renderEventList,\n renderArchiveList: renderArchiveList,\n renderSidebarCalendar: renderSidebarCalendar\n };\n}(jQuery);\n","// This JavaScript file is created by Cision for our insider module.\n// This is the first version of this file so far.\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.dividend = !cision.websolution.settings.dividend ? {}: function ($) {\n\n var settings = cision.websolution.settings.general;\n var accessKey = cision.websolution.settings.dividend.accessKey;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderToGraph = function (objChart, options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (!accessKey) {\n console.log(\"You must provider your access key [dividend module].\");\n return;\n }\n var url = generateUrl('Ticker/' + accessKey + '/Dividend');\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n type: settings.dividendType || 'Annual',\n startDate: settings.startDate,\n endDate: settings.endDate\n }\n })\n .done(function (rawData) {\n // TODO: emit an error when no instruments with data found\n var objPackage = rawData.Instruments[0];\n\n var pointsDividends = [];\n $.each(objPackage.Dividends, function (idx, objDividend) {\n pointsDividends.push({\n x: moment(objDividend.EventDate).format('X') * 1000,\n title: settings.dividendsTitle,\n DividendTransaction: objDividend\n });\n });\n\n var objInstrument = { UniqueKey: settings.dividendsUniqueKey };\n var objChartSeries = {\n id: objInstrument.UniqueKey,\n name: 'DIVIDENDS',\n type: 'flags',\n data: pointsDividends,\n color: settings.graphColor ,\n\n // Extra data\n objOriginal: objInstrument,\n\n visible: true\n };\n\n objChartSeries.tooltip = {\n //shared: true,\n useHTML: true,\n //headerFormat: '
{point.key}

',\n pointFormat: '{point.DividendTransaction.Amount}'\n };\n\n objChart.addSeries(objChartSeries);\n })\n .fail(function () {\n console.log('Could not retrieve dividend data');\n })\n .always(function () {\n\n });\n };\n\n return {\n renderToGraph: renderToGraph\n };\n} (jQuery);","// This JavaScript file is created by Cision for our estimate module.\n// This is the first version of this file so far.\n// This should be combined with estimateannual.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.estimate = cision.websolution.estimate || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.estimate.annual = !cision.websolution.settings.estimate ? {} : function ($) {\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.estimate.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var render = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your estimates access key.\");\n return;\n }\n\n var url = generateUrl('Estimate/' + accessKey);\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (dataObj) {\n var periodList = transformKeyFigures(dataObj.AnnualKeyFigures);\n var lastDate = \"2000-01-01\";\n $(periodList).each(function (i, item) {\n if (item.Date >= lastDate) {\n periodList.LastDateFormatted = moment(item.Date).locale(settings.uiLanguage).format(settings.dateFormat);\n }\n lastDate = item.Date;\n });\n\n var compositeModel = $.extend({ PeriodList: periodList }, texts, settings);\n\n var renderedHtml = $(\"#template-estimate-annual\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-estimate-annual\").html(renderedHtml);\n })\n .fail(function () {\n console.log('Could not retrieve data');\n });\n };\n\n function transformKeyFigures(keyFigures) {\n\n // Rearrange KeyFigures in a columnar format\n var periodsWithActual = {},\n objHorizontalMatrix = {}; // {\"2011-Q3\":{\"Sales\":123, \"EPS\": 2345, ...}, \"2012-Q1\": {EPS, ...}}\n\n $.each(keyFigures, function (ix, objKeyFigure) {\n if (objKeyFigure.Type.toLowerCase() === 'actual') {\n periodsWithActual[objKeyFigure.Period] = objKeyFigure.Type;\n }\n });\n\n settings.periodStart = settings.periodStart.toString();\n settings.periodEnd = settings.periodEnd.toString();\n\n $.each(keyFigures, function (ix, objKeyFigure) {\n\n // Limit Periods\n if (objKeyFigure.Period < settings.periodStart || objKeyFigure.Period > settings.periodEnd) {\n return true; // Continue\n }\n var isEstimate = objKeyFigure.Type.toLowerCase() === 'estimate',\n colName = objKeyFigure.Period + '-' + objKeyFigure.Type.toLowerCase(),\n colHHeader = objKeyFigure.Period + (isEstimate ? settings.suffixEstimate : settings.suffixActual),\n date = objKeyFigure.Date;\n\n if (settings.hideEstimateIfActualExists && isEstimate && periodsWithActual.hasOwnProperty(objKeyFigure.Period)) {\n return true; // Continue\n }\n\n if (!objHorizontalMatrix.hasOwnProperty(colName)) {\n // Add the key\n objHorizontalMatrix[colName] = {\n \"Name\": colName,\n \"Header\": colHHeader,\n \"Period\": objKeyFigure.Period,\n \"IsEstimate\": isEstimate,\n \"Date\": date\n };\n }\n if (objKeyFigure.Currency == settings.estimateCurrency.toUpperCase() || settings.estimateCurrency == '') {\n // only add values for the given currency if any is given\n objHorizontalMatrix[colName][objKeyFigure.Field] = objKeyFigure.Average;\n if (isEstimate) {\n objHorizontalMatrix[colName][objKeyFigure.Field + '_Count'] = objKeyFigure.Count || 0;\n }\n //objHorizontalMatrix[colName][objKeyFigure.Field + '_Date'] = objKeyFigure.Date;\n }\n\n return true; // Continue\n });\n ////////////////////////////////////\n\n // Change to array\n var colList = $.map(objHorizontalMatrix, function (value) {\n return value;\n });\n\n return colList;\n }\n\n return {\n render: render\n };\n}(jQuery);","// This JavaScript file is created by Cision for our estimate module.\n// This is the first version of this file so far.\n// This should be combined with estimateannual.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.estimate = cision.websolution.estimate || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.estimate.historical = !cision.websolution.settings.estimate ? {} : function ($) {\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.estimate.accessKey,\n chart;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var render = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your access key.\");\n return;\n }\n var url = generateUrl('Estimate/' + accessKey + '/Historical');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n field: settings.field\n }\n })\n .done(function (objRawData) {\n var seriesList = transformKeyFigures(objRawData);\n\n createChart(seriesList);\n })\n .fail(function () {\n console.log('Could not retrieve historical data');\n });\n };\n\n function transformKeyFigures(objData) {\n\n var keyFigures = objData.HistoricalKeyFigures,\n objSeriesList = {};\n\n $.each(keyFigures, function (ix, objKeyFigure) {\n var notToAdd = objKeyFigure.Field == \"EBIT\" && objKeyFigure.Unit == \"Percent\";\n if (!notToAdd) {\n var isEstimate = objKeyFigure.Type.toLowerCase() === 'estimate',\n key = objKeyFigure.Period + '_y' + (isEstimate ? '' : '_actual');\n\n if (!objSeriesList.hasOwnProperty(key)) {\n // Add the key\n objSeriesList[key] = {\n id: key,\n name: objKeyFigure.Period,\n type: (isEstimate ? 'line' : 'scatter'),\n data: []\n };\n }\n if (objKeyFigure.Currency == settings.estimateCurrency.toUpperCase() || settings.estimateCurrency == '') {\n // only add values for the given currency if any is given\n objSeriesList[key].data.push([moment(objKeyFigure.Date).valueOf(), objKeyFigure.Average]);\n }\n }\n });\n\n return $.map(objSeriesList, function (value, key) {\n return value;\n });\n\n }\n\n\n /**\n * Create a graph and set standard settings like colours, tooltips\n */\n function createChart(seriesList) {\n\n var objXAxis = {\n labels: {\n formatter: function () {\n return getDateFormated(this.value);\n }\n },\n tickPixelInterval: 150\n },\n objYAxis = {\n labels: {\n formatter: function () {\n return getNumrericFormat(this.value.toString());\n }\n },\n title: {\n text: '',\n margin: 0\n }\n },\n //Set the format on the tooltip\n objTooltip = {\n formatter: function () {\n var head;\n\n if (this.series.type === 'line') {\n head = settings.tooltipHeaderEstimate;\n } else {\n head = settings.tooltipHeaderReal;\n }\n return ' ' + head + this.series.name + '
' +\n settings.dateString + getDateFormated(this.x) + '
' +\n settings.amountString + getNumrericFormat(this.y) + ' ' + getCurrencyWithPrefixes();\n }\n },\n objPlotOptions = {\n line: {\n lineWidth: 2,\n states: {\n hover: {\n lineWidth: 3\n }\n },\n\n marker: {\n enabled: false,\n states: {\n hover: {\n enabled: true,\n symbol: 'circle',\n radius: 4,\n lineWidth: 1\n }\n }\n }\n }\n },\n objLegend = {\n enabled: true,\n borderColor: '#DBDBDB',\n margin: 20,\n labelFormatter: function () {\n var head;\n if (this.type === 'line') {\n head = settings.tooltipHeaderEstimate;\n } else {\n head = settings.tooltipHeaderReal;\n }\n\n return head + this.name;\n }\n };\n\n chart = new Highcharts.Chart({\n chart: {\n renderTo: 'historicalDataContainer',\n defaultSeriesType: 'line'/*,\n events: {\n load: requestData(type)\n }*/\n },\n\n series: seriesList,\n\n //Set the line colours\n //colors: [\n // '#418a6a', // Actual 2010\n // 'black', // Estimate 2011\n // '#64b8e0', // Estimate 2012\n // 'black', //\n // '#bdbfc0', //\n // '#49618c' //\n //],\n\n xAxis: objXAxis,\n yAxis: objYAxis,\n\n //Set the format on the tooltip\n tooltip: objTooltip,\n\n //Defines and set the line settings\n plotOptions: objPlotOptions,\n\n legend: objLegend,\n\n credits: {\n enabled: false\n },\n\n title: {\n text: '',\n margin: 30\n }\n });\n\n return chart;\n }\n\n /**\n *Returns the date format ISO/other\n */\n\n function getDateFormated(dateNumber) {\n var formatString = 'YYYY-MM-DD';\n\n switch (settings.uiLanguage) {\n case \"EN\":\n formatString = 'MM/DD/YYYY';\n break;\n case \"SV\":\n formatString = 'YYYY-MM-DD';\n break;\n default:\n formatString = 'YYYY-MM-DD';\n break;\n }\n\n return moment(new Date(dateNumber)).format(formatString);\n }\n\n\n /**\n *Returns numeric format Swedish/ other\n */\n function getNumrericFormat(number) {\n var formatted;\n\n switch (settings.uiLanguage.toUpperCase()) {\n case \"EN\":\n formatted = $().number_format(number, { numberOfDecimals: 2, decimalSeparator: '.', thousandSeparator: ',' });\n break;\n case \"SV\":\n formatted = $().number_format(number, { numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: ' ' });\n break;\n default:\n formatted = $().number_format(number, { numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: ' ' });\n break;\n }\n\n return formatted;\n }\n\n /**\n *Returns the unit with added one letter prefix\n */\n function getCurrencyWithPrefixes() {\n var formatted;\n\n var unit = settings.unit;\n\n switch (settings.quantum) {\n case \"Quadrillion\":\n formatted = unit + \"Y\";\n break;\n case \"Trilliard\":\n formatted = unit + \"Z\";\n break;\n case \"Trillion\":\n formatted = unit + \"E\";\n break;\n case \"Billiard\":\n formatted = unit + \"P\";\n break;\n case \"Billion\":\n formatted = unit + \"T\";\n break;\n case \"Milliard\":\n formatted = unit + \"G\";\n break;\n case \"Million\":\n formatted = \"M\" + unit;\n break;\n case \"Thousand\":\n formatted = unit + \"k\";\n break;\n case \"Hundred\":\n formatted = unit + \"h\";\n break;\n case \"Ten\":\n formatted = unit + \"d\";\n break;\n case \"MT\":\n formatted = \"MT\";\n break;\n default:\n formatted = unit;\n break;\n }\n\n return formatted;\n }\n\n\n\n return {\n render: render\n };\n}(jQuery);\n","// This JavaScript file is created by Cision for our estimate module.\n// This is the first version of this file so far.\n// This should be combined with estimateannual.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.estimate = cision.websolution.estimate || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.estimate.quarterly = !cision.websolution.settings.estimate ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.estimate.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var render = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your access key.\");\n return;\n }\n\n var url = generateUrl('Estimate/' + accessKey + '/Quarterly');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(dataObj) {\n var periodList = transformKeyFigures(dataObj.QuarterlyKeyFigures);\n\n var lastDate = \"2000-01-01\";\n $(periodList).each(function (i, item) {\n if (item.Date >= lastDate) {\n periodList.LastDateFormatted = moment(item.Date).locale(settings.uiLanguage).format(settings.dateFormat);\n }\n lastDate = item.Date;\n });\n\n var compositeModel = $.extend({ PeriodList: periodList }, texts, settings);\n\n var renderedHtml = $(\"#template-estimate-quarterly\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-estimate-quarterly\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve Quarterly data');\n\n });\n };\n\n function transformKeyFigures(keyFigures) {\n\n // Rearrange KeyFigures in a columnar format\n var periodsWithActual = {},\n objHorizontalMatrix = {}; // {\"2011-Q3\":{\"Sales\":123, \"EPS\": 2345, ...}, \"2012-Q1\": {EPS, ...}}\n\n $.each(keyFigures, function (ix, objKeyFigure) {\n if (objKeyFigure.Type.toLowerCase() === 'actual') {\n periodsWithActual[objKeyFigure.Period] = objKeyFigure.Type;\n }\n });\n\n settings.periodStart = settings.periodStart.toString();\n settings.periodEnd = settings.periodEnd.toString();\n\n $.each(keyFigures, function (ix, objKeyFigure) {\n var isEstimate = objKeyFigure.Type.toLowerCase() === 'estimate',\n colName = objKeyFigure.Period + '-' + objKeyFigure.Type.toLowerCase(),\n colHHeader = objKeyFigure.Period + (isEstimate ? settings.suffixEstimate : settings.suffixActual),\n date = objKeyFigure.Date;\n\n\n // Limit Periods\n if (objKeyFigure.Period < settings.periodStart || objKeyFigure.Period > settings.periodEnd) {\n return true; // Continue\n }\n if (settings.hideEstimateIfActualExists && isEstimate && periodsWithActual.hasOwnProperty(objKeyFigure.Period)) {\n return true; // Continue\n }\n if (!objHorizontalMatrix.hasOwnProperty(colName)) {\n // Add the key\n objHorizontalMatrix[colName] = {\n \"Name\": colName,\n \"Header\": colHHeader,\n \"Period\": objKeyFigure.Period,\n \"IsEstimate\": isEstimate,\n \"Date\": date\n };\n }\n\n if (objKeyFigure.Currency == settings.estimateCurrency.toUpperCase() || settings.estimateCurrency == '') {\n // only add values for the given currency if any is given\n objHorizontalMatrix[colName][objKeyFigure.Field] = objKeyFigure.Average;\n if (isEstimate) {\n objHorizontalMatrix[colName][objKeyFigure.Field + '_Count'] = objKeyFigure.Count || 0;\n }\n //objHorizontalMatrix[colName][objKeyFigure.Field + '_Date'] = objKeyFigure.Date;\n }\n\n return true; // Continue\n });\n\n // Change to array\n var colList = $.map(objHorizontalMatrix, function (value) {\n return value;\n });\n\n return colList;\n }\n\n return {\n render: render\n };\n} (jQuery);","// This JavaScript file is created by Cision for our estimate module.\n// This is the first version of this file so far.\n// This should be combined with estimateannual.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.estimate = cision.websolution.estimate || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.estimate.recommendations = !cision.websolution.settings.estimate ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.estimate.accessKey,\n accessKeyTicker = cision.websolution.settings.estimate.accessKeyTicker,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderHistory = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your Estimates access key.\");\n return;\n }\n\n var url = generateUrl('Estimate/' + accessKey + '/RecommendationsHistorical');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n startDate: settings.startDate,\n field: settings.field\n }\n })\n .done(function (objRawData) {\n var objGroupedData = groupByMonth(objRawData);\n\n objGroupedData.Months = $.map(objGroupedData, function(value, key) {\n value.Month = key;\n\n return value;\n });\n var loopThrough = objRawData.BuyRecomendations.concat(objRawData.HoldRecomendations, objRawData.SellRecomendations);\n var lastDate = \"2000-01-01\";\n $(loopThrough).each(function (i, item) {\n if (item.Date >= lastDate) {\n objGroupedData.LastDateFormatted = moment(item.Date).locale(settings.uiLanguage).format(settings.dateFormat);\n }\n lastDate = item.Date;\n });\n\n var compositeModel = $.extend({}, objGroupedData, texts, settings),\n renderedHtml = $(\"#template-recommendations-history-table\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#historicRecommendation\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve historical data');\n });\n };\n\n var renderCurrent = function(options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your Estimates access key.\");\n return;\n }\n\n var url = generateUrl('Estimate/' + accessKey + '/Recommendations');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n })\n .done(function(objRawData) {\n var lastDate = \"2000-01-01\";\n\n for (var i = 0; i < objRawData.Recomendations.length; i++) {\n var objRecomendation = objRawData.Recomendations[i];\n\n if (objRecomendation.Date >= lastDate) {\n objRawData.LastDate = objRecomendation.Date;\n objRawData.LastDateFormatted = moment(objRecomendation.Date).locale(settings.uiLanguage).format(settings.dateFormat);\n }\n\n lastDate = objRecomendation.Date;\n }\n\n // Percentages\n objRawData.StrongBuyDistribution = Math.round(100 * objRawData.StrongBuy / objRawData.TotalCount);\n objRawData.BuyDistribution = Math.round(100 * objRawData.Buy / objRawData.TotalCount);\n objRawData.HoldDistribution = Math.round(100 * objRawData.Hold / objRawData.TotalCount);\n objRawData.SellDistribution = Math.round(100 * objRawData.Sell / objRawData.TotalCount);\n objRawData.StrongSellDistribution = Math.round(100 * objRawData.StrongSell / objRawData.TotalCount);\n\n // Calculate the Mean\n objRawData.Mean = (objRawData.StrongBuy / objRawData.TotalCount * 5)\n + (objRawData.Buy / objRawData.TotalCount * 4)\n + (objRawData.Hold / objRawData.TotalCount * 3)\n + (objRawData.Sell / objRawData.TotalCount * 2)\n + (objRawData.StrongSell / objRawData.TotalCount * 1);\n\n objRawData.MeanDistribution = Math.round(100 * objRawData.Mean / 5);\n\n objRawData.MeanDistribution = objRawData.MeanDistribution > 99 ? 99 : objRawData.MeanDistribution;\n objRawData.MeanDistribution = objRawData.MeanDistribution < 1 ? 1 : objRawData.MeanDistribution;\n\n var compositeModel = $.extend({}, objRawData, texts, settings),\n renderedHtml = $(\"#tplCurrentRecommendationDistribution\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#currentRecommendationDistribution\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve {Current Recommendations} data');\n });\n };\n\n var renderTicker = function(options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKeyTicker) {\n console.log(\"You must provide your Ticker access key.\");\n return;\n }\n var url = generateUrl( 'Ticker/' + accessKeyTicker);\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(rawData) {\n var objInstrument = rawData.Instruments[0],\n lastDate = \"2000-01-01\";\n\n objInstrument.LatestQuote = {};\n\n for (var i = 0; i < objInstrument.Quotes.length; i++) {\n var objQuote = objInstrument.Quotes[i];\n\n if (objQuote.QuoteTime >= lastDate) {\n objQuote.QuoteTimeFormatted = moment(objQuote.QuoteTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objInstrument.LatestQuote = objQuote;\n }\n\n lastDate = objQuote.QuoteTime;\n }\n\n var compositeModel = $.extend({}, objInstrument, texts, settings),\n renderedHtml = $(\"#tplShareInformation\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#shareinformation\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve Ticker data for Estimate module');\n });\n };\n\n function groupByMonth(objRawData) {\n \n var objGroupedMatrix = {},\n objMeanValues = {},\n arr = objRawData.BuyRecomendations.concat(objRawData.HoldRecomendations, objRawData.SellRecomendations);\n arr = arr.sort(function (a, b) {\n if (a.Date < b.Date) return -1;\n if (a.Date > b.Date) return 1;\n return 0;\n });\n $.each(arr, function (ix, objEstimate) {\n\n // Limit Periods\n if (objEstimate.Date < settings.startDate || objEstimate.Date > settings.endDate) {\n return true; // Continue\n }\n\n var yearMonth = objEstimate.Date.substr(0, 7),\n aspect = '';\n objEstimate.key = objEstimate.Aspect + objEstimate.Type;\n\n switch (objEstimate.key) {\n case 'BuyStrong':\n aspect = 'StrongBuy';\n break;\n case 'BuyNeutral':\n aspect = 'Buy';\n break;\n case 'HoldNeutral':\n aspect = 'Hold';\n break;\n case 'SellNeutral':\n aspect = 'Sell';\n break;\n case 'SellStrong':\n aspect = 'StrongSell';\n break;\n default:\n break;\n }\n\n if (!objGroupedMatrix.hasOwnProperty(yearMonth)) {\n objGroupedMatrix[yearMonth] = {\n Date: objEstimate.Date,\n Month: yearMonth,\n MonthName: moment(objEstimate.Date).locale(settings.uiLanguage).format('MMM YYYY'),\n StrongBuy: 0,\n Buy: 0,\n Hold: 0,\n Sell: 0,\n StrongSell: 0,\n Mean: 0\n };\n }\n\n objGroupedMatrix[yearMonth][aspect] = objEstimate.Count;\n // Matrx Mean\n var objMonth = objGroupedMatrix[yearMonth];\n objMonth.TotalCount = objMonth.StrongBuy + objMonth.Buy + objMonth.Hold + objMonth.Sell + objMonth.StrongSell;\n // Calculate the Mean\n var meanValue = (objMonth.StrongBuy / objMonth.TotalCount * 5)\n + (objMonth.Buy / objMonth.TotalCount * 4)\n + (objMonth.Hold / objMonth.TotalCount * 3)\n + (objMonth.Sell / objMonth.TotalCount * 2)\n + (objMonth.StrongSell / objMonth.TotalCount * 1);\n\n objGroupedMatrix[yearMonth].Mean = meanValue.toFixed(4);\n\n\n if (!objMeanValues.hasOwnProperty(yearMonth)) {\n // Add the key\n objMeanValues[yearMonth] = [];\n }\n objMeanValues[yearMonth].push(objEstimate);\n\n return true; // Continue\n });\n\n return objGroupedMatrix;\n }\n\n return {\n renderCurrent: renderCurrent,\n renderHistory: renderHistory,\n renderTicker: renderTicker\n };\n}(jQuery);\n","// This JavaScript file is created by Cision for our insider module.\n// This is the first version of this file so far.\n// This should be combined with insiders.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.insiders = !cision.websolution.settings.insider ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.insider.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n var textsInsidersDescriptions = cision.websolution.texts[settings.uiLanguage].insidersDescriptions;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderTransactionsList = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your insiders access key.\");\n return;\n }\n var url = generateUrl('InsiderTrade/' + accessKey + '/TransactionsList');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n startDate: settings.startDate,\n endDate: settings.endDate\n }\n })\n .done(function (rawData) {\n $.each(rawData.Transactions, function (idx, objTransaction) {\n objTransaction.TransactionDateFormatted = moment(objTransaction.TransactionDate).locale(settings.uiLanguage).format(settings.dateFormat);\n objTransaction.SecurityTypeDescription = textsInsidersDescriptions.securityTypes[objTransaction.SecurityTypeId];\n objTransaction.TransactionTypeDescription = textsInsidersDescriptions.transactionTypes[objTransaction.TransactionTypeId];\n objTransaction.PositionDescription = textsInsidersDescriptions.positionTypes[objTransaction.PositionId];\n objTransaction.HolderTypeDescription = textsInsidersDescriptions.holderTypes[objTransaction.HolderTypeId];\n\n if (objTransaction.HolderName) {\n objTransaction.HolderTypeDescription += ' [' + objTransaction.HolderName + ']';\n }\n });\n\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var renderedHtml = $(\"#tplInsiderTransactionsList\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-transactions\").html(renderedHtml);\n\n })\n .fail(function () {\n console.log('Could not retrieve data');\n });\n };\n\n var renderToGraph = function (objChart, options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your insiders access key.\");\n return;\n }\n var url = generateUrl('InsiderTrade/' + accessKey + '/TransactionsList');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n startDate: settings.startDate,\n endDate: settings.endDate\n }\n })\n .done(function (rawData) {\n var pointsInsiders = [];\n $.each(rawData.Transactions, function (idx, objTransaction) {\n objTransaction.TransactionDateFormatted = moment(objTransaction.TransactionDate).locale(settings.uiLanguage).format(settings.dateFormat);\n objTransaction.DetailsLink = rawData.DetailsLink + objTransaction.InsiderName;\n objTransaction.PlusMinus = (objTransaction.Quantity > 0 ? '+' : '');\n objTransaction.TransactionTypeDescription = textsInsidersDescriptions.transactionTypes[objTransaction.TransactionTypeId];\n\n pointsInsiders.push({\n x: moment(objTransaction.TransactionDate).format('X') * 1000,\n title: settings.insidersTitle,\n text: objTransaction.InsiderName,\n InsiderTransaction: objTransaction\n });\n });\n\n var objInstrument = { UniqueKey: settings.graphUniqueKey };\n var objChartSeries = {\n id: objInstrument.UniqueKey,\n name: 'INSIDERS',\n type: 'flags',\n data: pointsInsiders,\n visible: true,\n color: settings.graphColor,\n\n // Extra data\n objOriginal: objInstrument\n };\n\n objChartSeries.tooltip = {\n //shared: true,\n useHTML: true,\n //headerFormat: '
{point.key}

',\n pointFormat: '{point.InsiderTransaction.InsiderName}
' +\n '{point.InsiderTransaction.PlusMinus}{point.InsiderTransaction.Quantity} st ({point.InsiderTransaction.TransactionTypeDescription})'\n };\n\n objChart.addSeries(objChartSeries);\n })\n .fail(function () {\n console.log('Could not retrieve insiders data');\n })\n .always(function () {\n\n });\n };\n\n return {\n \n renderTransactionsList: renderTransactionsList,\n renderToGraph: renderToGraph\n };\n} (jQuery);","// This JavaScript file is created by Cision for our newsfeed.\n// This is the first version of this file so far.\n// This should be combined with relese.html \n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\n\ncision.websolution.liverss = !cision.websolution.settings.liverss ? {} : function ($) {\n\n var settings = cision.websolution.settings.general,\n accessKey = cision.websolution.settings.liveRss.accessKey,\n releases = null;\n\n var renderListing = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your live-rss access key.\");\n return;\n }\n\n if ($.isArray( releases)) {\n processReleases(options);\n return;\n }\n\n retrieveReleases(function(){\n processReleases(options);\n });\n \n };\n\n function processReleases(options){\n pager.releasesList = releases;\n releases.each(function() {\n var $el = $(\"
\");\n $el = $el.append($.parseHTML($(this).find(\"description\").text()));\n $el.appendTo(\"#release-list\");\n pager.paragraphs.push($el);\n return $el;\n });\n\n pager.showPage(1);\n }\n\n function retrieveReleases(callback){\n if ($.isArray( releases)) {\n callback(releases);\n return;\n }\n\n $.ajax({\n url: settings.proxyHandler,\n type: 'GET',\n dataType: 'xml',\n data: {\n url: settings.serviceEndpointRss + '?key=' + accessKey\n }\n })\n .done(function(xml) {\n releases = $(xml).find(\"item\");\n callback(releases);\n\n })\n .fail(function() {\n console.log('Could not retrieve releases data');\n });\n\n releases = [];\n }\n\n return {\n renderListing: renderListing \n };\n\n} (jQuery);\n","// This JavaScript file is created by Cision for our media feed.\n// This is the first version of this file so far.\n// This should be combined with media-listing.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.mediafeed = !cision.websolution.settings.mediafeed ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.mediafeed.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderListing = function (options) {\n if (options) {\n $.extend(settings, options);\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n }\n\n if (!accessKey) {\n console.log(\"You must provide your mediafeed access key.\");\n return;\n }\n var url = generateUrl('NewsRoom/' + accessKey + '/Medias');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n mediaRestriction: settings.mediaRestriction,\n startDate: settings.startDate,\n endDate: settings.endDate,\n pageIndex: settings.pageIndex,\n pageSize: settings.pageSize,\n tags: settings.tags\n }\n })\n .done(function (objResponse) {\n var mediaList = { Images: [], Videos: [], Embedded: [], Medias: [] };\n $.each(objResponse.Medias, function (idx, objMedia) {\n objMedia.CreateDate = moment(objMedia.CreateDate).locale(settings.uiLanguage).format(settings.dateFormat);\n objMedia.ThumbnailUrlImage = objMedia.UrlTo200x200ArResized || objMedia.UrlTo200x200Thumbnail;\n objMedia.DownloadUrl = objMedia.LargeThumbnailUrl || objMedia.DownloadUrl;\n\n if (objMedia.MediaType === \"Image\") {\n mediaList.Images.push(objMedia);\n }\n if (objMedia.MediaType === \"Embedded\") {\n objMedia.EmbeddedItem = objMedia.EmbedCode;\n mediaList.Embedded.push(objMedia);\n }\n if (objMedia.MediaType === \"Video\") {\n mediaList.Videos.push(objMedia);\n }\n\n mediaList.Medias.push(objMedia);\n });\n\n mediaList.PageIndex = objResponse.PageIndex;\n mediaList.PageSize = objResponse.PageSize;\n mediaList.PreviousPageExists = objResponse.PageIndex > 0;\n mediaList.PreviousPageIndex = Math.max(1, objResponse.PageIndex - 1);\n mediaList.NextPageIndex = objResponse.PageIndex + 1;\n mediaList.NextPageExists = (objResponse.PageIndex * objResponse.PageSize) < objResponse.TotalFound;\n mediaList.PageCount = Math.ceil(objResponse.TotalFound / objResponse.PageSize);\n\n mediaList.Images = mediaList.Images.reverse();\n mediaList.Medias = mediaList.Medias.reverse();\n mediaList.Videos = mediaList.Videos.reverse();\n mediaList.Embedded = mediaList.Embedded.reverse();\n\n $.extend(mediaList, texts, settings);\n\n var renderedHtml = $(\"#tplMediaList\").render(mediaList, cision.websolution.formatHelpers);\n $(\"#target-media-list\").html(renderedHtml);\n\n d.resolve();\n })\n .fail(function() {\n console.log('Could not retrieve data');\n d.reject();\n });\n\n return d.promise();\n };\n\n var renderThumbnails = function (options) {\n if (options) {\n $.extend(settings, options);\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n }\n\n if (!accessKey) {\n console.log(\"You must provide your newsfeed access key.\");\n return;\n }\n var url = generateUrl('NewsRoom/' + accessKey + '/Medias');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n mediaRestriction: 'image',\n startDate: settings.startDate,\n endDate: settings.endDate,\n pageIndex: settings.pageIndex,\n pageSize: settings.pageSize\n }\n })\n .done(function (objResponse) {\n var imagesList = { Images: [] };\n $.each(objResponse.Medias, function (idx, objMedia) {\n if (objMedia.MediaType === \"Image\") {\n objMedia.CreateDate = moment(objMedia.CreateDate).locale(settings.uiLanguage).format(settings.dateFormat);\n objMedia.ThumbnailUrl = objMedia.UrlTo200x200ArResized || objMedia.ThumbnailUrl;\n imagesList.Images.push(objMedia);\n }\n });\n\n imagesList.PageIndex = objResponse.PageIndex;\n imagesList.PageSize = objResponse.PageSize;\n\n imagesList.Images = imagesList.Images.reverse();\n\n var compositeModel = $.extend({}, imagesList, texts, settings);\n\n var renderedHtml = $(\"#tplThumbnailList\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-thumbnail\").html(renderedHtml);\n\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve data');\n d.reject();\n });\n return d.promise();\n };\n\n var renderTags = function (options) {\n if (options) {\n settings.showNumberOfTags = options.showNumberOfTags;\n $.extend(settings, options);\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n }\n if (!accessKey) {\n console.log(\"You must provide your newsfeed access key.\");\n return;\n }\n var url = generateUrl('Newsroom/' + accessKey + '/Tags');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n mainTypes: 'Media'\n }\n })\n .done(function (objResponse) {\n var tagList = [];\n\n $.each(objResponse.Tags, function (idx, objRelease) {\n tagList.push(objRelease);\n });\n\n objResponse.Tags = tagList;\n objResponse.numberOfTags = tagList.length;\n\n var compositeModel = $.extend({}, objResponse, texts, settings);\n var renderedHtml = $(\"#tplTags\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-tags\").html(renderedHtml);\n d.resolve();\n\n })\n .fail(function () {\n console.log('Could not retrieve tags');\n d.reject();\n });\n\n return d.promise();\n };\n\n return {\n renderListing: renderListing,\n renderThumbnails: renderThumbnails,\n renderTags: renderTags\n };\n}(jQuery);","// This JavaScript file is created by Cision for our newsfeed.\n// This is the first version of this file so far.\n// This should be combined with relese.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.newsfeed = !cision.websolution.settings.newsfeed ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.newsfeed.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderListing = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n\n if (!accessKey) {\n console.log(\"You must provide your newsfeed access key.\");\n return;\n }\n var url = generateUrl('NewsFeed/' + accessKey + '/Releases');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n startDate: settings.startDate,\n endDate: settings.endDate,\n pageIndex: settings.pageIndex,\n pageSize: settings.pageSize,\n searchTerm: settings.searchTerm,\n separateFirstRelease: settings.separateFirstRelease,\n tags: settings.tags,\n regulatory: settings.regulatory\n }\n })\n .done(function (objResponse) {\n var objFirstRelease = null,\n releaseList = [];\n\n $.each(objResponse.Releases, function (idx, objRelease) {\n objRelease.PublishDateFormatted = moment(objRelease.PublishDate).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objRelease.DetailUrl = settings.serviceEndpoint + 'Release/' + objRelease.EncryptedId;\n objRelease.years = objRelease.PublishDateFormatted.slice(0, 4);\n\n objRelease.HasImage = objRelease.Images && objRelease.Images.length > 0;\n if (settings.useMediabankViaHttps) {\n if (objRelease.HasImage) {\n $.each(objRelease.Images, function (index, objImage) {\n objImage.DownloadUrl = objImage.DownloadUrl.replace('http:', 'https:');\n objImage.UrlTo100x100ArResized = objImage.UrlTo100x100ArResized.replace('http:', 'https:');\n objImage.UrlTo200x200ArResized = objImage.UrlTo200x200ArResized.replace('http:', 'https:');\n objImage.UrlTo400x400ArResized = objImage.UrlTo400x400ArResized.replace('http:', 'https:');\n objImage.UrlTo800x800ArResized = objImage.UrlTo800x800ArResized.replace('http:', 'https:');\n objImage.UrlTo100x100Thumbnail = objImage.UrlTo100x100Thumbnail.replace('http:', 'https:');\n objImage.UrlTo200x200Thumbnail = objImage.UrlTo200x200Thumbnail.replace('http:', 'https:');\n });\n }\n }\n\n var encodedTitle = objRelease.EncodedUrl || objRelease.Title.toLowerCase().replace(/[öø]/g, \"o\").replace(/[åä]/g, \"a\").replace(/[éèëê]/g, \"e\").replace(/[ûü]/g, \"u\").replace(/[^a-z0-9]+/gi, '-').replace(/\\-+/g, \"-\");\n objRelease.TitleForUrl = encodeURI(encodedTitle);\n\n objRelease.ThumbnailUrl = '';\n try {\n objRelease.ThumbnailUrl = objRelease.Images[0].UrlTo400x400ArResized;\n } catch (e) {\n\n }\n\n // Shorten text\n if (settings.introMaxLength && settings.introMaxLength > 0) {\n\n if (objRelease.Intro.length > settings.introMaxLength) {\n objRelease.Intro = $.trim(objRelease.Intro).substring(0, settings.introMaxLength) + \"...\";\n }\n }\n\n if (settings.titleMaxLength && settings.titleMaxLength > 0) {\n\n if (objRelease.Title.length > settings.titleMaxLength) {\n objRelease.Title = $.trim(objRelease.Title).substring(0, settings.titleMaxLength) + \"...\";\n }\n }\n\n if (settings.separateFirstRelease === true && objFirstRelease === null) {\n objFirstRelease = objRelease;\n if (objFirstRelease.HasImage) {\n objFirstRelease.ImageUrl = objRelease.Images[0].DownloadUrl;\n }\n } else {\n releaseList.push(objRelease);\n }\n });\n\n objResponse.Releases = releaseList;\n objResponse.PreviousPageExists = objResponse.PageIndex > 0;\n objResponse.PreviousPageIndex = Math.max(1, objResponse.PageIndex - 1);\n objResponse.NextPageIndex = objResponse.PageIndex + 1;\n objResponse.NextPageExists = (objResponse.PageIndex * objResponse.PageSize) < objResponse.TotalFoundReleases;\n objResponse.PageCount = Math.ceil(objResponse.TotalFoundReleases / objResponse.PageSize);\n\n var compositeModel = $.extend({}, objResponse, texts),\n images = ['Images/Bildbank/background-image1.jpg', 'Images/Bildbank/background-image2.jpg', 'Images/Bildbank/background-image3.jpg', 'Images/Bildbank/background-image4.jpg', 'Images/Bildbank/background-image5.jpg', 'Images/Bildbank/background-image6.jpg', 'Images/Bildbank/background-image7.jpg', 'Images/Bildbank/background-image8.jpg', 'Images/Bildbank/background-image9.jpg'],\n currentImageFallbackIx = 0,\n helpers = $.extend(cision.websolution.formatHelpers,\n {\n getFallbackImage: function () {\n var imgSrc = images[currentImageFallbackIx++];\n if (currentImageFallbackIx >= images.length)\n currentImageFallbackIx = 0;\n return imgSrc;\n }\n\n });\n\n var compositeModelFirst = $.extend({}, objFirstRelease, texts);\n if (settings.separateFirstRelease === true) {\n var renderedHtmlFirst = $(\"#tplTopRelease\").render(compositeModelFirst, helpers, settings);\n $(\"#target-release-top\").html(renderedHtmlFirst);\n }\n\n var renderedHtml = $(\"#tplReleaseList\").render(compositeModel, helpers, settings);\n $(\"#target-release-list\").html(renderedHtml);\n\n if (releaseList.length < 1 && objFirstRelease === null) {\n var toRender = $.extend(texts, cision.websolution.settings.general),\n renderTpl = $(\"#tplnosearchResult\").render(toRender);\n $('#noSearchresult-container').html(renderTpl);\n $('#noSearchresult-container').show();\n } else {\n $('#noSearchresult-container').hide();\n }\n\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve data');\n d.reject();\n });\n return d.promise();\n }\n\n var renderYears = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n\n if (!accessKey) {\n console.log(\"You must provide your newsfeed access key.\");\n return;\n }\n var url = generateUrl('NewsFeed/' + accessKey + '/Years?startYear=1980');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (objResponse) {\n var yearList = [];\n\n $.each(objResponse.Years, function (idx, objRelease) {\n yearList.push(objRelease);\n });\n\n yearList.reverse();\n objResponse.Years = yearList;\n\n var compositeModel = $.extend({}, objResponse, texts, settings);\n var renderedHtml = $(\"#tplArchive\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-archive\").html(renderedHtml);\n d.resolve();\n\n })\n .fail(function () {\n console.log('Could not retrieve years');\n d.reject();\n });\n\n return d.promise();\n };\n\n var renderHighlights = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n\n if (!accessKey) {\n console.log(\"You must provide your highlights access key.\");\n return;\n }\n var url = generateUrl('NewsFeed/' + accessKey + '/Releases');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n startDate: settings.startDate,\n endDate: settings.endDate,\n pageIndex: settings.pageIndex,\n pageSize: settings.pageSize\n }\n })\n .done(function (objResponse) {\n var releaseList = [];\n\n $.each(objResponse.Releases, function (idx, objRelease) {\n objRelease.PublishDateFormatted = moment(objRelease.PublishDate).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objRelease.DetailUrl = settings.serviceEndpoint + 'Release/' + objRelease.EncryptedId;\n\n var encodedTitle = objRelease.EncodedUrl || objRelease.Title.toLowerCase().replace(/[öø]/g, \"o\").replace(/[åä]/g, \"a\").replace(/[éèëê]/g, \"e\").replace(/[ûü]/g, \"u\").replace(/[^a-z0-9]+/gi, '-').replace(/\\-+/g, \"-\");\n objRelease.TitleForUrl = encodeURI(encodedTitle);\n\n objRelease.ThumbnailUrl = '';\n try {\n objRelease.ThumbnailUrl = objRelease.Images[0].UrlTo400x400ArResized;\n } catch (e) {\n\n }\n\n releaseList.push(objRelease);\n });\n\n objResponse.Releases = releaseList;\n\n var compositeModel = $.extend({}, objResponse, texts, settings);\n\n var renderedHtml = $(\"#tplHighlighted\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-highlights\").html(renderedHtml);\n\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve data');\n d.reject();\n });\n\n return d.promise();\n }\n\n var renderDetail = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (!settings.releaseIdentifier) {\n console.log(\"You must provide a release Encrypted ID.\");\n return;\n }\n var url = generateUrl('Release/' + settings.releaseIdentifier + '/Detail');\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (objResponse) {\n\n var objRelease = objResponse.Release;\n objRelease.PublishDateFormatted = moment(objRelease.PublishDate).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objRelease.DetailUrl = settings.serviceEndpoint + 'Release/' + objRelease.EncryptedId;\n\n objRelease.HasImage = objRelease.Images && objRelease.Images.length > 0;\n if (settings.useMediabankViaHttps) {\n if (objRelease.HasImage) {\n $.each(objRelease.Images, function (index, objImage) {\n objImage.DownloadUrl = objImage.DownloadUrl.replace('http:', 'https:');\n objImage.UrlTo100x100ArResized = objImage.UrlTo100x100ArResized.replace('http:', 'https:');\n objImage.UrlTo200x200ArResized = objImage.UrlTo200x200ArResized.replace('http:', 'https:');\n objImage.UrlTo400x400ArResized = objImage.UrlTo400x400ArResized.replace('http:', 'https:');\n objImage.UrlTo800x800ArResized = objImage.UrlTo800x800ArResized.replace('http:', 'https:');\n objImage.UrlTo100x100Thumbnail = objImage.UrlTo100x100Thumbnail.replace('http:', 'https:');\n objImage.UrlTo200x200Thumbnail = objImage.UrlTo200x200Thumbnail.replace('http:', 'https:');\n });\n objRelease.HtmlBody = objRelease.HtmlBody.replace('http:', 'https:');\n }\n $.each(objRelease.Files, function (index, objFile) {\n objFile.Url = objFile.Url.replace('http:', 'https:');\n });\n\n }\n\n\n if (objRelease.Files) {\n $.each(objRelease.Files, function (idx, objFile) {\n var ext = objFile.FileName.split('.').pop();\n objFile.FileType = ext || 'unknown-file-extension';\n });\n }\n\n var compositeModel = $.extend({}, objRelease, texts, settings),\n renderedHtml = $(\"#tplReleaseDetail\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-release-detail\").html(renderedHtml);\n\n d.resolve();\n\n })\n .fail(function () {\n console.log('Could not retrieve release Detailed data');\n d.reject();\n });\n\n return d.promise();\n };\n\n\n var renderContactsAndAbout = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n\n if (!accessKey) {\n console.log(\"You must provide your newsroom access key.\");\n return;\n }\n var url = generateUrl('NewsRoom/' + accessKey);\n\n $.ajax({\n url: url,\n data: {\n siteKey: settings.siteKey\n },\n type: 'GET',\n dataType: 'json'\n })\n .done(function (objResponse) {\n var compositeModel = $.extend({}, objResponse, texts, settings);\n\n var $tplNewsroomAbout = $(\"#tplNewsroomAbout\");\n var $targetNewsroomAbout = $(\"#target-newsroom-about\");\n\n if ($tplNewsroomAbout.length && $targetNewsroomAbout.length) {\n var renderedHtmlAbout = $tplNewsroomAbout.render(compositeModel);\n $targetNewsroomAbout.html(renderedHtmlAbout);\n }\n\n var $tplLogoUrl = $(\"#tplNewsroomLogoUrl\");\n var $targetLogoUrl = $(\"#target-newsroom-logo\");\n\n if ($tplLogoUrl.length && $targetLogoUrl.length) {\n var renderedHtmlLogoUrl = $tplLogoUrl.render(compositeModel);\n $targetLogoUrl.html(renderedHtmlLogoUrl);\n }\n\n var $tplNewsroomContactListDetail = $(\"#tplNewsroomContactListDetail\");\n var $targetNewsroomContactListDetail = $(\"#target-newsroom-contact-list-detail\");\n\n if ($tplNewsroomContactListDetail.length && $targetNewsroomContactListDetail.length) {\n var renderedHtmlContactsDetail = $tplNewsroomContactListDetail.render(compositeModel);\n $targetNewsroomContactListDetail.html(renderedHtmlContactsDetail);\n }\n\n var $tplNewsroomContactListSidebar = $(\"#tplNewsroomContactListSidebar\");\n var $targetNewsroomContactListSidebar = $(\"#target-newsroom-contact-list-sidebar\");\n\n if ($tplNewsroomContactListSidebar.length && $targetNewsroomContactListSidebar.length) {\n var renderedHtmlContactsSidebar = $tplNewsroomContactListSidebar.render(compositeModel);\n $targetNewsroomContactListSidebar.html(renderedHtmlContactsSidebar);\n }\n })\n .fail(function () {\n console.log('Could not retrieve newsroom contacts');\n });\n };\n\n var renderTags = function (options) {\n if (options) {\n settings.showNumberOfTags = options.showNumberOfTags;\n $.extend(settings, options);\n\n if (options.accessKey) {\n accessKey = options.accessKey;\n }\n }\n if (!accessKey) {\n console.log(\"You must provide your newsfeed access key.\");\n return;\n }\n var url = generateUrl('Newsroom/' + accessKey + '/Tags');\n\n var d = $.Deferred();\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCodes: settings.uiLanguage,\n pageSize: 100\n }\n })\n .done(function (objResponse) {\n var tagList = [];\n\n $.each(objResponse.Tags, function (idx, objRelease) {\n tagList.push(objRelease);\n });\n\n objResponse.Tags = tagList;\n objResponse.numberOfTags = tagList.length;\n\n var compositeModel = $.extend({}, objResponse, texts, settings);\n var renderedHtml = $(\"#tplTags\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-tags\").html(renderedHtml);\n d.resolve();\n\n })\n .fail(function () {\n console.log('Could not retrieve tags');\n d.reject();\n });\n\n return d.promise();\n };\n\n return {\n render: renderListing,\n renderListing: renderListing,\n renderDetail: renderDetail,\n renderYears: renderYears,\n renderContactsAndAbout: renderContactsAndAbout,\n renderHighlights: renderHighlights,\n renderTags: renderTags\n };\n}(jQuery);","// This JavaScript file is created by Cision for our orderbook module.\n// This is the first version of this file so far.\n// This should be combined with orderbook.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.orderbook = !cision.websolution.settings.orderbook ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.orderbook.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var render = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your orderbook access key.\");\n return;\n }\n var url = generateUrl('OrderBook/' + accessKey + '/Items');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(dataObj) {\n renderResult(dataObj, texts);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n\n };\n\n function renderResult(dataObj, texts) {\n var objInstrument = dataObj.Instruments[0],\n max = 0;\n\n objInstrument.LastUpdateFormatted = moment(objInstrument.LastUpdate).locale(settings.uiLanguage).calendar();\n\n $.each(objInstrument.OrderBookItems, function (idx, objItem) {\n max = Math.max(max, objItem.BidPrice * objItem.BidQuantity, objItem.AskPrice * objItem.AskQuantity);\n });\n\n $.each(objInstrument.OrderBookItems, function (idx, objItem) {\n // Calculate bar size\n objItem.BidVisualComparison = 100 * objItem.BidPrice * objItem.BidQuantity / max;\n objItem.AskVisualComparison = 100 * objItem.AskPrice * objItem.AskQuantity / max;\n });\n\n var compositeModel = $.extend({}, objInstrument, texts, settings),\n renderedHtml = $(\"#templateorderbook\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-orderbook\").html(renderedHtml);\n }\n\n return {\n render: render\n };\n} (jQuery);","// This JavaScript file is created by Cision for our ownership module.\n// This is the first version of this file so far.\n// This should be combined with ownership.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.ownership = !cision.websolution.settings.ownership ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.ownership.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n var renderLargestShareholders = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ownership access key.\");\n return;\n }\n var url = generateUrl('Ownership/' + accessKey);\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (rawData) {\n rawData.TotalAmount = rawData.ShareHolders.length;\n rawData.DateFormatted = moment(rawData.Date).format('ll');\n rawData.AmountInList = settings.LargestListShowCount;\n\n renderLargestShareholdersChart(options, rawData);\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var renderedHtml = $(\"#tplLargestShareholdersListing\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-largestshareholders\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n };\n\n var renderLargestShareholdersChart = function (options, rawData) {\n // Build Data Series\n var dataArray = [],\n othersPercent = 100;\n // options.LargestPieShowCount = 10;\n $.each(rawData.ShareHolders, function (ix, objShareHolder) {\n if (objShareHolder.Number <= settings.LargestPieShowCount) {\n othersPercent -= objShareHolder.OwnershipPercent;\n\n dataArray.push({\n name: objShareHolder.Name,\n y: objShareHolder.OwnershipPercent\n });\n }\n });\n\n if (othersPercent > 0) {\n dataArray.push({\n name: 'Others',\n y: othersPercent,\n sliced: true\n });\n }\n\n $('#container-largest-shareholders-chart').highcharts({\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false\n },\n title: {\n text: ''\n },\n tooltip: {\n pointFormat: '{series.name}: {point.percentage:.1f}%'\n },\n credits: {\n text: 'Source Cision/Euroclear'\n },\n plotOptions: {\n pie: {\n allowPointSelect: true,\n cursor: 'pointer',\n dataLabels: {\n enabled: true,\n color: '#000000',\n connectorColor: '#000000',\n format: '{point.name}: {point.percentage:.1f} %'\n }\n }\n },\n series: [{\n type: 'pie',\n name: rawData.Name,\n data: dataArray\n }]\n });\n };\n\n var renderNewShareholders = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ownership access key.\");\n return;\n }\n\n var url = generateUrl('Ownership/' + accessKey + '/NewShareHolders');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(rawData) {\n\n rawData.DateFormatted = moment(rawData.Date).format('ll');\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var renderedHtml = $(\"#tplNewShareholdersListing\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-newshareholders\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n };\n\n var renderShareSizeGroups = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ownership access key.\");\n return;\n }\n\n var url = generateUrl('Ownership/' + accessKey + '/ShareSizeGroups');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(rawData) {\n\n rawData.DateFormatted = moment(rawData.Date).format('ll');\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var renderedHtml = $(\"#tplShareSizeGroupsListing\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-sharesizegroups\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n };\n\n var renderShareHolderAreas = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ownership access key.\");\n return;\n }\n\n var url = generateUrl('Ownership/' + accessKey + '/ShareHolderAreas');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function(rawData) {\n // Trying to reorder Areas so that they are translatable\n // The available areas are: Sweden, USA, Nordic, Europe, World\n var reorderedAreas = [];\n settings.ownershipAreasNames = settings.ownershipAreasNames || {};\n var textsAreaNames = texts.TextOwnershipAreaNames || {};\n\n var objAreaSweden = _.findWhere(rawData.Areas,\n {\n AreaName: settings.ownershipAreasNames.sweden || 'SVERIGEBOENDE'\n });\n if (objAreaSweden) {\n objAreaSweden.AreaName = textsAreaNames.Sweden || objAreaSweden.AreaName;\n reorderedAreas.push(objAreaSweden);\n }\n\n var objAreaUsa = _.findWhere(rawData.Areas,\n {\n AreaName: settings.ownershipAreasNames.usa || 'USA'\n });\n if (objAreaUsa) {\n objAreaUsa.AreaName = textsAreaNames.Usa || objAreaUsa.AreaName;\n reorderedAreas.push(objAreaUsa);\n }\n\n var objAreaNordic = _.findWhere(rawData.Areas,\n {\n AreaName: settings.ownershipAreasNames.nordic || 'ÖVRIGA NORDEN'\n });\n if (objAreaNordic) {\n objAreaNordic.AreaName = textsAreaNames.Nordic || objAreaNordic.AreaName;\n reorderedAreas.push(objAreaNordic);\n }\n\n var objAreaEurope = _.findWhere(rawData.Areas,\n {\n AreaName: settings.ownershipAreasNames.europe || 'ÖVRIGA EUROPA (EXKL SVERIGE OCH NORDEN)'\n });\n if (objAreaEurope) {\n objAreaEurope.AreaName = textsAreaNames.Europe || 'ÖVRIGA EUROPA' /* objAreaEurope.AreaName */;\n reorderedAreas.push(objAreaEurope);\n }\n\n var objAreaWorld = _.findWhere(rawData.Areas,\n {\n AreaName: settings.ownershipAreasNames.world || 'ÖVRIGA VÄRLDEN'\n });\n if (objAreaWorld) {\n objAreaWorld.AreaName = textsAreaNames.World || objAreaWorld.AreaName;\n reorderedAreas.push(objAreaWorld);\n }\n\n var objAreaTotal = _.findWhere(rawData.Areas, { OwnershipPercent: 100 });\n if (objAreaTotal) {\n objAreaTotal.AreaName = textsAreaNames.Total || objAreaTotal.AreaName;\n }\n\n rawData.Areas = reorderedAreas;\n rawData.Total = objAreaTotal;\n\n rawData.DateFormatted = moment(rawData.Date).format('ll');\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var renderedHtml = $(\"#tplShareShareHolderAreasListing\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-shareholderareas\").html(renderedHtml);\n\n renderShareHolderAreasChart(options, rawData);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n };\n\n var renderShareHolderAreasChart = function (options, rawData) {\n // Build Data Series\n var dataArray = [];\n\n $.each(rawData.Areas, function (ix, objArea) {\n if (objArea.OwnershipPercent < 100) {\n dataArray.push({\n name: objArea.AreaName,\n y: objArea.OwnershipPercent\n });\n }\n });\n\n $('#target-shareholderareas-chart').highcharts({\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false\n },\n title: {\n text: ''\n },\n credits: {\n text: 'Source Cision/Euroclear'\n },\n tooltip: {\n pointFormat: '{series.name}: {point.percentage:.1f}%'\n },\n plotOptions: {\n pie: {\n allowPointSelect: true,\n cursor: 'pointer',\n dataLabels: {\n enabled: true,\n color: '#000000',\n connectorColor: '#000000',\n format: '{point.name}: {point.percentage:.1f} %'\n }\n }\n },\n series: [{\n type: 'pie',\n name: rawData.Name,\n data: dataArray\n }]\n });\n\n\n };\n\n var renderLargestGroupedShareholders = function (options) {\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ownership access key.\");\n return;\n }\n var url = generateUrl('Ownership/' + accessKey + '/LargestGroupedShareHolders');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (rawData) {\n rawData.TotalAmount = rawData.ShareHolders.length;\n rawData.DateFormatted = moment(rawData.Date).format('ll');\n rawData.AmountInList = settings.LargestListShowCount;\n\n renderLargestGroupedShareholdersChart(options, rawData);\n\n var compositeModel = $.extend(rawData, texts, settings);\n console.log(compositeModel);\n var renderedHtml = $(\"#tplLargestShareholdersListing\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#target-largestgroupedshareholders\").html(renderedHtml);\n })\n .fail(function() {\n console.log('Could not retrieve data');\n });\n };\n\n var renderLargestGroupedShareholdersChart = function (options, rawData) {\n // Build Data Series\n var dataArray = [],\n othersPercent = 100;\n // options.LargestPieShowCount = 10;\n $.each(rawData.ShareHolders, function (ix, objShareHolder) {\n if (objShareHolder.Number <= settings.LargestPieShowCount) {\n othersPercent -= objShareHolder.OwnershipPercent;\n\n dataArray.push({\n name: objShareHolder.Name,\n y: objShareHolder.OwnershipPercent\n });\n }\n });\n\n if (othersPercent > 0) {\n dataArray.push({\n name: 'Others',\n y: othersPercent,\n sliced: true\n });\n }\n\n $('#container-largest-grouped-shareholders-chart').highcharts({\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false\n },\n title: {\n text: ''\n },\n tooltip: {\n pointFormat: '{series.name}: {point.percentage:.1f}%'\n },\n credits: {\n text: 'Source Cision/Euroclear'\n },\n plotOptions: {\n pie: {\n allowPointSelect: true,\n cursor: 'pointer',\n dataLabels: {\n enabled: true,\n color: '#000000',\n connectorColor: '#000000',\n format: '{point.name}: {point.percentage:.1f} %'\n }\n }\n },\n series: [{\n type: 'pie',\n name: rawData.Name,\n data: dataArray\n }]\n });\n };\n return {\n renderLargestShareholders: renderLargestShareholders,\n renderNewShareholders: renderNewShareholders,\n renderShareSizeGroups: renderShareSizeGroups,\n renderShareHolderAreas: renderShareHolderAreas,\n renderShareHolderAreasChart: renderShareHolderAreasChart,\n renderLargestGroupedShareholders: renderLargestGroupedShareholders\n };\n\n}(jQuery);","// This JavaScript file is created by Cision for our printed material module.\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.printedMaterial = function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = (cision.websolution.settings.printedMaterial || {}).accessKey,\n texts = cision.websolution.texts[settings.uiLanguage],\n itemsList = [],\n categories = [],\n firstRunList = true,\n firstRunArchiveList = true;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var renderItemList = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!accessKey) {\n console.log(\"You must provide your printed material access key.\");\n return;\n }\n\n var d = $.Deferred();\n var url = generateUrl('PrintedMaterial/' + accessKey);\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCode: settings.uiLanguage,\n pageIndex: settings.PageIndex,\n pageSize: settings.PageSize || 50,\n startDate: settings.startDate,\n endDate: settings.endDate,\n category: settings.printedMaterialCategory\n }\n })\n .done(function (rawData) {\n $.each(rawData.Items, function (idx, objItem) {\n objItem.PrintTimeFormatted = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objItem.PrintTimeFormattedDate = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objItem.PrintTimeFormattedTime = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.timeFormat);\n objItem.MaxOrder = settings.maxAmountOfItems;\n\n if (objItem.LogoUrl > 0) {\n objItem.HasImage = true;\n } else {\n objItem.HasImage = false;\n }\n\n objItem.PublishTimeFormatted = moment(objItem.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objItem.ArchiveTimeFormatted = moment(objItem.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n\n if (firstRunList && objItem.CategoryName) {\n categories.push(objItem.CategoryName);\n }\n\n });\n\n categories = _.uniq(categories);\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var tplElement = '#' + (settings.printedMaterialTemplateElement || 'tplPrintedMaterialItemListing');\n var renderedHtml = $(tplElement).render(compositeModel, cision.websolution.formatHelpers);\n\n if (firstRunList) {\n texts.Categories = categories;\n var renderedCategories = $(\"#tplCategories\").render(texts);\n $(\"#target-categories-2\").html(renderedCategories);\n\n }\n\n var tplTarget = '#' + (settings.printedMaterialOutputTargetElement || 'itemListTarget');\n $(tplTarget).html(renderedHtml);\n\n firstRunList = false;\n\n d.resolve();\n })\n .fail(function () {\n console.log('Could not retrieve active printed material data');\n d.reject();\n });\n return d.promise();\n };\n\n var renderArchiveList = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!accessKey) {\n console.log(\"You must provide your printed material access key.\");\n return;\n }\n var url = generateUrl('PrintedMaterial/' + accessKey + '/Archive');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n data: {\n languageCode: settings.uiLanguage,\n pageIndex: settings.PageIndex,\n pageSize: settings.PageSize || 50,\n startDate: settings.startDate,\n endDate: settings.endDate,\n category: settings.printedMaterialCategory\n }\n })\n .done(function (rawData) {\n $.each(rawData.Items, function (idx, objItem) {\n objItem.PrintTimeFormatted = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objItem.PrintTimeFormattedDate = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.dateFormat);\n objItem.PrintTimeFormattedTime = moment(objItem.PrintTime).locale(settings.uiLanguage).format(settings.timeFormat);\n\n objItem.PublishTimeFormatted = moment(objItem.PublishTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n objItem.ArchiveTimeFormatted = moment(objItem.ArchiveTime).locale(settings.uiLanguage).format(settings.dateFormatNews);\n\n if (firstRunArchiveList && objItem.Categories) {\n $.each(objItem.Categories, function (idx2, objCategory) {\n categories.push(objCategory);\n });\n }\n itemsList[objItem.ItemGuid] = objItem;\n });\n\n categories = _.uniq(categories);\n\n var compositeModel = $.extend(rawData, texts, settings);\n\n var tplElement = '#' + (settings.printedMaterialTemplateElement || 'tplPrintedMaterialArchiveListing');\n var renderedHtml = $(tplElement).render(compositeModel, cision.websolution.formatHelpers);\n\n if (firstRunArchiveList) {\n var renderedCategories = $(\"#tplCategories\").render({ categories: categories });\n $(\"#target-categories\").html(renderedCategories);\n }\n\n var tplTarget = '#' + (settings.printedMaterialOutputTargetElement || 'archiveItemListTarget');\n $(tplTarget).html(renderedHtml);\n\n firstRunArchiveList = false;\n\n })\n .fail(function () {\n console.log('Could not retrieve archived printed material data');\n });\n };\n\n var getItemByGuid = function (options) {\n\n var itemGuid = options.itemGuid;\n if (options) {\n $.extend(settings, options);\n }\n if (settings.accessKey) {\n accessKey = settings.accessKey;\n }\n if (!itemGuid) {\n console.log(\"You must provide an item guid.\");\n return;\n }\n var url = generateUrl('PrintedMaterial/' + accessKey + '/ItemDetail?itemguid=' + itemGuid);\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (objResponse) {\n objResponse.PrintDateFormatted = moment(objResponse.PrintDate).locale(settings.uiLanguage).format(settings.dateFormatPrinted);\n\n var compositeModel = $.extend({}, objResponse, texts, settings),\n renderedHtml = $(\"#tplItemDetail\").render(compositeModel, cision.websolution.formatHelpers);\n\n $(\"#target-item-detail\").html(renderedHtml);\n\n })\n .fail(function () {\n console.log('Could not retrieve detailed data about the item');\n });\n };\n\n return {\n getItemByGuid: getItemByGuid,\n renderItemList: renderItemList,\n renderArchiveList: renderArchiveList\n };\n}(jQuery);\n","// This JavaScript file is created by Cision for our sharecalculator module.\n// This should be combined with sharecalculator.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.sharecalculator = !cision.websolution.settings.sharecalculator ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general);\n var accessKey = cision.websolution.settings.sharecalculator.accessKey;\n var texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n function GetDatePickerSettings() {\n var dateSettings = new Object();\n\n dateSettings.Years = [];\n dateSettings.Months = [];\n dateSettings.Days = [];\n\n for (var i = settings.startDateYear; i <= moment().year() ; i++) {\n dateSettings.Years.push(i);\n }\n\n for (var i = 1; i <= 12 ; i++) {\n dateSettings.Months.push(leftPad(i, 2));\n }\n\n for (var i = 1; i <= 31 ; i++) {\n dateSettings.Days.push(leftPad(i, 2));\n }\n\n dateSettings.StartDateSelectedYear = moment().year() - 1;\n dateSettings.EndDateSelectedYear = moment().year();\n\n dateSettings.SelectedMonth = leftPad(moment().month() + 1, 2);\n dateSettings.SelectedDay = leftPad(moment().date(), 2);\n\n return dateSettings;\n }\n\n var renderCalculator = function (options) {\n var compositeModel = $.extend({ Instruments: [] }, texts, settings, GetDatePickerSettings());\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your sharecalculator access key.\");\n return;\n }\n\n var url = generateUrl('ShareCalculator/' + accessKey);\n\n //we use it to just get ticker symbols aka shareType\n $.ajax({\n url: url,\n type: \"GET\",\n dataType: \"json\",\n data: {\n startDate: moment().format('YYYY-MM-DD'),\n endDate: moment().format('YYYY-MM-DD'),\n tickerSymbol: \"\",\n quoteType: settings.typeOfCalclator\n }\n }).done(function (calculatorData) {\n if (calculatorData.Instruments.length > 0) {\n RenderShareType(compositeModel, calculatorData);\n }\n else {\n console.log(\"You need to have instruments on your feed.\");\n return;\n }\n });\n\n var renderedHtml = $(\"#template-sharecalclulator\").render(compositeModel);\n $('#sharecalclulator-container').html(renderedHtml);\n\n InitSettinsChanged();\n };\n\n function InitSettinsChanged() {\n $(\"#tbNumberOfShares\").on('change', function () {\n if (this.value == \"\") {\n $(\"#tbAmount\").prop(\"disabled\", false);\n }\n else {\n $(\"#tbAmount\").prop(\"disabled\", true);\n }\n });\n\n $(\"#tbAmount\").on('change', function () {\n if (this.value == \"\") {\n $(\"#tbNumberOfShares\").prop(\"disabled\", false);\n }\n else {\n $(\"#tbNumberOfShares\").prop(\"disabled\", true);\n }\n });\n }\n\n function RenderShareType(compositeModel, calculatorData) {\n calculatorData.Instruments = calculatorData.Instruments.sort(function (a, b) {\n return a.TickerSymbol > b.TickerSymbol;\n });\n\n calculatorData.Instruments[0].Checked = true;\n compositeModel.Instruments = calculatorData.Instruments;\n\n var tickerTypeHtml = $(\"#template-sharecalclulator-sharetype\").render(compositeModel, cision.websolution.formatHelpers);\n $(\"#sharecalclulator-sharetype-container\").html(tickerTypeHtml);\n }\n\n var compute = function () {\n var resultsModel = $.extend(texts, settings);\n var historyModel = $.extend(texts, settings);\n\n //get the input values\n var shareType = $(\"#sharecalclulator-sharetype-container input[type='radio']:checked\").val();\n var startDate = $(\"#shareCalculatorStartYear\").val() + \"-\" + $(\"#shareCalculatorStartMonth\").val() + \"-\" + $(\"#shareCalculatorStartDay\").val();\n var endDate = $(\"#shareCalculatorEndYear\").val() + \"-\" + $(\"#shareCalculatorEndMonth\").val() + \"-\" + $(\"#shareCalculatorEndDay\").val();\n var numberOfShares = $(\"#tbNumberOfShares\").val();\n var holdingValue = $(\"#tbAmount\").val();\n\n if (!accessKey) {\n console.log(\"You must provide your sharecalculator access key.\");\n return;\n }\n\n var url = generateUrl('ShareCalculator/' + accessKey);\n\n $.ajax({\n url: url,\n type: \"GET\",\n dataType: \"json\",\n data: {\n startDate: startDate,\n endDate: endDate,\n tickerSymbol: shareType,\n quoteType: settings.typeOfCalclator\n }\n }).done(function (calculatorData) {\n //get first bcasue we filtered by ticker symbol in backend\n var instrument = calculatorData.Instruments[0];\n\n //show results\n if (numberOfShares == \"\" && holdingValue == \"\") {\n resultsModel.RenderResults = false;\n }\n else {\n resultsModel.Results = GetResults(resultsModel, instrument, startDate, endDate, numberOfShares, holdingValue);\n }\n\n var renderedHtml = $(\"#template-sharecalclulator-results\").render(resultsModel, cision.websolution.formatHelpers);\n $('#sharecalclulator-results-container').html(renderedHtml);\n\n //show history quetes\n var history = GetShareHistory(instrument.Quotes);\n\n historyModel.Quotes = history.Quotes;\n historyModel.PartOfDayHelp = history.PartOfDayHelp;\n\n var renderedHtml = $(\"#template-sharecalclulator-history\").render(historyModel, cision.websolution.formatHelpers);\n $('#sharecalclulator-history-container').html(renderedHtml);\n });\n };\n\n function GetSelectedIntrument(instruments, shareType) {\n for (var i = 0; i < instruments.length; i++) {\n if (instruments[i].TickerSymbol == shareType) {\n return instruments[i];\n }\n }\n }\n\n function GetResults(resultsModel, instrument, startDate, endDate, numberOfShares, holdingValue) {\n var results = new Object();\n\n if (instrument.StartDateQuote == null || instrument.EndDateQuote == null) {\n resultsModel.RenderResults = false;\n }\n\n try {\n results.Currency = instrument.TradeCurrency;\n results.StartDateQuote = instrument.StartDateQuote;\n results.EndDateQuote = instrument.EndDateQuote;\n\n results.StartDateFormated = moment(instrument.StartDateQuote.QuoteTime).locale(settings.uiLanguage).format(settings.dateFormat);\n results.EndDateFormated = moment(instrument.EndDateQuote.QuoteTime).locale(settings.uiLanguage).format(settings.dateFormat);\n\n if (numberOfShares == \"\") {\n results.NumberOfShares = parseInt(parseFloat(holdingValue) / results.StartDateQuote.Price);\n }\n else {\n results.NumberOfShares = numberOfShares;\n }\n\n results.StartValue = results.NumberOfShares * results.StartDateQuote.Price;\n results.StartPrice = results.StartDateQuote.Price;\n\n results.EndValue = results.NumberOfShares * results.EndDateQuote.Price;\n results.EndPrice = results.EndDateQuote.Price;\n results.Change = results.EndValue - results.StartValue;\n results.ChangePercent = (results.Change / results.StartValue) * 100;\n\n //Annualized Rate Formula: AP = ((P + G) / P) ^ (365 / n) - 1 (*100 %)\n var base = ((results.StartValue + results.Change) / results.StartValue);\n //days difference\n var diffDays = moment(endDate).diff(moment(startDate), 'days');\n\n results.ChangeAnnualizedPercent = (Math.pow(base, (365 / diffDays)) - 1) * 100;\n resultsModel.RenderResults = true;\n\n return results;\n\n } catch (e) {\n resultsModel.RenderResults = false;\n }\n }\n\n function GetShareHistory(quotes) {\n var history = new Object();\n\n history.PartOfDayHelp = false;\n quotes = quotes.reverse();\n\n //format time\n for (var i = 0; i < quotes.length; i++) {\n quotes[i].QuoteTimeFormated = moment(quotes[i].QuoteTime).locale(settings.uiLanguage).format(settings.dateFormat);\n if (quotes[i].QuoteType == \"PartOfDay\") {\n history.PartOfDayHelp = true;\n }\n }\n\n history.Quotes = quotes;\n return history;\n }\n\n function leftPad(number, targetLength) {\n var output = number + '';\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return output;\n }\n\n function exportTableToCSV(filename) {\n var $table = $(\"#initial-investment\");\n var $rows = $table.find('tr:has(td)');\n\n var tmpColDelim = String.fromCharCode(11);\n var tmpRowDelim = String.fromCharCode(0);\n\n // actual delimiter characters for CSV format\n var colDelim = ';';\n var rowDelim = '\\r\\n';\n\n // Grab text from results table into CSV formatted string\n var csv = '';\n if ($rows.length > 0) {\n csv += $(\"#initial-investment-header\").text() + \" \" + $(\"#initial-investment-type\").text() + rowDelim;\n csv += formatRows($rows.map(grabRow));\n csv += rowDelim + rowDelim;\n }\n\n var $table = $(\"#end-value\");\n var $rows = $table.find('tr:has(td)');\n if ($rows.length > 0) {\n csv += $(\"#end-value-header\").text() + \" \" + $(\"#end-value-type\").text() + rowDelim;\n csv += formatRows($rows.map(grabRow));\n csv += rowDelim + rowDelim;\n }\n\n $table = $(\"#shareCalculatorHistory\");\n $headers = $table.find('tr:has(th)')\n $rows = $table.find('tr:has(td)')\n\n // Grab text from history table into CSV formatted string\n csv += formatRows($headers.map(grabRow));\n csv += rowDelim;\n csv += formatRows($rows.map(grabRow));\n\n // Data URI\n var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);\n\n // For IE (tested 10+)\n if (window.navigator.msSaveOrOpenBlob) {\n var blob = new Blob([decodeURIComponent(encodeURI(csv))], {\n type: \"text/csv;charset=utf-8;\"\n });\n navigator.msSaveBlob(blob, filename);\n } else {\n $(\"#csvExport\").attr({ 'download': filename, 'href': csvData });\n $(\"#csvExport\")[0].trigger('click');\n }\n\n // Format the output so it has the appropriate delimiters\n function formatRows(rows) {\n return rows.get().join(tmpRowDelim)\n .split(tmpRowDelim).join(rowDelim)\n .split(tmpColDelim).join(colDelim);\n }\n // Grab and format a row from the table\n function grabRow(i, row) {\n\n var $row = $(row);\n //for some reason $cols = $row.find('td') || $row.find('th') won't work...\n var $cols = $row.find('td');\n if (!$cols.length) $cols = $row.find('th');\n\n return $cols.map(grabCol)\n .get().join(tmpColDelim);\n }\n // Grab and format a column from the table\n function grabCol(j, col) {\n var $col = $(col),\n $text = $col.text();\n\n return $text.replace('\"', '\"\"'); // escape double quotes\n }\n }\n\n function exportCsv() {\n var shareType = $(\"#sharecalclulator-sharetype-container input[type='radio']:checked\").val();\n var startDate = $(\"#shareCalculatorStartYear\").val() + $(\"#shareCalculatorStartMonth\").val() + $(\"#shareCalculatorStartDay\").val();\n var endDate = $(\"#shareCalculatorEndYear\").val() + $(\"#shareCalculatorEndMonth\").val() + $(\"#shareCalculatorEndDay\").val();\n\n exportTableToCSV(\"ShareCalculator-\" + shareType + \"-\" + startDate + \"-\" + endDate + \"-.csv\");\n }\n\n return {\n render: renderCalculator,\n compute: compute,\n exportCsv: exportCsv\n };\n}(jQuery);","// This JavaScript file is created by Cision for our sharegraph module.\n// This should be combined with sharegraph.html\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.sharegraph = !cision.websolution.settings.sharegraph ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.sharegraph.accessKey;\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n\n var buildChart = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your sharegraph access key.\");\n return;\n }\n\n var url = generateUrl('Share/' + accessKey);\n\n $.ajax({\n url: url,\n type: \"GET\",\n dataType: \"json\",\n data: {\n startDate: settings.dateToStartFrom,\n endDate: settings.dateToEnd,\n quoteType: settings.typeOfChart\n }\n })\n .done(function (shareData) {\n\n var seriesList = [],\n seriesVolumeList = [],\n isEndOfDay = (settings.typeOfChart == 'EndOfDay');\n\n for (var ix = 0; ix < shareData.Instruments.length; ix++) {\n var objInstrument = shareData.Instruments[ix],\n isVisible = false,\n isMain = false;\n\n objInstrument.MarketPlace = objInstrument.MarketPlace.trim();\n\n // Check if this is a main instrument\n $.each(settings.mainInstruments, function (qix, objMainInstrument) {\n if (objInstrument.TickerSymbol === objMainInstrument.symbol && objInstrument.MarketPlace === objMainInstrument.marketPlace) {\n isVisible = true;\n isMain = true;\n if (objMainInstrument.isHidden === true) {\n isVisible = false;\n }\n }\n });\n\n // This used in finding which series we are dealing with (in show/hide checkboxes)\n objInstrument.UniqueKey = objInstrument.TickerSymbol + objInstrument.MarketPlace + objInstrument.TradeCurrency;\n\n var points = [],\n pointsEffectiveYield = [],\n pointsVolume = [];\n\n $.each(objInstrument.Quotes, function (qix, objQuote) {\n if (settings.typeOfChart == 'EndOfDay') {\n /* Remove Time*/\n objQuote.QuoteTime = moment(objQuote.QuoteTime).format('YYYY-MM-DD') + 'T00:00:00Z';\n } else {\n /* Remove Seconds */\n objQuote.QuoteTime = moment(objQuote.QuoteTime).format('YYYY-MM-DD[T]HH:mm') + ':00Z';\n }\n objQuote.DeltaPercentage = (objQuote.DeltaPercentage * 100).toFixed(2);\n var patt = new RegExp(\"-\");\n var res = patt.test(objQuote.DeltaPercentage);\n if (!res) {\n objQuote.DeltaPercentage = '+' + objQuote.DeltaPercentage;\n }\n var quoteUnixTime = moment(objQuote.QuoteTime).format('X') * 1000;\n points.push({\n x: moment(objQuote.QuoteTime).format('X') * 1000,\n y: objQuote.Price,\n extras: objQuote.DeltaPercentage\n });\n\n if (isMain) {\n pointsVolume.push({\n x: quoteUnixTime,\n y: objQuote.Quantity\n });\n }\n });\n\n seriesList.push({\n id: objInstrument.UniqueKey,\n name: objInstrument.TickerSymbol,\n data: points,\n visible: isVisible,\n color: getPreferredColor(objInstrument.UniqueKey),\n tooltip: {\n valueDecimals: 2,\n pointFormat: '\\u25CF {series.name}: ' + objInstrument.TradeCurrency + ' {point.y} ({point.extras}%)
'\n },\n\n // Extra data\n objOriginal: objInstrument\n });\n\n // Volume\n if (settings.showVolume && isMain && pointsVolume && pointsVolume.length > 0) {\n seriesVolumeList.push({\n id: objInstrument.UniqueKey + 'VOLUME',\n name: objInstrument.TickerSymbol + ' [VOLUME]',\n data: pointsVolume,\n visible: isVisible,\n color: getPreferredColor(objInstrument.UniqueKey + 'VOLUME'),\n type: 'column',\n yAxis: 1,\n tooltip: {\n valueDecimals: 2\n },\n\n // Extra data\n objOriginal: objInstrument\n });\n }\n\n if (objInstrument.EffectiveYields && objInstrument.EffectiveYields.length > 0) {\n // Process Effective Yield\n var objInstrumentEffectiveYield = {\n TickerName: objInstrument.TickerName + '/' + objInstrument.MarketPlace + ' [TR]',\n TickerSymbol: objInstrument.TickerSymbol,\n MarketPlace: objInstrument.MarketPlace,\n TradeCurrency: objInstrument.TradeCurrency,\n TickerType: 'EFFECTIVEYIELD',\n UniqueKey: objInstrument.UniqueKey + settings.effectiveYieldSuffix,\n Quotes: objInstrument.EffectiveYields\n };\n\n pointsEffectiveYield = [];\n var objEffectiveYieldFirst = objInstrument.EffectiveYields[0];\n $.each(objInstrument.EffectiveYields, function (eyix, objEffectiveYield) {\n pointsEffectiveYield.push({\n x: moment(objEffectiveYield.ObsDate).format('X') * 1000,\n x1: objEffectiveYield.ObsDate,\n y: objEffectiveYield.LastAdjReInv * objEffectiveYieldFirst.LastAdj / objEffectiveYieldFirst.LastAdjReInv\n });\n });\n\n seriesList.push({\n id: objInstrumentEffectiveYield.UniqueKey,\n name: objInstrumentEffectiveYield.TickerName,\n data: pointsEffectiveYield,\n visible: false,\n color: getPreferredColor(objInstrumentEffectiveYield.UniqueKey),\n tooltip: {\n valueDecimals: 2\n },\n zIndex: -1,\n\n // Extra data\n objOriginal: objInstrumentEffectiveYield\n });\n }\n }\n\n seriesList = seriesList.concat(seriesVolumeList);\n\n var objTitle = {\n text: settings.chartTitle\n };\n\n var objPlotOptions = {\n series: {\n turboThreshold: 100000,\n compare: settings.chartComparison,\n lineWidth: settings.lineWidth\n\n }\n };\n\n var objExporting = {\n enabled: false,\n sourceHeight: $(\"#container\").height(),\n sourceWidth: $(\"#container\").width()\n };\n\n var objScrollbar = {\n enabled: false,\n barBackgroundColor: settings.barBackgroundColor,\n barBorderRadius: 7,\n barBorderWidth: 0,\n buttonBackgroundColor: settings.buttonBackgroundColor,\n buttonBorderWidth: 0,\n buttonArrowColor: settings.buttonArrowColor,\n buttonBorderRadius: 7,\n rifleColor: settings.rifleColor,\n trackBackgroundColor: settings.trackBackgroundColor,\n trackBorderWidth: 1,\n trackBorderColor: settings.trackBorderColor,\n trackBorderRadius: 7\n };\n var objLegend = {\n enabled: false,\n shadow: true,\n align: 'right',\n backgroundColor: 'white',\n borderColor: 'black',\n borderWidth: 2,\n layout: 'vertical',\n verticalAlign: 'top',\n x: 0,\n y: 100\n };\n\n //\n var objYAxis = {\n minPadding: 0.2,\n maxPadding: 0.2,\n opposite: false,\n offset: -38,\n title: {\n text: '',\n margin: 8\n }\n };\n\n if (settings.showVolume) {\n objYAxis = [{\n height: settings.yAxisSize.share.height +40,\n width: settings.yAxisSize.share.width,\n offset: -38,\n opposite: false\n }, {\n top: settings.yAxisSize.volume.top,\n height: settings.yAxisSize.volume.height,\n width: settings.yAxisSize.volume.width,\n offset: -2,\n opposite: false\n }];\n }\n\n var objRangeSelector = {\n enabled: false,\n buttons: [],\n inputStyle: {\n color: settings.rangeSelectorInputStyleColor\n },\n labelStyle: {\n color: settings.rangeSelectorLabelStyleColor\n },\n inputEnabled: true,\n inputDateFormat: \"%Y-%m-%d\",\n inputEditDateFormat: \"%Y-%m-%d\",\n inputDateParser: function (value) {\n value = value.split('-');\n return Date.UTC(\n parseInt(value[0]),\n parseInt(value[1]) - 1,\n parseInt(value[2])\n );\n }\n };\n\n Highcharts.setOptions({\n lang: {\n rangeSelectorZoom: '',\n contextButtonTitle: cision.websolution.texts[settings.uiLanguage].TextDownload || 'Download',\n months: cision.websolution.texts[settings.uiLanguage].calendarTexts['months'],\n weekdays: cision.websolution.texts[settings.uiLanguage].calendarTexts['weekdays'],\n shortMonths: cision.websolution.texts[settings.uiLanguage].calendarTexts['shortMonths'],\n rangeSelectorFrom: cision.websolution.texts[settings.uiLanguage].calendarTexts['rangeSelectorFrom'],\n rangeSelectorTo: cision.websolution.texts[settings.uiLanguage].calendarTexts['rangeSelectorTo'],\n downloadJPEG: cision.websolution.texts[settings.uiLanguage].calendarTexts['downloadJPEG'],\n downloadPDF: cision.websolution.texts[settings.uiLanguage].calendarTexts['downloadPDF'],\n downloadPNG: cision.websolution.texts[settings.uiLanguage].calendarTexts['downloadPNG'],\n downloadSVG: cision.websolution.texts[settings.uiLanguage].calendarTexts['downloadSVG'],\n printChart: cision.websolution.texts[settings.uiLanguage].calendarTexts['printChart']\n }\n });\n\n var objChart = new Highcharts.StockChart({\n chart: {\n renderTo: settings.chartContainerId,\n defaultSeriesType: settings.defaultSeriesType,\n plotBackgroundColor: settings.plotBackgroundColor,\n plotBorderWidth: settings.plotBorderWidth,\n plotBackgroundImage: settings.backgroundImage\n },\n\n title: objTitle,\n xAxis: {\n type: 'datetime',\n gridLineWidth: settings.gridLineWidth\n },\n yAxis: objYAxis,\n plotOptions: objPlotOptions,\n rangeSelector: objRangeSelector,\n scrollbar: objScrollbar,\n legend: objLegend,\n\n exporting: objExporting,\n navigator: {\n maskFill: 'rgba(50, 50, 50, 0.2)',\n enabled: settings.isMiniShareGraph ? false : settings.enableNavigator,\n series: {\n color: settings.navigatorColor,\n lineColor: settings.navigatorLineColor\n }\n },\n credits: {\n //'Latest change: '\n text: netr.string.translate('cision.dataDelayed')\n // text: netr.string.translate('cision.latestChange') + ': ' + shareData.LatestChange + ' Source Cision/Millistream'\n },\n\n series: seriesList\n });\n\n if (settings.enableReleasesOnIntraday == true || settings.typeOfChart == 'EndOfDay') {\n $.ajax({\n type: \"GET\",\n url: url + '/Releases',\n dataType: \"json\",\n timeout: 10000,\n\n data: {\n startDate: settings.dateToStartFrom\n }\n })\n .done(function (releaseData) {\n showReleasesOnChart(objChart, releaseData.Releases);\n });\n }\n\n if (options.success)\n options.success();\n });\n };\n\n\n function showReleasesOnChart(objChart, releasePackageList) {\n $.each(releasePackageList, function (idxIns, objReleasePackage) {\n\n var releaseTitle = 'PRM';\n var seriesId = '_____';\n var seriesShape = 'squarepin';\n var isVisible = false;\n\n\n\n // This used in finding which series we are dealing with (in show/hide checkboxes)\n objReleasePackage.UniqueKey = objReleasePackage.Name;\n\n // Find out which series to attach it onto\n $.each(settings.releasesOnSeries, function (idx, objSetting) {\n if (objReleasePackage.Name == objSetting.packageName) {\n // Found\n seriesId = objSetting.symbol + objSetting.marketPlace + objSetting.currency;\n seriesShape = objSetting.shape;\n releaseTitle = objSetting.title;\n isVisible = (objSetting.visible ? true : false);\n }\n });\n\n\n var seriesData = [];\n $.each(objReleasePackage.Releases, function (idxQuote, objRelease) {\n objRelease.PublishDateFormatted = moment(objRelease.PublishDate).locale(settings.uiLanguage).format();\n\n seriesData.push({\n x: moment(objRelease.PublishDate).format('X') * 1000,\n title: releaseTitle,\n text: objRelease.Title,\n Release: objRelease\n });\n });\n seriesData = seriesData.sort(function (a, b) {\n var res = a.x - b.x;\n if (res == 0)\n return res;\n return res < 0 ? -1 : 1;\n });\n\n // Add Releases to Graph\n var objChartSeries = {\n id: objReleasePackage.Name,\n type: 'flags',\n onSeries: seriesId,\n shape: seriesShape,\n visible: isVisible,\n height: settings.shapeHeight,\n width: settings.shapeWidth,\n fillColor: settings.shapeColor,\n color: settings.shapeOutlineColor,\n style: { color: settings.shapeTextColor },\n name: objReleasePackage.Name,\n data: seriesData,\n\n // Extra data\n objOriginal: objReleasePackage\n };\n\n\n if (settings.showReleaseLink) {\n var releaseUrl = '{point.Release.CwUrl}';\n\n if (settings.releaseLinkFormatter && settings.releaseLinkFormatter !== 'CISIONWIRE') {\n releaseUrl = settings.releaseLinkFormatter + '{point.Release.Id}';\n }\n\n objChartSeries.tooltip = {\n headerFormat: '
{point.key}

',\n pointFormat: '{point.Release.Title}'\n };\n }\n\n objChart.addSeries(objChartSeries);\n });\n }\n\n var setInstrumentVisibility = function (uniqueKey, makeVisible) {\n\n var objChart = $('#' + settings.chartContainerId).highcharts();\n\n $.each(objChart.series, function (idx, objSerie) {\n\n var objCurrentInstrument = objSerie.userOptions.objOriginal; /* the original object is attached above */\n\n if (objCurrentInstrument && objCurrentInstrument.UniqueKey == uniqueKey) {\n objSerie.setVisible(makeVisible);\n }\n });\n };\n\n var getPreferredColor = function (uniqueKey) {\n var color = null;\n try {\n $.each(settings.instrumentColors, function (idx, objInstrument) {\n\n // Is inst listed\n if (objInstrument.uniqueKey == uniqueKey) {\n color = objInstrument.preferredColor;\n }\n });\n } catch (e) {\n\n }\n\n return color;\n };\n\n return {\n render: buildChart,\n setVisibility: setInstrumentVisibility\n };\n}(jQuery);","// This JavaScript file is created by Cision for our ticker module.\n// Version 1.1\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.tickers = !cision.websolution.settings.ticker ? {} : function ($) {\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.ticker.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n var render = function (options) {\n var sharePerformanceData = null,\n tickerData = null;\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ticker access key.\");\n return;\n }\n var urlTicker = generateUrl('Ticker/' + accessKey);\n\n $.ajax({\n url: urlTicker,\n type: \"GET\",\n dataType: \"json\"\n })\n .done(function(dataObj) {\n tickerData = dataObj;\n if (sharePerformanceData) {\n renderResult(tickerData, sharePerformanceData, texts, settings);\n }\n })\n .fail(function() {\n console.log('Could not retrieve ticker data');\n });\n var urlPerformance = generateUrl('Ticker/' + accessKey + '/Performance');\n\n $.ajax({\n url: urlPerformance,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (dataObj) {\n sharePerformanceData = dataObj;\n if (tickerData) {\n renderResult(tickerData, sharePerformanceData, texts, settings);\n }\n });\n\n };\n\n function renderResult(tickerData, sharePerformanceData, texts, options) {\n\n if (options) {\n $.extend(settings, options);\n }\n\n var compositeModel = $.extend({ tickers: [] }, texts, settings);\n\n var sortBySymbol = function (s) {\n return _.sortBy(s, \"TickerSymbol\");\n }\n\n var sortedTickerData = sortBySymbol(tickerData.Instruments);\n for (var instrumentIx = 0; instrumentIx < sortedTickerData.length; instrumentIx++) {\n var instrument = sortedTickerData[instrumentIx],\n lastDate = \"2010-02-01T00:00:00.000000Z\",\n ticker;\n\n for (var i = 0; i < instrument.Quotes.length; i++) {\n var quote = instrument.Quotes[0];\n if (quote.QuoteTime >= lastDate) {\n ticker = quote;\n }\n lastDate = quote.QuoteTime;\n }\n\n var model = $.extend({}, ticker, texts);\n model.TickerName = instrument.TickerName;\n model.TickerSymbol = instrument.TickerSymbol;\n model.TradeCurrency = instrument.TradeCurrency;\n if (model.DeltaPercentage) {\n model.DeltaPercentage = model.DeltaPercentage * 100;\n }\n\n model.Time = moment(model.QuoteTime).locale(settings.uiLanguage).format('HH:mm');\n model.Date = moment(model.QuoteTime).locale(settings.uiLanguage).format('DD MMM YYYY');\n\n var p = sharePerformanceData.Instruments[instrumentIx],\n useKiloFormat = false, //om tusen\n useMegaFormat = true, //om miljon\n currency = settings.valueSuffix,\n isPrefixedCurrency = false, //före el efter\n kiloPrefix = \" k\", //prefix, sätts av user\n megaPrefix = \" M\"; //prefix, sätts av user\n\n var lastPrice = p.LastPrice || p.ClosePrice1D || -1;\n var numberOfShares = p.NumberOfShares || -1;\n\n var marketCap = numberOfShares * lastPrice;\n\n model.mcapTotalRaw = Math.round(marketCap);\n model.mcapTotalKilo = Math.round(marketCap / 1000);\n model.mcapTotalMega = Math.round(marketCap / 1000000);\n\n if (useKiloFormat) {\n model.mcapTotal = model.mcapTotalKilo + kiloPrefix;\n } else if (useMegaFormat) {\n model.mcapTotal = model.mcapTotalMega + megaPrefix;\n } else {\n model.mcapTotal = model.mcapTotalRaw + megaPrefix;\n }\n\n if (isPrefixedCurrency) {\n model.mcapTotal = currency + model.mcapTotal;\n } else {\n model.mcapTotal = model.mcapTotal + currency;\n }\n\n // Instead of returning a NaN, turn this into an empty string if needed\n model.mcapTotal = model.mcapTotal || '';\n\n if (model.Delta > 0) {\n model.ArrowImageurl = settings.tickerImagePlus;\n } else if (model.Delta < 0) {\n model.ArrowImageurl = settings.tickerImageMinus;\n } else {\n model.ArrowImageurl = settings.tickerImageUnchanged;\n }\n\n compositeModel.tickers.push(model);\n }\n\n var $targetTicker = $(\"#target-ticker\");\n var renderedHtml = $(\"#templateTicker\").render(compositeModel, cision.websolution.formatHelpers);\n $targetTicker.html(renderedHtml);\n documentReadyFunctions($targetTicker);\n }\n\n return {\n render: render\n };\n} (jQuery);","// This JavaScript file is created by Cision for our ticker performance module.\n// This is the first version of this file so far.\n// This should be combined with eighter of the ticker html files\n\nvar cision = cision || {};\ncision.websolution = cision.websolution || {};\ncision.websolution.texts = cision.websolution.texts || {};\ncision.websolution.settings = cision.websolution.settings || {};\ncision.websolution.formatHelpers = cision.websolution.formatHelpers || {};\n\ncision.websolution.performance = !cision.websolution.settings.ticker ? {} : function ($) {\n\n var settings = $.extend({}, cision.websolution.settings.general),\n accessKey = cision.websolution.settings.ticker.accessKey,\n texts = cision.websolution.texts[settings.uiLanguage];\n\n function generateUrl(path) {\n var url = settings.useProxyHandler\n ? settings.proxyHandler + '?url=' + settings.serviceEndpoint + path\n : settings.serviceEndpoint + path;\n\n return url;\n }\n var renderTrades = function (options) {\n\n if (options) {\n $.extend(settings, options);\n }\n if (!accessKey) {\n console.log(\"You must provide your ticker access key.\");\n return;\n }\n var url = generateUrl('Ticker/' + accessKey + '/Performance');\n\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json'\n })\n .done(function (rawData) {\n var rawInstruments = rawData.Instruments;\n var instruments = $.extend(rawInstruments, texts);\n var sortBySymbol = function (s) {\n return _.sortBy(s, \"Symbol\");\n }\n var sortedPerformanceData = sortBySymbol(instruments);\n var htmls = \"\";\n // Retrieve the Instrument\n for (var instrumentIx = 0; instrumentIx < sortedPerformanceData.length; instrumentIx++) {\n\n var objInstrument = sortedPerformanceData[instrumentIx]; // TODO: find the correct instrument, in case we have many in the Module\n objInstrument.AthDateFormatted = moment(objInstrument.AthDate).locale(settings.uiLanguage).format('DD MMM YYYY');\n objInstrument.LastUpdateFormatted = moment(objInstrument.LastUpdate).locale(settings.uiLanguage).format('DD MMM YYYY');\n objInstrument.AtlDateFormatted = moment(objInstrument.AtlDate).locale(settings.uiLanguage).format('DD MMM YYYY');\n objInstrument.HighPriceYtdDateFormatted = moment(objInstrument.HighPriceYtdDate).locale(settings.uiLanguage).format('DD MMM YYYY');\n objInstrument.DividendDateFormatted = moment(objInstrument.DividendDate).locale(settings.uiLanguage).format('DD MMM YYYY');\n objInstrument.QuoteTimeFormatted = moment(objInstrument.QuoteTime).locale(settings.uiLanguage).format('DD MMM YYYY HH:mm');\n objInstrument.KeyRatioTimeFormatted = moment(objInstrument.KeyRatioTime).locale(settings.uiLanguage).format('DD MMM YYYY HH:mm');\n\n var compositeModel = $.extend(objInstrument, texts, settings),\n renderedHtml = $(\"#tplTickerPerformance\").render(compositeModel, cision.websolution.formatHelpers);\n htmls += renderedHtml;\n }\n\n $(\"#target-share-performance\").html(htmls);\n })\n .fail(function() {\n console.log('Could not retrieve trades data');\n });\n };\n\n return {\n render: renderTrades,\n renderTrades: renderTrades\n };\n}(jQuery);","/* globals cision, moment, queryObj */\n\n$(function () {\n\t'use strict';\n\n $.support.cors = true;\n var defaultLang = 'en';\n\n\tif (cision.websolution) {\n cision.websolution.cisionHandler = $('html').data('cision-url');\n if ($('html').attr('lang') == 'sv' || $('html').attr('lang') == 'en' ) { \n cision.uiLanguage = $('html').attr('lang');\n } else {\n cision.uiLanguage = defaultLang;\n }\n\t\t//cision.uiLanguage = ($('html').attr('lang') === 'en' || 'sv') ? $('html').attr('lang') : 'en';\n\n\t\tif ($('#cision-insiders-listing').length) {\n\t\t\tcision.websolution.insiders.renderToGraph({\n\t\t\t\t// accessKey: '0C9AD8114C9E427D8709F3AD693D62EC',\n\t\t\t\tuiLanguage: cision.uiLanguage,\n\t\t\t\tstartDate: moment().subtract(1, 'years').format('YYYY-MM-DD')\n\t\t\t});\n\t\t}\n\n\t\tif ($('#cision-insider-details').length) {\n\t\t\tcision.websolution.insiders.renderTransactionsList({\n\t\t\t\tinsiderName: queryObj().insiderName,\n\t\t\t\tstartDate: moment().subtract(1, 'years').format('YYYY-MM-DD')\n\t\t\t});\n\t\t}\n\n\t\tif ($('#template-estimate-annual').length) {\n\t\t\tcision.websolution.estimate.annual.render({\n\t\t\t\tperiodStart: (moment().year() - 2).toString(),\n\t\t\t\tperiodEnd: moment().year() + 1\n\t\t\t});\n\t\t}\n\n\t\tif ($('#template-estimate-quarterly').length) {\n\t\t\tcision.websolution.estimate.quarterly.render({\n\t\t\t\tperiodStart: (moment().year() - 1).toString() + '-Q3',\n\t\t\t\tperiodEnd: (moment().year() + 1) + '-Q4' // '2014-Q4'\n\t\t\t});\n\t\t}\n\n\t\tif ($('#target-estimate-historical').length) {\n\t\t\tcision.websolution.estimate.historical.render({\n\t\t\t\tchartTitle: 'SALES, MSEK',\n\t\t\t\tvaluePrefix: '',\n\t\t\t\tvalueSuffix: ' MSEK',\n\t\t\t\tdateFormatTooltip: 'llll'\n\t\t\t});\n\t\t}\n\n\t\tif ($('#tplShareInformation').length) {\n\t\t\tcision.websolution.estimate.recommendations.renderTicker({\n\t\t\t\tdateFormat: 'llll'\n\t\t\t});\n\t\t}\n\n\t\tif ($('#historicRecommendation').length) {\n\t\t\tcision.websolution.estimate.recommendations.renderHistory({\n\t\t\t\tstartDate: moment().subtract(6, 'months').format('YYYY-MM-DD'),\n\t\t\t\tendDate: moment().format('YYYY-MM-DD')\n\t\t\t});\n\t\t}\n\n\t\tif ($('#tplCurrentRecommendationDistribution').length) {\n\t\t\tcision.websolution.estimate.recommendations.renderCurrent({\n\t\t\t\tdateFormat: 'llll'\n\t\t\t});\n\t\t}\n\n\t\t$('#target-estimate-historical .historical-tab').on('click', function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar fieldType = $(this).attr('id');\n\t\t\tvar valuePrefix = '';\n\t\t\tvar valueSuffix = '';\n\t\t\tvar chartTitle = '';\n\n\t\t\tswitch (fieldType) {\n\t\t\t\tcase 'SALES':\n\t\t\t\t\tchartTitle = 'SALES, MSEK';\n\t\t\t\t\tvalueSuffix = ' MT';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'EBIT':\n\t\t\t\t\tchartTitle = 'EBIT, MSEK';\n\t\t\t\t\tvalueSuffix = ' MSEK';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'DPS':\n\t\t\t\t\tchartTitle = 'DPS, SEK';\n\t\t\t\t\tvalueSuffix = ' SEK';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'EPS':\n\t\t\t\t\tchartTitle = 'EPS, SEK';\n\t\t\t\t\tvalueSuffix = ' SEK';\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcision.websolution.estimate.historical.render({\n\t\t\t\tfield: fieldType,\n\t\t\t\tchartTitle: chartTitle,\n\t\t\t\tvaluePrefix: valuePrefix,\n\t\t\t\tvalueSuffix: valueSuffix\n\t\t\t});\n\n\t\t\t$('#target-estimate-historical .historical-tab').removeClass('active');\n\t\t\t$(this).addClass('active');\n\t\t});\n\t}\n});","/* globals cision, moment */\n\n$(function () {\n\t'use strict';\n\n\tvar settings = cision.websolution.settings.general;\n\tvar showVolume = false;\n\tvar endOfDayStartFrom = moment().subtract(1, 'years').format('YYYY-MM-DD');\n\tvar endOfDayEndTime = moment().format('YYYY-MM-DD');\n\tvar today = moment().format('YYYY-MM-DD');\n\tvar texts = cision.websolution.texts[settings.uiLanguage];\n\tvar typeOfChart = 'endOfDay';\n\tvar actions;\n\tvar compareType;\n\tvar firstTypeChange = true;\n\tvar activeChangeOfType; // boolean\n\tvar loadingTimeoutId;\n\n\tvar wrapper = $('.sharegraph-wrapper');\n\tvar graphContainer;\n\n\tvar graphContainerSelector = settings.chartContainerId;\n\tvar templateSelector = '#templatesharegraph';\n\tvar renderTargetSelector = '#cision-websolution-container';\n\n\t$.support.cors = true;\n\n\tif (wrapper.length) {\n\t\tinit();\n\t}\n\n\tfunction renderSharegraph (model) {\n\t\tvar renderedHtml = $(templateSelector).render(model);\n\t\t$(renderTargetSelector).html(renderedHtml);\n\t}\n\n\tfunction init () {\n\t\tactions = actionsObject();\n\n\t\tcision.websolution.tickers.render();\n\t\tcision.websolution.trades.render();\n\t\tcision.websolution.performance.render();\n\t\tcision.websolution.orderbook.render();\n\t\trenderSharegraph($.extend({}, texts, cision.websolution.settings));\n\n\t\tgraphContainer = $('#' + graphContainerSelector);\n\n\t\tshowEndOfDay();\n\n\t\tinitEvents();\n\t\tinitDatePicker();\n\t\tinitPrintEvent();\n\n\t\twrapper.find('#share-download').netrCustomSelect();\n\t\twrapper.removeClass('is-loading');\n\t}\n\n\tfunction initPrintEvent () {\n\t\t// fix for graph size issue on print\n\t\tvar width = graphContainer.width();\n\t\tvar height = graphContainer.height();\n\t\tvar beforePrint = function () {\n\t\t\tgraphContainer.highcharts().setSize(width, height, false);\n\t\t};\n\t\tvar afterPrint = function () {\n\t\t\tgraphContainer.highcharts().setSize.apply(this, this.resetParams);\n\t\t};\n\n\t\tif (window.matchMedia) {\n\t\t\tvar mediaQueryList = window.matchMedia('print');\n\t\t\tmediaQueryList.addListener(function (mql) {\n\t\t\t\tif (mql.matches) {\n\t\t\t\t\tbeforePrint();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tafterPrint();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// making sure the above fix works in Firefox\n\t\twindow.onbeforeprint = beforePrint;\n\t\twindow.onafterprint = afterPrint;\n\t}\n\n\tfunction initEvents () {\n\t\twrapper.find('.show-hide-instrument').on('change', function () {\n\t\t\tif ($(this).is(':disabled')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tupdateInstrumentSeries($(this));\n\t\t\tupdateCompareType();\n\t\t});\n\n\t\twrapper.find('.share-info').on('click', 'input[type=\"radio\"]', function () {\n\t\t\tactiveChangeOfType = true;\n\t\t});\n\n\t\twrapper.find('.share-info').on('change', 'input[type=\"radio\"], input[type=\"checkbox\"]', function (event) {\n\t\t\tvar arg = $(this).data('arg');\n\t\t\tvar delegate = actions[arg];\n\n\t\t\tif (delegate) {\n\t\t\t\tdelegate(event, $(this));\n\t\t\t}\n\t\t});\n\n\t\twrapper.find('#share-options-select .show-hide-instrument').on('click', function () {\n\t\t\tif ($(this).hasClass('disabled')) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t$(this).toggleClass('selected');\n\t\t\tupdateInstrumentSeries($(this));\n\t\t\tupdateCompareType();\n\t\t});\n\n\t\twrapper.find('.share__period').on('click', '.c-button-group__item', function (event) {\n\t\t\t// We do nothing if there is no instance of highcharts.\n\t\t\tif (graphContainer.highcharts() === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$('.share__period button').removeClass('c-button-group__item--active');\n\t\t\t$('.share__period-datepickers input').removeClass('share__period-datepickers--active');\n\t\t\t$(this).addClass('c-button-group__item--active');\n\n\t\t\tvar arg = $(this).data('key');\n\t\t\tvar delegate = actions[arg];\n\n\t\t\tif (delegate) {\n\t\t\t\tdelegate(event, $(this));\n\t\t\t}\n\t\t});\n\n\t\twrapper.find('.input-group-btn').on('click', function () {\n\t\t\t$(this).parent().find('input').datepicker('show');\n\t\t});\n\n\t\twrapper.find('#share-download').on('change', function (event) {\n\t\t\tvar select = event.target;\n\t\t\tvar selectedOption = select.options[select.selectedIndex];\n\t\t\tvar chartContainer = $('#' + settings.chartContainerId);\n\n\t\t\tswitch (selectedOption.value) {\n\t\t\t\tcase 'excel-download':\n\t\t\t\t\twindow.location = selectedOption.dataset.url;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'print-chart':\n\t\t\t\t\tchartContainer\n\t\t\t\t\t\t.highcharts()\n\t\t\t\t\t\t.print();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'export-png-chart':\n\t\t\t\t\tchartContainer\n\t\t\t\t\t\t.highcharts()\n\t\t\t\t\t\t.exportChart(\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t{ type: 'image/png'}\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'export-jpeg-chart':\n\t\t\t\t\tchartContainer\n\t\t\t\t\t\t.highcharts()\n\t\t\t\t\t\t.exportChart({\n\t\t\t\t\t\t\ttype: 'image/jpeg'\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'export-svg-chart':\n\t\t\t\t\tchartContainer\n\t\t\t\t\t\t.highcharts()\n\t\t\t\t\t\t.exportChart({\n\t\t\t\t\t\t\ttype: 'image/svg+xml'\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'export-pdf-chart':\n\t\t\t\t\tchartContainer\n\t\t\t\t\t\t.highcharts()\n\t\t\t\t\t\t.exportChart({\n\t\t\t\t\t\t\ttype: 'application/pdf',\n\t\t\t\t\t\t\tfilename: 'my-pdf'\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// We reset the