var i = 0;

var usrWidth = 0;
var usrHeight = 0;
if (typeof(window.innerWidth)=='number') {
//Non-IE
	usrWidth = window.innerWidth;
	usrHeight = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
//IE 6+ in 'standards compliant mode'
	usrWidth = document.documentElement.clientWidth;
	usrHeight = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
//IE 4 compatible
	usrWidth = document.body.clientWidth;
	usrHeight = document.body.clientHeight;
}

var scrOfX = 0;
var scrOfY = 0;
if (typeof(window.pageYOffset)=='number') {
//Netscape compliant
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
//DOM compliant
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
}

document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) {
			retnode.push(elem[i]);
		}
	}
	return retnode;
}

function setTableSpacers() {
	var boxes = document.getElementsByClassName('box');
	var firstBox = boxes[0];
	var lastBox = boxes[boxes.length-1];
	var slWidth = Math.round((window.usrWidth/2)-(firstBox.offsetWidth/2));
	var srWidth = Math.round((window.usrWidth/2)-(lastBox.offsetWidth/2));
	document.getElementById('spacer-left').style.setProperty('width', slWidth+'px', '');
	document.getElementById('spacer-right').style.setProperty('width', srWidth+'px', '');
}

function scrollToElement(theElement){

  var selectedPosX = 0;
  var selectedPosY = 0;		        
  while(theElement != null){
    selectedPosX += theElement.offsetLeft;
    selectedPosY += theElement.offsetTop;
    theElement = theElement.offsetParent;
  }		                  		      
 window.scrollTo(selectedPosX,selectedPosY);

}

function initScroll(eId,direction) {
	if (!(undefined===window.scrollDelay)) {
		clearInterval(scrollDelay);
	}
	if(document.getElementById(eId)!=null) {
		anchorPos = findPos(document.getElementById(eId));
		targetPos = Math.round(anchorPos[0]-((window.usrWidth-(document.getElementById(eId).offsetWidth))/2));
		switch(direction) {
			case 'left':
				scrollDelay = setInterval('pageScrollLeft()', 50);
			break;
			case 'right':
				scrollDelay = setInterval('pageScrollRight()', 50);
			break;
			default:
			break;
		}
	}
}

function pageScrollRight() {
	var easeOut = Math.floor((targetPos-window.pageXOffset)/3);
	window.scrollBy(easeOut,0);
    if (easeOut<=0) {
		clearInterval(scrollDelay);
    }
}

function pageScrollLeft() {
	var easeOut = Math.floor((targetPos-window.pageXOffset)/3);
	window.scrollBy(easeOut,0);
    if (easeOut>=0) {
		clearInterval(scrollDelay);
    }
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	return [curleft,curtop];
	}
}      

function detectNext(className) {
	var objByClass = document.getElementsByClassName(className);
	for (i=0;i<allByClass.length;i++) {
		if(findPos(objByClass[i])[0]>Math.round(window.pageXOffset+(window.usrWidth/2))) {
			return className+'-'+i;
		}
	}
}

function KeyCheck(e) {
	var evtobj = window.event ? event : e; //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
	var KeyID = evtobj.keyCode;
	switch(KeyID) {
		case 37:
			i--;
			initScroll('box-'+i,'left');
		break;
		case 39:
			i++;
			initScroll('box-'+i,'right');
		break;
		case 38:
			i = 0;
			initScroll('box-0','left');
		break;
		case 40:
			i = document.getElementsByClassName('box').length-1;
			initScroll('box-'+i,'right');
		break;
		default:
		break;
   }
}

document.onkeydown = KeyCheck;