/**************
* Ab hier die Vorschlagssuche-Suche mit Ajax
****************/
function sAus()
{
        var obj = document.getElementById('search_suggest');
        if ( obj )
        {
                obj.style.display='none';
        }
}
function addDebugDiv()
{
	var obj = document.getElementById("col1_content");
	if ( obj )
	{
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id', 'debug_div');
		newdiv.style.backgroundColor = "#FFA";
		newdiv.style.position = "absolute";
		newdiv.style.left = "500px";
		newdiv.style.top = "220px";
		newdiv.style.padding = "4px";
		newdiv.style.border = "solid 1px red";
		newdiv.style.fontSize = "10px";
		newdiv.style.display = "block";
		newdiv.innerHTML = "<b>Debug Ausgabe</b> <a href='#' onclick='clearDebug();return false;'>Leeren</a>";
		obj.appendChild(newdiv);

		return document.getElementById('debug_div');
	}

	alert("Warnung:\nDebug function addDebugDiv() kann auf das\nElement ganzeBreite nicht zugreifen.");

	return null;
}
function writeDebug(text)
{
	 return true; //deaktiviert

	var obj = document.getElementById("debug_div");
	if ( !obj )
	{
		obj = addDebugDiv();
	}

	if ( obj )
	{
		obj.innerHTML += "<br>"+text;
	}
}
function clearDebug(text)
{
	 return TRUE; //deaktiviert

	var obj = document.getElementById("debug_div");


	if ( obj )
	{
		obj.innerHTML = "<b>Debug Ausgabe</b> <a href='#' onclick='clearDebug();return false;'>Leeren</a>";
	}
}
var BrowserName = navigator.appName;
if (BrowserName == "Netscape")
{
	document.onkeypress = getkeycode;
}
var ssActivated = true;
function getXmlHttpRequestObject()
{
	var http_request = false;
	// Nicht-IE
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		return http_request;
	}
	// IE
	if(window.ActiveXObject)
 	{
 		try
		{    	http_request = new ActiveXObject("Msxml2.XMLHTTP");		}
		catch (e) 
		{
		try	{http_request = new ActiveXObject("Microsoft.XMLHTTP");}
		catch (e) {}
            	}
        }
		
  	if (!http_request)
	{
		if(window.ActiveXObject) displayAXHinweis();
		alert("Ihr Browser unterstuetzt wichtige Funktionen er Suche nicht!\nBitte nehmen Sie ein Update vor oder aktivieren Sie ActiveXObjects.\nWenn Sie Hilfe benoetigen - fragen Sie uns!");
	}
	return http_request;
}

var searchReq = getXmlHttpRequestObject();
var searchTimeout='';

function triggerSearch(){
	writeDebug("function triggerSearch()");
if (searchTimeout!=''){
	clearTimeout(searchTimeout);
	writeDebug("timeout cleared");		
	}
	else{
	writeDebug("timeout started");	
	}	
	searchTimeout=setTimeout('searchSuggest()',200);
}
function searchSuggest()
{
writeDebug("function searchSuggest()");
	if (!ssActivated) return true;
	if (searchReq != null)
	{
		if (searchReq.readyState == 4 || searchReq.readyState == 0)
		{
			if (!document.getElementById('txtSearchID')) return 0;
			var q = document.getElementById('txtSearchID').value;
			var qq = q.replace(/\s/gi, "");
			if (qq.length < 2) return true;
			if (document.location.search) {
						 var sugDatei = '/info/suggest.asp?' + 'q=' + escape(q);
						//var sugDatei = '/info/suggest.asp' + document.location.search + '&q=' + escape(q);
			}
			else { var sugDatei = '/info/suggest.asp?q=' + escape(q); }
			searchReq.open("GET", sugDatei, true);
				searchReq.onreadystatechange = handleSearchSuggest; 
			searchReq.send(null);
		}	
  		return true;
	}
	else return 0;
}
function handleSearchSuggest()
{
	if (searchReq.readyState == 4)
	{
writeDebug("function handleSearchSuggest() readyState=4");
		var ss = document.getElementById('search_suggest');
		document.getElementById('url').value = '';
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		var letzteselement = str.length-1;
		ss.innerHTML += str[letzteselement];
		var flag = "";
		var type = "";
		if (str[0]!="") document.getElementById('cntsuggests').value=str.length-1;
		if (str.length > 1)
		{
			var searchinput = document.getElementById('txtSearchID').value;
			var matchstring = "";
			var Ergebnis = "";
			var Ergebnis2 = "";
			var display = "";
			var suggest = "";
			var land = "";
			var ort = "";
        		 suggest += '    <div id="suggLayer">';
				 suggest += '     <div class="suggItem">';
				 suggest += '       <div class="suggName help"><strong>Einige Vorschl&auml;ge zu Ihrem Suchbegriff:</strong></div>';
				 suggest += '       <div class="suggCat help">&nbsp;</div>';
				 suggest += '     </div>';
			for(i=0; i < str.length-1; i++)
			{
				if (str[i]!='')
				{
					ort = document.getElementById('vorschlagort'+i).value;
					var searcher = htmlentities(searchinput,2);
					matchstring = new RegExp (searcher, "i");
					Ergebnis = str[i].match(matchstring);
					if(Ergebnis)
					{
						display = str[i].replace(new RegExp("("+Ergebnis+")","i"),"<strong>"+Ergebnis+"</strong>");
					}
					else display = str[i];
					Ergebnis2 = ort.match(matchstring);
					if(Ergebnis2)
					{
						displayort = ort.replace(new RegExp("("+Ergebnis2+")","i"),"<strong>"+Ergebnis2+"</strong>");
					}
					else displayort = ort;					

					land = document.getElementById('vorschlagland'+i).value;					
						typ = document.getElementById('vorschlagtyp'+i).value;					

						/*if (typ == 'Eltern-Kind-Reisen') typ = 'Familienreisen';*/
						suggest += ' <div class="suggItem" onmouseover="this.className=\'suggItemOver\';" onmouseout="this.className=\'suggItem\';"';
						suggest += 'onclick="javascript:setSearch(' + i + ');" id="suchzelle1'+i+'">';
					
						suggest += '<div class="suggName">'+ display + ' / ' + displayort +'</div> <div class="suggCat">';
						suggest += typ; 
						suggest += '</div>';
				}
				suggest += ' </div>';	
			}
			suggest += '</div>';
			ss.innerHTML += suggest;
		}
		if(document.getElementById('search_suggest').innerHTML != '')
		{
			document.getElementById('search_suggest').style.display='block';
		}
		else
		{
			document.getElementById('search_suggest').style.display='none';
		}
	}
}
function suggestOver(i)
{
writeDebug("function suggestOver("+i+")");
	var obj1 = document.getElementById("suggItem"+i);
	if (obj1) { obj1.style.backgroundColor='#874d51';obj1.style.color='#ffffff'; }
}
function suggestOut(i)
{
writeDebug("function suggestOut("+i+")");
	var obj1 = document.getElementById("suggItem"+i);
	if (obj1) { obj1.style.backgroundColor='transparent';obj1.style.color='#874d51'; }
}
function setSearch( selectedrow) {
	document.getElementById('url').value  = document.getElementById("vorschlagurl" + selectedrow).value;
	 var url = document.getElementById('url').value;
	document.forms['frmSearch'].setAttribute('action',url) ;
	document.getElementById('search_suggest').innerHTML = '';
  	document.getElementById('frmSearch').submit();
}
function getkeycode(Ereignis)
{
writeDebug("function getkeycode(");
	if (typeof selectedrow == "undefined")
	{
		selectedrow = -1;
	}

	if (!Ereignis) Ereignis = window.event;
	if (Ereignis)
	{
		var Tastencode = -1;

		if (Ereignis.keyCode)
		{
			Tastencode = Ereignis.keyCode;
		}
		else if (Ereignis.which)
		{
			Tastencode = Ereignis.which;
		}
		
		if (Tastencode=='38' || Tastencode == '40')
		{
			ssActivated = false;
			changeselection(Tastencode);
		}
		else if (Tastencode=='13') 
		{
			ssActivated = true;
			onReturnCopySelectedSuggest();
			selectedrow=-1;
		}
		else
		{
			ssActivated = true;
			selectedrow=-1;
		}
	}
writeDebug("function getkeycode(");
}
function onReturnCopySelectedSuggest()
{
	var obj1 = document.getElementById("selectedsuggest");
	var obj2 = document.getElementById("txtSearchID");
	return true;
}
function changeselection (Tastencode)
{
writeDebug("function changeselection(");
	if (typeof selectedrow == 'undefined')
	{
		selectedrow = -1;
	}
	if (!Tastencode)
	{
		Ereignis = window.event;
		if (Ereignis.which)
		{
			Tastencode = Ereignis.which;
		}
		else if (Ereignis.keyCode)
		{
			Tastencode = Ereignis.keyCode;
		}
	}
	if (document.getElementById("cntsuggests"))
	{
		var cntsuggests = document.getElementById("cntsuggests").value;
	}
	else
	{
		var cntsuggests = 0;
	}
	if (Tastencode == '38' && cntsuggests>0)
	{
		if (selectedrow>0)
		{
			selectedrow = selectedrow - 1;
			if (selectedrow=='-2') selectedrow=-1;

			var previousrow = selectedrow-1;
			var nextrow = selectedrow+1;

			if (document.getElementById("suchzelle1" + selectedrow).className!='')
			{
				document.getElementById("suchzelle1" + selectedrow).className = 'suggItemOver';
			}

			if (document.getElementById("suchzelle1" + nextrow).className!='')
			{
				document.getElementById("suchzelle1" + nextrow).className = 'suggItem';
		}
		}
	}

	if (Tastencode == '40' && cntsuggests>0)
	{
		// NACH UNTEN;
		if (selectedrow < cntsuggests - 1)
		{
			selectedrow = selectedrow + 1;
			var previousrow = selectedrow-1;
			var nextrow = selectedrow+1;

			//suggestOver(selectedrow);
		  document.getElementById("suchzelle1" + selectedrow).className = 'suggItemOver';
		  
			if (selectedrow!=0)
			{
				if (document.getElementById("suchzelle1" + previousrow).className!='')
				{
					//suggestOut(previousrow);
					document.getElementById("suchzelle1" + previousrow).className = 'suggItem';
				}
			}
		}
	}

	if ((Tastencode == '38' || Tastencode=='40') && selectedrow>=0 && cntsuggests>0)
	{
	document.getElementById('url').value  = document.getElementById("vorschlagurl" + selectedrow).value;
		
	}
	else
	{
		selectedrow=-1;
	}
}
function sleep(ms)
{
	var zeit=(new Date()).getTime();
	var stoppZeit=zeit+ms;
	while((new Date()).getTime()<stoppZeit) {};
} 
function startsearch()
{

	 var url = document.getElementById('url').value;
	 if (url != '') {
		document.forms['frmSearch'].setAttribute('action',url) ;
		  return true; }
	 else return true;
} 
function htmlentities(str,typ) {
   if(typeof str=="undefined") str="";
    if(typeof typ!="number") typ=2;
    typ=Math.max(0,Math.min(3,parseInt(typ)));
    var html=new Array();
    html[38]="&amp;"; html[60]="&lt;"; html[62]="&gt;";
    if(typ==1 || typ==3) html[39]="&#039;";
    if(typ==2 || typ==3) html[34]="&quot;";
    for(var i in html) eval("str=str.replace(/"+String.fromCharCode(i)+"/g,\""+html[i]+"\");");
   var entity=new Array(
      "&nbsp;","&iexcl;","&cent;","&pound;","&curren;","&yen;","&brvbar;","&sect;",
      "&uml;","&copy;","&ordf;","&laquo;","&not;","&shy;","&reg;","&macr;",
     "&deg;","&plusmn;","&sup2;","&sup3;","&acute;","&micro;","&para;","&middot;",
      "&cedil;","&sup1;","&ordm;","&raquo;","&frac14;","&frac12;","&frac34;","&iquest;",
      "&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;",
      "&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;",
      "&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;",
     "&Oslash;","&Ugrave;","&Uacute;","&Ucirc;","&Uuml;","&Yacute;","&THORN;","&szlig;",
     "&agrave;","&aacute;","&acirc;","&atilde;","&auml;","&aring;","&aelig;","&ccedil;",
      "&egrave;","&eacute;","&ecirc;","&euml;","&igrave;","&iacute;","&icirc;","&iuml;",
     "&eth;","&ntilde;","&ograve;","&oacute;","&ocirc;","&otilde;","&ouml;","&divide;",
      "&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&yacute;","&thorn;","&yuml;"
      );
    for(var i in entity) eval("str=str.replace(/"+String.fromCharCode(i*1+160)+"/g,\""+entity[i]+"\");");
    return str;
    }  

