
﻿
Type.registerNamespace("Cpc.StockQuotes");Cpc.StockQuotes=function(){};Cpc.StockQuotes.WebServiceUrl="/_Layouts/PowerLP/WebServices/StockInfoServices.asmx/GetStockQuoteSummary";Cpc.StockQuotes.TableSelector="#lpstockwatchinfo #stockwatchtable";Cpc.StockQuotes.TemplateSelector="#lpstockwatchinfo #stockwatchtable .template";Cpc.StockQuotes.FooterSelector="#lpstockwatchinfo #stockwatchtable .stockwatchfooter";Cpc.StockQuotes.MessageSpanSelector="#lpstockwatchinfo #stockwatchmessage";Cpc.StockQuotes.LoadingMessageSelector="#lpstockwatchinfo #stockwatchloading";Cpc.StockQuotes.StockUp="/SiteCollectionImages/stockUp.gif";Cpc.StockQuotes.StockDown="/SiteCollectionImages/stockDown.gif";Cpc.StockQuotes.StockNoChange="/SiteCollectionImages/stockNoChange.gif";Cpc.StockQuotes.Delay=0;Cpc.StockQuotes.Interval=null;Cpc.StockQuotes.Init=function(){var table=$(Cpc.StockQuotes.TableSelector);var tableBody='\
            <tbody>\
                <tr class="stockwatchheader">\
                    <td class="leftnavitem">\
                        <span class="bold">Symbol</span>\
                    </td>\
                    <td class="leftnavitem">\
                        <span class="bold">Last price</span>\
                    </td>\
                    <td class="leftnavitem">\
                        <span class="bold">Change</span>\
                    </td>\
                    <td class="leftnavitem">\
                        <span class="bold">% Change</span>\
                    </td>\
                </tr>\
                <tr class="template" style="display:none;">\
                    <td class="stocksymbol leftnavitem">\
                        <a href="/en-ca/investors/pages/stock_$SYMBOL$.aspx">\
                        <span class="stocksymbol"></span>\
                        </a>\
                    </td>\
                    <td class="leftnavitem rightalign">\
                        <span class="stocklastprice"></span>&nbsp;&nbsp;\
                    </td>\
                    <td class="leftnavitem rightalign">\
                        <span class="stockchange"></span>\
                        <img class="stockchange" src="/SiteCollectionImages/stockNoChange.gif" alt=""/>\
                    </td>\
                    <td class="leftnavitem rightalign">\
                        <span class="stockpercentchange" style="margin-right:8px;"></span>&nbsp;&nbsp;\
                    </td>\
                 </tr>\
                <tr class="stockwatchfooter">\
                    <td colspan="4" class="leftnavitem">\
                        <span id="stockwatchmessage"></span><br/>\
                        <a target="_blank" href="http://www.stockwatch.com/">Data provided by Stockwatch</a>\
                        <span id="stockwatchloading" style="color:White; text-decoration:blink; font-size:smaller;">Loading...</span>\
                    </td>\
                </tr>\
            </tbody>';if(table.length==0)return;table.html(tableBody);Cpc.StockQuotes.Interval=setInterval("Cpc.StockQuotes.Load()",60000);Cpc.StockQuotes.Load();};Cpc.StockQuotes.Load=function(){$(Cpc.StockQuotes.LoadingMessageSelector).show();$.ajax({type:"POST",url:Cpc.StockQuotes.WebServiceUrl,data:"{}",contentType:"application/json; charset=utf-8",dataType:"json",timeout:30000,success:Cpc.StockQuotes.ProcessResponse,error:Cpc.StockQuotes.ProcessError});};Cpc.StockQuotes.ProcessError=function(XMLHttpRequest,textStatus,errorThrown){var messagespan=$(Cpc.StockQuotes.MessageSpanSelector);if(errorThrown&&errorThrown.length>0){messagespan.html(errorThrown);}else if(textStatus&&textStatus.length>0){messagespan.text('Error: '+textStatus);}
$(Cpc.StockQuotes.LoadingMessageSelector).hide();};Cpc.StockQuotes.ProcessResponse=function(result,textstatus){var messagespan=$(Cpc.StockQuotes.MessageSpanSelector);messagespan.html('');if(result.d.ErrorMessage&&result.d.ErrorMessage.length>0){Cpc.StockQuotes.ProcessError(null,null,result.d.ErrorMessage);return;}
Cpc.StockQuotes.Delay=0;$.each(result.d.Quotes,Cpc.StockQuotes.ProcessRow);var dl=(Cpc.StockQuotes.Delay>1)?Cpc.StockQuotes.Delay:2;$(Cpc.StockQuotes.MessageSpanSelector).html('Live quotes are delayed '+dl+' minutes.');$(Cpc.StockQuotes.LoadingMessageSelector).hide();};Cpc.StockQuotes.ProcessRow=function(index,quote){var ltrs=Cpc.StockQuotes.ExtractLetters(quote.Symbol);var rowSelector=Cpc.StockQuotes.TableSelector+' .'+ltrs;var row=$(rowSelector);if(row.length==0){row=$(Cpc.StockQuotes.TemplateSelector).clone().insertBefore(Cpc.StockQuotes.FooterSelector).show().removeClass('template').addClass(ltrs);row.find("span.stockname").text(quote.Name);row.find('span.stocksymbol').text(quote.Symbol);var a=row.find('a');var quoteUrl=a.attr('href').replace('$SYMBOL$',ltrs);a.attr('href',quoteUrl);}
row.find("span.stocklastprice").text('$'+quote.LastPrice.toFixed(2));row.find("span.stockchange").text('$'+Math.abs(quote.Change).toFixed(2));var imgSrc=(quote.Change==0)?Cpc.StockQuotes.StockNoChange:((quote.Change>0)?Cpc.StockQuotes.StockUp:Cpc.StockQuotes.StockDown);row.find("img.stockchange").attr("src",imgSrc);row.find("span.stockpercentchange").text(String((quote.Change*100/this.PreviousClose).toFixed(2))+'%');Cpc.StockQuotes.Delay=(quote.Delay>Cpc.StockQuotes.Delay)?quote.Delay:Cpc.StockQuotes.Delay;};Cpc.StockQuotes.ExtractLetters=function(val){var lettersStr="";var theString=String(val);var stringArray=$.each(theString.split(""),function(){if(this.match(/[a-z]/ig)){lettersStr=lettersStr+this;}});return String(lettersStr);};if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();