﻿// START OF SmartSource Data Collector Custom Script
var DcsMaggiObject = null;

function dcsMaggiObject() {
	if (typeof _tag == "undefined") return;

    this.DCS = {};
    this.WT = {};
    
    this.dcsuri = _tag.DCS.dcsuri;
    if ((this.dcsuri == null) || (this.dcsuri != '')) {
        this.dcsuri = window.location.pathname;
    }
       
    this.DCS.dcssip = _tag.DCS.dcssip;
    if ((this.DCS.dcssip == null) || (this.DCS.dcssip != '')) {
        this.DCS.dcssip = window.location.hostname;
    }
    
    this.DCS.dcsuri = this.dcsuri.replace(/.htm/, '');
    this.WT.dl = _tag.WT.dl;
    this.WT.si_n = _tag.WT.si_n;
    this.WT.si_p = _tag.WT.si_p;
    this.WT.cg_n = _tag.WT.cg_n;
    this.WT.cg_s = _tag.WT.cg_s;
    this.WT.oss = _tag.WT.oss;
    this.WT.oss_r = _tag.WT.oss_r;
    this.WT.z_navi = _tag.WT.z_navi;
    this.WT.z_rate = _tag.WT.z_rate;
    this.WT.pn_sku = _tag.WT.pn_sku;
    this.WT.pn = _tag.WT.pn;
    this.WT.pc = _tag.WT.pc;
    this.WT.tx_e = _tag.WT.tx_e;
    this.WT.seg_1 = _tag.WT.seg_1;
    this.WT.si_cs = _tag.WT.si_cs;
    this.WT.z_sm = _tag.WT.z_sm;
}

function virtualPageViewOpenLayer(layerId) {
    var layerId = layerId.split("#")[1];
    var layerName;
    var WTdl = "400";

    switch (layerId) {
        case "layercontactstudio": layerName = "Hinweis zu den Portionen"; break;
        case "layersearchoptions": layerName = "Weitere Suchoptionen"; break;
        case "layerlogin": layerName = "Login"; break;
        case "layerrecipesafepdf": layerName = "Rezept als PDF speichern"; break;
        case "layerstudio": layerName = "Kontakt zum MAGGI KOCHSTUDIO"; break;
        case "layerrecipecprint": layerName = "Rezept drucken"; break;
        case "layerrecommendation": layerName = "Inhalt weiterempfehlen"; WTdl = "0"; break;
        case "layerrating": layerName = "Bewertung abgeben"; WTdl = "0"; break;
        case "addcomment": layerName = "Kommentar hinzufuegen"; break;
        default: layerName = layerId; break;
    }

    var dcsuri = addLayer(DcsMaggiObject.DCS.dcsuri, layerName);
    callDcsMultiTrack(dcsuri, WTdl);
}

function addLayer(path, layerName) {
    path = path.replace(/\/Layer\/.*/, '');
    path = path + "/Layer/" + layerName;
    path = path.replace(/\/\//, '/');
    return path;
}

function virtualPageViewSelectbox(elementId, selectbox) {
    var dcsuri = (DcsMaggiObject.DCS.dcsuri + "/" + elementId + "/" + selectbox[selectbox.selectedIndex].text).replace(/\/\//, "/");
    callDcsMultiTrack(dcsuri, "400");
}

function virtualPageViewTabNavigation(elementId, tabId) {
    var dcsuri = (DcsMaggiObject.DCS.dcsuri + "/" + elementId + "/" + tabId).replace(/\/\//, "/");
    callDcsMultiTrack(dcsuri, "410");
}

function virtualPageViewDiashowSlideshow(elementId) {
    var dcsuri = (DcsMaggiObject.DCS.dcsuri + "/" + elementId).replace(/\/\//, "/");
    callDcsMultiTrack(dcsuri, "420");
}

function virtualPageViewRecipeProductActions(ev, rate, layerName) {
    var dl, dcsuri;
    if (layerName) {
        dl = "400";
        dcsuri = addLayer(DcsMaggiObject.DCS.dcsuri, layerName);
    } else {
        dl = "500";
        dcsuri = DcsMaggiObject.dcsuri;    
    }
    callDcsMultiTrack(dcsuri, dl, rate, DcsMaggiObject.WT.pn_sku, DcsMaggiObject.WT.pn, DcsMaggiObject.WT.pc, ev);
}

function callDcsMultiTrack(DCSdcsuri, WTdl, WTz_rate, WTpn_sku, WTpn, WTpc, WTtx_e) {    
    DCSdcsuri = (typeof(DCSdcsuri) == 'undefined') ? DcsMaggiObject.DCS.dcsuri : DCSdcsuri;    
    WTdl = (((typeof(WTdl) == 'undefined') || (WTdl == "")) ? "500" : WTdl);
    WTz_rate = ((typeof(WTz_rate) == 'undefined') ? "" : WTz_rate);
    WTpn_sku = ((typeof(WTpn_sku) == 'undefined') ? "" : WTpn_sku);
    WTpn = ((typeof(WTpn) == 'undefined') ? "" : WTpn);
    WTpc = ((typeof(WTpc) == 'undefined') ? "" : WTpc);
    WTtx_e = ((typeof(WTtx_e) == 'undefined') ? "" : WTtx_e);
    
    if (WTtx_e != '' && WTpc == '') {
        WTpc = 'Sonstige';    
        WTpn = document.title;
        WTpn_sku = '';
    }
    
    dcsMultiTrack(
        'DCS.dcssip', DcsMaggiObject.DCS.dcssip,
        'DCS.dcsuri', DCSdcsuri,
        'WT.dl',WTdl,
        'WT.si_n','',
        'WT.si_p','',
        'WT.cg_n','',
        'WT.cg_s','',
        'WT.oss','',
        'WT.oss_r','',
        'WT.z_navi','',
        'WT.z_rate',WTz_rate,
        'WT.pn_sku',WTpn_sku,
        'WT.pn',WTpn,
        'WT.pc',WTpc,
        'WT.tx_e',WTtx_e,
        'WT.seg_1','',
        'WT.si_cs',''
    );
}

// END OF SmartSource Data Collector Custom Script

// global jquery functions start -------------------------------------------------------------------------------------

// show / hide layer
var toggleLayerList = [];
function ToggleLayer(link, layer) {
	$(link).click(function(e){
	    var $layer = $(layer);
		if ($layer.hasClass('layeractive')) {
			if (jQuery.support.opacity) {
				$layer.fadeOut('fast');
			 } else {
				$layer.css('display','none');
			}
		}
		else {
			var mouseFromLeft = e.pageX;
			var mouseFromTop = e.pageY;
			if (jQuery.support.opacity) {
				$layer.css({'top':mouseFromTop +5, 'left':mouseFromLeft -225}).appendTo(document.forms[0]).fadeIn('fast');
			} else {
				$layer.css({'top':mouseFromTop +5, 'left':mouseFromLeft -225}).appendTo(document.forms[0]).css('display','block');
			}
			if (layer == 'div#layerrating') {
				var layerFromLeft = $layer.offset().left;
				layerFromLeft = (layerFromLeft < 0) ? 10 : layerFromLeft;
				$layer.css({'left':layerFromLeft});
			}
			virtualPageViewOpenLayer(layer);
		}
		$layer.toggleClass('layeractive');
		return false;
	});

    // register layer for hide on window resize
	if (jQuery.inArray(layer, toggleLayerList) == -1) {
	    toggleLayerList[toggleLayerList.length] = layer;
	}
}

// hide layer on window resize, remove class layeractive
function registerOnResize(){
    $(window).resize(function() {
        for (var i = 0, l = toggleLayerList.length; i < l; i++) {
            var layer = $(toggleLayerList[i]);
            if (layer && layer.length) {
                layer.removeClass('layeractive');
                if (jQuery.support.opacity) {
                    layer.fadeOut('fast');
                } else {
                    layer.css('display','none');
                }
            }
        }
    });
}
$(document).ready(function(){    
    window.setTimeout(function() { window.registerOnResize(); }, 0);
});

// dont copy that floppy ... image
jQuery.fn.protectImage = function(settings) {
	settings = jQuery.extend({ image: 'Nestle.Maggi.Web.CorporateSite/Scripts/blank.gif', zIndex: 1000 }, settings);
	return this.each(function() {
	var position = $(this).position();
	var height = $(this).height();
	var width = $(this).width();
	$('<img />').attr({ width: width, height: height, src: settings.image }).css({ top: position.top - 137, left: position.left - 4, position: 'absolute', zIndex: settings.zIndex }).appendTo('div.imgbox')
	});
};

// opens tab and new comment bubble
function AddNewComment(hiddenFieldId, tabName, code) {
	tabNavigation($( 'a[href|=' + tabName + ']' )[0]);
	SetActiveTabName(hiddenFieldId,code);
	$('div#addnewcomment').toggle('fast');
}

// execute when dom ready
jQuery(document).ready(function(){

// remove dotted outline on focus
	$('a').focus(function() {
	  $(this).blur();
	});

// open popup wide
$('a.popupwide').popupWindow({
	height: 500,
	width: 1024,
	top:50,
	left:50,
	scrollbars: 1
});

// open popup small
$('a.popupsmall').popupWindow({
	height: 500,
	width: 720,
	top: 20,
	left: 20
});

// show hide studiolayer
	$('a#showhidelayerstudio').click(function(){

	    if (navigator.appVersion.indexOf("MSIE 6") != -1) {
	        top.location.href = document.getElementById("showhidelayerstudio").href;
	        return;
	    }

		if ($('a#showhidelayerstudio').hasClass('iconPlus')) {
			$('a#showhidelayerstudio').removeClass('iconPlus').addClass('iconClose');

			virtualPageViewOpenLayer("div#layerstudio");

			if (jQuery.support.opacity) {
					$('div#layerstudio').fadeIn('fast');
					return false;
				} else {
					$('div#layerstudio').css('display','block');
					return false;
			}
		}
		else {
			$('a#showhidelayerstudio').addClass('iconPlus').removeClass('iconClose');
			if (jQuery.support.opacity) {
					$('div#layerstudio').fadeOut('fast');
					return false;
				} else {
					$('div#layerstudio').css('display','none');
					return false;
			}
		}
	});

	$('a.closelayerstudio').click(function(){
		$('a#showhidelayerstudio').addClass('iconPlus').removeClass('iconClose');
		if (jQuery.support.opacity) {
				$('div#layerstudio').fadeOut('fast');
				return false;
			} else {
				$('div#layerstudio').css('display','none');
				return false;
		}
	});

// sublevelnav fadin
    $('#headnavigation > ul > li').each(function() {
    	var $navi = $(this);
    	var $subnavi = $navi.children('ul');
    	if ($subnavi.length) {
			$navi.hover(function() {
				$subnavi.stop(true, true).slideDown(200).show();
	        }, function() {
				$subnavi.stop(true, true).slideUp(100);
		    });
    	}
    });

// carousel
	// copy image alt attributes (set using image properties) to title attributes
    setCarouselTitleAttributes("mycarousel");
	// init carousel
	jQuery('#mycarousel').jcarousel({ wrap:'circular', itemVisibleInCallback: carouselItemVisibleInCallbackFunction});
    // carousel tooltip
 	$('ul#mycarousel li img').tooltip({ position: 'bottom center', opacity: 1.0});


// accordion start
	$('#accordionContainer .accordiontrigger').click(function() {
		$(this).next().toggle('fast');

		if ($(this).hasClass('active')){
			$(this).removeClass('active');
			}
		else
			$(this).addClass('active');
		return false;

	}).next().hide();

	$('#accordionshowall').click(function() {
		$('#accordionshowall').hide();
		$('#accordionhideall').show();

		$('.accordionContainerContent').show('fast');
		$('a.accordiontrigger').addClass('active');
		return false;

	});

	// expand all / collapse all
	$('#accordionhideall').click(function() {
		$('#accordionshowall').show();
		$('#accordionhideall').hide();
		$('.accordionContainerContent').hide('fast');
		$('a.accordiontrigger').removeClass('active');
		return false;
	});

// accordion end

// slideshow start
    var slideshow = $('#slideshow');
    if (slideshow.length > 0) {
	    slideshow.cycle({
		    fx: 'fade', //transition
		    timeout: 4000, // timeout between transitions
		    speed: 2500,	// transition speed
		    prev: '#prev', // previous slide
		    next: '#next', // next slide
		    pause: 1, // pause on hover
		    after: onAfter	// call function
	    });
    }

    // image count
    function onAfter(curr,next,opts) {
	    var caption = 'Bild ' + (opts.currSlide + 1) + ' von ' + opts.slideCount;
	    $('#count').html(caption);
    }

	// stop the show on pause click
	$('#slideshowcontrols #pause').click(function() {
		$('#slideshow').cycle('pause');
		$('#slideshowcontrols #pause').hide();
		$('#slideshowcontrols #play').show();
		return false;
	});
	// resume the show on play click
	$('#slideshowcontrols #play').click(function() {
		$('#slideshow').cycle('resume');
		$('#slideshowcontrols #play').hide();
		$('#slideshowcontrols #pause').show();
		return false;
	});
// slideshow end


// alternate column color for nutritionfact table
	$('#nutritionfacts tr th:nth-child(even), #nutritionfacts tr td:nth-child(even)').css('background', '#e9f5fc');

// forms start

	// uncheck option for searchboxes in searchoptions, please define class for following boxes
	$('p.uncheckall a').click(function(event){
	//each($(this).parent().parent().find('input:radio'), function(key, value) {alert('test');});
		$(this).parent().parent().find('input:radio').removeAttr('checked');
		event.preventDefault();
		//return false;
	});

// recipe search result open search options
	$('p.openadditionalsearchboxtop input:checkbox').click(function() {
		$('div.additionalsearchboxtop').toggle('fast');
	});

	// add more ingredients option
	$('p.addingredients input:checkbox').click(function() {
	    if ((this.checked && $('div.addingredientforms')[0].style.display == "none") || (!this.checked && $('div.addingredientforms')[0].style.display == "block")) {
    		$('div.addingredientforms').toggle('fast');
    	}
	});

	// exclude ingredients
	$('p.excludeingredients input:checkbox').click(function() {
	    if ((this.checked && $('div.dontlikeitcheckbox')[0].style.display == "none") || (!this.checked && $('div.dontlikeitcheckbox')[0].style.display == "block")) {
    		$('div.dontlikeitcheckbox, div.dontlikeitsave').toggle('fast');
    	}
	});
	if  ($( 'p.excludeingredients input:checkbox' ).attr( 'checked' )) {
		$( 'div.dontlikeitcheckbox, div.dontlikeitsave' ).show();
	}

// add new comment
	$('a#addnewcommenttrigger').click(function() {
		$('div#addnewcomment').toggle('fast');
		return false;
	});

// add new question
	$('a.askquestiontrigger').click(function() {
		$('div#askquestion').toggle('fast');
		return false;
	});

// show additional searchoptions in right column
	$('p.refinesearchoptions a').click(function() {
		var parent = $(this).parent();
		parent.next().show('fast');
		parent.css('display','none');
		return false;
	});

// show additional searchoptionsBox in right column
	$('div.refinesearchoptionsheaderleft').click(function() {
		var parent = $(this).parent();
		parent.next().show('fast');
		parent.css('display','none');
		return false;
	});
// hide additional searchoptionsBox in right column
	$('div.closeSrefinesearchoptionscontent').click(function() {
		var parent = $(this).parent();
		parent.prev().show('fast');
		parent.css('display','none');
		return false;
	});
// mag ich nicht list
	// check option for �mag ich nicht� list
	$('span#checkall input:checkbox').click(function(event){
	$('span#uncheckall input:checkbox, .dontlikeitlisteditcontentleft ul input:checkbox, .dontlikeitlisteditcontentmid ul input:checkbox, .dontlikeitlisteditcontentright ul input:checkbox').attr('checked', true);
		event.preventDefault();
		$('span#checkall').hide();
		$('span#uncheckall').show();
	});

	// uncheck option for mag ich nicht list
	$('span#uncheckall input:checkbox').click(function(event){
	$('.dontlikeitlisteditcontentleft ul input:checkbox, .dontlikeitlisteditcontentmid ul input:checkbox, .dontlikeitlisteditcontentright ul input:checkbox').attr('checked', false);
		event.preventDefault();
		$('span#checkall').show();
		$('span#uncheckall').hide();
	});

// our best - box cklickable
	$('.ratingbox').click(function(){
      window.location=$(this).find('a').attr('href');return false;
  	});
  	$('.ratingbox *').css('cursor','pointer');

// our best - equal heights
  	$('.ratingbox').equalHeights(80,300);

// recipecollection

	// inactive achor classes
	$('a.inactive').attr('href','#').css('cursor','default').animate({opacity:'0.2'},1);

	// check option for recipecollection
	$('span#checkall input:checkbox').click(function(event){
	$('span#uncheckall input:checkbox, .recipecollectiontable td input:checkbox').attr('checked', true);
		event.preventDefault();
		$('span#checkall').hide();
		$('span#uncheckall').show();
	});

	// uncheck option for recipecollection
	$('span#uncheckall input:checkbox').click(function(event){
	$('.recipecollectiontable td input:checkbox').attr('checked', false);
		event.preventDefault();
		$('span#checkall').show();
		$('span#uncheckall').hide();
	});

// forms in general
	$('input:radio, input:checkbox').css('border','none');

// watermarks for forms
	// watermark for searchoptionlayer
	$('.recipesearchbox').watermark('watermark', 'Rezept oder Zutat');
	$('.recipesearchboxproduct').watermark('watermark', 'MAGGI-Produkt eingeben');
	$('.recipesearchboxfurthercondiments').watermark('watermark', 'weitere Zutat eingeben');

	$('.suggestBox01').watermark('watermark', 'Produktname eingeben');
	$('#searchoptions').watermark('watermark', 'MAGGI-Produkt eingeben');
	$('.searchboxtop02').watermark('watermark', 'weitere Zutat eingeben');
	// watermark for loginlayer
	$('#accountloginuser').watermark('watermark', 'Max Mustermann');
	$('#accountloginpassword').watermark('watermark', '********');
	// watermark for recommendationlayer
	$('#recommendationrecipient, #recommendationsender, #recommendationsendermail, #recommendationcaptcha').watermark('watermark', 'Text eingeben');
	// recipesearch
	$('.zutatrezeptname, .produkt, .zutat').watermark('watermark', 'hier eingeben');
	// dontlikeitlist
	$('.singleingredientssearch').watermark('watermark','hier eingeben ...');
	// addtoshoppinglist
	$('.addtoshoppinglist').watermark('watermark','Zutaten hier eingeben ...');
	// recipecollection renamecategoryinput
	$('.renamecategoryinput').watermark('watermark','hier eingeben ...');
	$('.addreciperecipename').watermark('watermark','hier eingeben ...');
	$('.addrecipeingredients').watermark('watermark','hier eingeben ...');
	$('.addrecipepreparation').watermark('watermark','hier eingeben ...');

// forms end

// layout changes and fixes when dom is ready
	// every third image-listing item with no margin-right
	$('div.accordionContainerContentMiddle > div.imglisting:nth-child(3n)').css('margin-right','0');

	// no background for the last item in recipesearch left + right
	$('#recipesearchformcontentleft .recipesearchformcontentinnerbox:last-child, #recipesearchformcontentright .recipesearchformcontentinnerbox:last-child').css('background-image','none');

	// alternate column color for nutritionfacts table
	$('#nutritionfacts tr th:nth-child(even), #nutritionfacts tr td:nth-child(even)').css('background', '#e9f5fc');

	// alternate row color for dontlikeitlisttable + shoppinglist table + recipe collection table + kochkurstermine table
	$('table.dontlikeitlisttable tr:even, table.shoppinglisttable tr:even, table.recipecollectiontable tr:even, div.terminbox table tr:even').css('background-color','#e7f1f5');
	$('table.dontlikeitlisttable tr:odd, table.shoppinglisttable tr:odd, table.recipecollectiontable tr:odd, div.terminbox table tr:odd').css('background-color','#f1f8fb');

	// metanavigation
	$('#metanavcontainer ul li:last-child').css('border-right','0');
	// headmetanavigation
	$('#headmetanavigation a:last-child').css('background-image','none');

	// navigation teaser
	$('div.navigation ul li:first').css('background','none');

// modal dialog nyromodal plugin
	$('a.nyroModal').nyroModal({
		modal: true,
		minWidth: 200,
		minHeight: 75
	});

// masonry for sitemap
	$('#sitemapcontainer').masonry({ singleMode: true });    
});

// global jquery functions end --------------------------------------------------------------------------------------

window.onerror = function(Nachricht, Datei, Zeile) {
//    alert('Fehlermeldung:\n' + Nachricht + '\n' + Datei + '\n' + Zeile);
}

window.onload = function() {
	if (document.all && navigator.appVersion.indexOf("MSIE 6") != -1) {
		var headnavigationElement = document.getElementById("headnavigation");
		if (headnavigationElement != null) {
		    headnavigationElement.onmouseover = mouseevent;
		    headnavigationElement.onmouseout = mouseevent;
		}

		function mouseevent() {
			var sourceElement = window.event.srcElement;
			var targetElementSubnavigation;

			switch (sourceElement.nodeName) {
				case "A":
					if (sourceElement.parentNode.parentNode.parentNode.nodeName == "DIV") {
						targetElementSubnavigation = sourceElement.parentNode.getElementsByTagName("ul")[0];
					} else {
						targetElementSubnavigation = sourceElement.parentNode.parentNode;
					}
					break;
				case "LI":
					targetElementSubnavigation = sourceElement.parentNode;
					break;
				case "UL":
					targetElementSubnavigation = sourceElement;
					break;
				default:
					return;
			}

            if (targetElementSubnavigation) {
			    if (targetElementSubnavigation.style.display == "block") {
				    targetElementSubnavigation.style.display = "none";
			    } else {
				    targetElementSubnavigation.style.display = "block";
			    }
	        }
		}
	}

	initializeTabNavigationFirstTab();

    //dcsMultiTrack functionality
 	var diashowElement = document.getElementById("mycarousel");

 	if (diashowElement != null) {
     	var diashowDivElements = diashowElement.parentNode.parentNode.getElementsByTagName("div");
     	diashowDivElements[1].onclick = function(){ virtualPageViewDiashowSlideshow("ContentDiaShow"); };
     	diashowDivElements[2].onclick = function(){ virtualPageViewDiashowSlideshow("ContentDiaShow") };
 	}

 	var slideshowElement = document.getElementById("slideshowcontrols");

 	if (slideshowElement != null) {
     	var slideshowControlLinkElements = slideshowElement.getElementsByTagName("a");
     	slideshowControlLinkElements[0].onclick = function(){ virtualPageViewDiashowSlideshow("ContentSlideShow"); };
     	slideshowControlLinkElements[1].onclick = function(){ virtualPageViewDiashowSlideshow("ContentSlideShow"); };
     	slideshowControlLinkElements[2].onclick = function(){ virtualPageViewDiashowSlideshow("ContentSlideShow"); };
     	slideshowControlLinkElements[3].onclick = function(){ virtualPageViewDiashowSlideshow("ContentSlideShow"); };
 	}

	if (DcsMaggiObject == null) {
        DcsMaggiObject = new dcsMaggiObject();
    }
}

var popupObject;

function openPopup(popupUrl) {
    if (popupObject != undefined) {
        popupObject.close();
    }
	popupObject = window.open(popupUrl, "popup", "height=500,width=720,top=20,left=20,location=no,menubar=no,scrollbars=yes,toolbar=no");
}

function openShoppingCartPopup(popupUrl) {
    if (popupObject != undefined) {
        popupObject.close();
    }
	popupObject = window.open(popupUrl, "popup", "height=600,width=1020,top=20,left=20,location=no,menubar=yes,scrollbars=yes,toolbar=yes");
}

function openRecipePrintPopup(popupUrl) {
    if (popupObject != undefined) {
        popupObject.close();
    }
	popupObject = window.open(popupUrl, "popup", "height=500,width=1024,top=20,left=20,location=no,menubar=no,scrollbars=yes,toolbar=no");
}

function setHomepageImageTeaser(mouseoverElement) {
	var mouseoverElements = mouseoverElement.parentNode.parentNode.getElementsByTagName("a");
	var imageElements = mouseoverElement.parentNode.parentNode.parentNode.getElementsByTagName("img");

	for (var i = 0; i < mouseoverElements.length; i++) {

		if (mouseoverElements[i] == mouseoverElement) {

			for (var j = 0; j < imageElements.length; j++) {

				if (i + j == imageElements.length - 1) {
					imageElements[j].style.display = "block";
				} else {
					imageElements[j].style.display = "none";
				}
			}
		}
	}
}

var fadeElementsInterval = 0, sourceElement, targetElement;

function slideshowChangeElement(object, direction) {
    virtualPageViewDiashowSlideshow("TeaserSlideshow");
	var slideshowElements = object.parentNode.getElementsByTagName("a");

	for (var i = 0; i < slideshowElements.length; i++) {

		if (slideshowElements[i].style.display == "block") {

			if ((direction + i) >= 0 && (direction + i) < slideshowElements.length && direction != 0 && fadeElementsInterval == 0) {
				sourceElement = slideshowElements[i];
				targetElement = slideshowElements[direction + i];
				setOpacity(sourceElement, 1);
				setOpacity(targetElement, 0);
				targetElement.style.display = "block";
				fadeElementsInterval = setInterval(fadeElements,50);
			}

			return;
		}
	}

	slideshowElements[0].style.display = "block";
	slideshowChangeElement(object, direction);
}

function columnLeftMiddleTabPanelNavigation(clickedTabElement) {
	var tabElements = clickedTabElement.parentNode.getElementsByTagName("p");
	var linkContainerElements = clickedTabElement.parentNode.getElementsByTagName("table");
	var newActiveElementIndex = 0;

	for (var i = (tabElements.length - 2); i >= 0; i--) {
		tabElements[i].className = "tabNavigationItem";
		linkContainerElements[i].style.display = "none";

		if (tabElements[i] == clickedTabElement) {
			tabElements[i].className += " active";
			linkContainerElements[i].style.display = "block";

			if (i >= (tabElements.length - 2)) {
				tabElements[(tabElements.length - 1)].style.display = "block";
			} else {
				tabElements[i + 1].className += " belowactive";
				tabElements[(tabElements.length - 1)].style.display = "none";
			}
		}
	}
}

function getOpacity(opacityElement) {
	var opacityValue;
	if (document.all) opacityValue = (parseInt(opacityElement.style.filter.split("=")[1], 10) / 100);
	else opacityValue = parseFloat(opacityElement.style.opacity, 10);
	return opacityValue;
}

function setOpacity(opacityElement, value) {
	if (document.all) opacityElement.style.filter = "alpha(opacity=" + (value * 100) + ")";
	else opacityElement.style.opacity = String(value);
}

function fadeElements() {
	setOpacity(sourceElement, (getOpacity(sourceElement) - 0.1));
	setOpacity(targetElement, (getOpacity(targetElement) + 0.1));

	if (getOpacity(sourceElement) <= 0 && getOpacity(targetElement) >= 1) {
		sourceElement.style.display = "none";
		clearInterval(fadeElementsInterval);
		fadeElementsInterval = 0;
	}

}

function initializeTabNavigationFirstTab() {
	var columnRightElement = document.getElementById("columnRight");

	if (columnRightElement != null) {
		var divElements = columnRightElement.getElementsByTagName("div");

		for (var i = 0; i < divElements.length; i++) {

			if (divElements[i].className == "tabNavigation") {
				tabNavigation(divElements[i].getElementsByTagName("a")[0]);
			}
		}
	}
}

// kochtypentest tabNavigation
function tabNavigationKTT(navigationElement) {
    var hash = navigationElement.href.split("#")[1];
    var activeTab = $('#'+hash);
    if (activeTab && activeTab.length) {
        // Tabs
        activeTab.addClass('firstItem');
        var siblingTabs = activeTab.siblings('.itemsListing');
        siblingTabs.removeClass('firstItem');
        // Tab-Pins
        navigationElement = $(navigationElement);
        var tabPins = navigationElement.parent().children('a');
        tabPins.each(function(index, val) {
            var tabPin = $(val);
            var tabPinHash = tabPin.attr('href').split("#")[1];
            var tabPinClass = tabPin.attr('class').replace("active", "");
            tabPin.attr('class', (hash === tabPinHash) ? tabPinClass+"active" : tabPinClass);
        });
    }
}

function selectNavigation(navigationElement) {
	var tabContentNode = navigationElement.parentNode;
	var tabContentNodeChild;
	var elementCount = 0;

	while (tabContentNode.nextSibling != undefined) {
		tabContentNode = tabContentNode.nextSibling;

		if (tabContentNode.nodeName == "DIV") {

			if (tabContentNode.className.split(" ")[0] == "itemsListing") {

				if (elementCount == navigationElement.selectedIndex) {
					tabContentNode.style.display = "block";
				} else {
					tabContentNode.style.display = "none";
				}

				elementCount++;
			}
		}
	}
}

function tabNavigation(navigationElement) {
	var tabContentNode = navigationElement.parentNode;
	var tabContentNodeChild;

	while (tabContentNode.nextSibling != undefined) {
		tabContentNode = tabContentNode.nextSibling;

		if (tabContentNode.nodeName == "DIV") {

			if (tabContentNode.id == navigationElement.href.split("#")[1]) {
				tabContentNode.style.display = "block";

				if (tabContentNode.className.split(" ")[0] == "itemsListing") {
					tabContentNodeChild = tabContentNode.firstChild;

					while (tabContentNodeChild.className != "pagerLinks" && tabContentNodeChild.nextSibling != null) tabContentNodeChild = tabContentNodeChild.nextSibling;

					if (tabContentNodeChild.className == "pagerLinks") {
						pagerNavigation(tabContentNodeChild.getElementsByTagName("a")[0]);
					}
				}
			} else {

				if (tabContentNode.className != "moduleLink") tabContentNode.style.display = "none";
			}
		}
	}

	var tabLinks = navigationElement.parentNode.getElementsByTagName("a");
	var tablinksBasicClassName;

	for (var i = 0; i < tabLinks.length; i++) {
		tablinksBasicClassName = tabLinks[i].className.replace("active", "");

		if (tabLinks[i].href == navigationElement.href) tabLinks[i].className = tablinksBasicClassName + "active";
		else tabLinks[i].className = tablinksBasicClassName;
	}
}

function pagerNavigation(navigationElement) {
	var itemsPerView = 3;
	var pagerId = parseInt(navigationElement.lastChild.nodeValue, 10);
	var linkItems = navigationElement.parentNode.parentNode.getElementsByTagName("tr");
	var displayValue;

	for (var i = 0; i < linkItems.length; i++) {

		if (i < ((pagerId - 1) * itemsPerView) || i >= ((pagerId) * itemsPerView)) linkItems[i].style.display = "none";
		else linkItems[i].style.display = "block";
	}

	var pagerItems = navigationElement.parentNode.getElementsByTagName("a");

	for (i = 0; i < pagerItems.length; i++) {

		if (i == pagerId - 1) pagerItems[i].className = "active";
		else {
			pagerItems[i].className = ""

			if (linkItems.length > i * itemsPerView) displayValue = "inline";
			else displayValue = "none";

			pagerItems[i].style.display = displayValue;
		}
	}
}

function pagerNavigationStep(arrowLinkElement, direction) {
	var tabContentNodeChild = arrowLinkElement.parentNode.parentNode.firstChild;
	var pagerLinks;

	while (tabContentNodeChild.className != "pagerLinks") {
		tabContentNodeChild = tabContentNodeChild.nextSibling;
	}

	pagerLinks = tabContentNodeChild.getElementsByTagName("a");

	for (var i = 0; i < pagerLinks.length; i++) {

		if ((pagerLinks[i].className == "active") && (i + direction >= 0) && (i + direction < pagerLinks.length) && (pagerLinks[i + direction].style.display != "none")) {
			pagerNavigation(pagerLinks[i + direction]);
			break;
		}
	}
}

function modifyTableRowBackground(elementId) {
    if (document.getElementById(elementId) == null) return;

	var divArray = document.getElementById(elementId).getElementsByTagName("div");

	for (var i = 0; i < divArray.length; i++) {
		if (divArray[i].className == "innerContent") break;
	}

	if ((i + 1) >= divArray.length) return;

	var tableArray = divArray[i].getElementsByTagName("table");
	var trArray;

	if (tableArray.length > 10) return;

	for (i = 0; i < tableArray.length; i++) {
		trArray = tableArray[i].getElementsByTagName("tr");

		for (var j = 0; j < trArray.length; j++) {
			if (j%2 > 0) {
			    trArray[j].className = "alternateBackground";
			}
		}
	}
}

function createAnchorNavigation() {
	var navigationElement = document.getElementById("contentNavigation");
	var anchorHeadlines = navigationElement.parentNode.getElementsByTagName("h3");
	var anchorLinkElement;

	if (anchorHeadlines.length == 0) {
	    navigationElement.getElementsByTagName("strong")[0].style.display = "none";
	    return;
	}

	for (var i = 0; i < anchorHeadlines.length; i++) {
		anchorLinkElement = anchorHeadlines[i].getElementsByTagName("a")[0].cloneNode(true);
		anchorLinkElement.href = "#abschnitt" + (i + 1);
		anchorLinkElement.name = "";
		navigationElement.getElementsByTagName("div")[0].appendChild(anchorLinkElement);
		anchorHeadlines[i].getElementsByTagName("a")[0].id = "abschnitt" + (i + 1);
	}
}

function setCarouselTitleAttributes(carouselElementId) {
    var carouselElement = document.getElementById(carouselElementId);
    if (carouselElement == null) return;
	var listingElements = carouselElement.getElementsByTagName("li");
	var listingElementsImageElement;

    for (var i = 0; i < listingElements.length; i++) {
		listingElementsImageElement = listingElements[i].getElementsByTagName("img")[0];

        if (listingElementsImageElement != null && listingElementsImageElement.alt != "") {
            listingElementsImageElement.title = listingElementsImageElement.alt;
            // store 'alt' for later usage
            $(listingElementsImageElement).data('alt', listingElementsImageElement.alt);
            listingElementsImageElement.alt = "";
        }
    }
}

function carouselItemVisibleInCallbackFunction() {
    $.each($('ul#mycarousel li img'), function(index, img) {
        // remove current tooltip
        $(this).data('tooltip', null);
        // restore 'title'
        $(this).attr('title', $(this).data('alt'));
    });
    // re-add tooltips
    $('ul#mycarousel li img').tooltip({ position: 'bottom center', opacity: 1.0});
}

var layerRatingValue = 0;
var clickedElementBackup = 0;
var clickedElementClassNameBackup = 0;

function layerRatingClick(clickedElement, index) {
    layerRatingValue = index;
    //document.title = "Bewertung: " + (layerRatingValue+1);
    if (clickedElementBackup != 0 && typeof(clickedElementBackup.className) != "undefined") clickedElementBackup.className = clickedElementClassNameBackup;
    clickedElementClassNameBackup = clickedElement.className;
    clickedElement.className += " checked";
    clickedElementBackup = clickedElement;
}

function layerRatingSave() {
    if (layerRatingValue < 0 || layerRatingValue > 4) return;
    document.getElementById("layerrating").getElementsByTagName("input")[layerRatingValue].checked = true;
}

function activateLayer(layerId, buttonId) {
	$(document).ready(function() {
	    var layerPin = 225;
	    var layerShadowWidth = 5;
	    var layer = $(layerId);
	    var button = $(buttonId);

	    if (layer && layer.length && button && button.length) {
		    var buttonOffset = button.offset();
		    // Calculate top position
		    var top = buttonOffset.top + button.height() - layerShadowWidth;
		    // Calculate left position
		    var left = buttonOffset.left + (button.width() / 2) - layerPin;
		    // Position and display layer

		    if (jQuery.support.opacity) {
			    layer.css({'top':top, 'left':left}).appendTo(document.forms[0]).fadeIn('fast');
		    } else {
			    layer.css({'top':top, 'left':left}).appendTo(document.forms[0]).css('display','block');
		    }
		    
		    layer.toggleClass('layeractive');
		    		              
            if ((window.location.search.indexOf('WT.mc_id=01X') > 0) && (layerId != 'div#layerrecipecollection')) {
		        if (DcsMaggiObject == null) {
		            DcsMaggiObject = new dcsMaggiObject();
		        }            		        
                virtualPageViewOpenLayer(layerId);
            }	    
        }
    });
}

function hideLayer(layerId) {
	$(document).ready(function() {
		var layer = $(layerId);
		if (layer && layer.length) {
			if (jQuery.support.opacity) {
				layer.fadeOut('fast');
		} else {
				layer.css('display','none');
		}
		layer.toggleClass('layeractive');
		}
	})
}

function magginalienShowElement(index) {
	$("#contentElements span").children().each(function (i) {
		if(i==index) {
			$(this).fadeIn("slow");
		} else {
			$(this).css("display", "none");
		}
	});
}

// long running prozesses
var _isFormButtonPressed = false;

function AllowFormButtonSubmit() {
    if (_isFormButtonPressed) {
        return false;
    } else {
        _isFormButtonPressed = true;
        return true;
    }
}

// The original function "WebForm_FireDefaultButton" offered by the ASP.NET 2.0 framework
// and used by the "System.Web.UI.WebControls.Panel" in order to offer the "DefaultButton" functionality
// does not work properly in FireFox browser.
// This function works with FireFox 1.5.0.10 and replaces the original one
function WebForm_FireDefaultButton_BugFix(event, target) {
	var element = event.target || event.srcElement;

	if ((event.keyCode == 13 || event.which == 13) && !(element && (element.tagName.toLowerCase() == "textarea"))) {
		var defaultButton = document.getElementById(target);

		if (defaultButton && typeof(defaultButton.click) != "undefined") {
			defaultButton.click();
			event.cancelBubble = true;

			if (event.stopPropagation) {
				event.stopPropagation();
			}
			return false;
		}
		else if (defaultButton && typeof(defaultButton.href) != "undefined") {
			window.location = defaultButton.href;
			event.cancelBubble = true;

			if (event.stopPropagation) {
				event.stopPropagation();
			}
			return false;
		}
	}
	return true;
}

if (document.WebForm_FireDefaultButton != "undefined") {
	document.WebForm_FireDefaultButton = WebForm_FireDefaultButton_BugFix;
}

// append GET paraemeters tu URL
function AppendParameters(url, parameters) {    
    return url + ((url.indexOf("?") >= 0) ? "&" : "?") + parameters;
}

// returns the current uri without the hash
function GetCurrentUriWithoutHash(){
    var location = document.location;
    return location.protocol + '//' + location.host + location.pathname + location.search;
}

// Switches the next sync postback to https
function SubmitToSecureSite() {
    var url = GetCurrentUriWithoutHash();
    url = url.replace('http://', 'https://');

    if (url.indexOf('loginSecure') == -1) {
        url = AppendParameters(url, 'loginSecure=1');
    }
    __CMS_CurrentUrl = url;
}

// user comments: memorise active tab while posting a comment
function SetActiveTabName(hiddenFieldId, tabName){
    var hiddenField = document.getElementById(hiddenFieldId);
    if (hiddenField) {
        hiddenField.value=tabName;
    }
}

// lottery web form
function switchPermission(limit) {
    if (limit != '') {
        var value = birthday();
        var result = value.match(/^(0[1-9]|[12][0-9]|3[0-1])\.(0[1-9]|1[0-2])\.((19|2[0-9])[0-9]{2})$/);
	    if (result && (result[1] <= maxDay(result[2], result[3]))) {
	        var date = result[3] + result[2] + result[1];
	        if (limit < date) {
	            switchPermissionButtons(true);
	            return;
	        }
	    }
	    switchPermissionButtons(false);
    }
}

// lottery web form
function birthday() {
    var elements = document.forms[0].elements;
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].name.match(/^.*:s8:.*$/)) {
            return elements[i].value;
        }
    }
    return '';
}

// lottery web form
function switchPermissionButtons(kid) {
    var elements = document.forms[0].elements;
    for (var i = 0; i < elements.length; i++) {
        var element = elements[i];
	    if (element.name.match(/^.*:AllMailPermission:.*:EvkGroup.*$/)) {
	        if ((element.value == 'K') == kid) {
                element.disabled = false;
            } else {
                element.checked = false;
                element.disabled = true;
            }
        }
    }
}

// company popup
function openPopupUnternehmensgruppe() {
    var popupUnternehmensgruppe = window.open("http://www.nestle.de/corporate/Templates/Pages/unternehmensgruppe.html","unternehmensgruppePopup","width=355,height=370,resizable=no,scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no");
    popupUnternehmensgruppe.focus();
}

// HTML-Encodes the specified text
function HtmlEncode(text) {
    var result = '';
    if (!text) {
        return result;
    }
    for (var i = 0, l = text.length; i < l; ++i) {
        var charCode = text.charCodeAt(i);
        if (charCode < 128) {
            switch(charCode) {
                case 34: result += '&quot;'; break;
                case 38: result += '&amp;'; break;
                case 60: result += '&lt;'; break;
                case 62: result += '&gt;'; break;
                default: result += String.fromCharCode(charCode); break;
            }
        } else {
            result += '&#'+charCode+';';
        }
    }
    return result;
}

// Reloads the visible images defined by the specified selector
function ReloadImages(selector) {
    var visibleImages = $(selector);
    for (var i = 0, l = visibleImages.length; i < l; ++i) {
        var visibleImage = $(visibleImages[i]);
        if (visibleImage.attr('class')) {
            visibleImage.attr('src', visibleImage.attr('class'));
            visibleImage.attr('class', '');
        }
    }
}

function SetAllLinkTargets(target){
    $('a[href]:not(a[href^=javascript]):not(a[href^=#])').attr("target", target);        
}

function ShowPopupIFrame(url, cssClass, top, left, width, height, zIndex){
    if(window.location.protocol=="https:"){
        url = AppendParameters(url, 'loginSecure=1');
    }
    HidePopupIFrame();
    var iFrame = $('<iframe id="popupIFrame" onload="InitializeIframe(this);" allowtransparency="true" scrolling="no" src="'+url+'" frameborder="0"></iframe>');
    if(cssClass){
        iFrame.addClass(cssClass);
    }else{
        var options = {
                "top":top,
                "left":left,
                "width":width,
                "height":height,
                "z-index":zIndex
            };
         if(top || left){
            options["position"] = "absolute";
         }
        iFrame.css(options);
    }
    $(document.body).append(iFrame);
    iFrame.attr('src', url);
}

function HidePopupIFrame(){
    var iframe = $('#popupIFrame');
    if(iframe.length){
        var intervalId = iframe.data("intervalId");
        if(intervalId){
            clearInterval(intervalId);
        }
        iframe.remove();
        $('#pageFrameLayerFooterBackgroundWave').css("margin-top","");
    }
}

function InitializeIframe(elementOnLoad) {
    $(elementOnLoad).contents().find('body').css({"min-height": "100", "overflow" : "hidden"});
	SetIframeHeight();
	$(elementOnLoad).data('intervalId', window.setInterval( SetIframeHeight, 100));
}

function SetIframeHeight(){
    var iframe = $('#popupIFrame');
    var oldHeight = iframe.data("height");
    var height = iframe.contents().find('body').height();
    if(height != null && height != oldHeight){ 
        iframe.data("height",height);
        iframe.height(height);
        var footer = $('#pageFrameLayerFooterBackgroundWave');
        footer.css("margin-top","");
        var footerOffsetTop = footer.offset().top;
        var iframeOffsetTop = iframe.offset().top;
        var footerMarginTop = iframeOffsetTop+height-footerOffsetTop;
        if(footerMarginTop > 0){
            footer.css("margin-top", footerMarginTop + "px");
        }
        // ie bug --> force redraw
        iframe.height(height+1);
        iframe.height(height);
    }
}
