// JavaScript Document

/*
function vjProjectShowThis(elementId) {
	$('#'+elementId).animate(
		{
			style: 'height: 300px;'
		},
	1000
	)
}

function vjProjectHideThis(elementId) {
	$('#'+elementId).animate(
		{
			style: 'height: 150px;'
		},
	1000
	)
}
*/
/*
$(document).ready(maininit);

function maininit() {
    // Markieren von Tabellenzeilen ermöglichen 
    $('table tbody tr').click(function() {
        $(this).toggleClass('marked');
    });

    // Alle internen Links weich scrollen lassen 
    $('a[@href]^="#"').click(function() {
        var parts        = this.href.split('#');
		if(parts[1]) {
	        var scrolltarget = '#' + parts[1];
    	    $(scrolltarget).ScrollTo(1000);
	        return false;
		}
    });
};

*/



var vjDoingObjects = new Array();

function vjDoingObject(id) {

	var id = id;
	var element = document.getElementById(id);
	

	
	var step = 1.2;
	var ready = false;
	var target = 0;
	var distance = 0;
	
	var origin = 0;
	
	var tolerance = 1;
	
	this.setValue = function(value) {
		element.style.height = value+"px";
	}
	
	this.getValue = function() {
		var value = element.style.height;
		return parseInt(value.replace(/px|em|\%/i, ''));
	}
	
	this.getOrigin = function() {
		return origin;
	}
	
	this.setTarget = function(_target) {
		target = _target;
		origin = this.getValue();
		
		distance = target - origin;
	}
	
	this.doStep = function() {
		if(this.isReady()) {
			return;
		}
		if(Math.abs(distance) > 0.2)
			distance = distance / step;
		var newValue = target - distance;
		this.setValue(newValue);
	}
	
	this.isReady = function() {
		return ( (this.getValue() >= (target - tolerance) ) && (this.getValue() <= (target + tolerance)) ) || (this.getValue() == target);
	}	
	
	this.getId = function() {
		return id;
	}
	
	
}

function vjGetObjectById(elementId) {
	for(var i=0;i<vjDoingObjects.length;i++) {
		if(vjDoingObjects[i].getId() == elementId)
			return vjDoingObjects[i];
	}
	return false;
}

function vjProjectShowThis(elementId) {
	if(!vjGetObjectById(elementId)) {
		var obj = new vjDoingObject(elementId);
		obj.setTarget(300);
		vjDoingObjects[vjDoingObjects.length] = obj;
		vjProjectStart();
	}
}

function vjProjectHideThis(elementId) {
	if(!vjGetObjectById(elementId)) {
		var obj = new vjDoingObject(elementId);
		obj.setTarget(150);
		vjDoingObjects[vjDoingObjects.length] = obj;
		vjProjectStart();
	}
}

function vjProjectStart() {
	if(vjDoingObjects.length == 1)
		vjProjectDoShow();
}

function vjProjectDoShow() {

	var active = 0;
	for (var i = vjDoingObjects.length-1; i >= 0; i = i-1) {
		vjDoingObjects[i].doStep();
		if(vjDoingObjects[i].isReady())
			vjDoingObjects.array_cut(i);
		else
			active++;
			
	}
	
	if(active == 0)
		vjDoingObjects = new Array();		
	else
		window.setTimeout("vjProjectDoShow()", 50);
		
}

Array.prototype.array_cut = function(n) {
	if(n>=0 && n<this.length) {
		if(n<this.length) {
			var x = -1;
			while((++x)<this.length) {
				if(x>=n) {
					this[x] = this[x+1];
				}
			}
		}
		this.pop();
	}
};

