
function focusInput (elementID) {
	if (document.getElementsByName && document.getElementsByName(elementID)) {
		document.getElementsByName(elementID)[0].focus();
	}
}

function findTarget (e) {
	var target;
	
	if (window.event && window.event.srcElement)
		target = window.event.srcElement;
	else if (e && e.target)
		target = e.target;
	
	return target;
}

function getFilename () {
	return location.href.split("/")[location.href.split("/").length - 1];
}

function getGetParam (param) {
	var value = "";
	
	var pos1 = location.href.indexOf(param + '=');
	if (pos1 >= 0) {
		var pos2 = location.href.indexOf('&');
		if (pos2 >= 0) {
			value = location.href.substr(pos1 + param.length + 1, pos2 - (pos1 + param.length + 1));
		} else {
			value = location.href.substr(pos1 + param.length + 1, location.href.length);
		}
	}
	
	return value;
}

function setupBehavior () {
	if (!(document.getElementById && document.getElementsByName && document.getElementsByTagName)) return;
	
	// projekte, bauten, aktuell und wettbewerbe
	if (sectionName == 'projekte' || sectionName == 'bauten' || sectionName == 'aktuell' || sectionName == 'wettbewerbe') {
		// setup sidebar
		var sidebar = document.getElementById('sidebar');
		if (sidebar) {
			var sidebarLinks = sidebar.getElementsByTagName('a');
			
			// if no project is selected assgin event listeners
			if (projektID == 0) {
				for (var i = 0; i < sidebarLinks.length; i++) {
					var sidebarLink = sidebarLinks[i];
					sidebarLink.onmouseover = sidebarMouseover;
					sidebarLink.onmouseout =  sidebarMouseout;
					sidebarLink.onclick =     sidebarClick;
				}
			}
		}
		
		// setup image-select
		var imageSelect = document.getElementById('image-select');
		if (imageSelect) {
			var imageSelectLinks = imageSelect.getElementsByTagName('a');
			
			// if a project is selected assgin event listeners
			if (projektID > 0) {
				for (var i = 0; i < imageSelectLinks.length; i++) {
					var imageSelectLink = imageSelectLinks[i];
					imageSelectLink.onclick = imageSelectClick;
				}
			}
		}
		
		// setup projekt-delete
		var projektDelete = document.getElementsByName('projekt-delete')[0];
		if (projektDelete) {
			projektDelete.onclick = displayWarning;
		}
	}
	
	// wettbewerbe
	if (sectionName == 'wettbewerbe') {
		// setup wettbewerb-delete
		var wettbewerbDelete = document.getElementsByName('wettbewerb-delete')[0];
		if (wettbewerbDelete) {
			wettbewerbDelete.onclick = displayWarning;
		}
	}
	
	// presse
	if (sectionName == 'presse') {
		// setup artikel-delete
		var artikelDelete = document.getElementsByName('artikel-delete')[0];
		if (artikelDelete) {
			artikelDelete.onclick = displayWarning;
		}
	}
	
	// kontakt
	if (sectionName == 'kontakt') {
		var kontakName = document.getElementsByName('name')[0];
		if (kontakName) {
			if (kontakName.value == '') {
				kontakName.value = 'Name';
			}
			kontakName.onfocus = clearOnFocus;
		}
		
		var kontakEMail = document.getElementsByName('email')[0];
		if (kontakEMail) {
			if (kontakEMail.value == '') {
				kontakEMail.value = 'E-Mail';
			}
			kontakEMail.onfocus = clearOnFocus;
		}
		
		var kontakNachricht = document.getElementsByName('nachricht')[0];
		if (kontakNachricht) {
			if (kontakNachricht.value == '') {
				kontakNachricht.value = 'Nachricht';
			}
			kontakNachricht.onfocus = clearOnFocus;
		}
	}
	
	// login
	if (sectionName == 'login') {
		focusInput("name");
	}
	
	// all
	var links = document.getElementsByTagName('a');
	for (var i = 0; i < links.length; i++) {
		var link = links[i];
		if (link.className && (' ' + link.className + ' ').indexOf(' rollover ') != -1) {
			if (link.childNodes && link.childNodes.length == 1 && link.childNodes[0].nodeName.toLowerCase() == 'img') {
				link.onmouseover = mouseover;
				link.onmouseout =  mouseout;
			}
		}
	}
}

function sidebarMouseover (e) {
	// check if not clicked
	if (!(typeof sidebarClicked != 'undefined' && !sidebarClicked)) return;
	
	// check if function is loaded
	if (!self.findTarget) return;
	
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	// get link
	while (target != document.body && target.nodeName.toLowerCase() != 'a')
		target = target.parentNode;
	
	if (target.nodeName.toLowerCase() != 'a') return;
	
	var href = target.href;
	
	// get image index
	var index = href.substr(href.search(/projekt=/) + 8, href.length - 1);
	
	// get normal image
	var imageNormal = document.getElementById('image-normal');
	if (!imageNormal) return;
	
	// set new normal image
	if (!(typeof imagesArray != 'undefined' && imagesArray && imagesArray[index])) return;
	
	imageNormal.width =  imagesArray[index].width;
	imageNormal.height = imagesArray[index].height;
	imageNormal.src =    imagesArray[index].src;
	
	imageNormal.style.display = 'inline';
}

function sidebarMouseout (e) {
	// check if not clicked
	if (!(typeof sidebarClicked != 'undefined' && !sidebarClicked)) return;
	
	// get normal image
	var imageNormal = document.getElementById('image-normal');
	if (!imageNormal) return;
	
	imageNormal.style.display = 'none';
}

function sidebarClick (e) {
	sidebarClicked = true;
}

function imageSelectClick (e) {
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	// get link
	while (target != document.body && target.nodeName.toLowerCase() != 'a')
		target = target.parentNode;
	
	if (target.nodeName.toLowerCase() != 'a') return;
	
	var href = target.href;
	
	// get image index
	var index = href.substr(href.search(/bild=/) + 5, href.length - 1);
	if (isNaN(parseInt(index))) return;
	
	// get normal image
	var imageNormal = document.getElementById('image-normal');
	if (!imageNormal) return;
	
	// set new normal image
	if (!(typeof imagesArray != 'undefined' && imagesArray && imagesArray[index])) return;
	
	imageNormal.width =  imagesArray[index].width;
	imageNormal.height = imagesArray[index].height;
	imageNormal.src =    imagesArray[index].src;
	
	// stop normal link
	return false;
}

function displayWarning (e) {
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	switch (target.name) {
		case 'projekt-delete':
			return confirm("Projekt wirklich endgültig löschen?");
		case 'wettbewerb-delete':
			return confirm("Wettbewerb wirklich endgültig löschen?");
		case 'artikel-delete':
			return confirm("Artikel wirklich endgültig löschen?");
	}
}

function clearOnFocus (e) {
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	switch (target.name) {
		case 'name':
			if (target.value == 'Name') {
				target.value = '';
			}
			break;
		case 'email':
			if (target.value == 'E-Mail') {
				target.value = '';
			}
			break;
		case 'nachricht':
			if (target.value == 'Nachricht') {
				target.value = '';
			}
			break;
	}
}

function mouseover (e) {
	// check if function is loaded
	if (!self.findTarget) return;
	
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	target.src = target.src.replace(/_n(\.[^.]+)$/, '_o$1');
}

function mouseout (e) {
	// get target
	var target = findTarget(e);
	if (!target) return;
	
	target.src = target.src.replace(/_o(\.[^.]+)$/, '_n$1');
}

// basic info
var sectionName =    getFilename().split(".")[0];
var projektID =      getGetParam('projekt');
var sidebarClicked = false;
var baseURL = location.href.substr(0, location.href.lastIndexOf("/") + 1);

if (projektID > 0) {
	document.write('<script type="text/javascript" src="' + baseURL + 'data/projekte/' + projektID + '/imageselect.js?' + new Date().getTime() + '"></script>');
} else if (sectionName == 'projekte' || sectionName == 'bauten' || sectionName == 'aktuell' || sectionName == 'wettbewerbe') {
	document.write('<script type="text/javascript" src="' + baseURL + 'data/projekte/' + sectionName + '_imageselect.js?' + new Date().getTime() + '"></script>');
}

window.onload = setupBehavior;
