function dmvExtend(subclass, superclass) {
   function Dummy() {}
   Dummy.prototype = superclass.prototype;
   subclass.prototype = new Dummy();
   subclass.prototype.constructor = subclass;
   subclass.superclass = superclass;
   subclass.superproto = superclass.prototype;
}

function DMVDragBar()
{
	// si is een objectje met informatie over het draggen
	this.si = new ScrollInfo();

	// Aanmaken schuifelement
	this.draggie = document.createElement("img");
	this.draggie.setAttribute("src", "./img/schuifbalk.gif");
	this.draggie.setAttribute("id", "draggie");
	this.draggie.style.position = "absolute";


	// Positioneren schuifelement
	this.dragContainter = document.getElementById("divschuifbalk");
	this.si.startLeft = findPosX(this.dragContainter);
	this.si.startTop = findPosY(this.dragContainter);
	this.draggie.style.left = this.si.startLeft + "px";
	this.draggie.style.top = ((this.si.startTop + this.si.draggerTop) - this.si.topCorrection)+ "px";


	// Toevoegen schuifelement aan de body
	document.getElementById("mainelement").appendChild(this.draggie);

	// Tool-man drag functionaliteit toevoegen
	var coordinates = ToolMan.coordinates();

	var drag = ToolMan.drag();
	this.group = drag.createSimpleGroup(this.draggie);

    // bereikbaar maken voor transform method
    var transformSI = this.si;

	// Draggen en alleen over de lijn.
	this.group.addTransform(
		function(coordinate, dragEvent)
		{
			var originalTopLeftOffset = dragEvent.topLeftOffset.minus(dragEvent.topLeftPosition);

			var startC = coordinates.create(transformSI.startLeft, (transformSI.startTop + transformSI.draggerTop) - transformSI.topCorrection);
		    var endC = coordinates.create(transformSI.startLeft + transformSI.scrollLength, (transformSI.startTop + transformSI.draggerTop) - transformSI.topCorrection);

		    return coordinate.constrainTo(startC, endC);
		}
	)
}

DMVDragBar.prototype.resizer = function()
{
    this.si.startLeft = findPosX(this.dragContainter);
    this.si.startTop = findPosY(this.dragContainter);

    this.draggie.style.top = ((this.si.startTop + this.si.draggerTop) - this.si.topCorrection) + "px";
    this.draggie.style.left = (this.si.startLeft + this.si.draggerLeft) + "px";
}

//-----------------------------------------------------------------------------

function ProjectsDragBar()
{
    ProjectsDragBar.superclass.call(this);

	// Opvragen totale breedte van de balk met plaatjes
    this.scrollEl = document.getElementById('divscrolldiv');

	this.si.scrollLength = 840;
	this.si.visibleWidth = 940;

	var listitems = this.scrollEl.getElementsByTagName("div");
	for (i = 0; i < listitems.length; i++)
	{
		this.si.totalWidth += listitems[i].offsetWidth;
	}
}
dmvExtend(ProjectsDragBar, DMVDragBar);

//-----------------------------------------------------------------------------

function MovieDragBar()
{
    MovieDragBar.superclass.call(this);

	this.si.scrollLength = 382;
}
dmvExtend(MovieDragBar, DMVDragBar);

