function dwe(){
	d.write(String.fromCharCode.apply(this,arguments));
}
function DynamicImage(src,timing){
	this.src=src;
	this.timing=Math.round(timing/50);
}

function get(id){
	return d.getElementById(id);
}

var PublicPage={
	isIE:true
	,intervalLoadDynamicImages:0
	,intervalAnimDynamicImages:0
	,countAnimDynamicImages:0
	,loadedDynamicImages:{}
	,dynamicImageFadingTime:40

	,setOpacity:function(d,o){
		if(PublicPage.isIE)d.style.filter="alpha(opacity="+Math.round(o*100)+")";
		else d.style.opacity=o;
	}
	,isImageLoaded:function(img) {
		// During the onload event, IE correctly identifies
		// any images that
		// weren?t downloaded as not complete. Others should too. Gecko-based
		// browsers act like NS4 in that they report this incorrectly.
		if(!img.complete)return false;

		// However, they do have two very useful properties:
		//naturalWidth and
		// naturalHeight. These give the true size of the image. If it failed
		// to load, either of these should be zero.
		if(typeof img.naturalWidth!="undefined"&&img.naturalWidth==0)return false;

		// No other way of checking: assume it?s ok.
		return true;
	}
	,loadDynamicImages:function(){
		if(!isWindowLoaded)return;

		// clear this interval:
		clearInterval(PublicPage.intervalLoadDynamicImages);
		PublicPage.intervalLoadDynamicImages=null;

		var top=d.getElementById("topImage");
		for(i=0;i<dynamicImages.length;i++){
			/*var j=dynamicImageIndex+i;
			if(j>=dynamicImages.length)j-=dynamicImages.length;
			var src=dynamicImages[j];*/

			var lim=d.createElement("img");
			lim.setAttribute("id","_im"+i);
			//lim.style.zIndex=10;
			//lim.setAttribute("width",160);
			//lim.setAttribute("height",160);
			//lim.style.display="none";
			top.appendChild(lim);
			PublicPage.setOpacity(lim,0);
		}
		// start loading first image:
		var di=dynamicImages[dynamicImageIndex];
		var src=di.src;
		lim=d.getElementById("_im"+dynamicImageIndex);
		lim.setAttribute("src",src);
		if(PublicPage.isImageLoaded(lim)||PublicPage.loadedDynamicImages["im"+dynamicImageIndex]){
			//console.log("Image is already loaded:"+lim);
			PublicPage.setImageLoaded(lim,dynamicImageIndex);
		}
		else eventOn(lim,"load",PublicPage.onDynamicImageLoad);
	}
	,onDynamicImageLoad:function(e){
		var lim=eventTarget(e);
		var id=lim.getAttribute("id").substring(1);
		var j=id.substring(2);
		PublicPage.setImageLoaded(lim,j);
		//alert("Loaded: "+j+": "+lim.src);
	}
	,setImageLoaded:function(lim,j){
		PublicPage.loadedDynamicImages["im"+j]=true;
		if(j==dynamicImageIndex){
			if(PublicPage.intervalAnimDynamicImages==0){
				PublicPage.intervalAnimDynamicImages=setInterval("PublicPage.animDynamicImages()",50);
				//PublicPage.countAnimDynamicImages++;
				///alert("First loaded: "+j+": "+lim.src);
			}
		}
		PublicPage.loadNextDynamicImage(j);
	}
	,loadNextDynamicImage:function(j){
		j++;
		if(j>=dynamicImages.length)j-=dynamicImages.length;
		var di=dynamicImages[j];
		var src=di.src;
		var lim=d.getElementById("_im"+j);
		//opera.postError("loadNextDynamicImage: "+j+"PublicPage.isImageLoaded(lim): "+PublicPage.isImageLoaded(lim));
		if(lim.src!=""&&(PublicPage.isImageLoaded(lim)||PublicPage.loadedDynamicImages["im"+j])){
			//opera.postError("All images are loaded!");
			//console.log("All images are loaded!");
			return;
		}
		lim.setAttribute("src",src);
		//opera.postError("Start loading next image: "+src+":"+lim);
		eventOn(lim,"load",PublicPage.onDynamicImageLoad);
	}
	,animDynamicImages:function(){
		if(PublicPage.countAnimDynamicImages<=PublicPage.dynamicImageFadingTime){
			// fading out:
			var a=PublicPage.countAnimDynamicImages/PublicPage.dynamicImageFadingTime;
			var lim=d.getElementById("_im"+dynamicImageIndex);
			PublicPage.setOpacity(lim,a);
			PublicPage.countAnimDynamicImages++;
		}
		else if(PublicPage.countAnimDynamicImages==PublicPage.dynamicImageFadingTime+1){
			var j=dynamicImageIndex-1;
			if(j<0)j=dynamicImages.length-1;
			var lim=d.getElementById("_im"+j);
			lim.style.display="none";
			PublicPage.countAnimDynamicImages++;
		}
		else if(PublicPage.countAnimDynamicImages<PublicPage.dynamicImageFadingTime+dynamicImages[dynamicImageIndex].timing){
			// waiting cycle:
			PublicPage.countAnimDynamicImages++;
		}
		else{
			// waiting for next image:
			var j=dynamicImageIndex+1;
			if(j>=dynamicImages.length)j-=dynamicImages.length;
			var lim=d.getElementById("_im"+j);
			if(!PublicPage.isImageLoaded(lim))return;
			////opera.postError("Go to next image: "+j);
			//console.log("Go to next image: "+j);
			var prev=d.getElementById("_im"+dynamicImageIndex);
			prev.style.zIndex=10;
			PublicPage.setOpacity(lim,0);
			lim.style.display="block";
			lim.style.zIndex=11;
			PublicPage.countAnimDynamicImages=0;
			dynamicImageIndex=j;
		}
	}
	,init:function(){
		BrowserDetect.init();
		PublicPage.isIE=BrowserDetect.browser=="Explorer";

		// start loading dynamic images:
		if(d.getElementById("topImage")!=undefined){
			PublicPage.intervalLoadDynamicImages=setInterval("PublicPage.loadDynamicImages()",50);
		}
	}
}
onReadys.push(PublicPage.init);

