function wait(time, fn){
  setTimeout( fn, time );
}

function del_event(){
    $("#company-list-target a").unbind();
    $("#company-list-target a").toggle(function(){
        $(this).addClass("selected-list-element-target");
        return false;
    }, function(){
        $(this).removeClass("selected-list-element-target");
        return false;
    });
}

function focus_filter(){
	$("#company-filter").focus();
}

function product_link_init(){
del_event();
wait( 1, function(){

	// -------------------- Hersteller und Produktgruppen Verknüpfung ------------------ 
    
	// Auf und zuklappen der Navi
	
	$(".prod-close").unbind("click");
	$(".prod-close").click(function(){
		xajax_vendor_products_minus();		
	});
	
	$(".prod-open").unbind("click");
	$(".prod-open").click(function(){
		xajax_vendor_products_plus($(this).next().attr("rel"));
	});	
	
	$(".prod-open").css('cursor','hand');
	$(".prod-close").css('cursor','hand');	
	
    
    $(".company-list-element").unbind("click");
    $(".company-list-element").click(function(){
        if ($(this).hasClass("selected-list-element") == true) {
            $(this).removeClass("selected-list-element");
            return false;
        }
        else 
		{
            $(this).addClass("selected-list-element");
            return false;
        }
    });

    
	var clone_element = '';
    $(".company-list-element").draggable({
        helper: function(){
			clone_element = $(this).clone();
			return clone_element;
		},
		zIndex: 1000,
		appendTo: '#company-products'
    });
    
    $("#company-list-target").droppable({
        accept: ".company-list-element",
        drop: function(e, ui){
            var prod_send = new Array();
            var c = 0;

            // drag und drop von einzelnen Elementen
            if ($("#company-list-target a[rel=" + $(ui.element).attr("id") + "]").length == 0 && $(".selected-list-element").length <= 1) {
                  
                
                if ($(ui.element).hasClass("company-name") == true) {
                    var linktext = "<strong>" + $(ui.element).html() + "</strong><br />Alle";
                }
                else {
                    var linktext = $(ui.element).attr("rel");
                    var match = linktext.match(/(.*)\((.*)\)$/i);
                    if (match != null) {
                        linktext = "<strong>"+match[2]+"</strong><br />"+match[1];
                    }
                }
                
                $("#company-list-target").append('<li class="company-target"><a href="" rel="' + $(ui.element).attr("id") + '">' + linktext + '</a></li>');
                
                prod_send[c] = $(ui.element).attr("id");
                c++;
				del_event();
            }
            
            
            // drag und drop von mehreren Elementen
            if ($(".selected-list-element").length > 1) {
            
            
                if ($("#company-list-target a[rel=" + $(ui.element).attr("id") + "]").length == 0) {
    
                    
                    if ($(ui.element).hasClass("company-name") == true) {
                        var linktext = "<strong>" + $(ui.element).html() + "</strong><br />Alle";
                    }
                    else {
                        var linktext = $(ui.element).attr("rel");
                        var match = linktext.match(/(.*)\((.*)\)$/i);
                        if (match != null) {
                            linktext = "<strong>" + match[2] + "</strong><br />"+match[1];
                        }
                    }
					
					$("#company-list-target").append('<li class="company-target"><a href="" rel="' + $(ui.element).attr("id") + '">' + linktext + '</a></li>');
                    
                    prod_send[c] = $(ui.element).attr("id");
                    c++;
                }
                
                
                $(".selected-list-element").each(function(){
                    var x = $("#company-list-target a[rel=" + $(this).attr("id") + "]").length;
                    if (x == 0) {
         
                        
                        if ($(this).hasClass("company-name") == true) {
                            var linktext = "<strong>" + $(this).html() + "</strong><br />Alle";
                        }
                        else {
                            var linktext = $(this).attr("rel");
                            var match = linktext.match(/(.*)\((.*)\)$/i);
                            if (match != null) {
                                linktext = "<strong>" + match[2] + "</strong><br />"+match[1];
                            }
                        }
						
						$("#company-list-target").append('<li class="company-target"><a href="" rel="' + $(this).attr("id") + '">' + linktext + '</a></li>');
                        
                        prod_send[c] = $(this).attr("id");
                        c++;
                    }
                });
            }
            
			xajax_vendor_products_drop(false,prod_send);
			del_event();
        }
    });
	
	// Übernahme der Selektierten Elemente mit Klick auf den Button
    $(".prod-transfer").unbind("click");
    $(".prod-transfer").bind("click", function(){
		var prod_send = new Array();
		var c = 0;
        var prod_options = '';
		
        $(".selected-list-element").each(function(){
			var x = $("#company-list-target a[rel=" + $(this).attr("id") + "]").length;
            if (x == 0) {
				if($(this).hasClass("company-name") == true)
				{
					var linktext = "<strong>"+$(this).html()+"</strong><br />Alle";
				}
				else
				{
                    var linktext = $(this).attr("rel");
                    var match = linktext.match(/(.*)\((.*)\)$/i);
                    if (match != null) {
                        linktext = "<strong>"+match[2]+"</strong><br />"+match[1];
                    }
				}
			
				prod_options += '<li class="company-target"><a href="" rel="' + $(this).attr("id") + '">' + linktext + '</a></li>';
				prod_send[c] = $(this).attr("id");
				c++;
			}
	    });
        
		xajax_vendor_products_drop(false,prod_send);
        $("#company-list-target").append(prod_options);
		del_event();
        return false;
        
    });
    
    $(".prod-delete").unbind("click");
    $(".prod-delete").bind("click", function(){		
		var prod_send = new Array();
		var c = 0;
		
		$("#company-list-target .selected-list-element-target").each(function(){
			prod_send[c] = $(this).attr("rel");
			c++;
		});
		
		xajax_vendor_products_drop(true,prod_send);
        $("#company-list-target .selected-list-element-target").parent().remove();
        return false;
    });
	
	/* ----------  Produkt Filter ------------ */
 	// Verhindert die Browser Autovervollständigung
	$("#company-filter").attr("autocomplete", "off");	
	
	$("#company-filter").keyup(function(){
		filter_timer($(this).val());
	});
	
 	// Vermindert die Anzahl der Abfragen bei schnellen Tastatureingaben
	function filter_timer(search_string){
		var now = new Date();
		clearTimeout(timestamp);
		timestamp = setTimeout(function(){
			xajax_vendor_products_filter(search_string);
		}, 500);
	}
	   
	 
}); 
}


$(document).ready(function(){
    product_link_init();
});

