if (window.addEventListener)  // MOZILLA
	window.addEventListener('DOMMouseScroll', cntrWheel, false);
window.onmousewheel = document.onmousewheel = cntrWheel;

reqArr=new Array();
reqs=new Array();
reqsResponses=new Array();
reqsHeaders=new Array();

var kolecko = 0;
var AnimBoxes = new Array();
var scrollAreas=new Array();
var Obj = new Array();
var ObjFade = new Array();
var maxObj = new Array();
var ObjActiveTrans = new Array();
var ObjStehuj = new Array();
var ObjAnimCas = new Array();
var ObjAnimDoba = new Array();
var GUIParsed = false;
var setInfoCntrl = new Array();
//skrolovani
var mainscrollSpeed=10;
var scrolling=true;
var crossobj = new Array();
var posunovani = false;

AnimBoxes['boxScrollContent']='box';
Obj['box']=1;

var xhrActive = false;
function AjaxCntr(){};

AjaxCntr.VERSION = "${project.version}";

var _AjaxCntr_HAS_DOM_IMPLEMENTATION = document.implementation && true;
var _AjaxCntr_HAS_DOM_CREATE_DOCUMENT = _AjaxCntr_HAS_DOM_IMPLEMENTATION && document.implementation.createDocument;
var _AjaxCntr_HAS_DOM_FEATURE = _AjaxCntr_HAS_DOM_IMPLEMENTATION && document.implementation.hasFeature;
var _AjaxCntr_IS_MOZ = _AjaxCntr_HAS_DOM_CREATE_DOCUMENT && _AjaxCntr_HAS_DOM_FEATURE;
var _AjaxCntr_IS_SAFARI = (navigator.userAgent && navigator.vendor && (navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1 || navigator.vendor.indexOf("Apple") != -1));
var _AjaxCntr_IS_IE = document.all && window.ActiveXObject && navigator.userAgent.toLowerCase().indexOf("msie") > -1  && navigator.userAgent.toLowerCase().indexOf("opera") == -1;

// IE initialization
if(_AjaxCntr_IS_IE){
    // used to store the most recent ProgID available out of the above
    var _AjaxCntr_DOM_PROGID = "";
    var _AjaxCntr_XMLHTTP_PROGID = "";
    var _AjaxCntr_DOM_XMLWRITER = "";
    AjaxCntr.pickRecentProgID = function (idList){
        // found progID flag
        var bFound = false;
        for(var i=0; i < idList.length && !bFound; i++){
            try{
                var oDoc = new ActiveXObject(idList[i]);
                o2Store = idList[i];
                bFound = true;
            }catch (objException){
                // trap; try next progID
            };
        };
        if (!bFound) {
            throw "Could not retreive a valid progID of Class: " + idList[idList.length-1]+". (original exception: "+e+")";
        };
        idList = null;
        return o2Store;
    };
    // pick best available MSXML progIDs
    _AjaxCntr_DOM_PROGID = null;
    _AjaxCntr_THREADEDDOM_PROGID = null;
    _AjaxCntr_XSLTEMPLATE_PROGID = null;
    _AjaxCntr_XMLHTTP_PROGID = null;

    (function(){
	if(typeof ActiveXObject == "function" && typeof XMLHttpRequest == "undefined"){
		XMLHttpRequest = function(){
			var self = this;
			var props = "readyState,responseText,responseXML,status,statusText".split(",");
			this.readyState  = 0;
       		if(!_AjaxCntr_XMLHTTP_PROGID){
                _AjaxCntr_XMLHTTP_PROGID = AjaxCntr.pickRecentProgID(["Msxml2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
            };
			this.__request__ = new ActiveXObject(_AjaxCntr_XMLHTTP_PROGID);
			this.__request__.onreadystatechange = function(){
				for(var i=0;i<props.length;i++){
					try{
						self[props[i]] = self.__request__[props[i]]
					}catch(e){
					}
				}
				self.onreadystatechange();
				self.readyState == 4; // && self.onload();
			}
			this.onreadystatechange = function(){};
		}
		var methods = "open,abort,send,setRequestHeader,getResponseHeader,getAllResponseHeaders".split(",");
		try {
			var make_method = function(name){
				XMLHttpRequest.prototype[name] = function(){
					var params = new Array(arguments.length);
					for(var i=0;i<params.length;i++) params[i] = "_"+i;
					return Function(
						params.join(","),
						["return this.__request__.",name,"(",params.join(","),")"].join("")
					).apply(this,arguments);
				}
			};
		}	
		catch(e) {
			//handle error
		}
		for(var i=0;i<methods.length;i++) make_method(methods[i]);
	}

	})();

}	    
function getEl(el) {
	return document.getElementById(el);
}


function showText(co) {
	var co='http://www.immunology.cz/php/load.php?sekce=' + co +'';
	xmlLoad(co,"xhrHome","fillPodminky");
}
function showTexts(co) {
	var co='http://www.immunology.cz/php/load.php?sekce=' + co +'&lang=cze';
	xmlLoad(co,"xhrHome","fillPodminky");
}
function showTextsa(co) {
	var co='http://www.immunology.cz/php/load.php?sekce=' + co +'&lang=en';
	xmlLoad(co,"xhrHome","fillPodminky");
}
function admin(co) {
	if (co==1) {
		alert();
		getEl('admin').style.visibility="visible";
		getEl('admin').style.display="block";
	}
	if (co==2) {
		getEl('admin').style.visibility="hidden";
		getEl('admin').style.display="none";
	}

}

function efekt(co) {
	getEl('kdo').style.backgroundPosition="0px 46px";
	getEl('disk').style.backgroundPosition="0px 50px";
	getEl('texty').style.backgroundPosition="0px 53px";
	getEl('gb').style.backgroundPosition="0px 46px";
	getEl('foto').style.backgroundPosition="0px 58px";
	getEl('konc').style.backgroundPosition="0px 47px";
	getEl('list').style.backgroundPosition="0px 49px";
	getEl('merch').style.backgroundPosition="0px 50px";
	getEl('kult').style.backgroundPosition="0px 49px";
	getEl('visit').style.backgroundPosition="0px 54px";

	getEl(co).style.backgroundPosition="0px 0px";
}
function showText1e(co) {
	getEl('kdo').style.backgroundPosition="0px 46px";
	getEl('disk').style.backgroundPosition="0px 50px";
	getEl('texty').style.backgroundPosition="0px 53px";
	getEl('gb').style.backgroundPosition="0px 46px";
	getEl('foto').style.backgroundPosition="0px 58px";
	getEl('konc').style.backgroundPosition="0px 47px";
	getEl('list').style.backgroundPosition="0px 49px";
	getEl('merch').style.backgroundPosition="0px 50px";
	getEl('kult').style.backgroundPosition="0px 49px";
	getEl('visit').style.backgroundPosition="0px 54px";

	getEl(co).style.backgroundPosition="0px 0px";
	var coo='http://www.immunology.cz/php/load.php?sekce=' + co +'&lang=en';
	var dd='xhr' + co + '';
	xmlLoad(coo,dd,"fillPodminky");
}
function showLyr(co,jak) {
	var coo='http://www.immunology.cz/php/load.php?sekce=' + co +'&det=' + jak +'';
	var dd='xhr' + co + '';
	xmlLoad(coo,dd,"fillPodminky");
}

function showAdmin(co,id) {
	var coo='http://www.immunology.cz/php/load.php?co=' + co +'&det=' + id +'&administrace=1';
	var dd='xhradmin';
	xmlLoad(coo,dd,"fillPodminky");
}


function fillPodminky(i,jmeno) {
	getEl('obsah').innerHTML=reqsResponses[jmeno];
	setPage('box','boxScrollContent1');
}
function CXMLReq(type, xhr) {
	this.type = type;
	this.xhr=xhr;
}
function xmlhttpChange() {
	//alert(reqs.length);
	for (var i=0; i < reqs.length; i++) {
		
		if (reqs[i].xhr.readyState==4) {			
		  if (reqs[i].xhr.status==200 || reqs[i].xhr.status==304) {
		  	alert('xhr odpovida...'+i);
		  	jmeno=reqs[i].xhr.getResponseHeader('respName');
		  	nextFce=reqArr[jmeno] + '(' + i + ',"' + jmeno + '")';
		  	alert(jmeno);
		  	alert(nextFce);
		  	hedry=reqs[i].xhr.getResponseHeader('respHeaders');
		  	hlavy=hedry.split(',');
		  	reqsHeaders[jmeno]=null;
		  	reqsHeaders[jmeno]=new Array();
		  	for (var k=0; k<hlavy.length; k++) {
		  		reqsHeaders[jmeno][hlavy[k]]=reqs[i].xhr.getResponseHeader(hlavy[k]);	
		  	}
		  	reqsResponses[jmeno]=null;
			reqsResponses[jmeno]=reqs[i].xhr.responseText;
			alert(nextFce);
		  	setTimeout(nextFce,1);
			xhrActive = false;
			reqs.splice(i,1);i--;
		  } else {
		  	getElement('msgArea').innerHTML='Connection problem. Status: ' + reqs[i].xhr.status;
		  	if(getElement('msg_Area').style.display!='block') { getElement('msg_Area').style.display='block'; }
		  	if(getElement('msg_Area').style.visibility!='visible') { getElement('msg_Area').style.visibility='visible'; }
		  	reqs.splice(i,1);i--;
		  }

		}

	}
}

function xmlLoad(url,name,act) {
/*	if (xhrActive) {
		loop='xmlLoad("' + url + '","' + name + '","' + act + '");';
		setTimeout(loop,50);
		return false;
	}*/
	var xhr=false;
	xrhActive=true;
	var sw="";
	xhr = new XMLHttpRequest();
	reqArr[name]=act;
	if (xhr) {
		
		xhr.onreadystatechange=xmlhttpChange;
		if (window.opera) {
			 sw=true;
		} else {
			sw=true;
		}
		var xmlreq = new CXMLReq('',xhr);
		reqs.push(xmlreq);

	    xhr.open("GET",url,sw);
	    if (_AjaxCntr_IS_MOZ) { xhr.send(null); }
		else { xhr.send(); }
		//xhr.send(null);
	} else if (!xhr) {
		window.status="XMLHTTP poblem...";
	}
}




function rozsvit(obj) {
	document.getElementById(obj).style.backgroundPosition="0px 0px";
}
function zhasni(obj,kolik) {
	var str="0px " + kolik + "px";
	document.getElementById(obj).style.backgroundPosition=""+str+"";
}

function doTrans(ob1,ob2) { 
 
    var timer = 0; 
    speed=12;     
    
    //fade in image 
    for(i = 0; i <= 100; i++) {
        a=100-i; 
        setTimeout("changeOpac(" + a + ",'" + ob1 + "')",(timer * speed)); 
        setTimeout("changeOpac(" + i +  ",'" + ob2 + "')",(timer * speed)); 
        timer++; 
    } 
} 
function doTrans(ob1,ob2) { 
 
    var timer = 0; 
    speed=12;     
    
    //fade in image 
    for(i = 0; i <= 100; i++) {
        a=100-i; 
        setTimeout("changeOpac(" + a + ",'" + ob1 + "')",(timer * speed)); 
        setTimeout("changeOpac(" + i +  ",'" + ob2 + "')",(timer * speed)); 
        timer++; 
    } 
} 
function hotovo() {
    var timer = 5; 
    speed=12;     
    
    //fade in image 
    for(i = 0; i <= 100; i++) {
        a=100-i; 
        setTimeout("changeOpac(" + a + ",'hotovo')",(timer * speed)); 
        timer++; 
   }
setTimeout("document.getElementById('celek').style.zIndex='2'",700);
setTimeout("document.getElementById('hotovo').style.width='1px'",710);
setTimeout("document.getElementById('hotovo').style.height='1px'",720);

}

function strt() {
	setTimeout("doTrans('prvni','nulty')",3000);
	setTimeout("doTrans('nulty','prvni')",2000);
	setTimeout('strt()',5000);
}
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 
function getElement(elid) {
	return document.getElementById(elid);
}


function checkScrollEl(event) {
	var roll=0;
//	var rollPattern = new RegExp(/roll/);
	
	if (document.body.addEventListener) {
  		trida=event.target.parentNode.className;
 	} else {
 		trida=event.srcElement.className;
 	}

 	if (window.opera) {
 		trida=event.target.className;
		
 	}
	var fOccur = trida.search(/roll/);
	if (fOccur>=0) {
		rollPart=trida.substr(fOccur);
		numOccur = rollPart.search(/\d/);
		if (numOccur>=0) roll=rollPart.substr(numOccur);
	}
	

	var returnEl = "";
	var path = "";
	for (var i=0; i<parseInt(roll); i++) {
		path=path + '.parentNode';
	}
	if (document.body.addEventListener) {
		returnEl = 'event.target.parentNode' + path;
 	} else {
		returnEl='event.srcElement' + path;
 	}

 	if (window.opera) {
		returnEl='event.srcElement' + path;
		
 	}


	return returnEl;
}

function cntrWheel(event) {
	if (!event)
		event = window.event;


	var element = checkScrollEl(event);
	id=eval(element + ".id");	

	var delta = 0;

	if (event.wheelDelta)
	{
		delta = event.wheelDelta/120;
/*		if (window.opera)
			delta = -delta;
*/
	} else if (event.detail)
	{
		delta = -event.detail / 3;
	}
	
	
	if (delta && scrollAreas[id]) {
		scrollMe(delta,id);		
		if (event.preventDefault)
			event.preventDefault();
		event.returnValue = false;
	}
	
	if (document.body.addEventListener) {
  		trida=event.target.parentNode.className;
 	} else {
 		trida=event.srcElement.className;
 	}

 	if (window.opera) {
 		trida=event.target.className;
		
 	}
 	
	if (delta && trida=='kosik_kolik') {
		inputChg(delta,id);		
		if (event.preventDefault)
			event.preventDefault();
		event.returnValue = false;
	}
		
}

function scrollMe(delta,id)  {
    key = id.substring(0,id.search(/\d/));
    if (delta > 0) {
		mainscrollSpeed=40;
		mainmoveup(AnimBoxes[key]);
		if (AnimBoxes[key]) mainstopscroll(AnimBoxes[key]);
		mainscrollSpeed=10;
    } else {
		mainscrollSpeed=40;
		mainmovedown(AnimBoxes[key]);
		if (AnimBoxes[key]) mainstopscroll(AnimBoxes[key]);
		mainscrollSpeed=10;
    }
}

function setScrollArea(content) {
//	scrollAreas[content]=true;
	crossobj[content]=new Array(2);
	crossobj[content][0] = getElement(content);
	crossobj[content][1] = parseInt(crossobj[content][0].scrollHeight)-
						   parseInt(crossobj[content][0].parentNode.offsetHeight);
	if (parseInt(crossobj[content][0].parentNode.offsetHeight)<parseInt(crossobj[content][0].scrollHeight))
		scrollAreas[content]=true;
		
}


function mainmovedown(co){

 	divid=co + 'ScrollContent' + Obj[co];
	oldScrollSpeed=mainscrollSpeed;
	inter=33;

	if (window.moveupvar) {clearTimeout(moveupvar);}
	if (parseInt(crossobj[divid][0].style.top)>-crossobj[divid][1]) {
		if (parseInt(crossobj[divid][0].style.top)+crossobj[divid][1] < mainscrollSpeed) {
			mainscrollSpeed=parseInt(crossobj[divid][0].style.top)+crossobj[divid][1];
		}
		crossobj[divid][0].style.top=parseInt(crossobj[divid][0].style.top)-mainscrollSpeed+"px";
		crossobj[divid][0].top-=mainscrollSpeed;
	}
	fce="mainmovedown('"+co+"')";
	
	movedownvar=setTimeout(fce,inter);
	scrollSpeed=oldScrollSpeed;
}

function mainmoveup(co){
 	divid=co + 'ScrollContent' + Obj[co];
	oldScrollSpeed=mainscrollSpeed;
	inter=33;

	if (window.movedownvar) {clearTimeout(movedownvar);}
	if (parseInt(crossobj[divid][0].style.top) < 0 ) {
		
		if (parseInt(crossobj[divid][0].style.top)>-mainscrollSpeed ) {
			mainscrollSpeed=-parseInt(crossobj[divid][0].style.top);
		}
		crossobj[divid][0].style.top=parseInt(crossobj[divid][0].style.top)+mainscrollSpeed+"px";
		crossobj[divid][0].top+=mainscrollSpeed;
	}	
	fce="mainmoveup('"+co+"')";
	moveupvar=setTimeout(fce,inter);
	scrollSpeed=oldScrollSpeed;
}

function mainstopscroll(co){
	if (window.moveupvar) {clearTimeout(moveupvar);}
	if (window.movedownvar) {clearTimeout(movedownvar);}
}

function mainmovetop(co){
 	divid=co + 'ScrollContent' + Obj[co];
	mainstopscroll(co);
	crossobj[divid][0].style.top=0+"px";
}

function mainmovebottom(co) {
 	divid=co + 'ScrollContent' + Obj[co];
	mainstopscroll(co);
	if (crossobj[divid][1]>0)
		crossobj[divid][0].style.top="-"+crossobj[divid][1]+"px";
}


function setPage(obj, el) {
		process=document.getElementById(el);
		processChild(process,0);
		setScrollArea(el);
		mainmovetop(obj);
}
function getXMLchildNodes(XMLnode, isColl) {
	if(XMLnode.childNodes) {
		return XMLnode.childNodes;
	} else {
		var aktChild = XMLnode.firstChild;
		var XMLchildNodes = new Array();
		
		while(aktChild) {
			XMLchildNodes[XMLchildNodes.length] = aktChild;
			aktChild = aktChild.nextSibling;
		}
		
		if(isColl) XMLchildNodes = new collection(XMLchildNodes);
		return XMLchildNodes;
	}
}

function collection(XMLchildNodes) {
	this.XMLchildNodes = XMLchildNodes;
	this.length = XMLchildNodes.length;
	this.item = item;
}

function item(i) {
	return this.XMLchildNodes[i];
}

function processChild(element,level) {

	try {
		element.className += ' roll'+ level;
	}
	catch (err) {
		//handle error
	}		
	for (var x=0; getXMLchildNodes(element,false)[x]; x++) {
		processChild(getXMLchildNodes(element,false)[x], level+1);
	}
}


