
var Tracker = new Class.create();

Tracker.prototype = {

   
    
    initialize: function() { 
                Event.observe(window,'load',this.myStart.bind(this));            
            },
        
            myStart: function () {
            var temp = $$('div.header','div.middle-container','div.footer-container');
            temp[0].observe('click', this.respondsToClickHeader.bind(this));
            temp[1].observe('click', this.respondsToClickMiddle.bind(this));
            temp[2].observe('click', this.respondsToClickFooter.bind(this));
      },
            
            prepareToCaptureClickout: function(elem, cssClassNames) {
                var i= 0;
                var found = false;
                
                var parents = elem.ancestors().splice(0,8);
                parents.unshift(elem);
                
                
                while (i < parents.length && !found) {
                    var j=0;      
                    var currentParent = parents[i];
                    //if the element has no class, then continue with next
                    if (currentParent.className == "") {
                        i++;
                        continue;
                    }
                    for (var cssName in cssClassNames) {
                        if (currentParent.hasClassName(cssName)) {                       
                            var info = ''; 
							var documentGroup = cssClassNames[cssName];

                            if (cssName == 'up-sell-right-box') {
								var pos = currentParent.identify();
                            	info = 'upsell-'+pos;
                            }
                            else if (cssName == 'breadcrumbs' ) {
								var pos = currentParent.identify();
                            	info = 'multicrumb-'+pos;
							}
                            else if (cssName.startsWith('crosssell-') ) {
								info = cssName;
							}
                            else if (cssName.startsWith('extra-products-') ) {
								info = cssName;
							}
                            else if(elem.inspect().startsWith('<a')) {
								// if this is cart-link showing articles, handle differently
								if (elem.identify() == 'cart-article-link')
									info = 'Zum Warenkorb';
								else
	                                info = elem.firstChild.data;
                            }
                            else if (elem.inspect().startsWith('<img')) {
								if (elem.alt == "")
									info = elem.src;
								else
	                                info = elem.alt;
                            }
                            else if (elem.inspect().startsWith('<span')) {
								// if this is cart-link showing articles, handle differently
								if (elem.identify().startsWith('cart-article-link'))
									info = 'Zum Warenkorb';
								else
	                                info = elem.firstChild.data;
                            } 
                            else if (elem.inspect().startsWith('<button')) {
								if (elem.hasClassName('crumb-back')) {
									info = 'Zurück';
									documentGroup = 'Multicrumb';
								}
								else if (elem.hasClassName('crosssell-button')) {
									info = 'In den Warenkorb';
									documentGroup = 'CartCrosssell';
								}
								else if (elem.hasClassName('extra-products-button')) {
									info = 'In den Warenkorb';
									documentGroup = 'CartExtraProducts';
								}
								else if (elem.hasClassName('bhfinder-button')) {
									info = 'BH-Finder';
									documentGroup = 'BHfinder';
								}
								else
									info = '';
                            }
                            else if (elem.inspect().startsWith('<div')) {
								info = '';
                            }
                            else {
                                info = elem.firstChild.data;
                            }

							if (info && !info.empty())                                                                 
	                            captureClickoutNoDocumentTitle('',documentGroup, info );
                            found = true;
                            break;
                         }  
                    }
                    i++;
                }
            },


            respondsToClickMiddle: function(event) {
	            var cssClassNames = new Object();
	            
	            cssClassNames['form-button'] = 'ButtonBack'; 
	            cssClassNames['home'] = 'Multicrumb1';
	            cssClassNames['generic-product-list'] = 'CartCrosssell';
	            cssClassNames['promo-horizontal'] = 'PromoBoxHorizonzal';
	            cssClassNames['promo-vertical'] = 'PromoBoxVertical';
	            cssClassNames['geschenke-promo-vertical'] = 'GiftPromoBoxVertical';
	            cssClassNames['geschenke-promo-horizontal'] = 'GiftPromoBoxHorizontal';       
	            cssClassNames['kat_damen'] = 'NaviLeftLadies';
	            cssClassNames['kat_marken'] = 'NaviLeftBrands';
	            cssClassNames['kat_herren'] = 'NaviLeftMen';
	            cssClassNames['up-sell-right-box'] = 'ProductViewUpsell';
	            cssClassNames['breadcrumbs'] = 'Multicrumb';
	            cssClassNames['bhfinder-button'] = 'BHFinder';
	            cssClassNames['brands-view'] = 'BrandView';
	            cssClassNames['crosssell-1'] = 'CartCrosssell';
	            cssClassNames['crosssell-2'] = 'CartCrosssell';
	            cssClassNames['crosssell-3'] = 'CartCrosssell';
	            cssClassNames['crosssell-4'] = 'CartCrosssell';
	            cssClassNames['extra-products-1'] = 'CartExtraProducts';
	            cssClassNames['extra-products-2'] = 'CartExtraProducts';
	            cssClassNames['extra-products-3'] = 'CartExtraProducts';
          
	            var elem = $(Event.element(event));    
	            this.prepareToCaptureClickout(elem, cssClassNames);
            },
            
            respondsToClickFooter: function(event) {
	            var cssClassNames = new Object();

	            cssClassNames['brand-links'] = 'brandsListing';

	            var elem = $(Event.element(event));         
	            this.prepareToCaptureClickout(elem, cssClassNames);
            },
            
            respondsToClickHeader: function(event) {
	            var cssClassNames = new Object();
	            
	            cssClassNames['header-nav'] = 'NaviHeader';
	            cssClassNames['header-top'] = 'headerTop'; 
	            cssClassNames['header-middle-container'] = 'MiddleHeader'; 
	              
	            var elem = $(Event.element(event)); 
	            this.prepareToCaptureClickout(elem, cssClassNames);            
            }
            
        };