// JavaScript Document

var LASTOBJECT = "";
var LASTVALUE = "";

function setLastObject(obj) {
  LASTOBJECT = obj;
  LASTVALUE = obj.value;
}

function showHideLayer(objName, vis) {
  if (vis == "show") vis = "visible";
  if (vis == "hide") vis = "hidden";
  var obj = document.getElementById(objName);
  if (obj) obj.style.visibility = vis;
}

function switch_hide(objName) {
  var obj = document.getElementById(objName);
  if (obj) {
    if (obj.style.display != 'inline') {
      obj.style.display = 'inline';
    } else {
      obj.style.display = 'none';
    }
  }  
}

function showTab(tabName, arrTab) {
	for (var i = 0; i < arrTab.length; i++) {
		showHideLayer(arrTab[i], 'hide');
	}
	showHideLayer(tabName, 'show');
}

function getLeft(obj) {
  if (obj.offsetParent) return (obj.offsetLeft + getLeft(obj.offsetParent));
  else return (obj.offsetLeft);
}

function getTop(obj) {
  if (obj.offsetParent) return (obj.offsetTop + getTop(obj.offsetParent));
  else return (obj.offsetTop);
}

function moveObj(obj, target) {
	var posX = getLeft(target);
	var posY = getTop(target) + target.offsetHeight;
	obj.style.top = posY + 'px';
  obj.style.left = posX + 'px';
}

function makeSelection(content) {
	var sel = document.getElementById('SELECTION');
	if (!sel) {
		var bod = document.getElementsByTagName('body')[0];
		var sel = document.createElement("div");
			sel.id = "SELECTION";
			sel.onmouseout = function() {leaveSelection();};
	}
	sel.innerHTML = content;
	moveObj(sel, LASTOBJECT);
	sel.style.visibility = "visible";
	setAjaxStyle(false);
	if (bod) {
		bod.appendChild(sel);
	}
}

function setSelection(name,value) {
  var nameID = document.getElementById(LASTOBJECT.name + 'ID');
  LASTOBJECT.value = name;
  if (nameID) {
		nameID.value = value;
	}
  showHideLayer('SELECTION','hide');	
}
function setSearchWord(name) {
  LASTOBJECT.value = name;
  showHideLayer('SELECTION','hide');	
}

function leaveSelection(event) {
  var sel = document.getElementById('SELECTION');
  event = event || window.event;
  var toElement = event.relatedTarget || event.toElement || false;
  if (!sel.contains(toElement)) {
    sel.style.visibility = "hidden";
  }
}

function setAjaxStyle(action) {
	if (LASTOBJECT && LASTOBJECT.className.search(/.*ajax/) != -1) {
		if (action) {
			LASTOBJECT.style.backgroundImage = "url(../_global/img/ajax_02.gif)";
		} else {
			LASTOBJECT.style.backgroundImage = "url(../_global/img/ajax_01.gif)";
		}
  }
}

function sendRequest(obj, url, targetFunction) {
	var http_request = null;
	setLastObject(obj);
	setAjaxStyle(true);
	if (window.XMLHttpRequest) {     
		http_request = new XMLHttpRequest(); 
	} else if (window.ActiveXObject) { 
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) { 
		alert('Es kann kein Request Objekt erzeugt werden.'); 
		return false;
	}
	http_request.onreadystatechange = getRequest; 
	http_request.open('GET', url, true);
	http_request.send(null);

	function getRequest() {
		if (http_request.readyState == 4) { 
			if (http_request.status == 200) { 
				targetFunction(http_request, obj);
			} else {
				alert('Die URL konnte nicht geöffnet werden.');
			}
		}
	}
}

function getSearchWord(http_request) {
	var XMLrequest = http_request.responseXML.getElementsByTagName("searchRequest")[0];
	if (XMLrequest) {
		var content = "";
		var value = "";
		var data = XMLrequest.getElementsByTagName("data");
		for (var i = 0 ; i < data.length ; i++) {
			value = data[i].getElementsByTagName("value")[0].firstChild.nodeValue;
			content += '<nobr>- <a href="#javascript" onClick="setSearchWord(\'' + value + '\')">' + value + '</a></nobr><br />';
		}
	}
	makeSelection(content);
}

function addMultiEntry(objName, optText, optValue) {
	var obj = document.getElementById(objName);
	var check = true;
	if (obj && optValue > 0) {
		for (var i = 0 ; i < obj.length ; i++) {
			if (obj.options[i].value == optValue) {
				check = false;
			}
		}
		if (check) {
			obj.options[obj.length]= new Option(optText,optValue,false,false);
		}
	}
}

function removeMultiEntry(objName) {
  var obj = document.getElementById(objName);
	if (obj) {
		for (var i = obj.length-1; i >= 0; i--) {
			if (obj.options[i].selected) {
				obj.options[i] = null;
			}
		}
	}
}
  
function selectMultiEntry(objName) {
 var obj = document.getElementById(objName);
  if (obj) {
		for (var i = 0; i < obj.length; i++) {
   	 obj.options[i].selected = true;
  	}
	}
}

function openWindow(url, name, param) {
  newWindow = window.open(url, name, param);
  newWindow.focus();
}

function checkForm(arrElement){
	var check = true;
	var form = document.getElementsByTagName("form");
	var label = document.getElementsByTagName("label");
	var field = "";
	for (var i = 0; i < arrElement.length; i++) {
		var element = document.CONTACT.elements[arrElement[i]];
		for (var k = 0; k < label.length; k++) {
			if (label[k].htmlFor == element.name) {
				if (field.length > 0) {
					field += ", ";
				}
				field += label[k].innerHTML;
			}
		}
		if (element.value.length == 0 || element.value == "erforderlich") {
			check = false;
		} 
	}
	if (!check) {
		alert('Bitte füllen Sie das/die Felde/r: ' + field + ' aus!');
	} else {
		element.form.submit();
	}
}

var CHECKMOUSE = null;

function showPicture(name, desc, pic_preview) {
	var obj = document.getElementById('PICTURE');
	var pic = document.getElementById('PICNAME');
	var picdesc = document.getElementById('PICDESC');
	CHECKMOUSE = document.getElementById(pic_preview);
	if (obj && pic) {
		pic.src = "pictures/" + name + ".jpg";
		picdesc.innerHTML = "";
		if (desc.length > 0 ) {
		 picdesc.innerHTML = desc;
		}
		pic.onload = myImgOnLoadHandler;			
	}
	document.onmousemove = checkPictureOut;
}

function myImgOnLoadHandler(e) {
	var obj = document.getElementById('PICTURE');
	var pic = document.getElementById('PICNAME');
	obj.style.width = pic.width + "px";
	obj.style.left = document.body.offsetWidth/2 - pic.offsetWidth/2 + 'px';
	obj.style.top =  screen.availHeight/2 - pic.offsetHeight/2 + 'px';
	obj.style.visibility = "visible";
}

function checkPictureOut(e) {
	if (!e) e = window.event;
  var MOUSEX = e.clientX + document.getElementById('contentcontent').scrollLeft;
  var MOUSEY = e.clientY + document.getElementById('contentcontent').scrollTop;
	if(CHECKMOUSE) {
		window.status = "X=" + MOUSEX + " Y=" + MOUSEY + " / " + CHECKMOUSE.id;
		if (MOUSEX < getLeft(CHECKMOUSE) || MOUSEX > (getLeft(CHECKMOUSE) + CHECKMOUSE.offsetWidth)) {
			showHideLayer('PICTURE','hide');
			CHECKMOUSE = null;
		} else if (MOUSEY < getTop(CHECKMOUSE) || MOUSEY > (getTop(CHECKMOUSE) + CHECKMOUSE.offsetHeight)) {
			showHideLayer('PICTURE','hide');
			CHECKMOUSE = null;
		}
	}
}
