(function() {
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;
YAHOO.example.DDApp = {
    init: function() {

        //var rows=11,cols=2,i,j;
var rows=21,cols=4,i,j;
        for (i=1;i<cols+1;i=i+1) {
            new YAHOO.util.DDTarget("ul"+i);
        }
        for (i=1;i<cols+1;i=i+1) {
            for (j=1;j<rows+1;j=j+1) {
                new YAHOO.example.DDList("li" + i + "_" + j);
            }
        }
    },
    showOrder: function() {
        var parseList = function(ul, title) {
            var items = ul.getElementsByTagName("li");
            var out = title + ": ";
            for (i=0;i<items.length;i=i+1) {
                out += items[i].id + " ";
            }
            return out;
        };
        var ul1=Dom.get("ul1"), ul2=Dom.get("ul2");
    },
    switchStyles: function() {
        Dom.get("ul1").className = "draglist_alt";
        Dom.get("ul2").className = "draglist_alt";
    }
};
YAHOO.example.DDList = function(id, sGroup, config) {
    YAHOO.example.DDList.superclass.constructor.call(this, id, sGroup, config);
    this.logger = this.logger || YAHOO;
    var el = this.getDragEl();
    Dom.setStyle(el, "opacity", 0.67);
    this.goingUp = false;
    this.lastY = 0;
};
YAHOO.extend(YAHOO.example.DDList, YAHOO.util.DDProxy, {
    startDrag: function(x, y) {
        this.logger.log(this.id + " startDrag");
        var dragEl = this.getDragEl();
        var clickEl = this.getEl();
        Dom.setStyle(clickEl, "visibility", "hidden");
        dragEl.innerHTML = clickEl.innerHTML;
        Dom.setStyle(dragEl, "color", Dom.getStyle(clickEl, "color"));
        Dom.setStyle(dragEl, "backgroundColor", Dom.getStyle(clickEl, "backgroundColor"));
        Dom.setStyle(dragEl, "border", "2px solid gray");
    },
    endDrag: function(e) {
        var srcEl = this.getEl();
        var proxy = this.getDragEl();
        Dom.setStyle(proxy, "visibility", "");
        var a = new YAHOO.util.Motion(
            proxy, {
                points: {
                    to: Dom.getXY(srcEl)
                }
            },
            0.2,
            YAHOO.util.Easing.easeOut
        )
        var proxyid = proxy.id;
        var thisid = this.id;
        a.onComplete.subscribe(function() {
                Dom.setStyle(proxyid, "visibility", "hidden");
				//Removed child nodes after drag
				var last_index = proxy.childNodes.length - 1;
               for(var index = last_index;index > -1;--index) {
                   proxy.removeChild(proxy.childNodes[index]);
               }
                Dom.setStyle(thisid, "visibility", "");
				/*setting cookie for drag and drop sorting*/
				
var p_ul = document.getElementById(thisid).parentNode.id;
YAHOO.util.Cookie.set(p_ul, sortDragDrop(p_ul,thisid), {expires: new Date(getExpDate(365,24,60)) });
            });
        a.animate();
        updateBlockPositions(thisid);
    },
    onDragDrop: function(e, id) {
        if (DDM.interactionInfo.drop.length === 1) {
            var pt = DDM.interactionInfo.point;
            var region = DDM.interactionInfo.sourceRegion;
            if (!region.intersect(pt)) {
                var destEl = Dom.get(id);
                var destDD = DDM.getDDById(id);
                destEl.appendChild(this.getEl());
                destDD.isEmpty = false;
                DDM.refreshCache();
            }
        }
    },
    onDrag: function(e) {
        var y = Event.getPageY(e);
        if (y < this.lastY) {
            this.goingUp = true;
        } else if (y > this.lastY) {
            this.goingUp = false;
        }
        this.lastY = y;
    },
    onDragOver: function(e, id) {

        var srcEl = this.getEl();
        var destEl = Dom.get(id);
        if (destEl.nodeName.toLowerCase() == "li") {
            var orig_p = srcEl.parentNode;
            var p = destEl.parentNode;
            if (this.goingUp) {
                p.insertBefore(srcEl, destEl); // insert above
            } else {
                p.insertBefore(srcEl, destEl.nextSibling); // insert below
            }
            DDM.refreshCache();
        }
    }
});
Event.onDOMReady(YAHOO.example.DDApp.init, YAHOO.example.DDApp, true);
})();


function removeItems(array, item) {
	var i = 0;
	while (i < array.length) {
		if (array[i] == item) {
			array.splice(i, 1);
		} else {i++;}
	}
return array;
}
function rRemovedblock(getcke,ckename,thisid){
    var cke,newcke;
	cke = getcke.split(',');
	var newcke = removeItems(cke,thisid);
	YAHOO.util.Cookie.set(ckename, newcke, {expires: new Date(getExpDate(365,24,60)) });	
}
function sortDragDrop(listId,thisid) {

    var getckeLH = YAHOO.util.Cookie.get("ul_LHBlock");
	if(getckeLH)rRemovedblock(getckeLH,'ul_LHBlock',thisid);
    var getckeRH = YAHOO.util.Cookie.get("ul_RHBlock");
	if(getckeRH)rRemovedblock(getckeRH,'ul_RHBlock',thisid);
    var getckeL = YAHOO.util.Cookie.get("ul1_LBlock");
	if(getckeL)rRemovedblock(getckeL,'ul1_LBlock',thisid);
	var getckeR = YAHOO.util.Cookie.get("ul1_RBlock");
	if(getckeR)rRemovedblock(getckeR,'ul1_RBlock',thisid);
	var getckeM = YAHOO.util.Cookie.get("ul1_MBlock");
	if(getckeM)rRemovedblock(getckeM,'ul1_MBlock',thisid);
	var ids = [];var ul = document.getElementById(listId);
	var lis = ul.getElementsByTagName('li');var li;
		for (var i=0, iLen=lis.length; i<iLen; i++){
			li = lis[i];
			if (li.id)ids.push(li.id);
		}
		return ids;
}
function getSort(getcke,id){


/*
	var ul = document.getElementById(id);
	var sp = getcke.split(',');
		for(i=0;i<sp.length;i++){
			ul.appendChild(document.getElementById(sp[i]));
//alert("divvvvvvvvvvvvvvvvv : " + sp[i]);
		}

*/
}
