// 
//  CONFIG
//

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Operation is not supported by your browser.");
    }
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(inputid,outputid,autosubmit,config) {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        var str = escape(document.getElementById(inputid).value);
        if (str.length>1) {
            searchReq.open("GET", '?eID=a4n_applichemshop_ajax&type=3&q=' + str + '&config=' +config, true);
            searchReq.onreadystatechange = function(e){
                handleSearchSuggest(inputid,outputid,autosubmit)
            };
            searchReq.send(null);
        }
    }
}


//Called when the AJAX response is returned.
function handleSearchSuggest(inputid,outputid,autosubmit) {
    if (searchReq.readyState == 4) {
        var positionleft = document.getElementById(inputid).offsetLeft;   
        var positionheight = document.getElementById(inputid).pixelHeight;
        var positiontop = document.getElementById(inputid).offsetTop+positionheight;
        var positionwidth = document.getElementById(inputid).offsetWidth;   
        var ss = document.getElementById(outputid);

        //ss.style.marginLeft = positionleft + 'px';
        ss.style.display = 'block';
        ss.style.position = 'absolute';
        ss.style.textAlign = 'left';
        ss.style.zIndex = 99;
        //ss.style.top = positiontop + 'px';
        //ss.style.left = positionleft + 'px';
        ss.style.width = positionwidth + 'px';
        
        ss.innerHTML = '';
        var str = searchReq.responseText.split("\n");
        for(i=0; i < str.length - 1; i++) {
            var searchResult=eval("("+str[i]+")");

            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            if(i%2 == 0 ){
                var classvar = "suggest_link_1";
            }
            else {
                var classvar = "suggest_link_2";
            }
       
            var suggest='';
            if (searchResult.num!=-1) {
                suggest = '<div onmouseover="javascript:suggestOver(this);" ';
                suggest += 'onmouseout="javascript:suggestOut(this,\''+classvar+'\');" ';
                //suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
                suggest += 'onclick="javascript:setSearch('+i+',\''+outputid+'\',\''+inputid+'\','+autosubmit+');" ';
                suggest += 'class="'+classvar+'" id="suggest_link_'+i+'"><div id="suggest_container_'+searchResult.num+'" title="'+searchResult.title+'">' + searchResult.description+'</div></div>';
            } else {
                suggest= '<div class="info">'+searchResult.count+' weitere Ergebnisse</div>';

            }
            ss.innerHTML += suggest;
        }


        
    }
}

//Mouse over function
function suggestOver(div_value) {
    div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value,classvar) {
    div_value.className = classvar;
}
//Click function
function setSearch(valueid,outputid,inputid,autosubmit) {
    var element_value_id = "suggest_container_" + valueid;
    if(document.getElementById(element_value_id)){
        document.getElementById(inputid).value = document.getElementById(element_value_id).title;
        document.getElementById(outputid).innerHTML = '';
    }
    document.getElementById(outputid).style.display = 'none';
    
    if(autosubmit){
        var formid = getFormId(inputid);
        document.getElementById(formid).submit();
    }
    
}


function getFormId(id){
    var parentel = document.getElementById(id);
    while(parentel.tagName != "FORM" && parentel.tagName != "BODY"){
        parentel = parentel.parentNode;
    }
    return parentel.id;
}


function clearSearch(outputid) {
    document.getElementById(outputid).innerHTML = '';
    document.getElementById(outputid).style.display = 'none';

}
function searchposition(){
    if(document.getElementById(input_id)){
        var positionleft = document.getElementById(input_id).offsetLeft;
        var positionheight = document.getElementById(input_id).pixelHeight;
        var positiontop = document.getElementById(input_id).offsetTop+positionheight;
        var ss = document.getElementById(output_id);
        ss.style.position = 'absolute';
        ss.style.textAlign = 'left';
        //ss.style.top = positiontop + 'px';
        ss.style.left = positionleft + 'px';
    }
}

function searchMove(dir){
// navigate results via up and down on keyboard
}