function alle_ausblenden() {
  var divs = document.getElementsByTagName("body")[0].className; // Titel der zu schließenden DIVs werden als Klassen gespeichert
  if (divs.length > 0) { 
    var divs_array = divs.split(" ");
    for (var i = 0; i < divs_array.length; ++i) {
      if (divs_array[i].length > 0) {
        var anzeige = document.getElementById(divs_array[i]).style.display;
        if (anzeige == 'block') {
          ausblenden(divs_array[i]);
          // alert(anzeige);
        }      
      }      
    }

  }
}

function alle_ausblenden_body(div) {
  var divs = document.getElementsByTagName("body")[0].className; // Titel der zu schließenden DIVs werden als Klassen gespeichert
  if (divs.length > 0) {
    if (divs.indexOf(div + " ")== -1 ) {
      divs = divs + div + " ";   
    }
  } else {
    divs = div + " ";
  }
  document.getElementsByTagName("body")[0].className = divs;
}

// Langsames Ein- & Ausblenden
function SetOpacity(elem, opacityAsInt) {
  var opacityAsDecimal = opacityAsInt;
  
  if (opacityAsInt > 100)
      opacityAsInt = opacityAsDecimal = 100; 
  else if (opacityAsInt < 0)
      opacityAsInt = opacityAsDecimal = 0;
      
  if (opacityAsInt == 0 )
      elem.style.display = 'none';
  
  opacityAsDecimal /= 100;
  if (opacityAsInt < 1)
      opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
  
  elem.style.opacity = (opacityAsDecimal);
  elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

    if (stepNum < steps)
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}
// Langsames Ein- & Ausblenden

function checkkeycode (ereignis, form_nr) {
  if (ereignis == 13)
  { document.forms[form_nr].submit(); }
}

function einblenden (id_name) {
  document.getElementById(id_name).style.display = 'inline';
}

function ausblenden (id_name) {
  FadeOpacity(id_name, 100, 0, 200, 20); // display none ist Teil der Funktion!
}

function q_suche_blende (id_name) {
  alle_ausblenden_body(id_name);
  var anzeige = document.getElementById(id_name).style.display;
  if (anzeige == 'block') {
    FadeOpacity(id_name, 100, 0, 200, 20); // display none ist Teil der Funktion!
  } else {
    FadeOpacity(id_name, 0, 100, 200, 20);
    document.getElementById(id_name).style.display = 'block';
    //document.getElementsByTagName("body")[0].onclick = ausblenden('q_suche_auswahl');
  }
    
}

function q_suche_auswahl (such_name, text) {
    document.getElementById('q_suche').name = such_name;
    document.getElementById('q_suche_text').innerHTML = text;
}

function ortung_select (ort, form_nr) {
    document.getElementById('selected_ort').value = ort;
    document.forms[form_nr].submit();
}

function tag_select (tag) {
  var link = document.getElementById('tag_suche').href;
  var auswahl = parseInt(document.getElementById('auswahl').title);
  if (link.indexOf(tag) == -1) {
    if (auswahl >= 5) {
    document.getElementById(tag).checked = false;
    alert('Du kannst nicht mehr als 5 Tags auswählen!');
    } else {
    link += tag + '+';
    document.getElementById('tag_suche').href = link;
    document.getElementById('auswahl').title = auswahl + 1;
    }

  } else {
    link = link.substr(0, link.indexOf(tag)) + link.substr(link.indexOf(tag)+tag.length+1, link.length-1);
    document.getElementById('tag_suche').href = link;
    document.getElementById('auswahl').title = auswahl - 1;
  }
}

function suche_einblenden (suchtyp) {
  if (suchtyp=='h_tag') {
    FadeOpacity('suchtyp_tag', 0, 100, 260, 20);
    document.getElementById('suchtyp_tag').style.display = 'inline';
    document.getElementById('suchtyp').style.display = 'none';
    document.getElementById('h_tag').name = 'h_tag';
    document.getElementById('tag_titel_input').value = '';
  } else if (suchtyp=='') {
    FadeOpacity('suchtyp', 100, 0, 200, 20); // display none ist Teil der Funktion!
    FadeOpacity('suchtyp_tag', 100, 0, 200, 20); // display none ist Teil der Funktion!
  } else {
    FadeOpacity('suchtyp', 0, 100, 260, 20);
    document.getElementById('suchtyp').style.display = 'inline';  
    document.getElementById('suchtyp_eingabe').name = suchtyp;
    document.getElementById('suchtyp_eingabe').maxLength = '50';
    document.getElementById('suchtyp_eingabe').value = '';
    if(document.getElementById('h_tag')) { document.getElementById('h_tag').name = ''; }
    if(document.getElementById('suchtyp_tag')) { document.getElementById('suchtyp_tag').style.display = 'none'; }
  }
  if (suchtyp=='dt_letter') {
    document.getElementById('suchtyp_eingabe').maxLength='1';
  }
  if (suchtyp=='ori_letter') {
    document.getElementById('suchtyp_eingabe').maxLength='1';
  }
  if (suchtyp=='h_jahr') {
    document.getElementById('suchtyp_eingabe').maxLength='4';
  }

}

var xmlhttp;

function showResult(str,h_tag_direkt) {
  
  if (str.length==0) {
    FadeOpacity('tag_ergebnisse', 100, 0, 200, 20);
    if(document.getElementById("h_tag")) { document.getElementById("h_tag").value=""; }
    return;
  
  }
  xmlhttp=GetXmlHttpObject()
  if (xmlhttp==null) {
    alert ("Dein Browser unterstützt dieses Feature leider nicht!");
    return;
  }
  if (str.length>0) {  
  var url="tag_suche.php";
  url=url+"?q="+str;
  url=url+"&h_tag_direkt="+h_tag_direkt;
  url=url+"&sid="+Math.random();
  xmlhttp.onreadystatechange=stateChanged;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
}

function stateChanged() {
  if (xmlhttp.readyState==4) {
    document.getElementById("tag_ergebnisse").innerHTML=xmlhttp.responseText;
    var anzeige = document.getElementById('tag_ergebnisse').style.display;
    if (anzeige != "block") { FadeOpacity('tag_ergebnisse', 0, 100, 200, 20); }
    document.getElementById("tag_ergebnisse").style.display='block'; 
    }
}

function GetXmlHttpObject() {
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
  }
  if (window.ActiveXObject) {
  // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

function tag_input(tag, tag_titel) {
  var tag_alt = document.getElementById("h_tag").value;
  tag_neu = tag_alt+" "+tag;
  var tag_titel_alt = document.getElementById("tag_titel_input").value;
  if(tag_titel_alt.lastIndexOf(",") == -1) {
    tag_titel_alt = "";
  } else {
    tag_titel_alt = tag_titel_alt.substr(0, tag_titel_alt.lastIndexOf(",")+1)+" ";  
  }
  tag_titel_neu = tag_titel_alt+tag_titel+", ";  
  document.getElementById("h_tag").value=tag_neu;
  document.getElementById("tag_titel_input").value=tag_titel_neu;
  FadeOpacity('tag_ergebnisse', 100, 0, 200, 20);
}

function tag_filme(tag, formular) {
  document.getElementById("h_tag").value=tag;
  document.forms[formular].submit();
}

// John Resig - Flexible Javascript Events

function event_abhoeren( id_name, type, fn ) {
  var obj = document.getElementById(id_name);
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

function event_stoppen(event)  {
  if (event.stopPropagation) {
    // this code is for Mozilla and Opera
    event.stopPropagation();
  } else if (window.event) {
    // this code is for IE
    window.event.cancelBubble = true;
  }
}
