if ((typeof A_B_Test) == "undefined"){
	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;}
	}
}

