var xmlHttp
var dragaktiv = false;

function aktiviere() {
	if (dragaktiv)
		return;
	var t1 = document.getElementById("zutatenliste");
	add_divs(t1, 'li', 'draggable');
	var trs = t1.getElementsByTagName("ul");
	for (var i = 0; i < trs.length; i++)
	{
		var divs = document.getElementsByClassName("draggable", trs[i]);
		var drag_text = divs[2].innerHTML;
		for (var j = 0; j < divs.length; ++j)
		{
			new Draggable(divs[j], {ghosting:true, revert:true});
		}
	}
	dragaktiv = true;
};

function add_divs(table, tag, classname)
{
	var items = table.getElementsByTagName(tag);
	for (var i = 0; i < items.length; i++)
		items[i].innerHTML =
			"<div class='" + classname + "'>" + items[i].innerHTML + "</div>";
}

function createListe(e,d)
{
	var id = e.getElementsByTagName('img')[0].id;
	var text = e.getElementsByTagName('div')[0].innerHTML;
	
//    var select = document.getElementById( "KannListe" );
    
    var option = new Option();
    option.value = id;
    option.appendChild( document.createTextNode( text ));

    d.appendChild( option );

    d.selectedIndex = d.options.length - 1;

    return false;    	
}

function deleteKannEintrag() {
	var liste = document.getElementById('KannListe');
	liste.options[liste.selectedIndex] = null;
	return false;
}
function deleteMussEintrag() {
	var liste = document.getElementById('MussListe');
	liste.options[liste.selectedIndex] = null;
	return false;
}
function deleteNichtEintrag() {
	var liste = document.getElementById('NichtListe');
	liste.options[liste.selectedIndex] = null;
	return false;
}

function sucheVorrat() {
	var kann = "";
	var muss = "";
	var nicht = "";
	var ids = "";
	var kannliste = document.getElementById('KannListe');
	for (var i = 0; i < kannliste.length; i++) {
		kann += kannliste.options[i].value.substring(1,20) + ",";
	}
	kann = kann.substring(0,kann.length-1);	

	var mussliste = document.getElementById('MussListe');
	for (var i = 0; i < mussliste.length; i++) {
		muss += mussliste.options[i].value.substring(1,20) + ",";
	}
	muss = muss.substring(0,muss.length-1);		

	ids = kann + muss;
	if (ids == "") {
		alert("Bitte Zutaten angeben, nach denen gesucht werden kann!");
		return;
	}

	var nichtliste = document.getElementById('NichtListe');
	for (var i = 0; i < nichtliste.length; i++) {
		nicht += nichtliste.options[i].value.substring(1,20) + ",";
	}
	nicht = nicht.substring(0,nicht.length-1);
	ids = kann + "a" + muss + "a" + nicht;
	showRezepteGenau(ids,1);
	return false;
}
function debug(text)
{
   document.getElementById('debug').innerHTML
       = "<pre>" + text + "</pre>";
}

function showHilfeGenau() {
	document.getElementById('hilfeGenau').style.visibility = "visible";
}

function hideHilfeGenau() {
	document.getElementById('hilfeGenau').style.visibility = "hidden";
}

function showResult(str,page)
{
	if (str.length<=2)
	 { 
	 document.getElementById("livesearch").
	 innerHTML="";
	 document.getElementById("livesearch").
	 style.border="0px";
	 return ;
	 }

	if (str.length > 2)
	{
	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return ;
	 } 

	var url="paging/paging.php"
	url=url+"?q="+str+"&page="+page
	url=url+"&sid="+Math.random()
	url=encodeURI(url);

	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 
return ;
}

function showZutaten(str,page) {
	if (!str) var str = document.getElementById('ZutatText').value;
	if (str.length<=1)
	 { 
	 document.getElementById("livesearch").
	 innerHTML="";
	 document.getElementById("livesearch").
	 style.border="0px";
	 return ;
	 }

	if (str.length > 1)
	{
	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return ;
	 } 

	dragaktiv = false;
	var url="paging/paging-warentree.php"
	url=url+"?q="+str+"&page="+page
	url=url+"&sid="+Math.random()
	url=encodeURI(url);
	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
	} 
return ;
}

function showKategorie(str,page) {
	if (!str) var str = document.getElementById('KatText1').value;
	if (str.length<1)
	 { 
	 document.getElementById("livesearch").
	 innerHTML="";
	 document.getElementById("livesearch").
	 style.border="0px";
	 return ;
	 }

	if (str.length >= 1)
	{
	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return ;
	 } 

	dragaktiv = false;
	var url="paging/paging-kattree.php"
	url=url+"?q="+str+"&page="+page
	url=url+"&sid="+Math.random()
	url=encodeURI(url);
	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
	} 
return ;
}

function showRezepteGenau(str,page)
{

	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return
	 } 

	var url="paging/paging-genau.php"
	url=url+"?q="+str+"&page="+page
	url=url+"&sid="+Math.random()
	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 


function showRezepteMitZutat(str,page)
{

	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return
	 } 

	var url="paging/paging-rezeptzutat.php"
	url=url+"?q="+str+"&page="+page
	url=url+"&sid="+Math.random()

	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function showRezepteMitKategorie($kat,page)
{

	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return
	 } 

	var url="paging/paging-rezeptkategorie.php"
	url=url+"?q="+$kat+"&page="+page
	url=url+"&sid="+Math.random()

	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { 
	 document.getElementById("livesearch").innerHTML=xmlHttp.responseText;
	/* document.getElementById("livesearch").style.border="1px solid #A5ACB2";*/
	 } 
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	 {
	 // Firefox, Opera 8.0+, Safari
	 xmlHttp=new XMLHttpRequest();
	 }
	catch (e)
	 {
	 // Internet Explorer
	 try
	  {
	  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	 catch (e)
	  {
	  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	 }
	return xmlHttp;
}

/* Rezept */

function showRezept(nr)
{
	maintabs.expandit("tabRezept");
	hideHilfeGenau();
	
	xmlHttp=GetXmlHttpObject()

	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request")
		return
	} 

	/* document.getElementById("rezept").innerHTML="<img src=\"wait.gif\" id=\"warten\">"; */
	var url="getRezept1.php"
	url=url+"?q="+nr
	url=url+"&sid="+Math.random()
	xmlHttp.onreadystatechange=stateRezeptChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
} 

function stateRezeptChanged() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("rezept").innerHTML=xmlHttp.responseText;
	 } 
}


function anzahl(t,s)
{
/* Anzahl der Vorkommen von Substring t in s */
   var c = 0;
   var i = 0;
   for (i = 0; i < s.length; i++) {
    if (s.charAt(i) == t) 
	  c = c+1;
   }
   return c;
}

function Trim(t)
{
	if (t.charAt(0)==" ") t = t.substr(2);
	if (t.charAt(t.length-1)==" ") t = t.substring(1,t.length-1);
	return t;
}

function SearchText(l)
{
var tok = new Array();
var n="";
var uml="";
var ii=0;
if (l == "") 
	l = document.getElementById('SuchText').value;

	l = Trim(l);
	l = l.toUpperCase();
    l = l.replace(/ UND /g,'&');
    l = l.replace(/ ODER /g,'§');
    l = l.replace(/ MIT /g,'&');	
    l = l.replace(/NICHT /g,'#');
    l = l.replace(/KEINE /g,'#');
    l = l.replace(/KEIN /g,'#');
    l = l.replace(/OHNE /g,'#');	
    l = l.replace(/ ABER /g,'&');
    l = l.replace(/, /g,'§');
    l = l.replace(/,/g,'§');
	l = l.replace(' +','&'); 	
	l = l.replace('+','&'); 
    l = l.replace(/- /g,'-');	
    l = l.replace(/-/g,'#');
    l = l.replace('?','_');
    l = l.replace(/ /g,'&');
    if (anzahl('(',l) != anzahl(')',l)) {
      alert('Klammersetzung stimmt nicht!');
	}
	else
	{
    n = '';
    tok = Token(l,'()&§#',true);

	for (ii = 0; ii < tok.length; ii++)
	{ 
	  tok[ii] = tok[ii].toLowerCase();
	  ok = false;
      if (tok[ii]==' ') ok=true;
	  if (tok[ii]=='#') ok=true;
	  if (tok[ii]=='') ok=true;
	  if (tok[ii]=='(') ok=true;
	  if (tok[ii]==')') ok=true;
	  if (tok[ii]=='§') ok=true;
	  if (tok[ii]=='&') ok=true;
	  
      if (!ok) 
	  { 
		  ok = false;
		  if (tok[ii].indexOf('ä') > 0) ok=true;
		  if (tok[ii].indexOf('ö') > 0) ok=true;
	 	  if (tok[ii].indexOf('ü') > 0) ok=true;
		  if (tok[ii].indexOf('ß') > 0) ok=true;

    	  if (ok) 
		  {
			$s = "((Name LIKE _latin1 '*" + Trim(tok[ii]) + "*' COLLATE latin1_german2_ci)";
			uml = Trim(tok[ii]);
			if (tok[ii].indexOf('ß') > 0) {
				uml = uml.replace(/ß/g,'ss');
				$s += " or (Name LIKE _latin1 '*" + Trim(uml) + "*' COLLATE latin1_german2_ci)";						
			}
			if (tok[ii].indexOf('ä') > 0) {
				uml = tok[ii].replace(/ä/g,'ae');
				$s += " or (Name LIKE _latin1 '*" + Trim(uml) + "*' COLLATE latin1_german2_ci)";
			}
			if (tok[ii].indexOf('ö') > 0) {
				uml = uml.replace(/ä/g,'oe');
				$s += " or (Name LIKE _latin1 '*" + Trim(uml) + "*'  COLLATE latin1_german2_ci)";			
			}
			if (tok[ii].indexOf('ü') > 0) {
				uml = uml.replace(/ü/g,'ue');
				$s += " or (Name LIKE _latin1 '*" + Trim(uml) + "*'  COLLATE latin1_german2_ci)";			
			}
			tok[ii] = $s + ')';
		  }
	      else
          tok[ii] = "(Name LIKE _latin1 '*" + Trim(tok[ii]) + "*'  COLLATE latin1_german2_ci)";
	  }
      if (tok[ii] == '&') tok[ii]=' and ';
      if (tok[ii] == '§') tok[ii]=' or ';
      if (tok[ii] == '#') tok[ii]=' not ';
      n = n + tok[ii];
	}
	
  showResult('('+n+')',1);

	} // else Klammern
}


function Token(s, t, InclTokens)
{
var ii=0;
var lastPos=0;
var HelpString="";
var HelpList=new Array();

  HelpString = s;
  lastPos = 0;
  for (ii = 0; ii < s.length; ii++)
  {
    if (t.indexOf(s.charAt(ii)) > -1)
	{
      HelpList.splice(HelpList.length + 1,0,s.substring(lastPos,ii));
      if (InclTokens) 
	  	HelpList.splice(HelpList.length + 1,0,s.charAt(ii));
      lastPos = ii + 1;
	}
  }
  HelpList.splice(HelpList.length + 1,0,s.substring(lastPos,200));
  return HelpList;
}

var popUpWin=0;

function popUpWindow(URLStr, left, top, width, height)

{

  if(popUpWin)

  {

    if(!popUpWin.closed) popUpWin.close();

  }

}

function drucken(Nr,b) {

var width=600;
var height=600;
var left=100;
var top=50;

url = "print.php?Nr=" + Nr + "&b=" + b;

popUpWin = open(url , 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');

}
