/**
 * linkmaplogik.js
 *
 * Dieses JavaScript steuert die gesamte Logik von Bildern, auf die mittels
 * DIV Containern Links gelegt wurden und die bei einem Klick einen Layer
 * zeigen sollen.
 *
 * Das Oeffnen eines Infolayers ueber einen Klick auf die Imagemap wird per
 * webtrends getrackt. Dabei sind neben die Identifikation des geklickten
 * Buttons dessen Titel und der Titel des Infolayers interessant.
 *
 * Die Imagemap muss deswegen folgende Struktur aufweisen:
 *
 * <div class="linkmap" id="[...]">
 * [...]
 *   <div class="button" id="<id_des_buttons>" layerid="<id_des_layers>">
 *     <img alt="<Alternativtext des Buttons>" [...] />
 *   </div>
 * [...]
 *
 * Der Layer muss folgende Struktur haben:
 *
 * <div class="layer" id="<id_des_layers>" [...]>
 * [...]
 *   <div class="layerheadertext"><Titel des Layers></div>
 * [...]
 */
$(document).ready(function() {

	$('.linkmap .button').click(function() {
		// Hintergrund aller Buttons löschen
		if ( $(this).hasClass('highlighted') ) {
			$('.linkmap .button').removeClass('highlighted');
			$('.linkmap .linkmap_layer .layer').hide();
			$('.linkmap .button').children('img').hide();
			return;
		}

		$('.linkmap .button').removeClass('highlighted');
		$('.linkmap .linkmap_layer .layer').hide();
		$('.linkmap .button').children('img').hide();

		$(this).addClass('highlighted');
		$(this).children('img').show();

		var layerid   = $(this).attr('layerid');
		$('#'+ layerid).show();

        // tracke Oeffnen eines Infolayers ueber Klicken auf Imagemap-Button
		dcsMultiTrack(
		  'DCS.dcsuri',
		  '/event_click/' + extractMenuId() + '/infolayer/' + $(this).attr('id') + '.evt',
		  'WT.ti',
		  'Layer ' + $(this).children('img').attr('alt') + ': ' +
		      $('#' + layerid + ' .layerheadertext').text()
		);

	});

	$('.layerheadercloser').click(function() {
		$(this).parents('div.layer').hide();
		$('.linkmap .button').removeClass('highlighted');
		$('.linkmap .button').children('img').hide();

	});

    /**
     * Diese Funktion versieht alle Links aus einem Layer zu einer Detailseite
     * <div class="doorpagelayercontentmehr"><a href="<link zur detailseite>">..
     * mit einem URL-Parameter, um die Herkunft des Links fuer webtrends zu
     * spezifizieren.
     */
    jQuery.each($('.doorpagelayercontentmehr'), function() {
        var url = $(this).children('a').attr('href');

        url += ((url.indexOf('?') == -1 ? '?' : '&') + 'axd_navlink=c');

        $(this).children('a').attr('href', url);
    });
    
    
	$('.linkmap map area').click(function() {
		
		// Ist das geklickte Objekt bereits markiert=
		if ( $(this).hasClass('highlight') ) {
		
			// Hole die URL des Startbildes
			var newImage = $(this).parent('map').attr('baseurl') + $(this).parent('map').attr('baseimg') + $(this).parent('map').attr('baseimgid') +'.'+ $(this).parent('map').attr('baseimgext');
			
			// Setze das Startbild
			$('#'+ $(this).parent('map').attr('imgid')).attr('src',newImage);

			// Entferne alle Markierungen
			$('map area').removeClass('highlight');
			
			$('.linkmap .linkmap_layer .layer').hide();

			// Gebe FALSE zurück, damit der Link nicht ausgeführt wird
			return false;
		}

		// Entferne alle Highlights
		$('.linkmap map area').removeClass('highlight');
		
		$('.linkmap .linkmap_layer .layer').hide();

		// Fuege die Highlightklasse diesem Objekt hinzu
		$(this).addClass('highlight');

		// Hole die URL des neuen Bildes
		var newImage = $(this).parent('map').attr('baseurl') + $(this).parent('map').attr('baseimg') + $(this).attr('imgid') +'.'+ $(this).parent('map').attr('baseimgext');
		
		// Setze das neue Bild
		$('#'+ $(this).parent('map').attr('imgid')).attr('src',newImage);
		
		var layerid   = $(this).attr('layerid');
		$('#'+ layerid).show();

		// Gebe FALSE zurück, damit der Link nicht ausgeführt wird
		return false;
	});
    
    
    
});

