/*<?php
  include "includes/misc.php";
  ob_start('ob_gzhandler');
  header("Content-Type: text/css");
?>*/
var tabIndex = 10;
var formattingCodesVisible = false;
window.onload = function () {
  if(document.getElementById) {
    if(document.getElementById('menubar')) {
      createMenus();
      addDropDownIcons();
      initSearch();
      setTabIndex();
    }
    addResultClose();
  }
  if(location.href.indexOf('print=') != -1) makePrintLinks();
}
function createMenus() {
  if(!document.getElementsByTagName) return;
  var ULs = document.getElementsByTagName('UL'),menu,li;
  for(var h=0;h<ULs.length;h++) {
    menu = ULs[h];
    if(menu.className.indexOf('menu') == -1) continue;
    for(var i=0;i<menu.childNodes.length;i++) {
      li = menu.childNodes[i];
      if(li.nodeName != 'LI') continue;
      setLImouseovers(li);
      li.onmouseover = setMenuMouseover;
      li.onmouseout = setMenuMouseout;
      if(li.hasChildNodes) {
        var a;
        for(var j=0;j<li.childNodes.length;j++) {
          a = li.childNodes[j];
          if(a.nodeName == 'A') {
            a.onfocus = setMenuMouseover;
            a.onblur = setMenuMouseout;
            break;
          }
        }
      }
    }
  }
}
function setMenuMouseover() {
  var j,ul;
  var t = (this.hasChildNodes) ? this : this.parentNode;
  for(j=0;j<t.childNodes.length;j++) {
    ul = t.childNodes[j];
    if(ul.nodeName == 'UL') {
      ul.className = 'show';
      return;
    }
  }
}
function setMenuMouseout() {
  var j,ul;
  var t = (this.hasChildNodes) ? this : this.parentNode;
  for(j=0;j<t.childNodes.length;j++) {
    ul = t.childNodes[j];
    if(ul.nodeName == 'UL') {
      ul.className = 'hide';
      return;
    }
  }
}
function setLImouseovers(li) {
  var li2,li3;
  if(li.className != 'heading') { 
    li.onmouseover = function () { this.className = 'hover'; }
    li.onmouseout = function () { this.className = ''; }
  }
  if(li.hasChildNodes) {
    for(var i=0;i<li.childNodes.length;i++) {
      li2 = li.childNodes[i];
      if(li2.nodeName == 'UL') {
        for(var j=0;j<li2.childNodes.length;j++) {
          li3 = li2.childNodes[j];
          if(li3.nodeName == 'LI') setLImouseovers(li3);
        }
      }
    }
  }
}
function addDropDownIcons() {
  if(!document.getElementById) return;
  var x = document.getElementById('menubar'),y,z,ul,li,submenu;
  for(var i=0;i<x.childNodes.length;i++) {
    ul = x.childNodes[i];
    if(ul.nodeName != 'UL' || ul.className.indexOf('menu') == -1) continue;
    for(var j=0;j<ul.childNodes.length;j++) {
      li = ul.childNodes[j];
      if(li.nodeName != 'LI') continue;
      submenu = false;
      for(var k=0;k<li.childNodes.length;k++) {
        y = li.childNodes[k];
        if(y.nodeName != 'UL' && y.nodeName != 'A') continue;
        if(y.nodeName == 'UL') submenu = true;
        else z = y;
      }
      if(submenu) {
        if(z.className) z.className += ' drop-down';
        else z.className = 'drop-down';
      }
    }
  }
}
function initSearch() {
  if(!document.getElementById) return;
  var s = document.getElementById('search');
  s.onfocus = function () {
    this.className = 'focus';
    searchFocused = true;
    document.getElementById('search_li').onmouseout = null;
    if(!document.getElementById('close-search-menu')) {
      var x = document.createElement('DIV');
      x.id = 'close-search-menu';
      var y = document.createElement('BUTTON');
      y.onclick = function () {
        this.blur();
        var c = document.getElementById('close-search-menu');
        document.getElementById('search_ul').className = 'hide';
        c.parentNode.removeChild(c);
        return false;
      }
      y.innerHTML = '<img src="/images/x_box.png" height="10" width="10" alt="" /> Close menu';
      var z = document.createElement('BUTTON');
      z.setAttribute('type','reset');
      z.innerHTML = '<img src="/images/x_box.png" height="10" width="10" alt="" /> Clear Search';
      z.onclick = function () {document.getElementById('search').focus();}
      x.appendChild(z);
      x.appendChild(y);
      this.parentNode.appendChild(x);
    }
  }
  s.onblur = function () {
    this.className = '';
    searchFocused = false;
    document.getElementById('search_li').onmouseout = function () { 
      document.getElementById('search_ul').className = 'hide';
      var x = document.getElementById('close-search-menu');
      if(x) x.parentNode.removeChild(x);
    }
  }
}
function setTabIndex() {
  if(!document.getElementById) return;
  var x = document.getElementById('menubar'),y;
  for(var i=0;i<x.childNodes.length;i++) {
    y = x.childNodes[i];
    if(y.className == 'login' && y.firstChild.className == 'login-link') y.firstChild.setAttribute('tabindex',tabIndex++);
    else if(y.className && y.className.indexOf('menu') != -1) {
      for(var j=0;j<y.childNodes.length;j++) {
        x = y.childNodes[j];
        if(x.nodeName == 'LI') recursiveSetTabIndex(x);
      }
    }
  }
  document.getElementById('search').setAttribute('tabindex',tabIndex++);
}
function recursiveSetTabIndex(li) {
  var x,y;
  for(var i=0;i<li.childNodes.length;i++) {
    x = li.childNodes[i];
    if(x.nodeName == 'A') x.setAttribute('tabindex',tabIndex++);
    else if(x.nodeName == 'UL') {
      for(var j=0;j<x.childNodes.length;j++) {
        y = x.childNodes[j];
        if(y.nodeName == 'LI') recursiveSetTabIndex(y);
      }
    }
  }
}
function validateForm(form,errorElement) {
  if(!document.createElement) return true;
  if(!errorElement) errorElement = form;
  var ok = true,x;
  ok = recurseInputs(form,ok);
  if(!ok) {
    x = document.createElement('SPAN');
    x.className = 'error';
    x.innerHTML = 'Please fill in the fields outlined in red. They are required.';
    errorElement.appendChild(x);
  }
  return ok;
}
function recurseInputs(x,ok) {
  if(((x.nodeName == 'INPUT' && (x.getAttribute('type') == 'text' || x.getAttribute('type') == 'password')) || x.nodeName == 'TEXTAREA') && x.className != 'optional') {
    x.className = '';
    if(x.value == '') {
      x.className = 'error';
      ok = false;
      x.onchange = function () {
        if(this.value != '') this.className = '';
        else this.className = 'error';
      }
    }
  }
  else {
    var y;
    for(var i=0;i<x.childNodes.length;i++) {
      y = x.childNodes[i];
      ok = recurseInputs(y,ok);
    }
  }
  return ok;
}
function showLegalMarkup(button) {
  if(!(document.createElement && document.getElementById && document.getElementsByTagName)) {
    alert('Your web browser doesn\'t support the necessary Javascript.\nPlease use the latest version of your browser.');
    return;
  }
  var text = '<style type="text/css"><!--\ntable.markup, table.markup th, table.markup td {\nborder:1px solid;\npadding:3px;\nmargin:0;\nbackground:white;\nfont-size:90%;\n}\ntable.markup th {\ntext-align:center;\nfont-weight:bold;\nbackground:#87a8b9;\n}\ntable.markup td {\nbackground:#ccf;\n}\ntable.markup {\nwidth:100%;\nborder:0;\npadding-bottom:10px;\n}\n--></style>\n';
  text += '<table class="markup">\n<tr>\n<th colspan="3">To apply formatting, surround the text you want to be formatted with the code listed below. HTML is not allowed.</th>\n</tr>\n<tr>\n<th>Task</th>\n<th>Code</th>\n<th>Example</th>\n</tr>\n<tr>\n<td>Bold text</td>\n<td><code>[b]</code>&hellip;<code>[/b]</code></td>\n<td>Regular text. <code>[b]</code><b>Bold text</b><code>[/b]</code>.</td>\n</tr>\n<tr>\n<td>Italic text</td>\n<td><code>[i]</code>&hellip;<code>[/i]</code></td>\n<td>Regular text. <code>[i]</code><i>Italic text</i><code>[/i]</code>.</td>\n</tr>\n<tr>\n<td>Links</td>\n<td><code>[link <i>URL</i>]</code>.<wbr />.<wbr />.<code>[/link]</code></td>\n<td>Regular text. <code>[link http:/'+'/www.foo.com]</code><span class="anchor" onclick="alert(\'This is not a real link. It goes nowhere.\')">Linked text</span><code>[/link]</code>.</td>\n</tr>\n<tr>\n<td>Main Heading</td>\n<td><code>=====</code>.<wbr />.<wbr />.<code>=====</code></td>\n<td>Regular text.<br />\n<code>=====</code>Heading<code>=====</code><br />\nMore text. Note the five equal signs in a row.</td>\n</tr>\n<tr>\n<td>Subheading</td>\n<td><code>-----</code>.<wbr />.<wbr />.<code>-----</code></td>\n<td>Regular text.<br />\n<code>-----</code>Heading<code>-----</code><br />\nMore text. Note the five hyphens in a row.</td>\n</tr>\n</table>';
  var div = document.createElement('DIV');
  div.className = 'markup';
  div.id = 'markup';
  div.innerHTML = text;
  
  if(formattingCodesVisible) {
    x = document.getElementById('markup');
    x.parentNode.removeChild(x);
    x = document.getElementsByTagName('BUTTON');
    for(var i=0;i<x.length;i++) {
      if(x[i].innerHTML == '<b>Hide</b> formatting codes') x[i].innerHTML = 'Show formatting codes';
    }
    formattingCodesVisible = false;
  }
  else {
    var x = document.getElementsByTagName('H2')[0];
    x.parentNode.insertBefore(div,x.nextSibling);
    x = document.getElementsByTagName('BUTTON');
    for(var i=0;i<x.length;i++) {
      if(x[i].innerHTML == 'Show formatting codes') x[i].innerHTML = '<b>Hide</b> formatting codes';
    }
    formattingCodesVisible = true;
  }
}
function addResultClose() {
  if(!(document.createElement && document.getElementById && document.getElementById('result'))) return;
  var x = document.getElementById('result');
  var y = document.createElement('BUTTON');
  y.setAttribute('type','button');
  y.setAttribute('tabindex','1');
  y.innerHTML = '<img src="/images/x_box.png" alt="" height="10" width="10" /> Close';
  y.onclick = function() {
    var x = document.getElementById('result');
    x.parentNode.removeChild(x);
  }
  x.insertBefore(y,x.firstChild);
}
function makePrintLinks() {
  if(!document.getElementsByTagName) return;
  var x = document.getElementsByTagName('A'),y,z,t,c;
  t = document.getElementsByTagName('H1')[0];
  y = t.innerHTML;
  t.innerHTML = '<img src="/images/logo_print.gif" height="24" width="24" alt="Logo" style="vertical-align:top;padding-right:1em;" /> '+y+'&mdash;Print Edition';
  for(var i=0;i<x.length;i++) {
    y = x[i];
    if(!y.getAttribute('href')) continue;
    z = y.getAttribute('href');
    z = absoluteURL(z);
    c = y.innerHTML;
    t = document.createElement('SPAN');
    t.innerHTML = c + ' <span style="font-size:75%;color:#666">(Link: '+z+')</span>';
    y.parentNode.replaceChild(t,y);
    i--;
  }
  makePageURL();
  setTimeout(function () {window.print()},500);
}
function absoluteURL(rel) {
  if(rel.indexOf('http://') == 0 || rel.indexOf('https://') == 0 || rel.indexOf('mailto:') == 0) return rel;
  if(rel.indexOf('../') != -1) return rel;
  
  var abs = location.href,stop;
  var q = abs.indexOf('?');
  var h = abs.indexOf('#');
  
  if(rel.indexOf('/') == 0) {
    stop = abs.indexOf('/') -1;
    return abs.substring(0,stop) + rel;
  }
  if(rel.indexOf('?') == 0) {
    if(q == -1) {
      if(h == -1) return abs + rel;
      else return abs.substring(0,h) + rel;
    }
    else return abs.substring(0,q) + rel;
  }
  if(rel.indexOf('#') == 0) {
    if(h == -1) return abs + rel;
    else return abs.substring(0,h) + rel;
  }
  if(rel.indexOf('./') == 0) {
    stop = abs.lastIndexOf('/')
    if(stop = -1) stop = abs.length -1;
    if(h == -1) 
    return abs.substring(0,stop+1) + rel.substring(1,rel.length-1);
  }
  
  if(h != -1) abs = abs.substring(0,h);
  if(q != -1) abs = abs.substring(0,q);
  return abs.substring(0,abs.lastIndexOf('/')+1) + rel;
}
function makePageURL() {
  var x,count = 0;
  var url = location.href;
  var query = url.substring(url.indexOf('?')+1,url.length);
  url = url.substring(0,url.indexOf('?')+1);
  while(query.indexOf('%7C') != -1) {
    x = query.indexOf('%7C');
    query = query.substring(0,x) + '|' + query.substring(x+3,query.length);
  }
  var vars = new Array();
  var vars2 = new Array();
  vars = query.split('&');
  var seenBefore = '';
  for(var i=0;i<vars.length;i++) {
    if(seenBefore.indexOf(vars[i]) == -1 && vars[i].indexOf('print') == -1 && vars[i].indexOf('result') == -1) {
      vars2[count++] = vars[i];
      seenBefore += vars[i];
    }
  }
  query = '';
  for(i=0;i<vars2.length;i++) query += vars2[i] + '&';
  query = query.substring(0,query.length - 1);
  url += query;
  if(url.lastIndexOf('?') == url.length - 1) url = url.substring(0,url.length - 1);
  x = document.getElementById('footer');
  x.innerHTML += ' This page may be accessed from the Internet at the following address: <b>' + url + '</b>';
}

