










/**
  * Launches a pop-up window
  * @param url
  */
function launchPopup(url, name, width, height, resizable, scrollbars, toolbar, location) {
  popup_window = window.open(url, name, 'width='+width+',height='+height+',resizable='+resizable+',scrollbars='+scrollbars+',toolbar='+toolbar+',location='+location+'');
  popup_window.focus();
}


/*** Menu functions ***********************************************************/
var nodes = new Array();
var nodesCount = -1;
var timeout = 0;
var inMenu = false;

function startMenuHover() {
  if(document.getElementById)  {
    var menu = document.getElementById('menu');
    menu.onmouseover = function (e) {
      inMenu = true;
    }

    menu.onmouseout = function (e) {
      inMenu = false;
    }

    var level2 = getElementsWithClassName('a', 'level-2');
    for (var i = 0; i < level2.length; i++) {
      onMouseOver(level2[i]);
      onMouseOut2(level2[i], nodesCount++);
    }
    var level3 = getElementsWithClassName('a', 'level-3');
    for (var i = 0; i < level3.length; i++) {
      onMouseOver(level3[i]);
      onMouseOut(level3[i], nodesCount++);
    }
  }
}

function onMouseOver(node) {
  node.onmouseover = function(e) {

    var li = this.parentNode.parentNode;

    var items = li.parentNode.childNodes;
    for (var i = 0; i < items.length; i++) {
      var lists = items[i].childNodes;
      for (var j = 0; j < lists.length; j++) {
        var ul = lists[j];
        if (ul.nodeName == "UL") {
          items[i].className=items[i].className.replace(" over", "");
        }
      }
    }

    if (hasClass(li, 'level-2')) {
      var level4 = getElementsWithClassName('li', 'level-3');
      for (var i = 0; i < level4.length; i++) {
        var item = level4[i];
        item.className = item.className.replace(" over", "");
      }
    }

    var children = li.childNodes;
    for (var j = 0; j < children.length; j++) {
      var ul = children[j];
      if (ul.nodeName == "UL") {
        li.className += " over";
        break;
      }
    }
  }
}

function onMouseOut(node, index) {
  nodes[index] = node.parentNode.parentNode;

  var lists = nodes[index].childNodes;
  for (var j = 0; j < lists.length; j++) {
    var ul = lists[j];
    if (ul.nodeName == "UL") {
      ul.onmouseout = function(e) {
        if (!isAncestor(ul, target(e))) {
          timeout = setTimeout("replace(" + index + ");", 2973);
        }
      }
      break;
    }
  }
}

function target(e) {
  var result;
  if (e != null) {
    result = e.relatedTarget;
  }
  else {
    result = window.event.toElement;
  }
  return result;
}

function onMouseOut2(node, index) {
  var li = node.parentNode.parentNode;
  nodes[index] = li;

  nodes[index].onmouseout = function(e) {
    if (!isAncestor(li, target(e))) {
      timeout = setTimeout("replace(" + index + ");", 1973);
    }
  }
}

function isAncestor(parent, node) {
  if (parent == node.parentNode) {
    return true;
  }
  else if (node.parentNode != null) {
    return isAncestor(parent, node.parentNode);
  }
  return false;
}

function replace(index) {
  var li = nodes[index];

  if (inMenu) {
    return;
  }

  var children = li.childNodes;
  for (var j = 0; j < children.length; j++) {
    var ul = children[j];
    if (ul.nodeName == "UL") {
      li.className=li.className.replace(" over", "");
      inMenu = false;
      break;
    }
  }
}
/*********************************************************** Menu functions ***/



/*** Cookie functions *********************************************************/
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days*24*60*60*1000));
    var expires = ";expires=" + date.toGMTString();
  }
  else {
    expires = "";
  }
  document.cookie = name + "=" + value + expires + ";domain=independent.co.uk;path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
/********************************************************* Cookie functions ***/


/*** CSS Switcher *************************************************************/
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function initStyle(){
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

function saveStyleCookie() {
  var title = getActiveStyleSheet();
  createCookie("style", title, 100);
}

/************************************************************* CSS Switcher ***/


/*** Column Switcher **********************************************************/
function setupArticle() {
  if (document.getElementById) {
    var content = document.getElementById('bodyCopyContent');

    var column1 = document.createElement('div');
    var column2 = content.cloneNode(true);

    column1.className = 'articleColumn1';
    column2.className = 'articleColumn2';

    column1.setAttribute('id', 'articleColumn1');
    column2.setAttribute('id', 'articleColumn2');

    content.parentNode.appendChild(column1);
    content.parentNode.appendChild(column2);

    while(column1.offsetHeight < column2.offsetHeight) {
      column1.appendChild(column2.firstChild);
    }

    content.style.display = "none";
    column1.style.display = "none";
    column2.style.display = "none";
  }
}

var oneColumnActiveGfx    = 'http://www.independent.co.uk/template/ver/gfx/single_column_icon.gif';
var oneColumnInActiveGfx  = 'http://www.independent.co.uk/template/ver/gfx/single_column_icon_grey.gif';

var twoColumnsActiveGfx   = 'http://www.independent.co.uk/template/ver/gfx/double_column_icon.gif';
var twoColumnsInActiveGfx = 'http://www.independent.co.uk/template/ver/gfx/double_column_icon_grey.gif';


function twoColumns() {
  document.getElementById('bodyCopyContent').style.display = 'none';
  document.getElementById('articleColumn1').style.display = 'block';
  document.getElementById('articleColumn2').style.display = 'block';

  document.getElementById('oneColumnGfx').src  =  oneColumnActiveGfx;
  document.getElementById('twoColumnsGfx').src = twoColumnsInActiveGfx;
}

function oneColumn() {
  document.getElementById('bodyCopyContent').style.display = 'block';
  document.getElementById('articleColumn1').style.display = 'none';
  document.getElementById('articleColumn2').style.display = 'none';

  document.getElementById('oneColumnGfx').src  =  oneColumnInActiveGfx;
  document.getElementById('twoColumnsGfx').src = twoColumnsActiveGfx;
}

function setColumns(mode) {
  var column = readCookie("columns");
  if (column == null) {
    column = mode;
  }
  if (column == "oneColumn") {
    oneColumn();
  }
  if (column == "twoColumns") {
    twoColumns();
  }
}

function initColumns() {
  if (document.getElementById) {
    if (document.getElementById('bodyCopyContent') != null) {
      var column = readCookie("columns");
      if (column == "oneColumn") {
        oneColumn();
      }
      if (column == "twoColumns") {
        twoColumns();
      }
    }
  }
}
/********************************************************** Column Switcher ***/


function getDateString() {
  var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  var today  = new Date();
  var year  = today.getYear() ,   month = today.getMonth(),
  dayOfWk  = today.getDay(), dayOfMonth=today.getDate() ,
  hh  = today.getHours(),  mm = today.getMinutes();

  if(year < 1000)             year += 1900;
  if (hh < 10 )      hh= "0" + hh;
  if (mm< 10 )   mm = "0" + mm;

  var dateStr = dayOfMonth + " "+ months[month] + " "+ year + "  "+ hh+ ":" + mm;

  return dateStr;

}

var contextSectionId = '7543';

function printWindow() {
  bV = parseInt(navigator.appVersion);
  if (bV >= 4) window.print();
}

function hasClass(object, className) {
  if (!object.className) return false;
  return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
}

function getElementsWithClassName(elementName, className) {
  var allElements = document.getElementsByTagName(elementName);
  var elemColl = new Array();
  for (var i = 0; i< allElements.length; i++) {
    if (hasClass(allElements[i], className)) {
      elemColl[elemColl.length] = allElements[i];
    }
  }
  return elemColl;
}

function firefoxFix() {
  var elements = getElementsWithClassName('div', 'ad');

  for (var i = 0; i < elements.length; i++) {
    var spacer = document.createElement('div');
    var element = elements[i];


    element.parentNode.insertBefore(spacer, element.nextSibling);

    var top = element.offsetTop;
    element.style.position="absolute";
    element.style.top = top + 'px';
    element.style.visibility = "visible";

    spacer.style.height=(element.offsetHeight)+ 'px';
  }
}

/*** Event handlers ***********************************************************/
window.onload = function(e) {
  initStyle();
  startMenuHover();
  
    
      firefoxFix();
    
  
}

window.onunload = function(e) {
  saveStyleCookie();
}
/*********************************************************** Event handlers ***/

