
//	Helperfunktionen

var MousePosX=0;
var MousePosY=0;


document.onmousemove = mauspos;

function DebugDisplay() {
		
	DebugObj = document.getElementById('IdDebug');
	
	if (DebugObj.style.display != "block") {
		DebugObj.style.display = "block";
	} else {
		DebugObj.style.display = "none";
	}
	
	return false;

}

function mauspos(e) {
        if (navigator.appName == 'Netscape') {
           MousePosX = e.pageX;
           MousePosY = e.pageY;
        } else {
           MousePosX = window.event.x;
           MousePosY = window.event.y;
        }
}

function make_for_null (Wert,Laenge) {

	if (Wert.length > Laenge) alert("Fehler - Wert ist schon laenger!");
	
	while (Wert.length < Laenge) {
		Wert = "0"+Wert;
	}

	return Wert;
}

Number.prototype.format = function(komma, kommazeichen, tausender) {
        

	if(!kommazeichen) kommazeichen  = ".";
	if(typeof tausender == 'undefined') tausender = ",";

	if(!komma) komma = 0;

	var sign = (this < 0) ? "-" : "";
	var nullen = Math.pow(10, komma);
	var nummer = Math.round((Math.abs(this) * nullen)  )/ nullen;

    if ((nummer+'').length > 3) {
		var k = nummer.toString().indexOf(".");

		if(k == -1) k = nummer.toString().length;

		var nach =  nummer.toString().substring(k + 1);
		var vor = nummer.toString().substring(0, k);
		var i = vor.length;
		var tmp = 0;
		var vor_neu = ""
		do {
			vor_neu = vor.charAt(i) + vor_neu;
			// Tausendertrennzeichen
			if(tmp == 3 && i > -1)
			{
				vor_neu = tausender + vor_neu;
				tmp = 0;
			}
			tmp++;
		} while(i--)

		nullen = nullen.toString().substring(1);
		nach = (nach + nullen).substring(0, komma);
		if(nach != "") vor_neu = vor_neu + kommazeichen + nach;

		return sign + vor_neu;
		
	} else {
		return this;
	}
};


function make_decimal(x) {

	var k = (Math.round(x * 100) / 100).toString();

	k += (k.indexOf('.') == -1)? '.00' : '00';

	var p = k.indexOf('.'), m = k.indexOf('-.');
	var f = (p == 0 || m == 0)? '0,' : ',';

	var wert = k.substring(0, p) + f + k.substring(p+1, p+3);

	return wert;

}


function setTooltipp(Obj,Text) {
	//var newTooltipp = document.createElement('tooltipp');
	//var newTooltippLabel = document.createElement('label');
	//newTooltippLabel.setAttribute('value',Text);
	//Obj.
}

function str_replace(search, replace, subject) {
	if (subject) return subject.split(search).join(replace);
}


function removeNL(str) {
   return str.replace(/\r|\n/g, "<br />");
}

function EscapeQuote (ch) {
	ch = str_replace("'", "\\'",ch);
	ch = str_replace('"','\\"',ch);
	return ch;
}

function array_diff () {

    // Returns the entries of arr1 that have values which are not present in any of the others arguments.
    //
    // version: 1004.2314
    // discuss at: http://phpjs.org/functions/array_diff    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Sanjoy Roy
    // +    revised by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: array_diff(['Kevin', 'van', 'Zonneveld'], ['van', 'Zonneveld']);
    // *     returns 1: {0:'Kevin'}    var arr1 = arguments[0], retArr = {};

    var k1 = '', i = 1, k = '', arr = {};

    arr1keys:
    for (k1 in arr1) {

		for (i = 1; i < arguments.length; i++) {
			arr = arguments[i];
			for (k in arr) {
				if (arr[k] === arr1[k1]) {
					// If it reaches here, it was found in at least one array, so try next value continue arr1keys;
				}
			}
			retArr[k1] = arr1[k1];
	}    }

    return retArr;
}

function SysCodeCreate() {

	var SysCode = "";
	var Timer = new Date().getTime();

 	var Zahl1 = (1+100000000)*(Math.random());
	Zahl1 = Math.round(Zahl1);

 	var Zahl2 = (1+100000000)*(Math.random());
	Zahl2 = Math.round(Zahl2);

	SysCode = MD5(Zahl1.toString())+Timer+MD5(Zahl2.toString());

	return SysCode.substr(0,64);
}

Array.prototype.in_array = function (elem) {
	for (var i=0;i<this.length;i++) if (this[i]==elem) return true;
	return false;
};

Array.prototype.deletePos = function(position) {

	for (var x = 0; x < this.length; ++x) {

		if (x >= position) this[x] = this[x + 1];

	} this.pop();
};


Array.prototype.deleteWert = function(wert) {

	var FlagDelete = false;

	for (var x = 0; x < this.length; ++x) {
		if (this[x] == wert) FlagDelete = true;
		if (FlagDelete) this[x] = this[x + 1];
	} this.pop();
};

var isDefined = function(variable){
	return this[variable] === undefined ? false : true;
};

/*
function Debug (Message,Type) {
	if (!Type) Type = "";

	var Ausgabe = Message;
	if (Type == "FEHLER") Ausgabe = "\n---------------------------------------------------------------------------\nFEHLER: "+Ausgabe+"\n---------------------------------------------------------------------------";

	//var Params = "&Type=Debug&Aktion=Schreiben&Ausgabe="+encodeURIComponent(Ausgabe);
	//AjaxA ('AjaxDebug',Params);

	if (DebugWindow) {
		try {
			DebugWindow.DebugMessagePrint(Ausgabe);
		} catch(err) {

		}
	}

	return false;
}
*/

function LoescheAnzeigebereich(element) {
	//Debug("Lösche Anzeigebereich mit der id '"+element.getAttribute('id')+"'");
	if (document.getElementById(element)) element = document.getElementById(element);
	if (!element) var element = document.getElementsByTagName('window')[0];
	try {
		while(element.hasChildNodes()) element.removeChild(element.firstChild);
	} catch(err) {
		Debug(err,'FEHLER');
	}
	return false;
}


function isArray(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1) {
		alert("ist KEIN Array");
		return false;
	} else {
		alert("ist ein Array");
		return true;
	}
}

Array.prototype.foreach = function( callback ) {
	for( var k=0; k<this .length; k++ ) {
		callback( k, this[ k ] );
	}
	/*
	var a = [ 'a', 'b', 'c', 'd' ];
		a.foreach( function( k, v ) {
		document.writeln( k + ' ' + v );
	});

	// dieser Aufruf machte im Firefox 3 aus unerfindlichen Gründen Probleme
	[ 'a', 'b', 'c', 'd' ].foreach( function( k, v ) {
		document.writeln( k + ' ' + v );
	});

	// so mag es auch der Firefox 3
	;[ 'a', 'b', 'c', 'd' ].foreach( function( k, v ) {
		document.writeln( k + ' ' + v );
	});
	*/
}

//Object.prototype.foreach = function( callback ) {
//	for( var k in this ) {
//		if( typeof this[ k ] != 'function' ) {
//			callback( k, this[ k ] );
//		}
//	}

	/*
	var o = {
		title:'red',
		body:'yellow'
	};

	o.foreach( function( k, v ) {
		document.writeln( k + ' ' + v );
	});
	*/
//}




