// adjust horizontal and vertical offsets here
// (distance from mouseover event which activates tooltip)
Tooltip.offX = 0;  
Tooltip.offY = 8;
Tooltip.followMouse = false;  // must be turned off for hover-tip

// tooltip content variables
var fondbolag = '<a href="http://www.robur.se">Robur</a><br/><a href="http://www.handelsbanken.se/fonder">Handelsbanken Fonder</a><br/><a href="http://www.seb.se/pow/borsfinans/default.asp?ss=/pow/borsfinans/fondkurslista/kurslista.asp">S E B Fonder</a><br/><a href="http://www.skandia.se">Skandias fondutbud</a> (Alla förvaltare)';
var stockholm = '<b>Large Cap</b>, svenska aktier<br/><b>Mid Cap</b>, svenska aktier<br/><b>Small Cap</b>, svenska aktier<br/><b>First North</b>, Norden<br/><br/>Alla kurser är justerade för splittar och emissioner.';
var periodlangd = 'The number of days used when optimizing<br/>the parameters of the models';
var parametrar = 'Technical analysis indicators have a range of parameters(settings)<br/>that can be adjusted. These settings decide for instance in which<br/>way and how fast an indicator will react to price movements.';
var optama = 'Read more about <span class="orange">OptAMA</span> <a href="http://www.optimaltrader.net/adaptive_moving_average.htm">here</a>';
var effektiv = 'In an efficient market all operators act rationally<br/>and all operators have access to the same information';
var click_here = 'Click here to enlarge<br/>and get more info';
var redgreen = 'The green fields show you when <span class="orange">Optimal Trader</span> recommends you<br/>to buy/keep your instrument. The red fields encourage you to<br/>sell/keep out. The blue curve shows the return of<br/>your investment compared to the price of the<br/>equity(black)';
var advanced = '<ul><li>Brokerage Fee</li><li>Robust Optimization</li><li>Limit Curve Fitting</li><li>Back Testing</li><li>Delay before your trades are carried out</li><li>Give more wheight to price movements closer in time?</li><li>Initial State</li><li>Parameter Interval examined</li><li>Optimization Accuracy</li></ul>';
var adaptive = 'Optimal Traders Adaptive Mean Average';
var ma = 'A moving average smoothes time series data, for instance stock prices.<br/>The smoothing of a signal reduces noise, but introduces a delay. A simple<br/>10-day moving average of closing price is the mean of the previous 10 days<br/>closing prices. Moving averages are not only used on price movements in the<br/>models, but also on other data';
var overadapt = 'When optimizing there is a risk that the models become overadapted<br/>to the price movements. The models will then produce good trading<br/>signals for historical data, but will perform<br/>much worse in reality';
var index='Dow Jones Industrial Average<br/>NASDAQ Composite<br/>DJ Euro Stoxx 50<br/>Nikkei 225<br/>Frankfurt DAX<br/>London FTSE 100<br/>Hong Kong Hang Seng<br/>Hang Seng(China)<br/>Shanghai Composite (China)<br/>RTS Index (Russia)<br/>All Ordinaries(Australia)<br/>Bovespa (Brazil)<br/>S&P TSX Composite (Canada)<br/>IPC (Mexico)<br/>MerVal (Argentina)<br/>S&P CNX Nifty (India)<br/>Jakarta Composite (Indonesia)<br/>KLSE Composite (Malaysia)<br/>Seoul Composite (South Korea)<br/>OMX Copenhagen 20<br/>OMXS All Share (Sweden)<br/>OMX Stockholm 30 (Sweden)<br/>Oslo All Share (Norway)<br/>Oslo OBX (Norway)<br/>Paris CAC 40 (France)<br/>MIB Index (Italy)<br/>S&P Mib (Italy)<br/>Madrid General(Spain)<br/>Vienna ATX (Austria)<br/>NASDAQ-100<br/>S&P 500 (USA)<br/>S&P 600 SmallCap Index(USA)<br/>CBOE Oil Index<br/>CBOE Gold Index';
var backtest = 'Definition of Back Testing: The process of optimizing a trading strategy<br/>using historical data and then seeing whether it has predictive validity<br/>on current data.';
var currencies = '<ul><li>US Dollar (USD)</li><li>EMU Euro (EUR)</li><li>Japanese Yen (JPY)</li><li>UK Pound (GBP)</li><li>Swiss Franc (CHF)</li><li>Canadian Dollar (CAD)</li><li>Danish Krone (DKK)</li><li>Norwegian Krone (NOK)</li><li>Swedish Krona (SEK)</li></ul>';
var building = 'Help us build a larger "Best Models and Settings" database<br/>and get full access to Optimal Trader FREE for 9 months!<br/><br/><a href="http://www.optimaltrader.net/building.htm">Click here for more information</a><br/><br/>Limited availability!';

function doTooltip(e, msg) {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.clearTimer();
  var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
  if ( tip && tip.onmouseout == null ) {
      tip.onmouseout = Tooltip.tipOutCheck;
      tip.onmouseover = Tooltip.clearTimer;
  }
  Tooltip.show(e, msg);
}

function hideTip() {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.timerId = setTimeout("Tooltip.hide()", 100);
}

Tooltip.tipOutCheck = function(e) {
  e = dw_event.DOMit(e);
  // is element moused into contained by tooltip?
  var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
  if ( this != toEl && !contained(toEl, this) ) Tooltip.hide();
}

// returns true of oNode is contained by oCont (container)
function contained(oNode, oCont) {
  if (!oNode) return; // in case alt-tab away while hovering (prevent error)
  while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
  return false;
}

Tooltip.timerId = 0;
Tooltip.clearTimer = function() {
  if (Tooltip.timerId) { clearTimeout(Tooltip.timerId); Tooltip.timerId = 0; }
}

Tooltip.unHookHover = function () {
    var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
    if (tip) {
        tip.onmouseover = null; 
        tip.onmouseout = null;
        tip = null;
    }
}

dw_event.add(window, "unload", Tooltip.unHookHover, true);