function findPositionX( obj ) {
  if( obj.offsetParent ) {
    for( var posX = 0; obj.offsetParent; obj = obj.offsetParent ) {
      posX += obj.offsetLeft;       
    }
    return [ posX];
  } else {
    return [ obj.x ];
  }
}
function findPositionY( obj ) {
  if( obj.offsetParent ) {
    for( var posY = 0; obj.offsetParent; obj = obj.offsetParent ) {
      posY += obj.offsetTop;       
    }
    return [ posY];
  } else {
    return [ obj.y ];
  }
}

//next two functions return scrolling offsets
function getScrollX() {
  var scrOfX = 0;
  if( typeof( window.pageXOffset ) == 'number' ) {
    //Netscape compliant    
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant    
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX ];
}
function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;    
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;    
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;   
  }
  return [ scrOfY ];
}


// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// By Scott Andrew
function addEvent(obj, evType, fn, useCapture) {
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent) {
    var r = obj.attachEvent('on' + evType, fn);
    return r;
  } else {
    obj['on' + evType] = fn;
  }
}

var isIE = !window.opera && navigator.userAgent.indexOf('MSIE') != -1;

addEvent(window, 'load', scrollInit, false);
addEvent(window, 'load', scrollInitB, false);

function scrollInit() {//adds the listeners to the objects
  if (!document.getElementsByTagName)
    return;
  var allLinks = document.getElementsByTagName('a');
  for (var i = 0; i < allLinks.length; i++) {
    var link = allLinks[i];
    if ((' ' + link.className + ' ').indexOf(' swap ') != -1) {
		 
      addEvent(link, 'mouseover', overListener, false);
      addEvent(link, 'mousemove', moveListener, false);
      addEvent(link, 'mouseout',  outListener,  false);    
		}     
  }
}
function scrollInitB() {//adds the listeners to the objects
  if (!document.getElementsByTagName)
    return;
  var allLinks = document.getElementsByTagName('a');
  for (var i = 0; i < allLinks.length; i++) {
    var link = allLinks[i];
    if ((' ' + link.className + ' ').indexOf(' swapL ') != -1) {
		 
      addEvent(link, 'mouseover', overListener, false);
      addEvent(link, 'mousemove', moveListenerL, false);
      addEvent(link, 'mouseout',  outListener,  false);    
		}     
  }
}

function attVal(element, attName) {
  return parseInt(element.getAttribute(attName));
}
function outListener(ev) {
 	var extra=document.getElementById('holder');	
	extra.style.visibility='hidden';
	theChild=extra.firstChild;
	extra.removeChild(theChild);	
}
function overListener(ev) {  
  var e = window.event ? window.event : ev;
  var t = e.target ? e.target : e.srcElement;
	
	thumb=t.src;	
	large=thumb.replace('-sm','');	
  
	var bigImage=document.createElement('img');
              bigImage.src=large;
	bigImage.style.border="solid 1px white";
	var extra=document.getElementById('holder');
	extra.appendChild(bigImage);	
	
              var extra=document.getElementById('holder');
	
	extra.style.visibility='visible';
}

function moveListener(ev) {	
  var e = window.event ? window.event : ev;
  var t = e.target ? e.target : e.srcElement;	
	
	var extra=document.getElementById('holder');	
            
	hoverWidth = t.getAttribute("widthL");
	hoverHeight = t.getAttribute("heightL");
		
	scrollY = getScrollY(t);
	scrollX = getScrollX(t);
		
	var posY = findPositionY(t);
	var posX = findPositionX(t);

	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(document.body.offsetHeight, window.innerHeight);
  
	positionLeft=posX-Number(hoverWidth);
	
	var viewerBottom=Number(scrollY) + Number(docheight);
	var yDown=Number(viewerBottom) - Number(posY);
	
	if (isIE) 
	    if (Number(posY) < Number(scrollY)) {positionTop=scrollY}
	        else if
	            (Number(yDown) < Number(hoverHeight)) {positionTop=Number(posY) - (Number(hoverHeight) - Number(yDown) )}
	    else {positionTop=posY}
	else {
	    if (Number(posY) < Number(scrollY)) {positionTop=scrollY}
	        else if
	            (Number(yDown) < Number(hoverHeight)) {positionTop=Number(posY) - (Number(hoverHeight) - Number(yDown) )}
	            else {positionTop=posY};}
	
	extra.style.left=positionLeft + 'px';
	extra.style.top=positionTop + 'px';
}


function moveListenerL(ev) {	
  var e = window.event ? window.event : ev;
  var t = e.target ? e.target : e.srcElement;	
	
	var extra=document.getElementById('holder');	
            
	hoverWidth = t.getAttribute("widthL");
	hoverHeight = t.getAttribute("heightL");
		
	scrollY = getScrollY(t);
	scrollX = getScrollX(t);
		
	var posY = findPositionY(t);
	var posX = findPositionX(t);

	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(document.body.offsetHeight, window.innerHeight);
  
	positionLeft=Number(posX)+Number(95);
	
	var viewerBottom=Number(scrollY) + Number(docheight);
	var yDown=Number(viewerBottom) - Number(posY);
	
	if (isIE) 
	    if (Number(posY) < Number(scrollY)) {positionTop=scrollY}
	        else if
	            (Number(yDown) < Number(hoverHeight)) {positionTop=Number(posY) - (Number(hoverHeight) - Number(yDown) )}
	    else {positionTop=posY}
	else {
	    if (Number(posY) < Number(scrollY)) {positionTop=scrollY}
	        else if
	            (Number(yDown) < Number(hoverHeight)) {positionTop=Number(posY) - (Number(hoverHeight) - Number(yDown) )}
	            else {positionTop=posY};}
	
	extra.style.left=positionLeft + 'px';
	extra.style.top=positionTop + 'px';
}
function truebody(){
return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
