﻿var myTimer;
var boxtext = 'Suchbegriff eingeben';
var boxid = 'suchbegriff';
var lastquery = "";
function focusSearch(sender) {
    sender.className = boxid + ' focus';
    if (sender.value == boxtext) {
        sender.value = '';
    }
    else {
        search(sender.value);
    }
}
function blurSearch(sender) {
    if (sender.value == '') {
        sender.value = boxtext;
        sender.className = boxid;
    }
    stopSearch();
}

function resetSearch(sender) {
    if (lastquery != sender.value) {
        if (sender.value == "") {
            stopSearch();
        }
        else {
            clearTimeout(myTimer);
            if (sender.value != boxtext) {
                document.getElementById('resultbox').innerHTML = "<h3>Bitte warten...</h3>";
                myTimer = setTimeout("search('" + sender.value + "')", 800);
            }
        }
        lastquery = sender.value;
    }
}

function stopSearch() {
    clearTimeout(myTimer);
    document.getElementById(boxid).className = document.getElementById(boxid).className.replace(" searching", "");
    Fade(false);
}

function search(query) {
    document.getElementById(boxid).className += " searching";
    serchasync(query);
    if (document.getElementById('resultbox').style.display != "block") {
        Fade(true);
    }
}


/* Async HTML nachladen */
var page_request = false;
function serchasync(query) {
    if (page_request) {
        page_request.abort();
        page_request = false;
    }
    if (window.XMLHttpRequest) // wenn Mozilla, Safari etc
    {
        page_request = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) // wenn IE
    {
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                page_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {

            }
        }
    }
    else {
        return false;
    }
    page_request.onreadystatechange = function() {
        loadpage(page_request);
    }
    page_request.open('GET', '/suche/suche.ashx?m=async&q=' + query, true);
    page_request.send(null);
}

function loadpage(page_request) {
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) {
        document.getElementById('resultbox').innerHTML = page_request.responseText;
        document.getElementById(boxid).className = document.getElementById(boxid).className.replace(" searching", "");
    }
}

var stepTime = 10;
var stepSize = 2;
function Fade(up) {
    var element = document.getElementById('resultbox');
    var timer = 0;
    if (!up) {
        for (i = 100; i >= 0 + stepSize * 2; i = i - stepSize * 2) {
            setTimeout('SetOpacity("resultbox", ' + i + ')', timer * stepTime);
            timer++;
        }
        setTimeout('SetOpacity("resultbox", -1);', timer * stepTime);

    }
    else {
        SetOpacity("resultbox", -1);
        element.style.display = "block";
        for (i = 0; i <= 100 - stepSize * 2; i = i + stepSize * 2) {
            setTimeout('SetOpacity("resultbox", ' + i + ')', timer * stepTime);
            timer++;
        }
        setTimeout('SetOpacity("resultbox", ' + 100 + ')', timer * stepTime);
    }
}
function SetOpacity(elementName, value) {
    var element = document.getElementById(elementName);
    if (value < 0) {
        element.style.display = "none";
        value = 0;
    }
    element.style.filter = "alpha(opacity=" + value + ")";
    element.style.opacity = (value / 100);
}