/**
 *  @fileoverview This file contains utility functions used throughout site.
 *//*
 *  Variables
 *  Functions
 *    clearErrorMsgs()
 *    openWin(uri)
 *    reloadPage()
 *    txtInputBlur(el)
 *    txtInputFocus(el)
 */

// VARIABLES

var flashErrMsg = "ERROR: Call to Flash failed";

var ftrInfoOut = new Image(60, 15);
ftrInfoOut.src = updir + "imgs/ftr_informacion.png";

var ftrInfoOver = new Image(60, 15);
ftrInfoOver.src = updir + "imgs/ftr_informacion_over.png";

var ftrRecOut = new Image(53, 15);
ftrRecOut.src = updir + "imgs/ftr_recursos.png";

var ftrRecOver = new Image(53, 15);
ftrRecOver.src = updir + "imgs/ftr_recursos_over.png";

var ftrTermOut = new Image(77, 15);
ftrTermOut.src = updir + "imgs/ftr_terminos.png";

var ftrTermOver = new Image(77, 15);
ftrTermOver.src = updir + "imgs/ftr_terminos_over.png";

var ftrConfidOut = new Image(150, 15);
ftrConfidOut.src = updir + "imgs/ftr_confidencialidad.png";

var ftrConfidOver = new Image(150, 15);
ftrConfidOver.src = updir + "imgs/ftr_confidencialidad_over.png";

var ftrLegalOut = new Image(119, 15);
ftrLegalOut.src = updir + "imgs/ftr_legales.png";

var ftrLegalOver = new Image(119, 15);
ftrLegalOver.src = updir + "imgs/ftr_legales_over.png";

var ftrComercOut = new Image(133, 15);
ftrComercOut.src = updir + "imgs/ftr_ver_comercial.png";

var ftrComercOver = new Image(133, 15);
ftrComercOver.src = updir + "imgs/ftr_ver_comercial_over.png";

var ftrEnOut = new Image(51, 15);
ftrEnOut.src = updir + "imgs/ftr_en_ingles.png";

var ftrEnOver = new Image(51, 15);
ftrEnOver.src = updir + "imgs/ftr_en_ingles_over.png";

var ftrAdaOut = new Image(89, 33);
ftrAdaOut.src = updir + "imgs/ftr_logo_ada.png";

var ftrAdaOver = new Image(89, 33);
ftrAdaOver.src = updir + "imgs/ftr_logo_ada_over.png";

var ftrAdcOut = new Image(45, 33);
ftrAdcOut.src = updir + "imgs/ftr_logo_adc.png";

var ftrAdcOver = new Image(45, 33);
ftrAdcOver.src = updir + "imgs/ftr_logo_adc_over.png";

var ftrNclrOut = new Image(60, 33);
ftrNclrOut.src = updir + "imgs/ftr_logo_nclr.png";

var ftrNclrOver = new Image(60, 33);
ftrNclrOver.src = updir + "imgs/ftr_logo_nclr_over.png";

var ftrAadeOut = new Image(55, 33);
ftrAadeOut.src = updir + "imgs/ftr_logo_aade.png";

var ftrAadeOver = new Image(55, 33);
ftrAadeOver.src = updir + "imgs/ftr_logo_aade_over.png";

/**
 *  Clears the inner HTML and hides error-message span elements.
 *
 *  @type   void
 */
function clearErrorMsgs()
{
  var msgs = document.getElementsByTagName("span");

  for (var i = 0; i < msgs.length; i++) {
    if (msgs[i].className == "error") {
      msgs[i].innerHTML = "";
    }
  }
}

var popupWin;

/**
 *  Opens a popup window and loads the uri in it.
 *
 *  @param  {String} uri
 *  @type   void
 */
function openWin(uri)
{
  try {
    popupWin.close();
  }
  catch (e) {}

  var width = (document.all) ? 504 : 486;
  var height = (window.screen.availHeight > 684) ? 684 : window.screen.availHeight;

  var features = "scrollbars,width=" + width + ",height=" + height;

  var htmlObj = document.getElementsByTagName("html")[0];

  var puX = htmlObj.clientWidth / 2 - width / 2;
  var puY = window.screen.availTop;

  popupWin = window.open(uri, "popup_win", features);
  popupWin.moveTo(puX, puY);
}

/**
 *  Wrapper for location.reload method.
 *
 *  @type   void
 */
function reloadPage()
{
  location.reload();
}

/**
 *  Event handler for window.onload and .onresize. Adjusts the height and width of the the content
 *  background and flash container. (div#mask not used on this site.)
 *
 *  @global {String} page
 *  @type   void
 */
function setSizes()
{
  var minFlashWidth = 1000;
  var minFlashHeight = 600;

  // viewport size
  var html = document.getElementsByTagName("HTML")[0];
  var vpWidth = html.clientWidth;
  var vpHeight = html.clientHeight;

  // overlay mask
//  var mask = document.getElementById("mask");

  var headerHeight = document.getElementById("header").offsetHeight;
  var footer = document.getElementById((page == "mea") ? "footer_mea" : "footer");
  var footerHeight = footer.offsetHeight;
  var dumpHeight = (document.getElementById("dump_div")) ?
    document.getElementById("dump_div").offsetHeight : 0;

  var headFootHeight = headerHeight + footerHeight + dumpHeight;

  var flashContainer = document.getElementById("flash_container");
  var contentBgId = "content_bg";
  var contentBg, flashWidth, flashHeight;

  switch (page) {
    case "mea":
      contentBgId = "mea_bg";
      break;

    default:
      break;
  }

  contentBg = document.getElementById(contentBgId);

  
  if ((flashWidth = vpWidth) < minFlashWidth) {
    if (flashContainer) {
      flashContainer.style.width = minFlashWidth + "px";
    }

    contentBg.style.width = minFlashWidth + "px";
//    mask.style.width = minFlashWidth + "px";
  }
  else {
    if (flashContainer) {
      flashContainer.style.width = flashWidth + "px";
    }

    contentBg.style.width = flashWidth + "px";
//    mask.style.width = flashWidth + "px";
  }

  if ((flashHeight = vpHeight - headFootHeight) < minFlashHeight) {
    if (flashContainer) {
      flashContainer.style.height = minFlashHeight + "px";
    }
  }
  else {
    if (flashContainer) {
      flashContainer.style.height = flashHeight + "px";
    }
  }

//  mask.style.height = html.scrollHeight + "px";
}

window.onload = setSizes;
window.onresize = setSizes;

/**
 *  On-blur event handler for text inputs: changes the background image.
 *
 *  @param  {HTMLInputElement} el
 *  @param  {HTMLImageElement} bgImg
 *  @type   void
 */
function txtInputBlur(el, bgImg)
{
  if (el.value == "") {
    el.style.backgroundImage = "url(" + bgImg.src + ")";
  }
}

/**
 *  On-focus event handler for text inputs: changes the background image.
 *
 *  @param  {HTMLInputElement} el
 *  @param  {HTMLImageElement} bgImg
 *  @type   void
 */
function txtInputFocus(el, bgImg)
{
  el.style.backgroundImage = "url(" + bgImg.src + ")";
}

