/*
 * Bassiert jetzt auf scriptaculous 1.9.0 / Lightbox bassiert auf 1.8.3 / beide Scripte kommen sich in die Quere.
 * 
 * */
document.observe('dom:loaded', function() {

var input_model_se = null;
var input_ccm_se = null;
var input_modelbjcode_se = null;
var regExpPipe =  /([\w\s\-]*)\s\|\s([()-/\.\w\s\-]*)/;
var regExpWhiteSpace = /(.+)\s(\w+)$/;

$('site_se').focus();

                input_site_se =  new Ajax.Autocompleter('site_se', 'vorschlag', 'vorschlag.php', {
                    callback : queryCheck,
                    indicator: 'loader_site_se',
                    frequency : 0.5,
                    dropdown_element_id : 'search_dropdown_site_se'
                });

                input_model_se = new Ajax.Autocompleter('model_se', 'vorschlag', 'vorschlag.php', {
                    callback : queryCheck,
                    indicator: 'loader_model_se',
                    frequency : 0.5,
                    afterUpdateElement : load,
                    dropdown_element_id : 'search_dropdown_model_se'
                });

                input_ccm_se = new Ajax.Autocompleter('ccm_se', 'vorschlag', 'vorschlag.php', {
                    callback : queryCheck,
                    indicator: 'loader_ccm_se',
                    frequency : 0.5,
                    afterUpdateElement : load,
                    dropdown_element_id : 'search_dropdown_ccm_se'
                });

                input_modelbjcode_se = new Ajax.Autocompleter('modelbjcode_se', 'vorschlag', 'vorschlag.php', {
                    callback : queryCheck,
                    indicator: 'loader_modelbjcode_se',
                    frequency : 0.5,
                    afterUpdateElement : load,
                    dropdown_element_id : 'search_dropdown_modelbjcode_se'
                });
            
                var delElement = null;
                var deleteVisible = false;

                function deleteValue(el) {
                    $(el.target.id).hide();
                    inputId = el.target.id.sub('delete_', '');
                    $(inputId).value = '';
                }

            $('site_se', 'model_se', 'ccm_se', 'modelbjcode_se').invoke('observe', 'mouseover', function(e) {

                var img = 'delete_' + e.element().id;
                delElement = $(img);

                var position = e.target.positionedOffset();
                if(!empty(e.element().value)) {

                    delElement.style.top = position.top + 2 + 'px';
                    delElement.style.left =  160 + 'px';
                    Event.observe(delElement, 'click',deleteValue.bind(e.target));
                    deleteVisible = true;
                    delElement.show();
                }
            });


                //Hersteller ###################################################################################
                $('search_dropdown_site_se').observe('click', function(){

                    if(input_model_se.active) {
                        input_model_se.hide();
                        input_model_se.active = false;
                    }
                    if(input_ccm_se.active) {
                        input_ccm_se.hide();
                        input_ccm_se.active = false;
                    }
                    if(input_modelbjcode_se.active) {
                        input_modelbjcode_se.hide();
                        input_modelbjcode_se.active = false;
                    }
                    mySiteActive.delay(.3);
                });

                var mySiteActive = function() {
                    if(input_site_se.active) {
                        input_site_se.hide();
                        input_site_se.active = false;
                    } else {
                        input_site_se.activate();
                        input_site_se.active = true;
                    }
                }

                //Model ###################################################################################
                $('search_dropdown_model_se').observe('click', function(){ 

                    if(input_site_se.active) {
                        input_site_se.hide();
                        input_site_se.active = false;
                    }
                    if(input_ccm_se.active) {
                        input_ccm_se.hide();
                        input_ccm_se.active = false;
                    }
                    if(input_modelbjcode_se.active) {
                        input_modelbjcode_se.hide();
                        input_modelbjcode_se.active = false;
                    }
                    myModelActive.delay(.3);
                });

                var myModelActive = function() {
                    if(input_model_se.active) {
                        input_model_se.hide();
                        input_model_se.active = false;
                    } else {
                        input_model_se.activate();
                        input_model_se.active = true;
                    }
                }

                //CCM ###################################################################################
             $('search_dropdown_ccm_se').observe('click', function(){

                    if(input_site_se.active) {
                        input_site_se.hide();
                        input_site_se.active = false;
                    }
                    if(input_model_se.active) {
                        input_model_se.hide();
                        input_model_se.active = false;
                    }
                    if(input_modelbjcode_se.active) {
                        input_modelbjcode_se.hide();
                        input_modelbjcode_se.active = false;
                    }
                    myCcmActive.delay(.3);
                });

                var myCcmActive = function() {
                    if(input_ccm_se.active) {
                        input_ccm_se.hide();
                        input_ccm_se.active = false;
                    } else {
                        input_ccm_se.activate();
                        input_ccm_se.active = true;
                    }
                }

            //BJCode ###################################################################################
           $('search_dropdown_modelbjcode_se').observe('click', function(){
                
                    if(input_site_se.active) {
                        input_site_se.hide();
                        input_site_se.active = false;
                    }
                    if(input_model_se.active) input_model_se.hide();
                    if(input_ccm_se.active) input_ccm_se.hide();
                myBjActive.delay(.3);
                });

              var myBjActive = function() {
                  if(input_modelbjcode_se.active) {
                      input_modelbjcode_se.hide();
                      input_modelbjcode_se.active = false;
                  } else {
                    input_modelbjcode_se.activate(); 
                    input_modelbjcode_se.active = true;
                  }
            }
          
            // ###########################################################################################

            function empty(mixed_var) {

                var key;

                if (mixed_var === "" ||
                    mixed_var === 0 ||
                    mixed_var === "0" ||
                    mixed_var === null ||
                    mixed_var === false ||
                    typeof mixed_var === 'undefined'
            ){
                    return true;
                }

                if (typeof mixed_var == 'object') {
                    for (key in mixed_var) {
                        return false;
                    }
                    return true;
                }

                return false;
            }

            function queryCheck(input, query) {

                var site_se_uq = $('site_se');
                var model_se_uq = $('model_se');
                var ccm_se_uq = $('ccm_se');
                var modelbjcode_se_uq = $('modelbjcode_se');


                //SITE_SE
                if(input.id == 'site_se' && !empty(query)) {

                    if(model_se_uq.value != '') {

                        // Treffer Pipe
                       var trefferPipe = model_se_uq.value.match(regExpPipe);
                   // Treffer auf WhiteSpace
                        var trefferWhiteSpace = model_se_uq.value.match(regExpWhiteSpace);

                        if(trefferPipe) {
                            trefferPipe = model_se_uq.value.match(regExpPipe);
                            query += '&model_se_uq=' + trefferPipe[1] + '&vkb_se_uq=' + trefferPipe[2];
                        } else if (trefferWhiteSpace) {
                            query += '&model_se_uq=' + trefferWhiteSpace[1] + '&vkb_se_uq=' + trefferWhiteSpace[2];
                        } else {
                            query += '&model_se_uq=' + model_se_uq.value;
                        }
                    }

                    if(ccm_se_uq.value != '') {
                        query += '&ccm_se_uq=' + ccm_se_uq.value;
                    }

                    if(modelbjcode_se_uq.value != '') {
                        query += '&modelbjcode_se_uq=' + modelbjcode_se_uq.value;
                    }
                }

                //MODEL_SE
                if(input.id == 'model_se' && !empty(query)) {

                     //Treffer auf Pipe
                    var trefferPipe = input.value.match(regExpPipe);
                     //Treffer auf WhiteSpace
                    var trefferWhiteSpace = input.value.match(regExpWhiteSpace);

                        if(trefferPipe) {
                            query = '';
                            query += '&model_se=' + trefferPipe[1] + '&vkb_se_uq=' + trefferPipe[2];
                        } else if(trefferWhiteSpace) {
                            query = '';
                            query += '&model_se=' + trefferWhiteSpace[1] + '&vkb_se_uq=' + trefferWhiteSpace[2];
                        }

                    if(!empty(site_se_uq)) {
                        query += '&site_se_uq=' + site_se_uq.value;
                    }

                    if(ccm_se_uq.value != '') {
                        query += '&ccm_se_uq=' + ccm_se_uq.value;
                    }

                     if(modelbjcode_se_uq.value != '') {
                        query += '&modelbjcode_se_uq=' + modelbjcode_se_uq.value;
                    }
                }

                //CCM_SE
                if(input.id == 'ccm_se' && query != '') {

                    if(site_se_uq.value != '') {
                        query += '&site_se_uq=' + site_se_uq.value;
                    }

                    if(model_se_uq.value != '') {

                        //Treffer Pipe
                        var trefferPipe = model_se_uq.value.match(regExpPipe);
                        //Treffer WhiteSpace
                       var trefferWhiteSpace = model_se_uq.value.match(regExpWhiteSpace);


                        if(trefferPipe) {
                            trefferPipe = model_se_uq.value.match(regExpPipe);
                            query += '&model_se_uq=' + trefferPipe[1] + '&vkb_se_uq=' + trefferPipe[2];
                        } else if(trefferWhiteSpace) {
                           query += '&model_se_uq=' + trefferWhiteSpace[1] + '&vkb_se_uq=' + trefferWhiteSpace[2];
                        } else {
                            query += '&model_se_uq=' + model_se_uq.value;
                        }
                    }

                     if(modelbjcode_se_uq.value != '') {
                        query += '&modelbjcode_se_uq=' + modelbjcode_se_uq.value;
                    }
                }

              //modelbjcode_se
              if(input.id == 'modelbjcode_se' && query != '') {

                    if(input.value == 'keine treffer') {
                        input.value = '';
                        return;
                    }


                    if(site_se_uq.value != '') {
                        query += '&site_se_uq=' + site_se_uq.value;
                    }

                    if(model_se_uq.value != '') {

                        //Treffer auf Pipe
                        var trefferPipe = model_se_uq.value.match(regExpPipe);
                        //Treffer auf WhiteSpace
                        var trefferWhiteSpace = model_se_uq.value.match(regExpWhiteSpace);

                        if(trefferPipe) {
                            trefferPipe = model_se_uq.value.match(regExpPipe);
                            query += '&model_se_uq=' + trefferPipe[1] + '&vkb_se_uq=' + trefferPipe[2];
                        } else if (trefferWhiteSpace) {
                           query += '&model_se_uq=' + trefferWhiteSpace[1] + '&vkb_se_uq=' + trefferWhiteSpace[2];
                        } else {
                            query += '&model_se_uq=' + model_se_uq.value;
                        }
                    }
                    
                    if(ccm_se_uq.value != '') {
                        query += '&ccm_se_uq=' + ccm_se_uq.value;
                    }
                }
                return query + '&sessionId=' + sessionId + ' &treffer_lang=' + treffer_lang;
            }

            function load(input, li){

            //Keine Suchetreffer gefunden id=0 in Rueckgabeergebnis
                if(li.id === "0") {
                    input.value = '';
                    return;
                }

                var getstr = '';
                var site_se = document.getElementById('site_se').value;
                var model_se = document.getElementById('model_se').value;
                var ccm_se = document.getElementById('ccm_se').value;
                var modelbjcode_se = document.getElementById('modelbjcode_se').value;
                var treffer = null;

                //Hersteller
                if(site_se != '') {
                    getstr += 'site_se=' + site_se;
                }

                //Modell
                if(model_se != '') {
                
                        treffer = model_se.match(regExpPipe);

                        if(treffer != null) {
                            treffer = model_se.match(regExpPipe);
                            getstr += '&model_se=' + treffer[1] + '&modelbez2_se=' + treffer[2];
                        } else {
                            getstr += '&model_se=' + model_se;
                        }
                }

                //CCM
                if(ccm_se != '') {
                    getstr += '&ccm_se=' + ccm_se;
                }

                //BJCode

                if(modelbjcode_se != '') {
                    getstr += '&modelbjcode_se=' + modelbjcode_se;
                }


                var separator;
                if (  search_href_link.indexOf("?") == -1 )
                        separator = "?";
                else
                        separator = "&";

                var link = search_href_link + separator + getstr;
                //alert(link );

                window.location.href = link;
            }
        
});



