var canvasTable;var canvasParent;var canvas;var drawingContext;var widthMultiplier;var heightMultiplier;var bMouseOverCanvas=false;var mouseMovingOverCanvas=false;var canvasX;var canvasY;var canvasWidth;var canvasHeight;var canvasTargetWidth;var canvasTargetHeight;var canvasTableWidth;var mainTable;var mainTableX;var mainTableY;var mainTableX2;var mainTableY2;var mainTableWidth;var mainTableHeight;var usingiFrame=0;function SetupCanvas() {mainTable=document.getElementById("mainTable");canvasTable=document.getElementById("canvasTable");canvasParent=document.getElementById("canvasParent");canvas=document.getElementById("canvas");if(canvas.getContext) {drawingContext=canvas.getContext("2d");ResizeCanvas();return true;} return false;} function ZeroPosition(inObject) {if(inObject!=false) {inObject.style.left=1;inObject.style.top=1;}} function ZeroSize(inObject) {if(inObject!=false) {inObject.width=1;inObject.height=1;}} function ZeroEverything(inObject) {if(inObject!=false) {ZeroPosition(inObject);ZeroSize(inObject)}} function ZeroCanvas() {if(loaded>0) {ZeroMessengers();ZeroEverything(canvas);ZeroEverything(canvasTable);if(loaded>1&&grapher.bInitialised) {grapher.RemoveLabels();ZeroSharesMenu();ZeroEverything(grapher.labels.currencyLabel);if(loaded>2) {ZeroEverything(dataSpan);ZeroPosition(movingSpanTable);if(topMenu) {ZeroPosition(topMenu);topMenu.width=1;} for(var i=0;i1) {var urlHeight=GetTokenFromURL(canvasTargetHeight,currentURL,'h?');if(urlHeight!="max"&&urlHeight550) {canvasTargetHeight=550;}} if(browserType["iphone"]) {if(window.orientation==-90||window.orientation==90) {canvasTargetWidth=416;canvasTargetHeight=190;} else {canvasTargetWidth=256;canvasTargetHeight=325;} if(news!=false) {canvasTargetHeight-=20;} if(loaded>0) {canvasWidth=canvasTargetWidth;canvasHeight=canvasTargetHeight;}} canvasTableWidth=canvasTargetWidth+62;if(loaded>0||canvasWidth>canvasTargetWidth) {canvas.width=canvasTargetWidth;canvasTable.width=canvasTableWidth;canvasWidth=canvasTargetWidth;} else {canvas.width=canvasWidth;canvasTable.width=canvasWidth+54;} if(loaded>0||canvasHeight>canvasTargetHeight) {canvas.height=canvasTargetHeight;canvasTable.height=canvasTargetHeight;canvasHeight=canvasTargetHeight;} else {canvas.height=canvasHeight;canvasTable.height=canvasHeight;} widthMultiplier=canvasTargetWidth/100;heightMultiplier=canvasTargetHeight/100;canvasX=GetLeftPos(canvas);canvasY=GetTopPos(canvas);UpdateMainTableDimensions(true);} function UpdateMainTableDimensions(force) {var newTableX=GetLeftPos(mainTable);var newTableY=GetTopPos(mainTable);if(force||mainTableX!=newTableX||mainTableY!=newTableY) {mainTableX=newTableX;mainTableY=newTableY;mainTableWidth=canvasTableWidth+1;mainTableHeight=mainTable.clientHeight+1;mainTableX2=mainTableX+mainTableWidth;mainTableY2=mainTableY+mainTableHeight;return true;} return false;} function GrapherDimensions() {this.vNodesCount=10;this.hNodesCount=10;} function GrapherZoom() {this.SetZoom(13);this.SetTarget(this.current);this.original=this.current;this.currentPointIncrement=1/this.current;} GrapherZoom.prototype.SetZoom=function(newZoom) {this.current=newZoom;this.currentPointIncrement=1/this.current;} GrapherZoom.prototype.SetTarget=function(newTarget) {this.target=newTarget;this.targetPointIncrement=1/this.target;} function Grapher() {this.dimensions=new GrapherDimensions();this.zoom=new GrapherZoom();this.bInitialised=false;} Grapher.prototype.Resize=function() {if(this.bInitialised!=false) {this.dimensions.Resize();this.latest.UpdateIncrement(this.dimensions.hNodeOffset);if(loaded>2) {EnsureLatestDateIsInRange(true);} this.CreateLabels();this.UpdateCurrencyLabel();this.DrawGraph(true);this.status.updating=true;}} var grapher=new Grapher();var messengers=new Array();var canvasMessenger=false;var bottomLeftMessenger=false;function CreateMessengers() {canvasMessenger=new Messenger(2,2,'14px');bottomLeftMessenger=new Messenger(16,1);messengers.push(canvasMessenger);messengers.push(bottomLeftMessenger);} function AdjustBottomLeftMessenger(messenger) {if(messenger==bottomLeftMessenger) {if(browserType["iphone"]) {bottomLeftMessenger.messengerXAdjustment=-30;if(window.orientation==-90||window.orientation==90) {bottomLeftMessenger.messengerYAdjustment=30;} else {bottomLeftMessenger.messengerYAdjustment=17;} bottomLeftMessenger.SetSize(200,20);bottomLeftMessenger.messengerTableTD.style.fontSize='11px';bottomLeftMessenger.messengerTable.cellPadding=1;} else {if(mainTableWidth<400) {bottomLeftMessenger.messengerXAdjustment=-50;bottomLeftMessenger.messengerYAdjustment=30;bottomLeftMessenger.SetSize("",20);bottomLeftMessenger.messengerTableTD.style.fontSize='11px';bottomLeftMessenger.messengerTable.cellPadding=1;} else {bottomLeftMessenger.messengerXAdjustment=0;bottomLeftMessenger.SetSize(200,30);bottomLeftMessenger.messengerTableTD.style.fontSize='12px';bottomLeftMessenger.messengerTable.cellPadding=5;}}} else {messenger.messengerXAdjustment=-10;}} function ZeroMessengers() {for(var i=0;ipriority) {return;} this.priority=priority;if(this.bCreatedMessenger==false) {return;} if(useOriginalSize) {this.messengerMaxWidth=this.originalMaxWidth;this.messengerMaxHeight=this.originalMaxHeight;} this.bTimingOut=false;this.timeOutTimer=0;this.timeOutAmount=0;if(this.messageToDisplay==message) {return;} this.messageToDisplay=message;this.bFinishWithAClick=clickFinish;if(clickFinish) {if(browserType["iphone"]) {this.messageToDisplay+="

[Press the screen to continue]
";} else {this.messageToDisplay+="

[Click the mouse button to continue]
";}} this.Resize();if(this.bShowingMessenger==false) {this.messengerY=canvasY+canvasHeight;this.messengerX=this.messengerXTarget;this.messengerTable.style.left=this.messengerXTarget;this.messengerTable.style.top=this.messengerY;this.messengerWidth=this.messengerWidthTarget;this.messengerTable.width=this.messengerWidthTarget;} else {this.messengerTableTD.innerHTML="";} if(immediateOpen) {this.Update(1000,1000);} if(this.messageToDisplay) {document.body.appendChild(this.messengerTable);this.bShowingMessenger=true;} canvasMessenger.bClickedOnMessenger=false;} Messenger.prototype.ChangeMessage=function(message) {this.messageToDisplay=message;this.messengerTableTD.innerHTML=this.messageToDisplay;this.bTimingOut=false;this.timeOutAmount=0;this.timeOutTimer=0;this.bUpdatingMessenger=false;} Messenger.prototype.Zero=function() {if(this.messengerTable!=false) {if(this.bShowingMessenger==true) {this.messengerTableTD.innerHTML="";this.messengerTable.style.left=0;this.messengerTable.style.top=0;this.messengerTable.width=1;}}} Messenger.prototype.Resize=function() {if(this.messengerTable!=false) {AdjustBottomLeftMessenger(this);this.messengerWidthTarget=canvasWidth0) {this.timeOutTimer+=deltaTime;} else {this.Close(this.priority);this.bTimingOut=false;}} if(this.bUpdatingMessenger==true) {if(this.messengerTable!=false) {var deltaSeconds=clampedDelta*0.001;var movementPerSecond=Math.round(1000*deltaSeconds);if(this.messengerX!=this.messengerXTarget) {this.messengerX=this.messengerXTarget;this.messengerTable.style.left=this.messengerX;} if(this.messengerWidth!=this.messengerWidthTarget) {this.messengerWidth=this.messengerWidthTarget;this.messengerTable.width=this.messengerWidth;} if(this.messengerHeight!=this.messengerHeightTarget) {this.messengerHeight=Interpolate(this.messengerHeight,this.messengerHeightTarget,movementPerSecond);this.messengerTableTD.height=this.messengerHeight;if(this.messengerHeight!=this.messengerHeightTarget) {bUpdating=true;}} if(this.messengerY!=this.messengerYTarget) {this.messengerY=Interpolate(this.messengerY,this.messengerYTarget,movementPerSecond);this.messengerTable.style.top=this.messengerY;if(this.messengerY!=this.messengerYTarget) {bUpdating=true;}} this.bUpdatingMessenger=bUpdating;if(this.bUpdatingMessenger==false) {if(this.messageToDisplay) {this.messengerTableTD.innerHTML=this.messageToDisplay;} else if(this.bShowingMessenger==true) {this.messengerTable.parentNode.removeChild(this.messengerTable);this.bShowingMessenger=false;} bUpdating=true;}}} return bUpdating;} function DetectBrowser() {var BO=new Object();BO["ie"]=navigator.appName=="Microsoft Internet Explorer";BO["ie4"]=BO["ie"]&&(document.getElementById==null);BO["ie5"]=BO["ie"]&&(document.namespaces==null)&&(!BO["ie4"]);BO["ie6"]=BO["ie"]&&(document.implementation!=null)&&(document.implementation.hasFeature!=null);BO["ie55"]=BO["ie"]&&(document.namespaces!=null)&&(!BO["ie6"]);BO["ns4"]=!BO["ie"]&&(document.layers!=null)&&(window.confirm!=null)&&(document.createElement==null);BO["opera"]=(self.opera!=null);BO["gecko"]=(document.getBoxObjectFor!=null);BO["khtml"]=(navigator.vendor=="KDE");BO["konq"]=((navigator.vendor=='KDE')||(document.childNodes)&&(!document.all)&&(!navigator.taintEnabled));BO["chrome"]=navigator.userAgent.toLowerCase().indexOf('chrome')>-1;BO["safari"]=(document.childNodes)&&(!document.all)&&(!navigator.taintEnabled)&&(!navigator.accentColorName)&&!BO["chrome"];BO["safari1.2"]=(parseInt(0).toFixed==null)&&(BO["safari"]&&(window.XMLHttpRequest!=null));BO["safari2.0"]=(parseInt(0).toFixed!=null)&&BO["safari"]&&!BO["safari1.2"];BO["safari1.1"]=BO["safari"]&&!BO["safari1.2"]&&!BO["safari2.0"];BO["iphone"]=navigator.userAgent.toLowerCase().indexOf('iphone')>-1;BO["firefox"]=navigator.userAgent.indexOf("Firefox")>-1;return BO;} var browserType=new DetectBrowser();function DocumentWidth() {if(document.body&&document.body.clientWidth) return document.body.clientWidth;if(document.width) return parseInt(document.width);if(window.innerWidth) return window.innerWidth;return 500;} function DocumentHeight() {if(window&&window.innerHeight) return window.innerHeight;if(document.height) return parseInt(document.height);if(document.body&&document.body.clientHeight) return document.body.clientHeight;return 500;} function GetTopPos(inputObj) {var returnValue=inputObj.offsetTop;while((inputObj=inputObj.offsetParent)!=null) {if(inputObj.tagName!='HTML') returnValue+=inputObj.offsetTop;} return returnValue;} function GetLeftPos(inputObj) {var returnValue=inputObj.offsetLeft;while((inputObj=inputObj.offsetParent)!=null) {if(inputObj.tagName!='HTML') returnValue+=inputObj.offsetLeft;} return returnValue;} function Interpolate(current,target,speed) {if(currenttarget) {current=target;}} else {current-=speed;if(current1&&(touchPressed||gesturePressed)) {TouchCancelLogic();} Reset();} var currentURL=window.location.href;var pendingHTTPRequestType=false;var pendingHTTPRequestData=false;var pendingHTTPResponseData=false;var abortedHTTPTransfer=false;function HTTPReady() {if(pendingHTTPRequestType==false) {if(xmlHttp.readyState==4||abortedHTTPTransfer==true||xmlHttp.readyState==0) {return true;}} return false;} function HTTPAbortTransfer() {abortedHTTPTransfer=true;xmlHttp.abort();} function HTTPStartTransferUsingFunction(url,changeFunction) {if(abortedHTTPTransfer==true) {abortedHTTPTransfer=false;} xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=changeFunction;xmlHttp.send(null);} function HTTPStartTransfer(url) {HTTPStartTransferUsingFunction(url,HTTPRecieveData);} function HTTPRecieveData() {if(xmlHttp.readyState==4) {pendingHTTPResponseData=-1;if(xmlHttp.responseText&&xmlHttp.status==200) {pendingHTTPResponseData=xmlHttp.responseText;}}} function HTTPFinishTransfer() {pendingHTTPResponseData=false;pendingHTTPRequestType=false;pendingHTTPRequestData=false;} function GetTokenFromURL(originalValue,myURL,token) {return parseInt(GetNonIntTokenFromURL(originalValue,myURL,token));} function GetNonIntTokenFromURL(originalValue,myURL,token) {var urlString=myURL.split(token);if(urlString.length>1) {var operationIndicator=urlString[1].split(';');return operationIndicator[0];} return originalValue;} function iGrapherEngine() {this.title='iGrapher';this.loaded=false;} var iEngine=new iGrapherEngine();var loaded=false;var xmlHttp=false;var updateTime=15;var lastUpdateTime=0;var typicalBorderColour="#9999B5";var typicalBorder="1px solid "+typicalBorderColour;var menuBorder="1px outset #191935";var menuColor="#EFEFF2";var highlightBorder="1px outset #CACACF";var highlightColor="#C9C9D6";var highlightColorLight="#EBEBEB";var unHighlightColour="#E6E6EA";var tableBackgroundColour="#F0F0F1";var tableHeadingBackgroundColour="#EAEAEF";var barBackgroundColour="#C9C9DA";var barBackgroundColourPurple="#CBCAE6";var barBackgroundColourLight="#BABABE";var downloadedScript=0;var language;var news=false;var newsDownloaded=false;function Load() {if(xmlHttp!=false) {return;} if(navigator.language) {language=navigator.language.toLowerCase();} else {language=navigator.systemLanguage.toLowerCase();} if(!browserType["iphone"]) {window.onresize=Reset;if(browserType["ie"]) {menuBorder=typicalBorder;}} else {document.addEventListener("orientationchange",UpdateOrientation,true);} if(!xmlHttp&&typeof XMLHttpRequest!='undefined') {xmlHttp=new XMLHttpRequest();} else {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");} catch(e2) {xmlHttp=false;}}} if(xmlHttp) {var dataSpan=document.getElementById('dataSpan');dataSpan.width=1;var loadingMessage=document.getElementById("loading");loadingMessage.parentNode.removeChild(loadingMessage);delete loadingMessage;if(SetupCanvas()) {CreateMessengers();InitialScriptDownload();setTimeout(LoadingLoop,updateTime);} else {Unload();}}} function Unload() {loaded=false;delete iEngine;} function InitialScriptDownload() {if(downloadedScript==0) {DownloadJavascript("main.php");} else if(downloadedScript==1) {DownloadJavascript("extras.php");}} function DownloadJavascript(file) {pendingHTTPRequestType=true;pendingHTTPRequestData=file;HTTPStartTransferUsingFunction("Engine/"+file,RecieveJavascript);} function RecieveJavascript() {if(xmlHttp.readyState==4) {if(xmlHttp.responseText&&xmlHttp.status==200) {var fileDownloaded=pendingHTTPRequestData;pendingHTTPRequestType=false;pendingHTTPRequestData=false;var scriptElement=document.createElement('script');scriptElement.type='text/javascript';scriptElement.text=xmlHttp.responseText;downloadedScript++;document.body.appendChild(scriptElement);if(downloadedScript==1) {loaded=1;canvasMessenger.OpenSpecific(0,"
Initializing iGrapher
",false,200,50,false);DownloadJavascript("extras.php");} else if(downloadedScript==2) {loaded=2;} else {if(fileDownloaded=="news.php") {news.Load();}}} else {InitialScriptDownload();}}} function LoadingLoop() {var d=new Date();var currentTime=d.getMilliseconds();if(currentTime10) {cappedDeltaTime=10;} UpdateMessengers(deltaTime,cappedDeltaTime);if(downloadedScript>0) {if(canvasWidth!=canvasTargetWidth||canvasHeight!=canvasTargetHeight) {var updateSpeed=2.5;if(browserType["iphone"]) {updateSpeed=2.0;} if(canvasWidth!=canvasTargetWidth) {canvasWidth=Interpolate(canvasWidth,canvasTargetWidth,deltaTime*updateSpeed);canvas.width=canvasWidth;canvasTable.width=canvasWidth+54;} else if(canvasHeight!=canvasTargetHeight) {canvasHeight=Interpolate(canvasHeight,canvasTargetHeight,deltaTime*updateSpeed);canvas.height=canvasHeight;canvasTable.height=canvasHeight;} setTimeout(LoadingLoop,updateTime);} else {canvasMessenger.TimeOutClose(0,500);FinishLoad();}} else {if(loaded==false&&canvasMessenger.bUpdatingMessenger==false) {canvasMessenger.OpenSpecific(0,"
Loading iGrapher
",false,200,50,false);} setTimeout(LoadingLoop,updateTime);}} function Reset() {if(!xmlHttp||loaded==false) return;ResizeCanvas();ResizeMessengers();if(loaded>0) {if(loaded>2) {ResizeTopMenu();ResizeLegend();ResizeDataSpan();ResizeCanvasExtras();ResizeiPhoneBorder();if(news.loaded) {news.Resize();}} ResizeSharesMenu();recordedDocumentWidth=DocumentWidth();recordedDocumentHeight=DocumentHeight();} iPhoneReset();grapher.Resize();} function iPhoneReset() {if(browserType["iphone"]) {AdjustBottomLeftMessenger(bottomLeftMessenger);if(loaded>2) {window.scrollTo(0,0);}}} window.onload=Load;window.onunload=Unload;