﻿/*
Scripting provided by www.hesido.com
*/
if (document.getElementById && document.getElementsByTagName) {
if (window.addEventListener) window.addEventListener('load', initAnims, false);
else if (window.attachEvent) window.attachEvent('onload', initAnims);
}

function initAnims() {
classChange(document.getElementById('docbody'),'scriptactive','noscript');


var contElements=getElemsByClassName(document,'div','imagedisplay');

for (var j=0; contElement = contElements[j]; j++) {
	//if (contElement.className.match(RegExp("\\bnoframe\\b"))) continue;
	var animElements = contElement.getElementsByTagName('a');
	for(var i=0; animElement = animElements[i]; i++) { 
		animElement.bgAnim = { 
		cPos:[0,0], 
		pUnit:['px','%'], 
		cFrame:0, 
		mFrame: 3, 
		dPos:[-82,0], 
		mSec:15 
		}
	animElement.onmouseover = backPosAnimF;
	animElement.onmouseout = backPosAnimR;
	}
}
function backPosAnimF() { 
    doBackPosAnim(this,this.bgAnim,this.bgAnim.cFrame, this.bgAnim.mFrame); 
}
function backPosAnimR() { 
    doBackPosAnim(this,this.bgAnim,this.bgAnim.cFrame, 0); 
}



var animElements = document.getElementById('navwrap').getElementsByTagName('a');
for(var i=0; i<animElements.length; i++) {
	animElements[i].bgFade= {
	cCol:[23,41,50,211,217,213],
	tCol:[175,233,255,23,41,51],
	rCol:[23,41,50,211,217,213]
	}
	
	animElements[i].opFade= {
	cOp:95,
	tOp:75,
	rOp:95
	}
	
	animElements[i].onmouseover = bgColChange;
	animElements[i].onmouseout = bgColRestore;
	}


	function bgColChange() {
		doBgFade(this,this.bgFade,this.bgFade.cCol, this.bgFade.tCol, 8, 15, 0.8);
		doOpFade(this,this.opFade,this.opFade.cOp, this.opFade.tOp, 4,15,1);
	}
	
	function bgColRestore() {
		doBgFade(this,this.bgFade,this.bgFade.cCol, this.bgFade.rCol, 35, 15, 0.8);
		doOpFade(this,this.opFade,this.opFade.cOp, this.opFade.rOp, 10,15,1);
	}
	
	
}

function doBorderFade(elem,vrH,startRGB,endRGB,steps,intervals,powr) {
//Animcode by www.hesido.com
	if (vrH.intID) window.clearInterval(vrH.intID);
	var actStep = 0;
	vrH.intID = window.setInterval(
		function() {
			vrH.cCol = [
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr),
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr),
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)
				];
			elem.style.borderColor = "rgb("+
				vrH.cCol[0]+","+
				vrH.cCol[1]+","+
				vrH.cCol[2]+")";
			actStep++;
			if (actStep > steps) window.clearInterval(vrH.intID);
		}
		,intervals)
}

function doBgFade(elem,vrH,startRGB,endRGB,steps,intervals,powr) {
//Animcode by www.hesido.com
	if (vrH.intID) window.clearInterval(vrH.intID);
	var actStep = 0;
	vrH.intID = window.setInterval(
		function() {
			vrH.cCol = [
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr),
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr),
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr),
				easeInOut(startRGB[3],endRGB[3],steps,actStep,powr),
				easeInOut(startRGB[4],endRGB[4],steps,actStep,powr),
				easeInOut(startRGB[5],endRGB[5],steps,actStep,powr)
				];
			elem.style.backgroundColor = "rgb("+
				vrH.cCol[0]+","+
				vrH.cCol[1]+","+
				vrH.cCol[2]+")";
			elem.style.color = "rgb("+
				vrH.cCol[3]+","+
				vrH.cCol[4]+","+
				vrH.cCol[5]+")";
			actStep++;
			if (actStep > steps) window.clearInterval(vrH.intID);
		}
		,intervals)
}

function doBackPosChange(elem,vrH,startPos,endPos,steps,intervals,powr) {
//Animcode by www.hesido.com
	if (vrH.intID) window.clearInterval(vrH.intID);
	var actStep = 0;
	vrH.intID = window.setInterval(
		function() {
			vrH.cPos = [
				easeInOut(startPos[0],endPos[0],steps,actStep,powr),
				easeInOut(startPos[1],endPos[1],steps,actStep,powr)
				];
			elem.style.backgroundPosition = vrH.cPos[0]+vrH.pUnit[0]+' '+vrH.cPos[1]+vrH.pUnit[1];
			actStep++;
			if (actStep > steps) window.clearInterval(vrH.intID);
		}
		,intervals)
}

function doOpFade(elem,vrH,startPos,endPos,steps,intervals,powr) {
//Animcode by www.hesido.com
	if (vrH.intID) window.clearInterval(vrH.intID);
	var actStep = 0;
	vrH.intID = window.setInterval(
		function() {
			vrH.cOp = easeInOut(startPos,endPos,steps,actStep,powr);
			elem.style.opacity = vrH.cOp/100;
//			elem.style.filter = 'alpha(opacity='+vrH.cOp+')';
			actStep++;
			if (actStep > steps) window.clearInterval(vrH.intID);
		}
		,intervals)
}


function doBackPosAnim(elem,vrH,startFrm,endFrm) { 
//Animcode by www.hesido.com 
    if (vrH.intID) window.clearInterval(vrH.intID); 
    var actStep = 0, steps = Math.abs(endFrm - startFrm)+1; 
    vrH.intID = window.setInterval( 
        function() { 
            vrH.cFrame = easeInOut(startFrm,endFrm,steps,actStep,1); 
            vrH.cPos = [ 
                vrH.cFrame*vrH.dPos[0], 
                vrH.cFrame*vrH.dPos[1] 
                ]; 
            elem.style.backgroundPosition = vrH.cPos[0]+vrH.pUnit[0]+' '+vrH.cPos[1]+vrH.pUnit[1]; 
            actStep++; 
            if (actStep > steps) window.clearInterval(vrH.intID); 
        } 
        ,vrH.mSec) 
}

function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {
//Generic Animation Step Value Generator By www.hesido.com
	totalSteps = Math.max(totalSteps,1)
	var delta = maxValue - minValue;
	var stepp = minValue+(Math.pow(((1 / totalSteps)*actualStep),powr)*delta);
	return Math.ceil(stepp)
}

function classChange(elem,addClass,remClass) {
//Add + remove classnames function by www.hesido.com
	if (!elem.className) elem.className = '';
	var clsnm = elem.className;
	if (addClass && !clsnm.match(RegExp("\\b"+addClass+"\\b"))) clsnm = clsnm.replace(/(\S$)/,'$1 ')+addClass;
	if (remClass) clsnm = clsnm.replace(RegExp("(\\s*\\b"+remClass+"\\b(\\s*))*","g"),'$2');
	elem.className=clsnm;
	}

function getElemsByClassName(elem,elType,classString) {
//Retrieve all specified childs of elements by given class, www.hesido.com
	if (typeof(elem) == 'string') elem = document.getElementById(elem);
	if (elem == null) return false;
	var regExer = new RegExp("\\b"+classString+"\\b"), clsnm, retArray = new Array(), key = 0;
	var elems=elem.getElementsByTagName(elType);
	for (var i=0, pusher; pusher=elems[i];i++) {
	if (pusher.className && pusher.className.match(regExer)) {
		retArray[key] = pusher; key++;
		}
	}
return retArray;
}

/* debug code  */
function showError(str) {
if (window.opera) opera.postError('|'+str+'|');
else alert('|'+str+'|');
}

