var details=false;
var tpg1;
var tpgPopUp;
var tpgPopUpBig;
var styleMap;
var map;
var map_params = {};
var aktiv;
map_params.markers = [];
map_params.maps =[];

function showOnload(){
        /*
	var panel = xGetElementById('unload');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}   
        */
}

function showOnloadText(text){
	var panel = xGetElementById('unload');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}  
        var infotext=xGetElementById('infotext');
        infotext.innerHTML =text;
}

function showMessage(text){
	var panel = xGetElementById('message');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}  
    var infotext=xGetElementById('messagetext');
    infotext.innerHTML =text;
}

function hide(id){
	var panel = xGetElementById(id);
  	xHide(panel);
}

function show(id){
        var panel = xGetElementById(id);        
        xShow(panel);
}

function toggleDetails(MainElementID,DetailsElementID){
  var myMainElement = xGetElementById(MainElementID);
  var myDetailElement = xGetElementById(DetailsElementID);
  if (details==false){
      var x = xPageX(MainElementID);
      var y = xPageY(MainElementID);
      xMoveTo(myDetailElement, x, y);
      xHide(myMainElement);
      xShow(myDetailElement);
      //xWidth(myDetailElement,950);
      //xHeight(myDetailElement,700);
      details=true;      
  }
  else
  {
      xHide(myDetailElement);
      xShow(myMainElement); 
      details=false;      
  }

}

function documentSubmit()
{

    document.forms[0].submit();

}

function openPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=650,height=470,left=100,top=50,scrollbars=Yes');
}

function getPrintContent(printContent,target){
	if (opener.document.getElementById("printcontentdetails")){
		printContent="printcontentdetails";
	}
	mySourceID=opener.document.getElementById(printContent);
	myTargetID=document.getElementById(target);
	if (mySourceID && myTargetID){
		myTargetID.innerHTML=mySourceID.innerHTML
	}

}

function openLoginPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=400,height=300,left=100,top=50,scrollbars=Yes');
}

function openBigPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=650,height=600,left=100,top=50,scrollbars=Yes');
}

function openWKPopup(URL){
	var popup = window.open(URL , 'WK', 'width=415,height=415,left=100,top=50,scrollbars=Yes');
}

function openIMAGEPopup(URL,x,y){
        var params="width="+x+","+"height="+y+",left=100,top=50,scrollbars=yes";
        var popup = window.open(URL, 'IMAGE', params);
        popup.focus();
}


function openLinkPopup(URL,width,height,posx,posy){
        if (width=='') width=400;
        if (height=='') height=300;
        if (posx=='') posx=100;
        if (posy=='') posy=50;
        params='width='+width+',height='+height+',left='+posx+',top='+posy+',scrollbars=Yes';
        var popup = window.open(URL , 'link', params);
}

function login(){
  openLoginPopup('/index.php?menu=login');
}

function openParent(URL){
  window.opener.location.href=URL;
  window.opener.focus();
}

// Ab hier experimetal
/*
 * This is the function that actually highlights a text string by
 * adding HTML tags before and after all occurrences of the search
 * term. You can pass your own tags if you'd like, or if the
 * highlightStartTag or highlightEndTag parameters are omitted or
 * are empty strings then the default <font> tags will be used.
 */
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) 
{
  // the highlightStartTag and highlightEndTag parameters are optional
  if ((!highlightStartTag) || (!highlightEndTag)) {
    highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
    highlightEndTag = "</font>";
  }
  
  // find all occurences of the search term in the given text,
  // and add some "highlight" tags to them (we're not using a
  // regular expression search, because we want to filter out
  // matches that occur within HTML tags and script blocks, so
  // we have to do a little extra validation)
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }
  
  return newText;
}


/*
 * This is sort of a wrapper function to the doHighlight function.
 * It takes the searchText that you pass, optionally splits it into
 * separate words, and transforms the text on the current web page.
 * Only the "searchText" parameter is required; all other parameters
 * are optional and can be omitted.
 */
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
  // if the treatAsPhrase parameter is true, then we should search for 
  // the entire phrase that was entered; otherwise, we will split the
  // search string so that each word is searched for and highlighted
  // individually
  if (treatAsPhrase) {
    searchArray = [searchText];
  } else {
    searchArray = searchText.split(" ");
  }
  
  if (!document.body || typeof(document.body.innerHTML) == "undefined") {
    if (warnOnFailure) {
      alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
    }
    return false;
  }
  
  var bodyText = document.body.innerHTML;
  for (var i = 0; i < searchArray.length; i++) {
    bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
  }
  
  document.body.innerHTML = bodyText;
  return true;
}


/*
 * This displays a dialog box that allows a user to enter their own
 * search terms to highlight on the page, and then passes the search
 * text or phrase to the highlightSearchTerms function. All parameters
 * are optional.
 */
function searchPrompt(defaultText, treatAsPhrase, textColor, bgColor)
{
  // This function prompts the user for any words that should
  // be highlighted on this web page
  if (!defaultText) {
    defaultText = "";
  }
  
  // we can optionally use our own highlight tag values
  if ((!textColor) || (!bgColor)) {
    highlightStartTag = "";
    highlightEndTag = "";
  } else {
    highlightStartTag = "<font style='color:" + textColor + "; background-color:" + bgColor + ";'>";
    highlightEndTag = "</font>";
  }
  
  if (treatAsPhrase) {
    promptText = "Please enter the phrase you'd like to search for:";
  } else {
    promptText = "Please enter the words you'd like to search for, separated by spaces:";
  }
  
  //searchText = prompt(promptText, defaultText);
  searchText = defaultText;
  if (!searchText)  {
    //alert("No search terms were entered. Exiting function.");
    return false;
  }
  
  return highlightSearchTerms(searchText, treatAsPhrase, true, highlightStartTag, highlightEndTag);
}

function getContent(url,responseID,waitText){
	if (url==""){
		url=lastAjaxCall;
	}
	if (url==null){
		window.location.reload();
	}
      	var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (tpg1) tpg1.onUnload();
      	myElement=document.getElementById(responseID);
      	myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
      			myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
      		}
		lastAjaxCall=url;
      	}
      	http.send(null);
   }
    function makeGetContent (url,responseID,waitText){
	return function () {
		getContent(url,responseID,waitText);
	};
   }
   
   function buildGetContent(url,responseID,waitText){
	return function(){
		getContent(url,responseID,waitText);
	};
   
   }
   
   function postContent(url,formElem,responseID,waitText){
	if (url==""){
		url=lastAjaxCall;
	}
	if (url==null){
		window.location.reload();
	}
      	var http= Ajax.getTransport();
      	http.open ("POST",url,true);
	myElement=document.getElementById(responseID);
      	myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
      			myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
      		}
		lastAjaxCall=url;
      	}
	//var myForm=document.getElementById(formID);
	//alert(myForm);
	parameters=Form.serialize(formElem);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", parameters.length);
	http.setRequestHeader("Connection", "close");
	http.send(parameters);
   }

function showElement(id){
	$(id).show();

}

function hideElement(id){
	$(id).hide();
}

function toggleElement(id){
	$(id).toggle();
}


function trim(s)
{
	s.replace(/^\s+|\s+$/g, '') ;
	return s;
}


function createAutocompleter(formfield,contentdiv,params){
	myElement=document.getElementById(contentdiv);
	myList=myElement.innerHTML;
	myList=trim(myList)
	mylistArray=myList.split(",")
	myElement.innerHTML="";
	new Autocompleter.Local(formfield,contentdiv,mylistArray,{fullSearch:true});

}


function moveDIV( var1, var2 ) {
	if ( var1 == 0 ) {
		document.getElementById("zeug").style.left = "0px";
		document.getElementById("zeug").style.top = "0px";
	} else {
		if ( var2 ) {
			/* alter Wert ohne Einheit */
			var2 = document.getElementById("zeug").style.left;
			var2 = Number(var2.substring(0, var2.length-2)) + var1;

			var3 = document.getElementById("zeug").style.width;
			var3 = Number(var3.substring(0, var3.length-2));

			var4 = document.getElementById("tool").style.width;
			var4 = Number(var4.substring(0, var4.length-2)) - var3;

			// wenn nicht am linken "rahmen" angekommen
			if ( var2 <= 0 ) {
				// wenn nicht am rechten "rahmen" angekommen
				if ( var2 >= var4 ) {
					document.getElementById("zeug").style.left = var2 + "px";
				} else {
					document.getElementById("zeug").style.left = var4 + "px";
				}
			} else {
				document.getElementById("zeug").style.left = "0px";
			}
		} else {
			leave=false;
			/* alter Wert ohne Einheit */
			var2 = document.getElementById("zeug").style.top;
			var2 = Number(var2.substring(0, var2.length-2)) + var1;

			var3 = document.getElementById("zeug").offsetHeight;

			var4 = document.getElementById("tool").style.height;
			var4 = Number(var4.substring(0, var4.length-2)) - var3;
			
			var5 = document.getElementById("zeug").offsetHeight;
			
			var6= document.getElementById("tool").offsetHeight;
			if (var6>var5) {
				leave=true;
			}
			// wenn nicht am oberen "rahmen" angekommen
			if (!leave){
				if ( var2 <= 0 ) {
					// wenn nicht am unteren "rahmen" angekommen
					if ( var2 >= var4 ) {
						document.getElementById("zeug").style.top = var2 + "px";
					} else {
						document.getElementById("zeug").style.top = var4 + "px";
					}
				} else {
					document.getElementById("zeug").style.top = "0px";
				}
			}
		}
	}
}



      
  
