// Sollen die geladenen Inhalte gecacht werden?
var ajax_EnableCache = true;

// Cache für die bereits geladenen Seiten (url)
var jsCache = new Array();

// Enthält die URL für die verwendeten Icons
var ajax_LoadingImageRoot = '';
var ajax_LoadingImage = 'ajax_loading_animation.gif';
var ajax_LoadingReadyImage = 'ajax_loading_ready.gif';
var ajax_LoadingImageSmall = 'ajax_loading_animation_16x16.gif'

// Allgemeine Vorgabewerte für die AjaxInfoBox
//
var ajax_BoxWidth = 300;                // Breite der Box
var ajax_BoxHeight = 200;               // Höhe der Box

var ajax_BoxShowTitle = true;           // Soll eine Titelzeile in der Box angezeigt werden?
var ajax_BoxShowFooter = true;          // Soll eine Fusszeile in der Boax angezeigt werden?
var ajax_BoxTitleText= 'QuickInfo';     // Ggf. Text in der Titelzeile
var ajax_BoxCloseImage = 'ajax_box_close.gif' // Ggf. Image für das Close-Icon im Footer

var ajax_BoxOpeningTime = 1000;         // Zeit in mSek die bestimmt, wie lange die Maus über dem Link stehen muss, bis die Box angezeigt wird
var ajax_BoxClosingTime = 2000;         // Zeit in mSek die die Zeit bestimmt, wann eine Box beim Verlassen des Links oder der Box mit der Maus geschlossen wird

var ajax_BoxPosition = 'relative';      // Wo soll die Box angezeigt werden? 
                                        // relative: Die Startposition (x/y)ist genau die obere linke Ecke des Links
                                        // absolute: Die Startposition wird absolut durch ajaxBoxMarginX und ajax_BoxMarginY bestimmt. Alle Boxen erscheinen an der gleichen Stelle
                                        
var ajax_BoxAlignmentX = 'right';       // Ausrichtung der Box Horizontal:
                                        // left: Die Box steht links vom Link
                                        // right: Die Box steht rechts vom Link
var ajax_BoxAlignmentY = 'down';        // Ausrichtung der Box Vertikal:
                                        // down: Die Box steht unter dem Link
                                        // up: Die Box steht über dem Link

var ajax_BoxMarginX = 22;            // Abstand horizontal zur Box (Abstand links bzw. rechts zum Link)
var ajax_BoxMarginY = 18;            // Abstand vertikal zur Box (Abstand oben bzw. unten zum Link)


//

var ajax_BoxContentFrame = '';      // intern: Speichert den Aufbau der Box
var ajax_Box = false;               // intern: die eigentliche AjaxInfoBox (noch nicht vorhanden)
var ajax_BoxFixiert = false;        // intern: merkt sich, ob die Box fixiert ist
var ajax_BoxClosing = null;         // intern: merkt sich, ob die Box gerade geschlossen werden soll
var ajax_BoxOpening = null;         // intern: merkt sich, ob die Box gerade geöffnet werden soll

var ajax_externalFile = '';
var ajax_inputObj = null;
var ajax_aktiveFile = '';

var ajax_ShowWhileLoading = true;   // intern: merkt sich, ob wärend des Ladens bereits was angezeigt wird

var dynamicContent_ajaxObjects = new Array();

// Es wird die letzte URL und das letzte Element für die Ausgabe gemerkt
var merkURL = "";
var merkID = "";
var merkPic = "";

//
var notWhenOpen = false;





function sack(file){

	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";

	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};

	
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}

	
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}

	
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	
	this.runResponse = function(){
		eval(this.response);
	}

	
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else { 
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);

				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}


				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							
							if (self.responseStatus[0] != 200) 
							 {
							 self.response = 'Die Daten konnten nicht geladen werden!<br>ERROR '+self.responseStatus[0]+' - '+self.responseStatus[1]+'<br>'+self.requestFile;
							 }
														
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}

//
// divId               Bestimmt die ID des Bereichs, wo der Content angezeigt werden soll.
// url                 Bestimmt die vollständige URL, woher der Content kommt
// loadPic             Optional: Bestimmt die (zentrale) Grafik für das Anzeigen des Ladens
// showWhileLoading    Optional: Bestimmt, ob ein "Lade Daten, bitte warten..." während des Ladens angezeigt wird
//

function AjaxLoadContent(divId, url, loadPic, showWhileLoading)
{
  if (showWhileLoading==null) {ajax_ShowWhileLoading = true;} else {ajax_ShowWhileLoading = showWhileLoading;}
 
  // Nicht machen wenn bereits angezeigt wird und bereits in Cache
  //if (merkURL==url && jsCache[url]) {return;}




  merkURL = url;
  merkID = divId;
  merkPic = loadPic;
     
	if(ajax_EnableCache && jsCache[url])
	{

	  if (!ajax_ShowWhileLoading) 
	  {  
	    if (jsCache[url].value != '') 
	    {           

	      document.getElementById(divId).innerHTML = jsCache[url];      
	      document.getElementById(divId).style.display='block';
	    }
	    else
	    {    
	     if (notWhenOpen) {document.getElementById(divId).style.display='none';}

	    }
	  }
	  else
	  {
	    document.getElementById(divId).innerHTML = jsCache[url];
	  }
	  
	  if (document.getElementById(loadPic)) {document.getElementById(loadPic).src = ajax_LoadingImageRoot + ajax_LoadingReadyImage;}   
    return;  
	}



	var ajaxIndex = dynamicContent_ajaxObjects.length;
	
	if (ajax_ShowWhileLoading) 
	{


          document.getElementById(divId).style.display='block';	


	  document.getElementById(divId).innerHTML = '<div style="padding: 10px"><img src="'+ajax_LoadingImageRoot+ajax_LoadingImageSmall+'" align="left">&nbsp;Loading, please wait ...</div>';
	}
	else
	{
	   if (!notWhenOpen) {document.getElementById(divId).style.display='none';}
	}


		
	if (document.getElementById(loadPic)) {document.getElementById(loadPic).src = ajax_LoadingImageRoot + ajax_LoadingImage;}





  dynamicContent_ajaxObjects[ajaxIndex] = new sack();
	
	if(url.indexOf('?')>=0){
		dynamicContent_ajaxObjects[ajaxIndex].method='POST';
		var string = url.substring(url.indexOf('?'));
		url = url.replace(string,'');
		string = string.replace('?','');
		var items = string.split(/&/g);
		for(var no=0;no<items.length;no++){
			var tokens = items[no].split('=');
			if(tokens.length==2){
				dynamicContent_ajaxObjects[ajaxIndex].setVar(tokens[0],tokens[1]);
			}	
		}	
		url = url.replace(string,'');

	}

	dynamicContent_ajaxObjects[ajaxIndex].requestFile = url;	// Specifying which file to get
	dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function(){ AjaxShowContent(divId, ajaxIndex, url, loadPic); };	// Specify function that will be executed after file has been found
	dynamicContent_ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	
		
}



function AjaxShowContent(divId, ajaxIndex, url, loadPic)
{
		
	if (!ajax_ShowWhileLoading)
	 {
	   if (dynamicContent_ajaxObjects[ajaxIndex].response != '') 
	   {
	     document.getElementById(divId).innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;   
	     if (document.getElementById(divId).style.display == 'none') {document.getElementById(divId).style.display='block';}  
	
	   }
	   else
	   {
	   	 document.getElementById(divId).style.display='none';
	   }
	 }
	 else
	 {
	   document.getElementById(divId).innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;
	 }

	if(ajax_EnableCache){  
		jsCache[merkURL] = 	dynamicContent_ajaxObjects[ajaxIndex].response;
	}
	dynamicContent_ajaxObjects[ajaxIndex] = false; 
	if (document.getElementById(loadPic)) {document.getElementById(loadPic).src = ajax_LoadingImageRoot + ajax_LoadingReadyImage;}   
}



function AjaxClearCache()
{
  if (ajax_EnableCache) {jsCache = new Array();}
  
}



// ----------------------------------------------------------------------------
// Baut die grundsätzliche Optik der AjaxInfoBox auf und speichert sie global
// ----------------------------------------------------------------------------

function AjaxBoxCreate()
{


  ajax_BoxContentFrame = '<div " ' + 
		         'onMouseOver="if (ajax_BoxClosing) {window.clearTimeout(ajax_BoxClosing);} if (ajax_BoxOpening) {window.clearTimeout(ajax_BoxOpening);}">' + 
                         '<table style="width: 100%; height: 100%" cellpadding=0 cellspacing=0 class="Normal">'
  		                   
  if (ajax_BoxShowTitle) 
  {
	  ajax_BoxContentFrame += '<tr  id="AjaxBoxTitle" style="background-color: lavender; height: 28px; text-align: left">' +
		                  '<td style="vertical-align: middle; color: #123456;">' +
		                  '<img id="AjaxBoxLoadImg" src="' + ajax_LoadingImageRoot + ajax_LoadingImage+'" style="cursor: default; float: right; margin-top: 3px; margin-right: 10px" border=0>' +
		                        '&nbsp;&nbsp;&nbsp;<b>' + ajax_BoxTitleText + '</b>' +
		                        '</td></tr>';
  }
  var calcHeight = ajax_BoxHeight;
  if (ajax_BoxShowTitle) calcHeight -= 50;
  if (ajax_BoxShowFooter) calcHeight -= 47;

  ajax_BoxContentFrame += '<tr>' +
		          '<td style="padding: 10px;" style="height: ' + 
			  calcHeight + 'px">' +
			  '<div id="AjaxBoxContent" style="overflow:auto; height: 442px; padding: 5px; border: 1px solid #cccccc; background-color: #ffffff;">' +
		          '</div>' +
			  '</td></tr>';

  if (ajax_BoxShowFooter) 
  {
    ajax_BoxContentFrame += '<tr style="background-color: lavender; height: 26px">' +
                            '<td style="vertical-align: middle; border-top:0px solid #cccccc">' +
			    '<img src="' + ajax_LoadingImageRoot+ajax_BoxCloseImage+'" style="cursor: pointer; float: right; margin-right: 5px; margin-top: 2px" onClick="AjaxQuickHideBox();" title="close window">' + 
			    '<span id="AjaxBoxMessage" style="Color: indianred; cursor: pointer;" onClick="AjaxBoxFix();" title="Fixierung der Box aufheben"></span></td></tr>';
  }	
  	
  ajax_BoxContentFrame += '</table></div>';


}
// --------------------------------------




function AjaxStartBox(externalFile, inputObj, noWait)
{


  // Box während des Ladens anzeigen
  ajax_ShowWhileLoading = true;

  if (ajax_BoxFixiert) {return;} 

   ajax_externalFile = externalFile
   ajax_inputObj = inputObj

   if (ajax_BoxOpening) {
      window.clearTimeout(ajax_BoxOpening); 
      ajax_BoxOpening=null;
   }

 if (ajax_BoxClosing) {
      window.clearTimeout(ajax_BoxClosing); 
      ajax_BoxClosing=null;
   }



 if (ajax_aktiveFile == externalFile) {return;}


 if (noWait && noWait==true)
 {
   AjaxShowBox();

 }
 else
 {
   ajax_BoxOpening = window.setTimeout("AjaxShowBox();", ajax_BoxOpeningTime);
 } 

}



function AjaxShowBox()
{

  if (ajax_BoxClosing) {AjaxQuickHideBox();}
    
   var leftPos = 0;
   var topPos = 0;
   var innerX, innerY;
   var offsetX, offsetY;
   
   
   if (self.innerHeight) // all except Explorer
   {
     innerX = self.innerWidth;
     innerY = self.innerHeight;
   }
   else if (document.documentElement && document.documentElement.clientHeight)
   // Explorer 6 Strict Mode
   {
     innerX = document.documentElement.clientWidth;
     innerY = document.documentElement.clientHeight;
   }
   else if (document.body) // other Explorers
   {
     innerX = document.body.clientWidth;
     innerY = document.body.clientHeight;
   }
   
   
   if (self.pageYOffset) // all except Explorer
    {
      offsetX = self.pageXOffset;
      offsetY = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop)
    // Explorer 6 Strict
    {
      offsetX = document.documentElement.scrollLeft;
      offsetY = document.documentElement.scrollTop;
    }
    else if (document.body) // all other Explorers
    {
      offsetX = document.body.scrollLeft;
      offsetY = document.body.scrollTop;
    }

/* innerX und innerY enthält die aktuelle Größe des Fensters (innen
   offsetX und offsetY den Viewpoint (oben-links) der oberen Ecke */


   var ajax_IsUpOK;
   var ajax_IsDownOK;

   if (ajax_BoxPosition == 'relative')
   {

     leftPos = (AjaxGetLeftPos(ajax_inputObj)); //+ ajax_inputObj.offsetWidth);
     topPos = AjaxGetTopPos(ajax_inputObj);

     
     ajax_IsUpOK = AjaxIsUpOK(topPos, offsetY, ajax_BoxHeight, ajax_BoxMarginY);
     ajax_IsDownOK = AjaxIsDownOK(topPos, ajax_BoxHeight, ajax_BoxMarginY, innerY, offsetY);
     
     
     if (ajax_BoxAlignmentX == 'left')
     {
      leftPos -= ajax_BoxWidth +  2 * ajax_BoxMarginX;    
     }
     
     if (leftPos + ajax_BoxWidth + ajax_BoxMarginX >= innerX) {leftPos=innerX-(ajax_BoxWidth+ajax_BoxMarginX)-2;}
     if (leftPos < 0) {leftPos = - ajax_BosMarginX ;}
    

    
     if (ajax_BoxAlignmentY == 'up')
     {
       if (ajax_IsUpOK)
       {
         topPos -= ajax_BoxHeight + ajax_BoxMarginY;
       }
       else 
       {
          if (!ajax_IsDownOK)
          {
            topPos =  offsetY-ajax_BoxMarginY;
          }
          else
          {
          
          }
       }              
     }
     else
     {
      if (ajax_IsDownOK)
       {
          //topPos +=  ajax_BoxMarginY;
         //topPos -= ajax_BoxHeight + ajax_BoxMarginY;
       }
       else 
       {       
          if (ajax_IsUpOK)
          {
                        topPos -= (ajax_BoxHeight + ajax_BoxMarginY+5);
          }
          else
          {
              topPos =  offsetY-ajax_BoxMarginY;
          }
       }  
     }
   } 
   else
   {
   }
  
  
  if(!ajax_Box)

  {
    ajax_Box = document.createElement('DIV');
    if (ajax_BoxPosition == 'relative'){ajax_Box.style.position = 'absolute';} else {ajax_Box.style.position = 'fixed';}
    ajax_Box.id = 'ajax_Box';		   
          
    ajax_Box.style.width = ajax_BoxWidth+'px';
    ajax_Box.style.height = ajax_BoxHeight+'px';
    ajax_Box.style.left = 1;
    ajax_Box.style.top = 1;
    ajax_Box.style.borderWidth = 1;
        
    ajax_Box.style.borderColor = '#bbbbbb';
    ajax_Box.style.borderStyle = 'solid';
    ajax_Box.style.borderWidth = '1px';
    ajax_Box.style.backgroundColor='#f6f6f6';  
    
    if (!ajax_ShowWhileLoading) {ajax_Box.style.display='none';}
    
    document.body.appendChild(ajax_Box);
    
   }

   else 
   {
    if (ajax_ShowWhileLoading) {ajax_Box.style.display = 'block';} else {ajax_Box.style.display = 'none';}
   }

   ajax_Box.innerHTML = ajax_BoxContentFrame; 
       
   ajax_Box.style.left = leftPos + ajax_BoxMarginX + 'px';
   ajax_Box.style.top = topPos + ajax_BoxMarginY + 'px';	
      


   AjaxLoadContent('AjaxBoxContent', ajax_externalFile, 'AjaxBoxLoadImg');

   ajax_aktiveFile = ajax_externalFile;
}


function AjaxHideBox()
{
  if (ajax_BoxFixiert) {
    if (ajax_BoxClosing) {window.clearTimeout(ajax_BoxClosing);} 
    if (ajax_BoxOpening) {window.clearTimeout(ajax_BoxOpening);}  
    return;
  }
  if (ajax_BoxOpening) {window.clearTimeout(ajax_BoxOpening);}    
  if (ajax_Box) {ajax_BoxClosing = window.setTimeout("AjaxQuickHideBox()", ajax_BoxClosingTime);} 

}



function AjaxQuickHideBox()
{
  if (ajax_Box) 
    {
      ajax_Box.style.display = 'none'; 
      document.getElementById("ajax_Box").style.borderColor = '#cccccc';
		  window.clearTimeout(ajax_BoxClosing); 
		  ajax_BoxClosing=null;
		  ajax_BoxFixiert=false;  	  
		  ajax_aktiveFile = '';
		  merkID='';
		  merkURL='';
		  
		}
}



function AjaxGetTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}



function AjaxGetLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}


function AjaxIsUpOK(topPos, offsetY, ajax_BoxHeight, ajax_BoxMarginY)
{
  var returnValue = false; 
  if (topPos - ajax_BoxHeight - ajax_BoxMarginY > offsetY) returnValue = true;
  return returnValue;
}


function AjaxIsDownOK(topPos, ajax_BoxHeight, ajax_BoxMarginY, innerY, offsetY)
{
  var returnValue = false;
  if ((topPos+ajax_BoxHeight+ajax_BoxMarginY) < (offsetY+innerY)) returnValue = true;
  return returnValue;
}


function AjaxBoxFix ()
{
if (!ajax_BoxFixiert) 
  { 
  document.getElementById("AjaxBoxTitle").style.backgroundColor='indianred';
  document.getElementById("ajax_Box").style.borderColor = '#bbbbbb';
  if (document.getElementById("AjaxBoxMessage")) {document.getElementById("AjaxBoxMessage").innerHTML = '&nbsp;&nbsp;Box ist fixiert - freigeben';}
  ajax_BoxFixiert=true;
 
  }
else
{
  document.getElementById("AjaxBoxTitle").style.backgroundColor='steelblue';
  document.getElementById("ajax_Box").style.borderColor = '#bbbbbb';
  if (document.getElementById("AjaxBoxMessage")) {document.getElementById("AjaxBoxMessage").innerHTML = '';}
  ajax_BoxFixiert=false;
  }

 if (ajax_BoxClosing) {window.clearTimeout(ajax_BoxClosing);} 
 if (ajax_BoxOpening) {window.clearTimeout(ajax_BoxOpening);}  

}



//Das Objekt, das gerade bewegt wird.
var dragobjekt = null;

// Position, an der das Objekt angeklickt wurde.
var dragx = 0;
var dragy = 0;

// Mausposition
var posx = 0;
var posy = 0;

// Prüfen ob initialisiert
var isInit = false;


//
// Initialisierung der Überwachung der Events
//

function DragInit() 
{

  if (isInit) {return}
  
  document.onmousemove = Drag;
  document.onmouseup = DragStop;
  isInit = true;
    
}


function DragStart() {
   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.
     
  if (!isInit) {DragInit();}
     
  // Dummy wg. NS Problem der Mouseposition beim Start
  // auf -100000 setzen, siehe drag().
  // Bedeutung: Die aktuelle Pos der Mouse ist unbekannt!
  posx = - 100000;
  posy = - 100000;
  
  dragobjekt = ajax_Box;
  
  // Anderen Cursor anzeigen
  dragobjekt.style.cursor='move';

  // Verhindert das Markieren von Text bei Drag and Drop
  document.body.focus(); 
  document.onselectstart  = function() { return false; }; 

}


function DragStop() {
  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.

  if (dragobjekt) 
  {
    // Cursor wieder herstellen und Objekt zerstören 	
    dragobjekt.style.cursor='default';
    dragobjekt=null;
    document.onmousemove = null;
    document.onmouseup = null;;
    isInit=false;
  }
  
}

//
//Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
//
function Drag(ereignis) {
  
  if(dragobjekt != null) {
  
    // Dummy, Problem NS, Startposition der Mouse ermitteln wenn
    // diese noch nicht bestimmt sind (-10000)
    if (posx==-100000 || posy==-100000)
    {
      posx = document.all ? window.event.clientX : ereignis.pageX;
      posy = document.all ? window.event.clientY : ereignis.pageY;
      dragx = posx - dragobjekt.offsetLeft;
      dragy = posy - dragobjekt.offsetTop;
    }
    
    posx = document.all ? window.event.clientX : ereignis.pageX;
    posy = document.all ? window.event.clientY : ereignis.pageY;
    
    
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}




//
//
//
var ajax_OverSearchBox = false;


function AjaxStartSearchBox(divId, url, loadPic, afterChars)
{
  var intStart = 3;
  if (afterChars) {intStart=afterChars;}
  if(document.getElementById('AjaxSearchBoxInput').value.length >= intStart)
  {
    notWhenOpen=true;
	  AjaxLoadContent(divId, url, loadPic, false); 
	  if (ajax_ShowWhileLoading) {document.getElementById(divId).style.display='block';}
  } 
  else 
  { 
    notWhenOpen=false;
    document.getElementById(divId).style.display='none';
  }  
}


function AjaxBlurSearchBox(divId)
{
  if (!ajax_OverSearchBox) 
  {
    document.getElementById(divId).style.display='none';
  } 
}

function AjaxFocusSearchBox()
{
    document.getElementById('AjaxSearchBoxInput').focus();
    document.getElementById('AjaxSearchBoxInput').value = document.getElementById('AjaxSearchBoxInput').value;   
 
}

function AjaxOverSearchBox(overbox)
{
  ajax_OverSearchBox = overbox;
}

