/*==============================================================================
========                           AB Tests                             ========
==============================================================================*/
var caAB = {};
caAB.cookieName = 'ab_tst';
/*==============================================================================
 Globale Definitionen der Testumgebung
==============================================================================*/
caAB.percent = 10;                                               // Prozent aller Besucher, die an Tests teilnehmen sollen

/*==============================================================================
 Definition der Tests.
==============================================================================*/
caAB.ABTestData = {};
// Test ID 0
caAB.ABTestData['AB-100002'] = 
{
	"priority" : 100	 																							  // Gewichtung
};
caAB.ABTestData['AB-100002'].segment = function(){return false;};      // Besuchersegment

/*==============================================================================
 Config Funktionen
==============================================================================*/
// Rueckgabe der Test ID aus dem AB Cookie
caAB.getCookie=function(){
  if(caGetCookie(caAB.cookieName).indexOf(',')){return caGetCookie(caAB.cookieName).split(',')[0];} 
  return false; 
};
// Eintragen eines neuen Test im AB Cookie
caAB.setTest=function(){
  var a_in = [], a_out = [];
  for(var t in caAB.ABTestData){                                  // suche alle Segmente, in die der Besucher passt
    if( caAB.ABTestData[t].segment() ){
      a_in[a_in.length] = t;
    }else{
      a_out[a_out.length] = t; 
    } 
  }
  if(a_in.length === 0){ a_in = a_out; }                          // wenn es keine Segmente gibt nimm alle Tests
  var maxPrio = 0;
  for(var i = 0;i<a_in.length;i++){                               // Summe der Prioritaeten
    maxPrio += caAB.ABTestData[a_in[i]].priority;    
  }
  var rnd = caRandom(0,maxPrio);                                  // einen Test anhand Prio auswaehlen
  maxPrio = 0;
  for(i = 0;i<a_in.length;i++){
    maxPrio += caAB.ABTestData[a_in[i]].priority;
    if(rnd <= maxPrio){
      caSetCookie(caAB.cookieName,a_in[i]+',');                   // Test ID in AB Cookie speichern
      //caSetCookie(caAB.cookieName,a_in[i]+',',caAB.ABTestData[a_in[i]].cookieTime); // Test ID in AB Cookie speichern
      break;  
    } 
  }  
};
/*==============================================================================
 Initialisierung
==============================================================================*/
function caABTest(){
  var c = caAB.getCookie();
//  alert("cookie: ->"+c+"<-");
  if(c != 0 && c != ""){
//  	alert("test");
    if(caAB.ABTestData[c]){return;}    
  }else{
  	var	rnd=caRandom(0, 100);
    if(rnd <= caAB.percent){
//    	alert("not set");
      caAB.setTest(); 
    }else{
//    	alert("no test"+"\n\n"+rnd);
      caSetCookie(caAB.cookieName,'0,0');                                                                  // kein Test
    }    
  }  
}
/*==============================================================================
 Cookie Format: test_id,varianten_id
==============================================================================*/