var STANDBY     = 0;
var RENDER      = 1;
var FINISHED    = 2;
var RENDERIMAGE = 'imgRender';
var renderList  = new Array();
var renderStart = null;
var preloadProcess = STANDBY;

function replaceElement(elementId, elementAsArea){
	hideElement('partnerLinks');

	var prevId = document.getElementById('prevId').value;
	hidePreviousElements(prevId);
	
	try{
		renderImage(elementId+'asImage', elementId+'asImageSrc');
	}catch(err){}finally{
		showElement(elementId+'asDiv1');
		showElement(elementId+'asDiv2');
		hideElement('partnerLinks');
	}
	
	document.getElementById('prevId').value = elementId;
	preloadImages();
}

function preloadImages(){
	var process = preloadProcess;
	if(process==STANDBY){
		var imgs = document.getElementsByTagName('img');
		for(var i=0;i<imgs.length;i++){
			if(imgs[i].className==RENDERIMAGE){
				renderList[renderList.length]=imgs[i];
			}
		}
		preloadProcess = RENDER;
		if(renderList.length>0){
			var actualRenderIndex = 0;
			var d = new Date();
			renderStart = d.getTime();
			renderList[actualRenderIndex].src=document.getElementById(renderList[actualRenderIndex].id.split('asImage')[0]+'asImageSrc').value;
			var imagePreload = setInterval(function(){
				if(renderList[actualRenderIndex].complete){
					actualRenderIndex++;
					if(renderList.length<=actualRenderIndex){
						preloadProcess = FINISHED;
						clearInterval(imagePreload);
					}else{
						document.getElementById(renderList[actualRenderIndex].id.split('asImage')[0]+'asLoader').style.visibility='hidden';
						var isrc = renderList[actualRenderIndex].src;
						try{
							isrc = document.getElementById(renderList[actualRenderIndex].id.split('asImage')[0]+'asImageSrc').value;
						}catch(e){
						}finally{
							renderList[actualRenderIndex].src = isrc;
						}
						renderStart=d.getTime();
					}
				}
				if((renderStart + 10000) < d.getTime()){
					if((renderList[actualRenderIndex].complete==false)){
						renderList[actualRenderIndex].src='';
					}
					clearInterval(imagePreload);
				}
			},100);
		}
	}
}

function hidePreviousElements(elementId){
	try{
	hideElement(elementId+'asDiv1');
	hideElement(elementId+'asDiv2');
	abortRendering(elementId+'asImage');
	}catch(e){
		
	}
}

function hideElement(elementId){
	try{
		if(document.getElementById(elementId).style.display!='none'){
			document.getElementById(elementId).style.display='none';
		}
	}catch(e){
		
	}
	
}

function showElement(elementId){
	try{
		if(document.getElementById(elementId).style.display!=''){
			document.getElementById(elementId).style.display='';
		}
	}catch(e){
		
	}
}

function renderImage(elementId, elementIdasSrc){
	if(document.getElementById(elementId).src==document.getElementById(elementIdasSrc).value){
		document.getElementById(elementId).style.display='';
	}else{
		try{
			if(document.getElementById(elementId).style.display!=''){
				document.getElementById(elementId).src = document.getElementById(elementIdasSrc).value;
				document.getElementById(elementId).style.display='';
			}
		}catch(e){
		}	
	}
}

function abortRendering(elementId){
	try{
		if(document.getElementById(elementId).complete!=true){
			document.getElementById(elementId).style.display='none';
			document.getElementById(elementId).src='';
		}
	}catch(e){
		
	}
}

function displayPartnerLinks(){
	var prevId = document.getElementById('prevId').value;
	hidePreviousElements(prevId);
	document.getElementById('prevId').value  = '';
	showElement('partnerLinks');
}
