// frames.js -- 13 September 2004 -- Various functions to handle framesets and windows.

var loadingframe;
var newWin;

function ownFrame() {
  if (top.frames.length != 0) {
    newWin = window.open("http://www2.glos.ac.uk/ucu/");
    this.href = parent.history.go(-1);
    return false;
  }
  return true;
}

function inFrame(inav, ipage) {
  if (top.frames.length == 0) {
    var targ = 'http://www2.glos.ac.uk/ucu/index.htm?nav=' + inav + '&page=' + ipage;
    top.location.replace(targ);
    loadingframe = true;
  } else {
    loadingframe = false;
  }
}

function getFrames() {
  var args = getArgs();
  if (args.nav) nav = args.nav;
  if (args.page) page = args.page;

  nav = checkNavbar(nav);
  page = checkMain(page);
}

function checkNavbar(nav) {
  if (nav == 'pubs' || nav == 'ph' || nav == 'test') {
    inav = nav + '/';
  } else {
    inav = '';
  }
  return inav;
}

function checkMain(page) {
  if (page.match(/\.htm$/) || page.match(/\.asp$/)) {
    ipage = page;
  } else {
    ipage = 'intro.htm';
  }
  return ipage;
}

function getArgs() {
  var args = new Object();
  var query = location.search.substring(1);
  var pairs = query.split('&');

  for (var i = 0; i < pairs.length; i++) {
    var pos = pairs[i].indexOf('=');
    if (pos == -1) continue;
    var argname = pairs[i].substring(0, pos);
    var value = pairs[i].substring(pos+1);
    args[argname] = unescape(value);
  }
  return args;
}

function setNavbar(inav) {
  top.navbar_loaded = false;
  if (!loadingframe) {
    if (inav == '' || inav == 'pubs' || inav == 'test') {
      if (inav != '') inav = inav + '/';
      if (top.navbar.location.pathname != '/ucu/' + inav + 'navbar.htm') {
        top.navbar_flipped = '';
        top.navbar.location.replace('/ucu/' + inav + 'navbar.htm');
      }
    }
  }
}

function openPDF(pdf, size) {
  openDocument(pdf, size)
}

function openDocument(docURL, size) {
  var filetype = '';
  var info = '';
  var ownWindow = '_blank';

  var ext = docURL.toLowerCase();
  if (ext.match(/\.pdf$/)) {
    filetype = 'an Adobe PDF file';
    info = '.  To view it you must have already installed Adobe Acrobat Reader on your computer';
  } else if (ext.match(/\.doc$/)) {
    filetype = 'a Microsoft Word document';
  } else if (ext.match(/\.xls$/)) {
    filetype = 'a Microsoft Excel spreadsheet';
  } else {
    filetype = 'a separate file';
    info = ' (' + docURL + ')';
  }

  var msg = 'You are about to download ' + filetype + info + '.\n\n';
  if (size <= 0) {
    msg = msg + 'The size of this file is not known.  It might download quickly, or it might take some time.\n';
  } else {
    msg = msg + 'This file is ' + size + 'Kb in size.  The probable download time will depend on the quality of your Internet connection:\n    ';

    var modem = size / 3;
    if (modem <= 1) {
      msg = msg + '1 second';
    } else {
      modem = Math.floor(modem) + 1;
      msg = msg + modem + ' seconds';
    }
    msg = msg + ' over a standard modem connection\n    ';

    var adsl = size / 60;
    if (adsl <= 1) {
      msg = msg + '1 second';
    } else {
      adsl = Math.floor(adsl) + 1;
      msg = msg + adsl + ' seconds';
    }
    msg = msg + ' over a broadband connection (eg ADSL or cable)\n    ';

    var lan = size / 120;
    if (lan <= 1) {
      msg = msg + '1 second';
    } else {
      lan = Math.floor(lan) + 1;
      msg = msg + lan + ' seconds';
    }
    msg = msg + ' over a LAN connection (eg within the University)\n';
  }

  if (window.confirm(msg + '\nDo you wish to proceed?')) {
    var width = 740;
    var height = 500;
    var left = Math.max(0, (window.screen.width - width) / 2);
    var top = Math.max(0, (window.screen.height - height) / 2 - 40);
    var screenX = left;
    var screenY = top;
    var opts = 'left=' + left + ',screenX=' + screenX + ',top=' + top + ',screenY=' + screenY + ',width=' + width + ',height=' + height + ',status=yes,resizable=yes';

    if (ownWindow) {
//      newWin = window.open(docURL, ownWindow, opts);
      newWin = window.open(docURL, ownWindow);
    } else {
      location.href = docURL;
    }
  }
  return false;
}

function openMinimalWindow(docURL, width, height) {
  var left = Math.max(0, (window.screen.width - width) / 2);
  var top = Math.max(0, (window.screen.height - height) / 2 - 40);
  var screenX = left;
  var screenY = top;
  var opts = 'left=' + left + ',screenX=' + screenX + ',top=' + top + ',screenY=' + screenY + ',width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes';

  newWin = window.open(docURL, 'documentWindow', opts);
}

