var SWITCH_FIREBUG_LOGGING = 'OFF'; //  set 'OFF'  to switch off 
var REGISTRATION_PAGE = 'info-anmeldung:anmeldung';
var BASKET_PAGE = 'punkte-einloesen:warenkorb';
var PRODUCT_DETAIL_PAGE = 'punkte-einloesen:praemie_detail';
var BONUS_CATEGORY_PAGETYPE_INDICATORS = new Array('praemienshop','praemien-hoehepunkte','praemiensuche','unsere-neuesten-praemien');
var CAMPAIGN_LANDING_PAGE_INDICATORS = new Array('aktuell','newsletter');
var SEARCH_RESULT_CLASSNAME = 'result-teaser';
var SEARCH_PAGE = 'service:suche';
var COLLECT_POINTS_PAGE = 'punkte-sammeln';
var ERROR_PAGE = 'service:404';
var BONUS_SEARCH_PAGE = 'punkte-einloesen:praemiensuche';
var PARTNER_SEARCH_PAGE = 'punkte-sammeln:partner-in-ihrer-naehe';
/*
 * variables for cms pagedata, fetched from hidden input-fields .
 */
var pageName_cms = ''; 
var server_cms;
var channel_cms = '';
var pageType_cms;
var prop1_cms = ''; 
var prop2_cms = ''; 
var prop3_cms = '';
var prop4_cms = '';
var prop5_cms = '';
var prop6_cms = '';
var prop7_cms = '';
var prop8_cms;
var prop9_cms;
var prop10_cms;
var prop11_cms;
var prop12_cms;
var prop13_cms;
var bonusCategory_cms = '';

if (!(typeof(document.getElementById('cms_pageName'))=='undefined')){
	pageName_cms = document.getElementById('cms_pageName').value; 
}
if (!(typeof(document.getElementById('cms_topSection'))=='undefined')){
	channel_cms = document.getElementById('cms_topSection').value;
}
if (!(typeof(document.getElementById('cms_siteSection'))=='undefined')){
	prop1_cms = document.getElementById('cms_siteSection').value;
}
if (!(typeof(document.getElementById('cms_subSection1'))=='undefined')){
	prop2_cms = document.getElementById('cms_subSection1').value;
}
if (!(typeof(document.getElementById('cms_subSection2'))=='undefined')){
	prop3_cms = document.getElementById('cms_subSection2').value;
}
if (!(typeof(document.getElementById('cms_pageType'))=='undefined')){
	prop4_cms = document.getElementById('cms_pageType').value;
}
if (!(typeof(document.getElementById('cms_bonusCategory'))=='undefined')){
	bonusCategory_cms = document.getElementById('cms_bonusCategory').value;
}

/*
 * variables which hold the values that are finally passed to the omniture variables .
 */
var pageNameValue = '';
var serverValue = '';
var channelValue = '';
var pageTypeValue = '';
var prop1Value = ''; 
var prop2Value = '';
var prop3Value = '';
var prop4Value = '';
var prop5Value = '';
var prop6Value = ''; 
var prop7Value = '';
var prop8Value = '';
var prop9Value = '';
var prop10Value = '';
var prop11Value = '';
var prop12Value = '';
var prop13Value = '';
/* Conversion Variables */
var campaignValue = '';
var stateValue = '';
var zipValue = '';
var eventsValue = '';
var productsValue = '';
var purchaseIDValue = '';
var eVar1Value = '';
var eVar2Value = '';
var eVar3Value = '';
var eVar4Value = '';
var eVar5Value = '';
var eVar6Value = '';
var eVar7Value = '';
var eVar8Value = '';
var eVar9Value = '';
var eVar10Value = '';
var eVar11Value = '';
var eVar12Value = '';
var eVar13Value = '';

/*********************************************
 * Begin: Processing data 
 ********************************************/
var modified_pagename = false;

trackRegistrationProcess();  // PlayBook 3.2
trackShoppingBasket();  // PlayBook 3.3                
trackShoppingCardPerformance();  // PlayBook 3.4
trackPaymentAndShippingMethods();  // PlayBook 3.5
trackProductFindingMethods();  // PlayBook 3.6
trackProductCategoryMerchandising();  // PlayBook 3.7
trackInternalSearchOptimization();  // PlayBook 3.8
trackInternalCampaigns();  // PlayBook 3.9
trackErrorPage();  // extra
trackBonusSearch(); // extra
trackPartnerSearch(); // extra

if (!modified_pagename){
	this.pageNameValue = pageName_cms;
}

channelValue = channel_cms;
prop1Value = prop1_cms; 
prop2Value = prop2_cms;
prop3Value = prop3_cms;
prop4Value = prop4_cms;

/*
 * Logging, should be switched of in prod-mode
 */
if (SWITCH_FIREBUG_LOGGING != 'OFF'){
	console.log("s.pageName: " + pageNameValue);
	console.log("s.channel: " + channelValue);
	console.log("s.prop1: " + prop1Value );
	console.log("s.prop2: " + prop2Value );
	console.log("s.prop3: " + prop3Value );
	console.log("s.prop4: " + prop4Value );
	console.log("s.prop5: " + prop5Value );
	console.log("s.prop6: " + prop6Value );
	console.log("s.prop7: " + prop7Value );
	console.log("s.prop8: " + prop8Value );
	console.log("s.prop9: " + prop9Value );
	console.log("s.prop10: " + prop10Value );
	console.log("s.prop11: " + prop11Value );
	console.log("s.events: " + eventsValue );
	console.log("s.products: " + productsValue);
	console.log("s.purchaseIDValue: " + purchaseIDValue);
	console.log("s.zip: " + zipValue);
	console.log("s.eVar1: " + eVar1Value);
	console.log("s.eVar2: " + eVar2Value);
	console.log("s.eVar3: " + eVar3Value);
	console.log("s.eVar4: " + eVar4Value);
	console.log("s.eVar5: " + eVar5Value);
	console.log("s.eVar6: " + eVar6Value);
	console.log("s.eVar7: " + eVar7Value);
	
	
}

/********************************************
 * End: Processnig data 
 ********************************************/

/*
 * omniture variables which are passed to SiteCatalyst
 */
s.pageName=pageNameValue
s.server=serverValue
s.channel=channelValue
s.pageType=pageTypeValue
s.prop1=prop1Value
s.prop2=prop2Value
s.prop3=prop3Value
s.prop4=prop4Value
s.prop5=prop5Value
s.prop6=prop6Value
s.prop7=prop7Value
s.prop8=prop8Value
s.prop9=prop9Value
s.prop10=prop10Value
s.prop11=prop11Value
s.prop12=prop12Value
s.prop13=prop13Value
/* Conversion Variables */
s.campaign=campaignValue
s.state=stateValue
s.zip=zipValue
s.events=eventsValue
s.products=productsValue
s.purchaseID=purchaseIDValue
s.eVar1=eVar1Value
s.eVar2=eVar2Value
s.eVar3=eVar3Value
s.eVar4=eVar4Value
s.eVar5=eVar5Value
s.eVar6=eVar6Value
s.eVar7=eVar7Value
s.eVar8=eVar8Value
s.eVar9=eVar9Value
s.eVar10=eVar10Value
s.eVar11=eVar11Value
s.eVar12=eVar12Value
s.eVar13=eVar13Value


function trackRegistrationProcess(){

	if (pageName_cms == REGISTRATION_PAGE.toLowerCase()){
		pageNameValue = pageName_cms;
		
		if (elemValueByName('_page') != '' && elemValueByName('_page') != '0'){
			var suffix = '';
			
			if(returnRegType() == 'ohneKarte'){
			
				if (elemValueByName('_page') == '5'){
					addEvent('event5');
					suffix = ':'+returnRegType()+':completed';
				} else {
					if (elemValueByName('_page') == '1'){
						addEvent('event4');
					}
					if (elemValueByName('_page') == '2'){
						prop5Value = elemValueById('choosenCardMotif');
					}
					if (elemValueByName('_page') == '3'){
						prop6Value = elemValueById('choosenPartner');
					}
					suffix = ':'+returnRegType()+':step' + returnRegStep();
				}
			}
			else if(returnRegType() == 'mitKarte'){
				if (elemValueByName('_page') == '3'){
					addEvent('event6');
					suffix = ':'+returnRegType()+':step1';
				}	
			    if(returnRegStep() == '4'){
					suffix = ':'+returnRegType()+':step2';
				}
				
				if (elemValueByName('_page') == '5'){
					addEvent('event7');
					suffix = ':'+returnRegType()+':completed';
				}
				
			}
			pageNameValue = pageName_cms + suffix;
			modified_pagename = true;
		} 
	}
}


function trackShoppingBasket(){
	if (pageName_cms == BASKET_PAGE.toLowerCase()){
		pageNameValue = pageName_cms;
		//PageName anpassen
		if (elemValueById('basketPage') != ''){
			var suffix = '';
				if (elemValueById('basketPage') == '1'){
					suffix = ':step1';
					addEvent('event13');
				}
				if (elemValueById('basketPage') == '2'){
					suffix = ':step2';
				}
				if (elemValueById('basketPage') == '3'){
					suffix = ':completed';
					addEvent('event14');
				}	
			pageNameValue = pageName_cms + suffix;
			modified_pagename = true;
		}
	}
}

function trackShoppingCardPerformance(){
	if (pageName_cms == PRODUCT_DETAIL_PAGE.toLowerCase()){
		if(returnBonusId() != ''){
			addEvent('prodView');
			addEvent('event3');
			addProductId(returnBonusId());
		}
	}
	if (pageName_cms == BASKET_PAGE.toLowerCase()){
		//Test if Product has been added
		if (elemValueById('basketPage') == 1){
			if(elemValueById('addedBonusId') != 'null')	{
				addEvent('scAdd');	
				addProductId(elemValueById('addedBonusId'));
			} 
			//Test if Cart was empty
			if(elemValueById('numberOfItems') != 'null'){
				if (elemValueById('numberOfItems') == '1'){
					addEvent('scOpen');	
				}		
			}
		}
		if (elemValueById('basketPage') == 2){
			var items = elemValueById('numberOfItems');
			if (items != ''){
				for (var i = 1; i <= items; i++){
					var currentItem = 'item_'+i;
					addProductId(elemValueById(currentItem));
				}
				addEvent('scCheckout');	  
				
			}
		
		}
		if (elemValueById('basketPage') == 3){
			var items = elemValueById('numberOfItems');
			if (items != ''){
				for (var i = 1; i <= items; i++){
					var productId = 'item_id_'+i;
					var productUnits = 'item_am_'+i;
					var productEuro = 'item_eu_'+i;
					var productPoints = 'item_po_'+i;
					var productStr = elemValueById(productId)+';'+elemValueById(productUnits)+';'+elemValueById(productEuro).replace(',','.')+';event11='+elemValueById(productPoints).replace('.','');
					addProductId(productStr);
				}
				addEvent('purchase,event11');	  
				zipValue = elemValueById('orderZip');
				purchaseIDValue = elemValueById('orderId');
			}
		
		}
	}
}

function trackPaymentAndShippingMethods(){
	if (elemValueById('basketPage') == 3){		
			eVar5Value = elemValueById('payment');
			eVar6Value = elemValueById('shipping');
		}
	}

function trackProductFindingMethods(){
	if(isCategoryBrowsePage(pageName_cms)){
		eVar3Value = 'browse';
	}
	
	if(pageName_cms == SEARCH_PAGE.toLowerCase()){
		//if(elemValueById('q1') != 'Suchbegriff' && elemValueById('q1') != ''){}
		if(countElementsByClass(SEARCH_RESULT_CLASSNAME) > 0 ){
			eVar3Value = 'search';
		}
	}
	
	if(pageName_cms.match(COLLECT_POINTS_PAGE.toLowerCase())){
		if(isCampaignLandingPage(pageName_cms)){
			eVar3Value = 'internal campaign';
		}
	}
}

function trackProductCategoryMerchandising(){
	if(pageName_cms == PRODUCT_DETAIL_PAGE.toLowerCase()){
		eVar4Value = bonusCategory_cms;
	}
}

function trackInternalSearchOptimization(){
	if(pageName_cms == SEARCH_PAGE.toLowerCase()){
		addEvent('event1');	
		
		if (elemValueById('q1') != 'Suchbegriff'){
			eVar1Value = elemValueById('q1');
			if(countElementsByClass(SEARCH_RESULT_CLASSNAME) == 0 ){
				addEvent('event2');
			}
		}
	}
}

function trackInternalCampaigns(){
	if(elemValueById('eVar2') != ''){
		eVar2Value = elemValueById('eVar2');
	}
}

function trackErrorPage(){
	if(pageName_cms == ERROR_PAGE.toLowerCase()){
		prop7Value = 'Error_404';
	}
}

function trackBonusSearch(){
	if(pageName_cms == BONUS_SEARCH_PAGE.toLowerCase()){
		if (elemValueById('bonusSearch') == 'true'){
			addEvent('event9');
			prop8Value = elemValueById('minPoints') + '-' + elemValueById('maxPoints') + '|'+'0-'+elemValueById('maxAdditionalPayment');
			if (elemValueById('allBonusCategories') == 'true'){
				prop10Value = 'All';
			} else {
				var categoriesStr = elemValueById('categories');
				var categoriesStrWithoutBrackets = categoriesStr.substring(1, categoriesStr.length-1);
				var array = categoriesStrWithoutBrackets.split(',');
				for (var i = 0; i <= array.length-1; i++){
					if(i == array.length-1){
						addProp10(array[i].substring(array[i].lastIndexOf('/')+1, array[i].length));
							
					} else {
						addProp10(array[i].substring(array[i].lastIndexOf('/')+1, array[i].length) + '|');
					}	
				}
			}
		}
	}
	
}


function trackPartnerSearch(){
	if(pageName_cms == PARTNER_SEARCH_PAGE.toLowerCase()){
		addEvent('event8');
		
	}
}
/****************************************
 * Helper-Functions
 ****************************************/

/*
 * adds a new event to s.events=
 */ 
function addEvent(str){
	if (eventsValue != ''){
		eventsValue = eventsValue.concat(','+ str);
	} else {
		eventsValue = str;
	}
}

function addProductId(str){
	if (productsValue != ''){
		productsValue = productsValue.concat(',;'+ str);
	} else {
		productsValue = ';'+str;
	}
}

function addProp10(str){
	if (prop10Value != ''){
		prop10Value = prop10Value.concat(str);
	} else {
		prop10Value = str;
	}
}

function returnBonusId(){
	var bonusId = '';                        
	var elem = document.getElementById("bonusId");
	if(typeof(elem) != 'undefined' && elem != null){
		bonusId = elem.value;
	}
	return bonusId;	
}

function isCategoryBrowsePage(pagename){
	var value = false;
		for (var i = 0; i < BONUS_CATEGORY_PAGETYPE_INDICATORS.length; i++){ 
			if (pagename.match(BONUS_CATEGORY_PAGETYPE_INDICATORS[i].toLowerCase())){
				value = true;
			}
		}
	 return value;
}

function isCampaignLandingPage(pagename){
	var value = false;
		for (var i = 0; i < CAMPAIGN_LANDING_PAGE_INDICATORS.length; i++){ 
			if (pagename.match(CAMPAIGN_LANDING_PAGE_INDICATORS[i].toLowerCase())){
				value = true;
			}
		}
	 return value;
}


/*
 *  returns the step of the current registration process
 */
function returnRegStep(){
	var step = '';
	var elem = document.getElementsByName("_page")[0];
	if(typeof(elem) != 'undefined'){
		step = elem.value;
	}
	return step;	
}



/*
 * returns the registration-type (with or without Card)
 */
function returnRegType(){
	var regType = '';
	var elem = elemValueById('registeredWithEkit');
	if (elem != ''){
		if(elem == 'false'){
			regType = 'ohneKarte';
		} else if (elem == 'true'){
			regType = 'mitKarte';
		}
	}
	return regType;	
}


function elemValueById(id){
	var value = '';
	var elem = document.getElementById(id);
	if(typeof(elem) != 'undefined' && elem != null){
		value = elem.value;
	}
	return value;
}

function elemValueByName(name){
	var value = '';
	var elem = document.getElementsByName(name)[0];
	if(typeof(elem) != 'undefined' && elem != null){
		value = elem.value;
	}
	return value;	
}

function countElementsByClass(className) {
	  var all = document.all ? document.all :
	    document.getElementsByTagName('*');
	  var elements = new Array();
	  for (var e = 0; e < all.length; e++)
	    if (all[e].className == className)
	      elements[elements.length] = all[e];
	  return elements.length;
	}

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)
