/////////////////////////////////////////////////////////////////
 /**
  * Open a connection to the specified URL, which is
  * intended to respond with an XML message.
  * 
  * @param string method The connection method; either "GET" or "POST".
  * @param string url    The URL to connect to.
  * @param string toSend The data to send to the server; must be URL encoded.
  * @param function responseHandler The function handling server response.
  */
var req;

 function hideFeedback() {
   //  document.getElementById('feedback').style.display="none";
 }

 function xmlOpen(method, url, toSend, responseHandler)
 {
	  hideFeedback();
     if (window.XMLHttpRequest)
     {
         // browser has native support for XMLHttpRequest object
         req = new XMLHttpRequest();
			if (req.overrideMimeType) {
				req.overrideMimeType('text/xml');
         }
     }
     else if (window.ActiveXObject)
     {
         // try XMLHTTP ActiveX (Internet Explorer) version
         req = new ActiveXObject("Microsoft.XMLHTTP");
     }
     
     if(req)
     {
         req.onreadystatechange = responseHandler;
         req.open(method, url, true);
		 // wegen OPERA 8 auskommentiert!
			try {
	         req.setRequestHeader("content-type","application/x-www-form-urlencoded");
			}
			catch(e) {
			}
         req.send(toSend);
     }
     else
     {
         alert('Your browser does not seem to support XMLHttpRequest.');
     }
 } 

function ajax_back() {
     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var ajax = req.responseXML.getElementsByTagName('ajax');

			 var html_teil = req.responseXML.getElementsByTagName('html');
			 var js_teil = req.responseXML.getElementsByTagName('js');

			for(i=0; i < html_teil.length; i++) {
				var node = html_teil.item(i); 
				var node_id = node.getAttribute('html_id'); 
				var append_node = node.getAttribute('append');
				if(document.getElementById(node_id)) {					
					if(append_node==1) {
						document.getElementById(node_id).innerHTML += node.firstChild.nodeValue
					}
					else {
						document.getElementById(node_id).innerHTML = node.firstChild.nodeValue
					}
				}
			}

			for(i=0; i < js_teil.length; i++) {
				var node = js_teil.item(i); 
				var node_id = node.getAttribute('call'); 
				//eval("document.X_"+node_id+" = 'sss' ;"); 
				jscode = node.firstChild.nodeValue.replace(/\n/g,';'); 
				jscode = jscode.replace(/\r/,';'); 
				jscode = jscode.replace(/"/g,'\\"'); 
				eval(node_id+" = new Function('"+jscode+"');"); 
				eval(node_id+"()");
			}
		 
		 }
         else
         {
             alert("There was a problem retrieving the XML data:\n" + req.statusText);
         }
     }
 } 

 function ajax_call(url){
		var Jetzt = new Date();

		if(url.indexOf("?")>0) {
		    url=url + "&t="+Jetzt.getTime();
		}
		else {
			url=url + "?t="+Jetzt.getTime();
		}
	   xmlOpen("GET", url, null, ajax_back);
 }

 function ajax_post(url,post_data) {
     post_data += '&_REFERER='+escape(this.location.href); 
     xmlOpen("POST",url,post_data,ajax_back);
 }
 /////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////

// JavaScript Document

/***********************************************
* Cool DHTML tooltip script II- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetfromcursorX=12 //Customize x offset of tooltip
var offsetfromcursorY=-10 //Customize y offset of tooltip

var offsetdivfrompointerX=-14 //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=0 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

var	aktiv;

document.write('<div id="dhtmltooltip"></div>') //write out tooltip DIV
document.write('<img id="dhtmlpointer" src="../bilder/d5/pb_seite.gif">') //write out pointer image

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

var pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, thecolor){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var nondefaultpos=false
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden"
}
}

function zeit() {
  window.clearTimeout(aktiv);
  aktiv = window.setTimeout("hideddrivetip()", 4000);
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
pointerobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}

document.onmousemove=positiontip

////////////////////////////////////////////////////
// Favoriten 
////////////////////////////////////////////////////

var favoritenliste = Array(); 

var favimage_on = new Image(); 
var favimage_off = new Image(); 
favimage_on.src = "../bilder/icons/star.png.gif";
favimage_off.src = "../bilder/d5/star_light.gif";

function addfavid(typ,id) {
   favoritenliste.push(typ + "_" + id); 
} 

function fetchfav() {
  if(favoritenliste.length > 0) {
    var flist = favoritenliste.join(","); 
    ajax_call('../dynamic/getfavs.php?liste='+flist)
  }
} 

function fav_ajaxback(a) {
  for(var i = 0; i < a.length; i++) {
    el = document.getElementById('FAV_'+a[i]);
    if(el) {
      el.src = favimage_on.src;
    }
  } 
}

function fav_swap(id) {
  ajax_call('../dynamic/swapfav.php?id='+id)
}

function fav_setimage(id,was) {
   el = document.getElementById('FAV_'+id);
   if(el) {
     el.src = (was == "on") ? favimage_on.src:favimage_off.src;
   }
}
