var SWITCH_FIREBUG_LOGGING = 'OFF'; //  set 'OFF'  to switch off 
var HOME_PAGE = 'info-anmeldung';
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 which hold the values that are finally passed to the omniture variables .
 */
var pageNameValue = '';
var prop5Value = ''; // Reg: Kartenmotiv 
var prop6Value = ''; // Reg: Partner 
var prop7Value = ''; // Fehlerseite 404
var prop8Value = ''; // Prämiensuchparameter: Punkte, Zuzahlung
var prop10Value = ''; // Prämiensuchparameter: Kategorien
/* Conversion Variables */
var zipValue = '';
var eventsValue = '';
var productsValue = '';
var purchaseIDValue = '';
var eVar1Value = ''; // Suchbegriff
var eVar2Value = ''; //
var eVar3Value = ''; // Produktsuch-Methode
var eVar4Value = ''; // Produktkategorie
var eVar5Value = ''; // Zahlung
var eVar6Value = ''; // Lieferung

/*********************************************
 * 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
eVar2Value = omnitureParams.eVar2;
if (eVar2Value != '') eVar2Value = HOME_PAGE + ':' + eVar2Value;

trackErrorPage();  // extra
trackBonusSearch(); // extra
trackPartnerSearch(); // extra

if (!modified_pagename){
	this.pageNameValue = omnitureParams.pageName;
}

/*
 * Logging, should be switched of in prod-mode
 */
if (SWITCH_FIREBUG_LOGGING != 'OFF'){
	console.log("s.pageName: " + pageNameValue);
	console.log("s.channel: " + omnitureParams.channel);
	console.log("s.prop1: " + omnitureParams.siteSection );
	console.log("s.prop2: " + omnitureParams.subSection1 );
	console.log("s.prop3: " + omnitureParams.subSection2 );
	console.log("s.prop4: " + omnitureParams.pageType );
	console.log("s.prop5: " + prop5Value );
	console.log("s.prop6: " + prop6Value );
	console.log("s.prop7: " + prop7Value );
	console.log("s.prop8: " + prop8Value );
	console.log("s.prop10: " + prop10Value );
	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);
}

/********************************************
 * End: Processnig data 
 ********************************************/

/*
 * omniture variables which are passed to SiteCatalyst
 */
s.pageName=pageNameValue;
s.server='';
s.channel=omnitureParams.channel;
s.pageType='';
s.prop1=omnitureParams.siteSection;
s.prop2=omnitureParams.subSection1;
s.prop3=omnitureParams.subSection2;
s.prop4=omnitureParams.pageType;
s.prop5=prop5Value;
s.prop6=prop6Value;
s.prop7=prop7Value;
s.prop8=prop8Value;
s.prop9='';
s.prop10=prop10Value;
s.prop11='';
s.prop12='';
s.prop13='';
/* Conversion Variables */
s.campaign='';
s.state='';
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='';
s.eVar8='';
s.eVar9='';
s.eVar10='';
s.eVar11='';
s.eVar12='';
s.eVar13='';


function trackRegistrationProcess(){

	if (omnitureParams.pageName == REGISTRATION_PAGE.toLowerCase()){
		pageNameValue = omnitureParams.pageName;
		
		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 = omnitureParams.pageName + suffix;
			modified_pagename = true;
		} 
	}
}


function trackShoppingBasket(){
	if (omnitureParams.pageName == BASKET_PAGE.toLowerCase()){
		pageNameValue = omnitureParams.pageName;
		//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 = omnitureParams.pageName + suffix;
			modified_pagename = true;
		}
	}
}

function trackShoppingCardPerformance(){
	if (omnitureParams.pageName == PRODUCT_DETAIL_PAGE.toLowerCase()){
		if(returnBonusId() != ''){
			addEvent('prodView');
			addEvent('event3');
			addProductId(returnBonusId());
		}
	}
	if (omnitureParams.pageName == 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(omnitureParams.pageName)){
		eVar3Value = 'browse';
	}
	
	if(omnitureParams.pageName == SEARCH_PAGE.toLowerCase()){
		//if(elemValueById('q1') != 'Suchbegriff' && elemValueById('q1') != ''){}
		if(countElementsByClass(SEARCH_RESULT_CLASSNAME) > 0 ){
			eVar3Value = 'search';
		}
	}
	
	if(omnitureParams.pageName.match(COLLECT_POINTS_PAGE.toLowerCase())){
		if(isCampaignLandingPage(omnitureParams.pageName)){
			eVar3Value = 'internal campaign';
		}
	}
}

function trackProductCategoryMerchandising(){
	if(omnitureParams.pageName == PRODUCT_DETAIL_PAGE.toLowerCase()){
		eVar4Value = omnitureParams.bonusCategory;
	}
}

function trackInternalSearchOptimization(){
	if(omnitureParams.pageName == SEARCH_PAGE.toLowerCase()){
		addEvent('event1');	
		
		if (elemValueById('q1') != 'Suchbegriff'){
			eVar1Value = elemValueById('q1');
			if(countElementsByClass(SEARCH_RESULT_CLASSNAME) == 0 ){
				addEvent('event2');
			}
		}
	}
}

function trackErrorPage(){
	if(omnitureParams.pageName == ERROR_PAGE.toLowerCase()){
		prop7Value = 'Error_404';
	}
}

function trackBonusSearch(){
	if(omnitureParams.pageName == 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(omnitureParams.pageName == 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);

