/*
 * dragdrop for heracles hdragdrop module
 * with jquery
 *
 * Michi Gau and Stieger Dan 2009
 *
 * first revision, only text div s can be handeled - 25th mai
 * 
 *
 */
 


function UpdateFormField(){
   
  /* save data to input field .... */
  var st = '' + DroppedArray[0];
  for (i = 1; i < (DroppedArray.length-1); i++)
		st += ',' + DroppedArray[i];
  
  document.forms['baseform'].DRAGDROP.value = st;
}
 
 /* check if dom is ready */
$(document).ready(function() { 
    
    if (typeof(DroppedArray) != 'undefined')
    {
        var i = 0;
        
        /* move objects to target ... if not 0 as init value .... */
        for (i = 0; i < (DroppedArray.length - 1); i++)
            if (DroppedArray[i] != 0)
            {
                dropobj = document.getElementById("pictarget"+(i+1));
                dragobj = document.getElementById("pic"+DroppedArray[i]);
                dropobj.appendChild(dragobj);   
            }
            
        UpdateFormField() ;
        
        /* init dragable objects */
        $(".HDragDropS").draggable({helper: 'clone'});
        
        /* initialize all dropable objects */
        for (i = 0; DropTargets[i] != 0; i++)
        { 
            $(DropTargets[i]).droppable({
                accept: ".HDragDropS",
                /*activeClass: 'droppable-active',
                  hoverClass: 'droppable-hover',*/
                drop: function(ev, ui) {
                        // $(".HDragDropS").draggable('disable');
                        dropobj = document.getElementById($(this).attr("id"));
                        
                        /* check if a picture is already attached to the drop field .. */
                        // alert(dropobj.childNodes.length);
                        
                        /* are there realy 3 objects in the target div ???? */
                        var l = 0;
                        for (; l < dropobj.childNodes.length; l++)
                            if (dropobj.childNodes[l].nodeName.toLowerCase().indexOf('div') >= 0)
                                document.getElementById("baseDragField").appendChild(dropobj.lastChild);
                        
                        dragobj = document.getElementById($(ui.draggable).attr("id"));
                        dropobj.appendChild(dragobj);
                        
                        /* save id into DroppedArray field .... */
                        var dragid = parseInt(dragobj.id.substring(3, dragobj.id.length)); 
                        var dropid = parseInt(dropobj.id.substring(9, dropobj.id.length));
                        DroppedArray[(dropid-1)] = dragid;
                        UpdateFormField() ;
                                               
                        $(".HDragDropS").draggable({helper: 'clone'});
                }
            });
         }
        
        $("#baseDragField").droppable({
            accept: ".HDragDropS",
            drop: function(ev, ui) {
                dropobj = document.getElementById($(this).attr("id"));
                dragobj = document.getElementById($(ui.draggable).attr("id"));
                dropobj.appendChild(dragobj);
                
                var dragid = parseInt(dragobj.id.substring(3, dragobj.id.length));
                var j = 0;
                for (; j < (DroppedArray.length-1); j++)
                    if (DroppedArray[j] == dragid)
                        DroppedArray[j] = 0;
                UpdateFormField();
                
                $(".HDragDropS").draggable({helper: 'clone'});
            }
        
        }); 
    }
    
});
 