
function initEvents () {
  changeLinks();
  writeLinks();
  writePlatform('platform', 'game', false);
  writePlatform('cplatform', 'cgame', true);
}

// Change non-metafaq links to open in a new window
function changeLinks () {
	for(var e=0; e<document.links.length; e++){
		var linkRef = document.links[e];
		if (linkRef.href.indexOf("mailto") == -1 && linkRef.hostname.indexOf("metafaq.com") == -1 && linkRef.hostname.indexOf("support.rockstargames.com") == -1 && linkRef.hostname.indexOf("support.take2games.com") == -1){
      linkRef.target = "_blank";
		}
	}
}

// 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 var expires = "";
  document.cookie = name+"="+value+expires+"; 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;
}

function writeLinks () {
  var printIt = document.getElementById('print');
  if (printIt) {
    var printBtnLink = document.createElement('a');
    printBtnLink.setAttribute('href', '#');
    // set onclicks - have to perform function else auto triggers the behaviour
    printBtnLink.onclick = function() { window.print(); return false;}
    var printBtnText = document.createTextNode('Print');
    printBtnLink.appendChild(printBtnText);
    printIt.appendChild(printBtnLink);
  }

  var goBack = document.getElementById('go-back');
  if (goBack) {
    var showBack = readCookie('showBack');
    if (showBack == 'true'){
      var backBtnLink = document.createElement('a');
      backBtnLink.setAttribute('href', '#');
      backBtnLink.onclick = function() { history.go(-1); return false;}
      var backBtnText = document.createTextNode('< Go back to previous page');
      backBtnLink.appendChild(backBtnText);
      goBack.appendChild(backBtnLink);

      eraseCookie('showBack');
    }
  }
}

function writePlatform (platform, game, contact) {
  // put onchange on platform select
  var element = document.getElementById(platform);
  if (element) {
    element.onchange = function() { changePlatform(game, element.value, '', contact);}
    if (element.value) {
      changePlatform(game, element.value, document.getElementById(game).value, contact);
    }
  }
}

function changePlatform (game, val, selected, contact) {
  var element  = document.getElementById(game);
  if (element){
    element.options.length = 0;
    element.options[0] = new Option('All Games','');
    if (!val) {
      for (var i = 0; i < area.length; i++) {
        var id;
        if (area[i].parent == 'default') {
          if (contact) {
            id = area[i].id;
          } else {
            if (area[i].id == "multiple") {
              id = area[i].id;
            } else {
              id = area[i].id + '*' + area[i].category;
            }
          }
          element.options[element.options.length] = new Option(area[i].name,id);
        }
      }
    } else {
      for (var i = 0; i < area.length; i++) {
        var id;
        if (area[i].parent == val) {
          if (contact) {
            id = area[i].id;
          } else {
            if (area[i].id == "multiple") {
              id = area[i].id;
            } else {
              id = area[i].id + '*' + area[i].category;
            }
          }
          element.options[element.options.length] = new Option(area[i].name,id);
          if (selected == id) {
            element.options.selectedIndex = element.options.length - 1; 
          }
        }
      }
    }
  }
}
