/**
 * Funciones de la aplicacion.
 *
 * @author Sergio Montesa
 * @version $Revision: 1.00 $ $Date: 2007/04/03 00:00:00 $
 */

function addEvent(obj, evType, fn) {
 if (obj.addEventListener) {
   obj.addEventListener(evType, fn, false);
   return true;
 } else if (obj.attachEvent) {
   var r = obj.attachEvent("on" + evType, fn);
   return r;
 } else {
   return false;
 }
}

function doNothing() {
}

function getPageSize() {
  var de = document.documentElement;
  var w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
  var h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;
  arrayPageSize = [w,h];
  return arrayPageSize;
}

function imgXY(imgID) {
  var XY = new Object();
  var imgObj = document.images[imgID];
  if (document.layers) {
    XY.x = eval(imgObj).x;
    XY.y = eval(imgObj).y;
  } else {
    var x, y, tempEl;
    x = eval(imgObj).offsetLeft;
    y = eval(imgObj).offsetTop;
    tempEl = eval(imgObj).offsetParent;
    while (tempEl != null) {
      x += tempEl.offsetLeft;
      y += tempEl.offsetTop;
      tempEl = tempEl.offsetParent;
    }
    XY.x = x;
    XY.y = y;
  }
  XY.w = imgObj.width;
  XY.h = imgObj.height;
  return XY;
}

function loadingModalOn() {
  document.getElementById("loading-mask").style.height=(scrollingXY().y+windowWH().h)+"px";
  document.getElementById("loading-mask").style.visibility="visible";
  document.getElementById("loading-layer").style.top=(scrollingXY().y+(windowWH().h/2)-23)+"px";
  document.getElementById("loading-layer").style.visibility="visible";
}

function loadingModalOff() {
  document.getElementById("loading-mask").style.height="100%";
  document.getElementById("loading-mask").style.visibility="hidden";
  document.getElementById("loading-layer").style.top="0";
  document.getElementById("loading-layer").style.visibility="hidden";
}

function registerEvent(obj, evType, fn, useCapture) {
  if (typeof obj.addEventListener != 'undefined') {
    obj.addEventListener(evType, fn, useCapture);
  } else if (typeof obj.attachEvent != 'undefined') {
    obj.attachEvent('on' + evType, fn);
  } else {
    var existing = obj['on' + evType];
    if (typeof existing == "function") {
      obj['on' + evType] = function() {
        existing();
        fn();
      }
    } else {
      obj['on' + evType] = fn;
    }
  }
}

function removeEvent(obj, evType, fn, useCapture) {
  if (obj.removeEventListener) {
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent) {
    var r = obj.detachEvent("on" + evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

function scrollingXY() {
  var XY = new Object();
  var x = 0;
  var y = 0;
  if (self.pageXOffset || self.pageYOffset) {
    x = self.pageXOffset;
    y = self.pageYOffset;
  } else if ((document.documentElement && document.documentElement.scrollLeft)||(document.documentElement && document.documentElement.scrollTop)) {
    x = document.documentElement.scrollLeft;
    y = document.documentElement.scrollTop;
  } else if (document.body) {
    x = document.body.scrollLeft;
    y = document.body.scrollTop;
  }
  XY.x = x;
  XY.y = y;
  return XY
}

function windowWH() {
  var WH = new Object();
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  WH.w = myWidth;
  WH.h = myHeight;
  return WH;
}

loadingModal = function() {
  var sfEls = document.getElementsByTagName("A");
  for (var i=0; i<sfEls.length; i++) {
    if (sfEls[i].className.indexOf("loading-modal") >= 0) {
      registerEvent(sfEls[i], "click", loadingModalOn, false);
    }
  }
  var sfEls = document.getElementsByTagName("INPUT");
  for (var i=0; i<sfEls.length; i++) {
    if (sfEls[i].className.indexOf("loading-modal") >= 0) {
      registerEvent(sfEls[i], "click", loadingModalOn, false);
    }
  }
  var sfEls = document.getElementsByTagName("SELECT");
  for (var i=0; i<sfEls.length; i++) {
    if (sfEls[i].className.indexOf("loading-modal") >= 0) {
      registerEvent(sfEls[i], "change", loadingModalOn, false);
    }
  }
  var sfEls = document.getElementsByTagName("TABLE");
  for (var i=0; i<sfEls.length; i++) {
    if (sfEls[i].className.indexOf("loading-modal") >= 0) {
      var sfElsj = sfEls[i].getElementsByTagName("A");
      for (var j=0; j<sfElsj.length; j++) {
        registerEvent(sfElsj[j], "click", loadingModalOn, false);
      }
      var sfElsj = sfEls[i].getElementsByTagName("INPUT");
      for (var j=0; j<sfElsj.length; j++) {
        registerEvent(sfElsj[j], "click", loadingModalOn, false);
      }
    }
  }
}

addEvent(window, "load", loadingModal);

