var A_B_Test = {
	/*-----------------------
	generelle Testparameter
	-----------------------*/
	//Name des Tests, wie er in ARGUS erscheinen soll (Prefix: abtest)
	testName: "",
	//Welche Ausprägungen soll der Test haben, erschauen in ARGUS
	testAuspraegungen: "",
	// wie werden die testAuspraegungen verteilt - Summe muss 1 ergeben
	auspraegungsVerteilung: "",
	//aktuelle Testgruppe, entweder falls schon gesetzt aus Cookie, oder falls noch nicht gesetzt per Zufall
	aktuelleTestgruppe: "",
	//Name des Cookies, in dem der Test gespeichert wird
	testCookieName: "",
	//Random-Zahl für Teststeuerung
	rndVar: "",
	isAlreadyRunning: "",
	
	/*----------------------------------
	generelle TestCookie-Einstellungen
	----------------------------------*/
	//Test im Cookie gespeichent, oder jedes mal neu per Zufall neu setzen / default: true
	savetestAuspraegungenInCookie: true,
	currentRunningTestObject: [],
	/*Constructor zum initiieren von A-B-TestClass*/
	Constructor:function(c){if(A_B_Test.isTestObjectAlreadyDefined(c)){this.isAlreadyRunning=true;}else{this.testName=c.testName;this.isAlreadyRunning=false;this.testAuspraegungen=c.testAuspraegungen;this.auspraegungsVerteilung=c.auspraegungsVerteilung;this.testCookieName="abtest_"+c.testName;this.aktuelleTestgruppe=getCookie(this.testCookieName);this.rndVar=Math.random();if(typeof c.cookieExpires!="undefined"){this.cookieExpires=c.cookieExpires;}if(typeof c.savetestAuspraegungenInCookie!="undefined"){this.savetestAuspraegungenInCookie=c.savetestAuspraegungenInCookie;}A_B_Test.initTest(this);}return this;},
	/*A-B-Test ermittele Ausprägung*/
	initTest:function(a){if(!a.isAlreadyRunning){if(a.aktuelleTestgruppe==null){sum_verteilung=0;for(i=0;i<a.auspraegungsVerteilung.length;i++){sum_verteilung=sum_verteilung+a.auspraegungsVerteilung[i];if(a.rndVar<sum_verteilung){a.aktuelleTestgruppe=a.testAuspraegungen[i];setDomainCookie(a.testCookieName,a.aktuelleTestgruppe,"30","/");break;}}}if(typeof abtest=="undefined"){abtest="";}abtest=abtest+"&abtest_"+a.testName+"="+a.aktuelleTestgruppe;}},
	/*A-B-Test wird gestartet und die ermittelte Ausprägung angezeigt*/
	startTest:function(a,b){if(!a.isAlreadyRunning){b(a);}},
	/*Class-Own getCookie-Function*/
	getCookie:function(c){var d=document.cookie.indexOf(c+"=");var a=d+c.length+1;if((!d)&&(c!=document.cookie.substring(0,c.length))){return null;}if(d==-1){return null;}var b=document.cookie.indexOf(";",a);if(b==-1){b=document.cookie.length;}return unescape(document.cookie.substring(a,b));},
	/*Class-Own setCookie-Function*/
	setCookie:function(b,d,a,f,c,e){alert(b);if(a){a=a*1000*60*60*24;}setDomainCookie(b,d,a,"/");},
	/*Prüfen, ob bereits ein Test mit gleichen Namen exisiert*/
	isTestObjectAlreadyDefined:function(a){for(i=0;i<A_B_Test.currentRunningTestObject.length;i++){if(A_B_Test.currentRunningTestObject[i].testName==a.testName){return true;break;}}A_B_Test.currentRunningTestObject.push(a);return false;}
}
