var refBox;
var refPlus;
var refPlusList;
var refMinus;
var listTypeThumb = 0;
var onloadReady = false;
var aktSelectedImage = "preview";
var viewPortTop = 0;
var ie6 = false;
var refBor;
var list_type_text;
var materialCnt;
if (navigator.appVersion.indexOf("MSIE 6.0") != "-1") {
	ie6 = true;
}


function init(listTypeThumbOn) {
	onloadReady = true;
	listTypeThumb = listTypeThumbOn;
	if (listTypeThumb) {
		refBox = document.getElementById("materialShow");
	} else {
		refPlusList = document.getElementById("detailPlusList");	
	}
	if (!list_type_text) {
		refPlus = document.getElementById("detailOverlayPlus");
	}
	refMinus = document.getElementById("detailOverlayMinus");
	checkMboxActive();
	replaceCheckbox('rememberMe','rememberMeImage','images/checkBoxChecked.gif','images/checkBoxUnchecked.gif');
	showSearchLabelOnEmptyField();
}

var blockLogin = false;
function displayLogin() {
	blockLogin = true;
	var ref = document.getElementById("login");
	ref.style.display = "block";
}

function closeDelayedLogin() {
	if (!blockLogin) {
		var ref = document.getElementById("login");
		ref.style.display = "none";
	}
	blockLogin = false;
}

function blockLoginOverlay() {
	blockLogin = true;
}

function openDetailOverlay() {
	var ref = document.getElementById("login");
	ref.style.display = "none";
	showInactiveLayer();
	var ref = document.getElementById("detailOverview");
	ref.style.display="block";
}

function positionOverlay(ref, overlayHeight) {	
	var viewPortHeight = getViewPortDimensions().height;
	var top = Math.max((viewPortHeight - overlayHeight) / 2, 20)
	top = top - 24;
	ref.style.top = top + 'px';	
	viewPortTop = top;
}

function getViewPortHeight() {	
	var viewPortHeight = getViewPortDimensions().height;
	return viewPortHeight;
}

function showInactiveLayer() {
	var ref = document.getElementById("inactiveSite");
	ref.style.height=getSiteHeight()+"px";
	ref.style.display="block"	
	
	//var ref2 = document.getElementById("detailOverview");
	//ref2.style.display = "block";
	//positionOverlay(ref2);
}

function hideInactiveLayer() {
	var imprintRef = document.getElementById("imprintOverlay");	
	if (imprintRef) {
		imprintRef.style.display = "none";
	}	
	var eulaRef = document.getElementById("eulaOverlay");	
	if (eulaRef) {
		eulaRef.style.display = "none";
	}	
	var ref = document.getElementById("inactiveSite");
	ref.style.display = "none";
}

function getViewPortDimensions(){
	
	var viewportwidth;
	var viewportheight;

	if (typeof window.innerWidth != 'undefined') {
		viewportwidth = window.innerWidth, viewportheight = window.innerHeight
	}	
	else  if (typeof document.documentElement != 'undefined' &&
		typeof document.documentElement.clientWidth !=
		'undefined' &&
		document.documentElement.clientWidth != 0) {
			viewportwidth = document.documentElement.clientWidth, viewportheight = document.documentElement.clientHeight
	}	
	else {
			viewportwidth = document.getElementsByTagName('body')[0].clientWidth, viewportheight = document.getElementsByTagName('body')[0].clientHeight
	}	
	var dimensions = {};
	dimensions.width = viewportwidth;
	dimensions.height = viewportheight;
	return dimensions;
}


var previewBigSrcSet = false;
var appBigSrcSet = false;
function openBigDetailOverlay() {
	var ref = document.getElementById("inactiveSite");
	var y = getSiteHeight();
	if (y <= 1070) {
		y = 1084;
	}
	if (!listTypeThumb) {
		ref.style.height=y+"px";
	}
	ref.style.display="block";
	var ref = document.getElementById("detailBigOverview");
	ref.style.display="block";

	if (aktSelectedImage == "preview") {
		if (!previewBigSrcSet) {
			var refPreviewBigSrc = document.getElementById("previewBigSrc");
			refPreviewBigSrc.src = previewBigSrc;
			previewBigSrcSet = true;
		}
	} else {
		if (!appBigSrcSet) {
			var refAppBigSrc = document.getElementById("appBigSrc");
			refAppBigSrc.src = appBigSrc;	
			appBigSrcSet = true;
		}
	}
	
	if (!list_type_text) {
		var ref2 = document.getElementById("detailOverview");		
		ref2.style.display="none";
		ref.style.top = ref2.style.top;
	}
	else {
		positionOverlay(ref, 813)
	}
}

isIE=document.all;hideMbox
isNN=!document.all&&document.getElementById;
isN4=document.layers;
function getSiteHeight() {
	var ref = document.getElementById("bg_u");
	var h = (ref.offsetTop + 0);
	if (listTypeThumb) {
		h = h+50;
	} else {
		h = h+50;	
	}

	y_h = 0;
	if (isIE) {
		y_h = document.body.clientHeight;
	} else {
		y_h = window.innerHeight;
	}
	//alert("footer y="+h+" windown height="+y_h);

	if (h < y_h) {
		h = y_h;
	}
	//alert("footer y="+h+" windown height="+y_h);
	return h;	
}

function closeOverlay() {
	if (!list_type_text) {
		var ref = document.getElementById("detailOverview");
		if (ref) {
			ref.style.display = "none";
		}
	}
	var ref = document.getElementById("detailBigOverview");
	if (ref) {
		ref.style.display = "none";
	}
	hideInactiveLayer();
	var refStandardOverlay = document.getElementById("standardOverlay");
	if (refStandardOverlay) {
		refStandardOverlay.style.display="none";
	}
	var refMessageOverlay = document.getElementById("messageOverlay");
	if (refMessageOverlay) {
		refMessageOverlay.style.display="none";
	}
	
	if (typeof markedThumb != 'undefined') {
		if (markedThumb) {
			var thumbIdRef = document.getElementById("mt"+markedThumb);
			thumbIdRef.style.display = "none";
		}
	}
	markedThumb = 0;
	var ref = document.getElementById("registerOverlay");
	if (ref) {
		ref.style.display = "none";
	}
}

function showPreviewImage() {
	aktSelectedImage = "preview";
	if (!list_type_text) {
		var ref = document.getElementById("applicationImg");
		ref.style.display = "none";
		var ref = document.getElementById("previewImg");
		ref.style.display = "block";
		var ref = document.getElementById("buttonApplicationImg");
		ref.className = "";
		var ref = document.getElementById("buttonPreviewImg");
		ref.className = "selected";
	}
	var ref = document.getElementById("applicationImgBig");
	ref.style.display = "none";
	var ref = document.getElementById("previewImgBig");
	ref.style.display = "block";
	var ref = document.getElementById("buttonApplicationImgBig");
	ref.className = "";
	var ref = document.getElementById("buttonPreviewImgBig");
	ref.className = "selected";

	if (!previewBigSrcSet) {
		var refPreviewBigSrc = document.getElementById("previewBigSrc");
		refPreviewBigSrc.src = previewBigSrc;
		previewBigSrcSet = true;
	}
}

function showPreviewImage2() {
	aktSelectedImage = "preview";
	var ref = document.getElementById("buttonApplicationImgList");
	ref.className = "";
	var ref = document.getElementById("buttonPreviewImgList");
	ref.className = "selected";
	var ref = document.getElementById("previewImgList");
	ref.style.display = "block";
	var ref = document.getElementById("applicationImgList");
	ref.style.display = "none";
	showPreviewImage();
}

function showApplicationImage() {
	aktSelectedImage = "app";
	if (!list_type_text) {
		var ref = document.getElementById("previewImg");
		ref.style.display = "none";
		var ref = document.getElementById("applicationImg");
		ref.style.display = "block";
		var ref = document.getElementById("buttonApplicationImg");
		ref.className = "selected";
		var ref = document.getElementById("buttonPreviewImg");
		ref.className = "";
	}
	var ref = document.getElementById("previewImgBig");
	ref.style.display = "none";
	var ref = document.getElementById("applicationImgBig");
	ref.style.display = "block";
	var ref = document.getElementById("buttonApplicationImgBig");
	ref.className = "selected";
	var ref = document.getElementById("buttonPreviewImgBig");
	ref.className = "";

	if (!appBigSrcSet) {
		var refAppBigSrc = document.getElementById("appBigSrc");
		refAppBigSrc.src = appBigSrc;	
		appBigSrcSet = true;
	}
}

function showApplicationImage2() {
	aktSelectedImage = "app";
	var ref = document.getElementById("buttonApplicationImgList");
	ref.className = "selected";
	var ref = document.getElementById("buttonPreviewImgList");
	ref.className = "";
	var ref = document.getElementById("previewImgList");
	ref.style.display = "none";
	var ref = document.getElementById("applicationImgList");
	ref.style.display = "block";
	showApplicationImage();
}

var blockDisplayPlusList = false;
function displayPlusList() {
	blockDisplayPlusList = true;
	if (onloadReady) {
		refPlusList.style.display = "block";
	}
}
function hidePlusList() {
	blockDisplayPlusList = false;
}

var blockDisplayPlus = false;
function displayPlus() {
	blockDisplayPlus = true;
	if (onloadReady) {
		refPlus.style.display = "block";
	}
}

function hidePlus() {
	blockDisplayPlus = false;
}

var blockDisplayMinus = false;
function displayMinus() {
	blockDisplayMinus = true;
	var ref = document.getElementById("detailOverlayMinus");
	ref.style.display = "block";
}

function hideMinus() {
	blockDisplayMinus = false;
}

function closeBigDetailOverlay() {
	var ref = document.getElementById("detailBigOverview");
	ref.style.display="none";
	var ref = document.getElementById("detailOverview");
	ref.style.display="block";
}

function closeBigDetailOverlayListView() {
	var ref = document.getElementById("detailBigOverview");
	ref.style.display="none";
	hideInactiveLayer();
}


var blockHideBox = false;
var iTimeEvent;
var lastShowPos = 0;
function showMbox(pos, name, id, starts, favourite, download) {
	if (pos != lastShowPos) {
		if (lastShowPos) {
			refBox.style.display = "none";
		}
		iTimeEvent = setTimeout("showMboxDelayed("+pos+",'"+name+"',"+id+",'"+starts+"',"+favourite+")",500);
	}
	blockHideBox = true;
	if (ie6) {
		refBor = document.getElementById("mie"+id);
		refBor.style.display="block";
	}
	var refDownloadLink = document.getElementById("downloadMLink");
	if (!download) {
		refDownloadLink.style.display = "none";
	} else {
		refDownloadLink.style.display = "block";	
	}
}

function showMboxDelayed(pos, name, id, starts, favourite) {
	if (onloadReady && blockHideBox) {
		blockHideBox = true;
		refBox.style.display="block";
		var top = 260;		 
		var l = ((pos - 1)  % 10) + 1;
		var top = 270 + parseInt((pos - 1) / 10) * 81;
		var left = (l * 81)-140;

		// daten fuellen
		var refName = document.getElementById("materialName");
		refName.innerHTML = name;
		var refRating = document.getElementById("displayRat");
		refRating.className = "displayRating "+starts;
		var refDownloadLink = document.getElementById("downloadMLink");
		refDownloadLink.setAttribute("href","download.php?id="+id);
		refDownloadLink.setAttribute("onclick","googleLogging('"+name+"')");
		var refFavouriteLink = document.getElementById("favouriteMLink");
		var refFavouriteLinkImg = document.getElementById("atf_r");
		if (favourite) {
			refFavouriteLinkImg.innerHTML = "release favorite";
			refFavouriteLink.setAttribute("href","bookmark.php?hideOverlay=1&id="+id+"&mod=list");
			refFavouriteLink.setAttribute("title","Remove from Favourites");
		} else {
			refFavouriteLinkImg.innerHTML = "add to favorites";
			refFavouriteLink.setAttribute("href","bookmark.php?hideOverlay=1&id="+id+"&mod=list");
			refFavouriteLink.setAttribute("title","Add to Favourites");
		}

		refBox.style.top=top+"px";
		refBox.style.left= left+"px";
		lastShowPos = pos;
	}
}

function hideMbox() {
	blockHideBox = false;
	window.clearTimeout(iTimeEvent);
	if (ie6) {
		refBor.style.display="none";
	}
}

function blockMBoxHide() {
	blockHideBox = true;
}

function checkMboxActive() {
	if (onloadReady) {
		if (materialCnt > 0) {
			if (!blockHideBox) {
				if (listTypeThumb) {
					refBox.style.display="none";
				}
			}
			if (!blockDisplayPlus) {
				if (!only_thumb_view && !list_type_text) {
					refPlus.style.display="none";
				}
			}
			if (!blockDisplayMinus) {
				if (!only_thumb_view) {
					refMinus.style.display="none";
				}
			}
			if (!blockDisplayPlusList && !listTypeThumb) {
				refPlusList.style.display="none";
			}
			setTimeout("checkMboxActive()", 10);
		}
	}
}

function clearSearchField(node) {
	if (onloadReady) {
		var ref = document.getElementById("searchLabel");
		if (ref) {
			ref.style.display="none";
		}
	}
}


function showSearchLabelOnEmptyField(){
	var label = document.getElementById("searchLabel");
	var text = document.getElementById("searchText");
	if (label) {
		if (!text.value.match(/\S/)) {
			label.style.display="block";
		}
	}
}

function showPager() {
	var ref = document.getElementById("pagerList");
	ref.style.display="block";
}

function hidePager() {
	var ref = document.getElementById("pagerList");
	ref.style.display="none";
}

function restoreGlobalScrollPosition(y) {
	if (y) {
		window.scrollTo(0, y);
	}
}

function patchURL(node) {
	var href = node.getAttribute("href");	
	var y = 0;
	if (isIE) {
		y = window.pageYOffset || document.documentElement.scrollTop || 0;
	} else {
		y = window.scrollY;	
	}
	href += "&akt_image="+aktSelectedImage;
	href += "&lsp="+y;
	href = href.replace(/&viewport=\d+/g, "");
	href = href.replace(/viewport=\d+/g, "");
	if (viewPortTop && !listTypeThumb) {
		href += "&viewport="+viewPortTop;	
	}	
	node.setAttribute("href", href);	
}

function closeMessageOverlay() {
	var ref = document.getElementById("messageOverlay");
	ref.style.display = "none";
	hideInactiveLayer();
}

function closeStandardOverlay() {
	var ref = document.getElementById("standardOverlay");
	ref.style.display = "none";
	hideInactiveLayer();
}


function closeOtherOverlays(overlay_message) {
	setTimeout("closeDelayedLogin()", 10);
}

function openHowTo() {
	var ref = document.getElementById("inactiveSite");
	//ref.style.height=getSiteHeight()+"px";
	ref.style.display="block"	
	var ref = document.getElementById("howtoOverlay");
	positionOverlay(ref, 468);
	ref.style.display = "block";
}

function closeHowToOverlay() {
	var ref = document.getElementById("howtoOverlay");
	ref.style.display = "none";
	hideInactiveLayer();
}


function replaceCheckbox(checkboxId,imageId,imageChecked,imageUnchecked) {
    var checkbox = document.getElementById(checkboxId);
	if (!checkbox) {
		return;
	}
	var image = document.createElement('img');
    if(checkbox.checked) {
    	image.src = imageChecked;
    } else {
		image.src = imageUnchecked;
    }
	image.id = imageId;
 	image.onclick = new Function('onCheckboxImageClick("'+checkboxId+'","'+imageId+'","' + imageChecked + '","' + imageUnchecked + '")');
    checkbox.parentNode.insertBefore(image, checkbox);
	checkbox.style.display='none';
}

function onCheckboxImageClick(checkboxId,imageId,imageChecked,imageUnchecked) {	
	var checkbox = document.getElementById(checkboxId);	
    if(checkbox.checked) {
        checkbox.checked = false;
        document.getElementById(imageId).src=imageUnchecked;
    } else {
        checkbox.checked = true;
        document.getElementById(imageId).src=imageChecked;
    }
} 

var checkBox2Checked = true;
function checkBox2(node) {
	var imgRef = document.getElementById("rememberMeImage2");
	var inpRef = document.getElementById("rememberMe2");
	if (checkBox2Checked) {
		imgRef.src="images/checkBoxUnchecked2.gif";
		checkBox2Checked = false;
		inpRef.value="0";
	} else {
		imgRef.src="images/checkBoxChecked2.gif";	
		checkBox2Checked = true;
		inpRef.value="1";
	}
}

function sendLoginForm2() {
	document.getElementById("login2").submit();
}

function openRegistration() {
	closeOverlay();

	var forumStatusUrl = "statusForum.php";

	// XML Ajax
	var xmlHttp = null;
	try {
		// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
		xmlHttp = new XMLHttpRequest();
	} catch(e) {
		try {
			// MS Internet Explorer (ab v6)
			xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			try {
				// MS Internet Explorer (ab v5)
				xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xmlHttp  = null;
			}
		}
	}
	if (xmlHttp) {
		xmlHttp.open('GET', forumStatusUrl, true);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.responseText.match(/1/g)) {
					// Online show Registration
					showInactiveLayer();
					var iFrameDivRef = document.getElementById("registerOverlay");	
					iFrameDivRef.style.display = "block";
					var iFrameRef = document.getElementById("iframe");	
					iFrameRef.src = registration_url;
				} else {
					// Ofline, show Message
					showInactiveLayer();
					var refMessageOverlay = document.getElementById("standardOverlay");
					if (refMessageOverlay) {
						refMessageOverlay.style.display = "block";
					}
				}
			}
		};
		xmlHttp.send(null);
	}


}

function closeRegistration() {
	var iFrameDivRef = window.top.document.getElementById("registerOverlay");	
	iFrameDivRef.style.display = "none";
	hideInactiveLayer();
}

function setRegisterHeight(h) {
	var refOverlayBody = document.getElementById("overlayBody");
	refOverlayBody.style.height = h+"px";
	var refIframe = document.getElementById("iframe");
	refIframe.style.height = h+"px";
	if (h < 500) {
		var refRegisterOverlay = document.getElementById("registerOverlay");		
		refRegisterOverlay.style.top = "100px";	
	} else {
		var refRegisterOverlay = document.getElementById("registerOverlay");		
		refRegisterOverlay.style.top = "16px";		
	}
}

function setRegisterHeadline(headline) {
	var refRegisterHd = document.getElementById("registerHeadline");
	refRegisterHd.innerHTML = headline;	
}

function pwdForgotten(){
	var refMessageOverlay = document.getElementById("messageOverlay");
	if (refMessageOverlay) {
		refMessageOverlay.style.display="none";
	}
	var iFrameRef = document.getElementById("iframe");	
	iFrameRef.src = urlPwdForgotten;
	var iFrameDivRef = document.getElementById("registerOverlay");	
	iFrameDivRef.style.display = "block";
}

function showImprint() {
	var imprintRef = document.getElementById("imprintOverlay");	
	imprintRef.style.display = "block";
	showInactiveLayer();
}

function showEula() {
	var eulaRef = document.getElementById("eulaOverlay");	
	eulaRef.style.display = "block";
	showInactiveLayer();
}

function closeImprint() {
	var imprintRef = document.getElementById("imprintOverlay");	
	imprintRef.style.display = "none";
	hideInactiveLayer();
}

function closeEula() {
	var eulaRef = document.getElementById("eulaOverlay");	
	eulaRef.style.display = "none";
	hideInactiveLayer();
}

function googleLogging(label) {
	if (userId) {
		label = label.replace(/ /g,"_");
		label = "/download/"+label;
		pageTracker._trackPageview(label);
	}
}

function closeCommercialNotificationLayer() {
	var commercialRef = document.getElementById("commercialOverlay");	
	commercialRef.style.display = "none";
	hideInactiveLayer();
}
