﻿window.attachEvent("onload", detectPrintMode);

function detectPrintMode()
{
  var bPrintModeDisabled;
  bPrintModeDisabled = (param('mode') != 'print');
  
  // Enable/disable the "print_mode" stylesheet reference
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      if(a.getAttribute("title") == 'master') {
        if (bPrintModeDisabled) {
            a.href = 'css/master.css';
        } else {
            a.href = 'css/master_print.css';
        }
      }
    }
  }
  
  if (!bPrintModeDisabled) {

      // Show a bar across the top of the screen with a "Return to normal view" link
      var sRawURL = location.href.substring(0, location.href.length-11);
      if (document.getElementById('revertFromPrintMode')) {
        document.getElementById('revertFromPrintMode').innerHTML = '<div class="revertFromPrintMode"><b>Printer friendly view.</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="' + sRawURL + '" class="revertFromPrintMode" id="restore_master">Restore normal view &raquo;</a></div>';
      }

      // Append "mode=print" to all relevant internal hyperlinks if we are in print mode
      // to make all other links also remain in print mode  
      for(i=0; (a = document.getElementsByTagName("a")[i]); i++) {
        if (!a.id && (a.href.indexOf(".html") != -1) && (a.href.indexOf("javascript:") == -1)) {
            a.href = appendPrintModeToURL(a.href);
        }
      }
  }
  
  if (bPrintModeDisabled) {
 
    // Render the "Printer friendly" link
    if (document.getElementById('printMode')) {
        document.getElementById('printMode').innerHTML = '<a href="' + location.href + '?mode=print" id="print_master" class="print_master"><img src="images/imgPrint.png" width="16" height="16" alt="Printer friendly view" border="0" align="middle" /> Printer friendly view</a> &nbsp;&nbsp;|&nbsp;&nbsp;';
    }
  
  }
  
}


String.prototype.urldec = function()
{
    return unescape(this.replace(/\+/g, " "));
}

var _param = new Object();
{
    var parts = window.location.search.substr(1).split(/[&;]/);
    for (var i in parts) {
        var pair  = parts[i].split(/=/);
        var name  = pair[0].urldec();
        var value = pair[1] != undefined ? pair[1].urldec() : undefined;
        if (_param[name] == undefined)
            _param[name] = [value];
        else
            _param[name].push(value);
    }
}

function param(name)
{
    return _param[name] != undefined ? _param[name][0] : undefined;
}

function params(name)
{
    if (arguments.length > 0)
        return _param[name];
    else {
        var pnames = [];
        for (var p in _param)
            pnames.push(p);
        return pnames;
    }
}

function appendPrintModeToURL(sURL)
{
    // Add ?mode=print to the URL without disturbing any other parameters, e.g. glossary.html?#IOSH

    if (sURL.indexOf('?') == -1) {
        return sURL + "?mode=print";
    } 
    else {
        return sURL.substring(0, sURL.indexOf('?')) + "?mode=print" + sURL.substring(sURL.indexOf('?')+1, sURL.length+1);
    }    
}