var x_lat = '@';
var x_eat = '&#64;'
var x_mtf = 'mailto';

String.prototype.xesh = function(){
    return this.replace(/[a-zA-Z]/g, function(c){
        return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
    });
};

function xepr(s1,s2,s3) {
  document.write('<a href="' + x_mtf + ':' + s3 + x_lat + s2 + '.' + s1 + '">' + s3 + x_eat + s2 + '.' + s1 + '</a>');
}

function xepra(s1,s2,s3) {
  document.write('<a href="' + x_mtf + ':' + s3.xesh() + x_lat + s2.xesh() + '.' + s1.xesh() + '">' + s3.xesh() + x_eat + s2.xesh() + '.' + s1.xesh() + '</a>');
}

function xeprd(s1,s2,s3,s4) {
  document.write('<a href="' + x_mtf + ':' + s3.xesh() + x_lat + s2.xesh() + '.' + s1.xesh() + '">' + s4.xesh() + '</a>');
}

function galleryLoadImageDone() {
  this.style.opacity = "1.0";
  if (this.style.cssText) {
    this.style.cssText = 'filter: alpha(opacity=100); opacity: 1.0;';
  }
}

function trueLoadGalleryImage(target, imgfn, imgw, imgh) {
  m = document.getElementById(target);
  m.src = '/showimage.php?tn=' + imgfn + '&width=' + imgw + '&height=' + imgh;
  m.onload = galleryLoadImageDone;
}

function loadGalleryImage(om, target, imgfn, imgw, imgh) {
  m = document.getElementById(target);
  if (m) {
    m.style.opacity = "0.5";
    if (m.style.cssText) {
      m.style.cssText = 'filter: alpha(opacity=50); opacity: 0.5;';
    }
    setTimeout("trueLoadGalleryImage('" + target + "', '" + imgfn + "', " + imgw + ", " + imgh + ");", 200);
    if (om.href > '') {
      m.parentNode.href = om.href;
    }
  }
  return false;
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
        if (arrReturnElements) {
	  return arrReturnElements
        } else {
          return false;
        }
}

function checkSingleRightScroll(elname) {
  mk = document.getElementById(elname);
  if (mk) {
    scrollwin = mk.id;
    scrl = mk.scrollLeft;
    le = scrollwin + '_leftend';
    re = scrollwin + '_rightend';
    if (scrl == 0) {
      if (document.getElementById(le)) {
        document.getElementById(le).className = "x_scroll_leftend";
      }
    } else {
      if (document.getElementById(le)) {
        document.getElementById(le).className = "x_scroll_leftbutton";
      }
    }
    if (scrl >= mk.scrollWidth-mk.offsetWidth) {
      if (document.getElementById(re)) {
        document.getElementById(re).className = "x_scroll_rightend";
      }
    } else {
      if (document.getElementById(re)) {
        document.getElementById(re).className = "x_scroll_rightbutton";
      }
    }
  }
}

var scrollWindowsX = [];

function checkAllRightScroll() {
  for ( var i=0, len=scrollWindowsX.length; i<len; ++i ){
    checkSingleRightScroll(scrollWindowsX[i].id);
  }
}

function scrollWindowXScroller() {
  if (scron > '') {
    scrl = document.getElementById(scron).scrollLeft
    scroc++;
    if (scroc > 30) {
      if (scrod > 0) {
        if (scrod < 8) {
          scrod++;
        }
      } else {
        if (scrod > -8) {
          scrod--;
        }
      }
      scroc = 0;
    }
    document.getElementById(scron).scrollLeft = scrl + scrod;
    checkSingleRightScroll(scron);
  }
}

var scroi = 0;
var scrod = 0;
var scroc = 0;
var scron = '';

var mousex = 0;
var mousey = 0;

function getMouseXY(e) { // works on IE6,FF,Moz,Opera7
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
  if (e)
  { 
    if (e.pageX || e.pageY) { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
      algor = '[e.pageX]';
      if (e.clientX || e.clientY) algor += ' [e.clientX] '
    } else if (e.clientX || e.clientY) { // works on IE6,FF,Moz,Opera7
      mousex = e.clientX + document.body.scrollLeft;
      mousey = e.clientY + document.body.scrollTop;
      algor = '[e.clientX]';
      if (e.pageX || e.pageY) algor += ' [e.pageX] '
    }  
  }
}

function getObjectClass(obj) {  
    if (obj && obj.constructor && obj.constructor.toString) {  
        var arr = obj.constructor.toString().match(  
            /function\s*(\w+)/);  
  
        if (arr && arr.length == 2) {  
            return arr[1];  
        }  
    }  
  
    return undefined;  
}  

function x_findPos(obj) {
  var curleft = 0;
  var curtop = 0;
  var sobj = "";
  if (obj.offsetParent) {
    do {
      sobj = sobj + obj.tagName + obj.offsetLeft + "," + obj.offsetTop + " ";
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
  }
  brstr = navigator.userAgent;
  if (brstr.indexOf('Opera') == -1) {
    curtop += 4;
  }
  return [curleft,curtop];
}

function x_enlarge(x, keep) {
  if (keep == 0) {
    showingenlargement = 1;
  } else if (keep == 1) {
    hoverenlargement = 1;
  }
  thumb = document.getElementById('enlarger' + x + "t")
  thumbpos = x_findPos(thumb);
  if ((mousex > thumbpos[0]) && (mousex < thumbpos[0] + thumb.offsetWidth) && (mousey > thumbpos[1]) && (mousey < thumbpos[1] + thumb.offsetHeight)) {
    enlarger = document.getElementById('enlarger' + x);
    if (enlarger.style.display != 'block') {
      enlarger.style.position = 'absolute';
//    enlarger.style.left = (mousex + 0) + "px";
//    enlarger.style.top = (mousey + 0) + "px";
      enlarger.style.left = (thumbpos[0] + 0) + "px";
      enlarger.style.top = (thumbpos[1] + 0) + "px";
      enlarger.style.display = 'block';
      enlarger.style.verticalAlign = 'top';
      document.getElementById('enlarger' + x + 't').style.display = 'inline';
    }
  } else {
    document.getElementById('enlarger' + x).style.display = 'none';
  }
  return true;
}

function x_unenlarge(x, keep) {
  if (keep == 0) {
    showingenlargement = 0;
  } else {
    hoverenlargement = 0;
  }
  setTimeout("x_enlarge(" + x + ", -1)", 100);
  return true;
}

function beginScrollX(elname, x) {
  scron = elname;
  scroc = 0;
  scrod = x * 1;
  if (scroi == 0) {
    scroi = setInterval("scrollWindowXScroller()", 5);
  }
}

function beginScrollNeg() {
  var name = this.id;
  var elName = name.split("_");
  beginScrollX(elName[0], -1);
}

function beginScrollPos() {
  var name = this.id;
  var elName = name.split("_");
  beginScrollX(elName[0], 1);
}

function endScrollX() {
  clearInterval(scroi);
  scroi = 0;
  scron = '';
}

function initializeScrollWindows() {
  scrollWindowsX = getElementsByClassName(document, "div", "x_scrollwindowx");
  for ( var i=0, len=scrollWindowsX.length; i<len; ++i ){
    document.getElementById(scrollWindowsX[i].id + '_leftend').onmouseover = beginScrollNeg;
    document.getElementById(scrollWindowsX[i].id + '_leftend').onmouseout = endScrollX;
    document.getElementById(scrollWindowsX[i].id + '_rightend').onmouseover = beginScrollPos;
    document.getElementById(scrollWindowsX[i].id + '_rightend').onmouseout = endScrollX;
    checkSingleRightScroll(scrollWindowsX[i].id);
  }
  checkAllRightScroll();
  chkr = setInterval("checkAllRightScroll()", 1000);
}

function storagoInit() {
  initializeScrollWindows();
  Onload_Save();
  if (window.Event && document.captureEvents) {
    document.captureEvents(Event.MOUSEMOVE);
  }
  document.onmousemove = getMouseXY;
}

Onload_Save = (window.onload) ? window.onload : new Function;
window.onload = storagoInit;
