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

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

function services_link_init(){
del_service_event();
wait( 1, function(){

	// -------------------- Hersteller und Produktgruppen Verknüpfung ------------------ 

	
    $(".service-list-element").unbind("click");
    $(".service-list-element").click(function(){
        if ($(this).hasClass("selected-service-list-element") == true) {
            $(this).removeClass("selected-service-list-element");
            return false;
        }
        else 
		{
            $(this).addClass("selected-service-list-element");
            return false;
        }
    });
    

    
	var clone_element = '';
    $(".service-list-element").draggable({
        helper: function(){
			clone_element = $(this).clone();
			return clone_element;
		},
		zIndex: 1000,
		appendTo: '#service-services'
    });
    
    $("#service-list-target").droppable({
        accept: ".service-list-element",
        drop: function(e, ui){
            var service_send = new Array();
            var c = 0;

            // drag und drop von einzelnen Elementen
            if ($("#service-list-target a[rel=" + $(ui.element).attr("id") + "]").length == 0 && $(".selected-service-list-element").length <= 1) {
                  
                
                if ($(ui.element).hasClass("service-name") == true) {
                    var linktext = "<strong>" + $(ui.element).html() + "</strong>";
                }
                else {
                    var linktext = $(ui.element).attr("rel");
                    var match = linktext.match(/(.*)\((.*)\)$/i);
                    if (match != null) {
                        linktext = "<strong>"+match[2]+"</strong>";
                    }
                }
                
                $("#service-list-target").append('<li class="service-target"><a href="" rel="' + $(ui.element).attr("id") + '">' + linktext + '</a></li>');
                
                service_send[c] = $(ui.element).attr("id");
                c++;
				del_service_event();
            }
            
            
            // drag und drop von mehreren Elementen
            if ($(".selected-service-list-element").length > 1) {
            
            
                if ($("#service-list-target a[rel=" + $(ui.element).attr("id") + "]").length == 0) {
    
                    
                    if ($(ui.element).hasClass("service-name") == true) {
                        var linktext = "<strong>" + $(ui.element).html() + "</strong>";
                    }
                    else {
                        var linktext = $(ui.element).attr("rel");
                        var match = linktext.match(/(.*)\((.*)\)$/i);
                        if (match != null) {
                            linktext = "<strong>" + match[2] + "</strong><br />";
                        }
                    }
					
					$("#service-list-target").append('<li class="service-target"><a href="" rel="' + $(ui.element).attr("id") + '">' + linktext + '</a></li>');
                    
                    service_send[c] = $(ui.element).attr("id");
                    c++;
                }
                
                
                $(".selected-service-list-element").each(function(){
                    var x = $("#service-list-target a[rel=" + $(this).attr("id") + "]").length;
                    if (x == 0) {
         
                        
                        if ($(this).hasClass("service-name") == true) {
                            var linktext = "<strong>" + $(this).html() + "</strong>";
                        }
                        else {
                            var linktext = $(this).attr("rel");
                            var match = linktext.match(/(.*)\((.*)\)$/i);
                            if (match != null) {
                                linktext = "<strong>" + match[2] + "</strong>";
                            }
                        }
						
						$("#service-list-target").append('<li class="service-target"><a href="" rel="' + $(this).attr("id") + '">' + linktext + '</a></li>');
                        
                        service_send[c] = $(this).attr("id");
                        c++;
                    }
                });
            }
            
			xajax_services_drop(false,service_send);
			del_service_event();
        }
    });
	
	// Übernahme der Selektierten Elemente mit Klick auf den Button
    $(".service-transfer").unbind("click");
    $(".service-transfer").bind("click", function(){
		var service_send = new Array();
		var c = 0;
        var service_options = '';
		
        $(".selected-service-list-element").each(function(){
			var x = $("#service-list-target a[rel=" + $(this).attr("id") + "]").length;
            if (x == 0) {
				if($(this).hasClass("service-name") == true)
				{
					var linktext = "<strong>"+$(this).html()+"</strong>";
				}
				else
				{
                    var linktext = $(this).attr("rel");
                    var match = linktext.match(/(.*)\((.*)\)$/i);
                    if (match != null) {
                        linktext = "<strong>"+match[2]+"</strong>";
                    }
				}
			
				service_options += '<li class="service-target"><a href="" rel="' + $(this).attr("id") + '">' + linktext + '</a></li>';
				service_send[c] = $(this).attr("id");
				c++;
			}
	    });
        
		xajax_services_drop(false,service_send);
        $("#service-list-target").append(service_options);
		del_service_event();
        return false;
        
    });
    
    $(".service-delete").unbind("click");
    $(".service-delete").bind("click", function(){		
		var service_send = new Array();
		var c = 0;
		
		$("#service-list-target .selected-service-list-element-target").each(function(){
			service_send[c] = $(this).attr("rel");
			c++;
		});
		
		xajax_services_drop(true,service_send);
        $("#service-list-target .selected-service-list-element-target").parent().remove();
        return false;
    });
    
}); 
	
}


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

