if (!window.briTrackerResourcesLoaded) {
	var head = $(document.getElementsByTagName("head")[0]);
	if (head) {
	  var briTrackerResourcesLoaded = true;
	  var css = new Element('link', { rel: 'stylesheet', type: 'text/css', href: 'http://v1.brigitte.de/css/advertisement.css?cache=1595031186'});
	  var js = new Element('script', { type: 'text/javascript', src: 'http://v1.brigitte.de/js/advertisement.modifypage.js?cache=1595031186'});
	  head.insert(css);
	  head.insert(js);
	}
}

var TrackingManager = Class.create({
  initialize: function(config) {
    this._counter = typeof config.get('counter') !== 'undefined' ? config.get('counter') : 0;

    if (typeof config.get('agof_prefix') === 'undefined') {
      config.set('agof_prefix', '');
    }
    this.config = config;
    
    this.trackingConfig = this.config.get('tracking') || {};

    //IVW Tracking Pixel Container
    if (!$('ivwpx') && !this.trackingConfig.noIVW) {
      document.write('<img src="'+document.location.protocol+'//www.brigitte.de/images/blank.gif" width="1" height="1" alt="" id="ivwpx" name="ivwpx" />');
    }

    //SiteCatalyst Tracking Pixel Container
    if (!$('scpx') && !this.trackingConfig.noSC) {
      document.write('<img src="'+document.location.protocol+'//www.brigitte.de/images/blank.gif" width="1" height="1" alt="" id="scpx" name="scpx" />');
    }
  },
  track: function(options) {
    this._counter++;

    options = this.config.merge(options);

    var ivw_base    = options.get('ivw_base');
    var nav_id      = options.get('nav_id');
    var agof_code   = options.get('agof_code');
    var agof_prefix = options.get('agof_prefix');
    var article_id  = options.get('article_id');
    var additional_tracking_info = options.get('additional_tracking_info');
    var ivw_add_prefix = this._counter > 1 ? 'JS_' : '';
    var ivw_add     = article_id ? '' : ivw_add_prefix + additional_tracking_info; //ivw_add has to be empty if an article id is given because otherwise the analytics tool "sale" will not work properly

    // on the current page we replace the src of the ivw-image to retrigger the counting ...
    if (document.images) {

      //ivw
      if ($('ivwpx') && !this.trackingConfig.noIVW) {
	      var ivwPixelPath = ivw_base + agof_prefix + agof_code + ';' + nav_id + ',' + article_id + ',' + ivw_add + ',?p='+(Math.random()*100000);
	      $('ivwpx').src = ivwPixelPath;
      }

      // Omniture SiteCatalyst
      if (typeof briSC !== 'undefined' && !this.trackingConfig.noSC) {
	      var savehier = briSC.hier1;
	      // initial page impression is marked by 'pi'
	      if (briSC.hier1.substring(briSC.hier1.length-18) == "pi ohne ajax/flash")
	      {
	        briSC.hier1 = briSC.hier1.slice(0, briSC.hier1.length-18);
	        briSC.hier1 = briSC.hier1 + "ajax";
	      }
	      else
	      {
	        briSC.hier1 = briSC.hier1 + ",ajax";
	      }
	      briSC.hier1 = briSC.hier1 +','+ additional_tracking_info;
	      briSC.referrer=window.location.protocol+"//"+document.location.host+document.location.pathname;

	      if((typeof s != "undefined") && (s != null) && options.get('sitecatalystCompatibilityMode') !== true)
	      {
	        s.hier1 = briSC.hier1;
	        s.referrer=briSC.referrer;

          saveprop7 = s.prop7;
          if (typeof options.get('isGame') !== 'undefined' && typeof options.get('isGame')) {
            s.prop7 = "spiele";
          }

          
	        void(s.t());

	        s.hier1 = savehier;
          s.prop7 = saveprop7;

	      }
	      else {
					var chars = "0123456789";
					var string_length = 6;
					var randomstring = '';
					for (var i=0; i<string_length; i++) {
					  var rnum = Math.floor(Math.random() * chars.length);
					  randomstring += chars.substring(rnum,rnum+1);
					}

	        var briSCPixelPath="http://guj.122.2O7.net/b/ss/gujbrigitteprod/5.1/" + randomstring + "/?pageName="+briSC.pageName+"&amp;ch="+briSC.channel+"&amp;c1="+briSC.prop1+"&amp;c2="+briSC.prop2+"&amp;c6="+briSC.prop6+"&amp;c7="+briSC.prop7+"&amp;c10="+briSC.prop10+"&amp;c12="+briSC.prop12+"&amp;h1="+briSC.hier1;
	        if ($('scpx')) {
			      $('scpx').src = briSCPixelPath;
			    }
	      }
	      briSC.hier1 = savehier;
      }

      //google analytics
      if (!this.trackingConfig.noGA) {
	      if((typeof pageTracker != "undefined") && (pageTracker != null)) // google analytics (legacy)
	      {
	        pageTracker._trackPageview();
	      }
	      else if (typeof _gaq != 'undefined') { // google analytics
	        _gaq.push(['_trackPageview']);
	      }
      }

    }
  },
  stats: function() {
    console.log(this._counter+' calls to _trackingManager.track()');
  }
});var briSC = {};
var briSCPrefix ="";
briSC.pageName = "Beauty:Promifrisuren testen:Artikel";
briSC.channel  = "Beauty";

briSC.prop1    = "1053497:Promifrisurentool";
briSC.prop2    = "1014192";
briSC.prop6    = "beauty";
briSC.prop7    = "Artikel";
briSC.prop10   = "1";
briSC.prop12   = "Beauty:Promifrisuren testen:Artikel:1053497:Promifrisurentool";
briSC.hier1    = "Beauty,Promifrisuren testen,1053497:Promifrisurentool,pi ohne ajax/flash";


if (briSCPrefix.length) {
  briSC.pageName = briSCPrefix+':'+briSC.pageName;
  briSC.channel  = briSCPrefix;
  briSC.prop12   = briSCPrefix+":"+briSC.prop12;
  briSC.hier1    = briSCPrefix+","+briSC.hier1;
}

var AdManager = Class.create({
  initialize: function(config) {
    var defaults = $H();

    var default_allocation_unit = typeof config.get('allocation_unit') !== 'undefined' ? config.get('allocation_unit') : 'rotation';
    var ad_positions = new Array();;
    var ad_sizes = new Array();
    var ad_aunits = new Array(); //allocation units
    

    ad_positions.push('rubriken');
ad_sizes.push('468x60');
ad_aunits.push(default_allocation_unit);
ad_positions.push('halfpage');
ad_sizes.push('1x1');
ad_aunits.push(default_allocation_unit);
ad_positions.push('scroll_sky');
ad_sizes.push('1x1');
ad_aunits.push(default_allocation_unit);
ad_positions.push('contentad');
ad_sizes.push('1x1');
ad_aunits.push(default_allocation_unit);

    defaults.set('ad_positions[]', ad_positions);
    defaults.set('ad_sizes[]', ad_sizes);
    defaults.set('ad_aunits[]', ad_aunits);
    defaults.set('iframeUrl', 'http://v1.brigitte.de/update_ads/adManagerReloader.php');
    defaults.set('javascriptUrl', 'http://v1.brigitte.de/js/adManagerReloader.js?cache=1595031186');

    var config = config || $H();
    
    this._counter = typeof config.get('counter') !== 'undefined' ? config.get('counter') : 0;
    this.config = defaults.merge(config);
    
    this.config.set('page_identifier', 'brigitte'); //ads have a different page identifier than tracking settings, so we have to override the existing value
  },
  track: function(options) {

    if (document.location.protocol === 'https:') {
      return;
    }

    if (this.config.get('adsOnlyOnce') && this._counter >= 1) {
      return; //ads shall only be tracked once (useful e.g. on small screens where the advertisements are invisble during user interaction)
    }

    this._counter++;
    options = this.config.merge(options);

    var iframeUrl = options.get('iframeUrl') + '?'+options.toQueryString();
    delete options.iframeUrl;

    this.iframe = $('update-ad-iframe'); 
    if(!this.iframe) {
      this.iframe = new Element('iframe', { id: 'update-ad-iframe', style: 'display: none;', width: '0', height: '0', src: iframeUrl });
      $(document.body).insert(this.iframe);
    }
    else {
      this.iframe.src = iframeUrl;
    }
  },
  stats: function() {
    console.log(this._counter+' calls to _adManager.track()');
  }
});var briTracker = Class.create({
  initialize: function(options) {
    
    options = options || {};
    
    this._config = $H({"ivw_addinfo":"","ga_account_id":"UA-4218775-5","hbx_vpc":"HBX0200u","hbx_account_id":"DM560312D0AC71GE3","ivw_base":"http:\/\/brigitte.ivwbox.de\/cgi-bin\/ivw\/CP\/","page_paths":"\/bfriends","hbx_jspath":"http:\/\/bfriends.brigitte.de\/_components\/scripts\/hbx.js?cache=1595031186","page_identifier":"brigitte","hbx_pixelpath":"a.brigitte.de","sitecatalyst_reportsuitename":"gujbrigitteprod","sitecatalyst_jspath":"\/js\/","agof_code":1014192,"ivw_nav_id":1001924,"nav_id":1001924,"article_id":"1053497","page_title":"Promifrisurentool | 1053497","headline":"Promifrisurentool","content_type":"Artikel","page_number":null,"remote_id":"1053497","navigation_hierarchy":"Beauty,Promifrisuren testen","navigation_rubric":"Beauty","navigation_subrubric":"Promifrisuren testen","index_page":false,"allocation_unit":"beauty","cobranded_teasers_limit":3})
      .merge(options)
      .merge(window.location.search.substring(1).toQueryParams());
    this._config.set('additional_tracking_info', '');
    
    this._counter = typeof this._config.get('counter') !== 'undefined' ? this._config.get('counter') : 0;

    this._trackers = $H({
      tracking: new TrackingManager(this._config),
      ads: new AdManager(this._config)
    });
  },
  
  /**
   *  track(options): delegate method calls track(options) on all its trackers
   */
  track: function(options) {
    var that = this;
    var options = options || {};
    
    if (options.delay) {
      var delay = options.delay;
      window.setTimeout(function() {
          delete options.delay;
          that.track(options); 
        }, 
        delay
      );
    }

    if (!document.loaded) {
      Event.observe(window, 'load', function() {
        that.track(options);
      });
      return;
    }
    
    this._counter++;

    options = options || {};
    options.tracker = options.tracker || this._config.get('tracker');
    
    var that = this;
    this._trackers.each(function(tracker) {
      var frequency = 1;
      switch (typeof options.frequency) {
        case 'number':
          frequency = options.frequency;
          break;
        case 'object':
          if (typeof options.frequency[tracker.key] === 'number') {
            frequency = options.frequency[tracker.key];
          }
          break;
      }

      if (that._counter%frequency === 0) {
        if (!options.tracker || options.tracker === tracker.key) {
	        tracker.value.track(options);
	      }
      }
    });
  },
  
  stats: function()
  {
    this._trackers.each(function(tracker) {
      tracker.value.stats();
    });
  },

  getCounter: function()
  {
    return this._counter;
  }
});
