// Namespace object for mediapedia functions
var mpobj = new Object();

mpobj.createVerticalSlideBox = function(targetId, toggleId, options){
	window.addEvent('domready', function(){
		if($defined(targetId) && $defined(toggleId)){

			var t = $(toggleId);
			
			var fx = new Fx.Slide(targetId, {
					    duration: 'long',
					    transition: Fx.Transitions.Bounce.easeOut,
					    onStart: function(){

				    		if(t.hasClass('mp_in')){
								t.removeClass('mp_in').addClass('mp_out');
							} else {
								if( t.hasClass('mp_out') ) t.removeClass('mp_out');
								t.addClass('mp_in');
							}
							
					    	if(options){
								if(options.elementId && $defined(options.elementId) && options.elementClass){
									$(options.elementId).hasClass(options.elementClass) ? $(options.elementId).removeClass(options.elementClass) : $(options.elementId).addClass(options.elementClass);
								}
							}
					    }
			});

			t.setStyle('cursor', 'pointer').addEvent('click', function(e){
				e = new Event(e);
				fx.toggle();
				e.stop();
			});
		}
	});
};


mpobj.createAjaxFormRequest = function(formId, options){
		if( $defined(formId)){
			var request = function(){};
			var success = function(){};
			var failure = function(){};
			if(options.onRequest) request = options.onRequest;
			if(options.onSuccess) success = options.onSuccess;
			if(options.onFailure) failure = options.onFailure;
			if(options.beforeRequest) options.beforeRequest();
			$(formId).set('send', {
				onRequest: request,
				onSuccess: success,
				onFailure: failure

			});
			$(formId).send();
		}
};

mpobj.createAjaxFormSubmitRequest = function(formId, options){
	window.addEvent('domready', function(){
		if( $defined(formId)){
			$(formId).addEvent('submit', function(e) {
				if(e) {
			        new Event(e).stop();
			    }
				var request = function(){};
				var success = function(){};
				var failure = function(){};
				if(options.onRequest) request = options.onRequest;
				if(options.onSuccess) success = options.onSuccess;
				if(options.onFailure) failure = options.onFailure;
				
				if(options.beforeRequest) options.beforeRequest();
				$(formId).set('send', {
					onRequest: request,
					onSuccess: success,
					onFailure: failure
				});
				$(formId).send();
			});		
			
		}
	});
};

mpobj.createAnchorAjaxRequest = function(anchorId, options) {
	if ($defined($(anchorId))) {
		$(anchorId).addEvent('click', function(e) {
			e.stop();
			if(Cookie.read('MC_USERTYPE') == 'R'){
				var request = function(){};
				var success = function(){};
				var failure = function(){};
				if (options.onRequest) request = options.onRequest;
				if (options.onSuccess) success = options.onSuccess;
				if (options.onFailure) failure = options.onFailure;
					var req = new Request.JSON({
					method: 'get',
					url: $(anchorId).get('href'),
					onRequest: request,
					onSuccess: success,
					onFailure: failure
				});
				req.send();				
			}else{
				$('ratingText').innerHTML = notregistered;
			}
		});
	}
};

mpobj.ratingOnSuccess = function(response) {
	if (response.rating) {
		$('currentRating').setStyle('width', response.rating + '%');
	}
	var prefix = '';
	if (response.ratingCount) {
		prefix = '(' + response.ratingCount + ')';
	}
	$('ratingText').innerHTML = prefix + ' ' + response.message;
};

mpobj.starMouseover = function(event) { 
	event.stop();
	$('currentRating').setStyle('display', 'none');
};

mpobj.starMouseout = function(event) {
	event.stop();
	$('currentRating').setStyle('display', 'inline');
};

mpobj.starClick = function(i) {
	return function(event) {
		event.stop();
		$('currentRating').setStyle('width', i * 20 + '%');
	}
};

mpobj.createRatingRequests = function() {
	window.addEvent('domready', function() {
		var options = { onSuccess: mpobj.ratingOnSuccess };
		for (var i = 1; i <= 5; i++) {
			var star = 'stars' + i;
			if ($defined($(star))) {
				mpobj.createAnchorAjaxRequest(star, options);
				$(star).addEvents({
					'mouseover': mpobj.starMouseover,
					'mouseout': mpobj.starMouseout,
					'click': mpobj.starClick(i)
				});
			}
		}
	});
};

mpobj.switchSuggestionResultBox = function(){

};


mpobj.createAdditionRequest = function(){
	mpobj.createAjaxFormRequest( 'additionForm', {
		onRequest: function(){
			$('additionAjaxLoader').removeClass('inv');
			mpobj.switchElements('additionForm_submit', 'additionForm_submit_inactive');
		},
		onSuccess: function(responseText){
			$('additionAjaxLoader').addClass('inv');
			mpobj.switchElements('additionForm_submit_inactive', 'additionForm_submit');
			var result = JSON.decode(responseText);
			if(result && result.status && result.status == 'ok'){
				if( $defined('expertBox') && $defined('expertResultBox')){
					mpobj.switchElements('additionBox', 'additionResultBox');
					$('toggleAddition').removeEvents().addEvent('click', function(e){
						e = new Event(e);
						mpobj.switchElements('additionResultBox', 'additionBox');
						$('additionForm').reset();
						mpobj.reInitSlider('additionContentBox');
						mpobj.reInitAdditionSlider();
						mpReInitAdditionInputs();
						e.stop();
					});
				}
			} else {
				var formId = result.formId;
				mpInitAdditionInputs();
				mpobj.parseJSONErrors(formId, result.errors);
			}
			mpobj.reInitSlider('additionContentBox');
		},
		onFailure: function(e){
			$('additionAjaxLoader').addClass('inv');
			mpInitAdditionInputs();
			mpobj.switchElements('additionForm_submit_inactive', 'additionForm_submit');
		}
	});
};



mpobj.createSuggestionRequest = function(){
	mpobj.createAjaxFormRequest( 'suggestionForm', {
		onRequest: function(){
			$('suggestionAjaxLoader').removeClass('inv');
			mpobj.switchElements('suggestionForm_submit', 'suggestionForm_submit_inactive');
		},
		onSuccess: function(responseText){
			$('suggestionAjaxLoader').addClass('inv');
			mpobj.switchElements('suggestionForm_submit_inactive', 'suggestionForm_submit');
			var result = JSON.decode(responseText);
			if(result && result.status && result.status == 'ok'){
				if( $defined('missingSomeThingContent') && $defined('missingSomeThingResultContent')){
					$('missingSomeThingContent').addClass('inv');
					$('missingSomeThingHead').addClass('inv');
					$('missingSomeThingResultContent').removeClass('inv');
					$('missingSomeThingResultHead').removeClass('inv');
				}
				
			} else {
				var formId = result.formId;
				mpInitSuggestionInputs();
				mpobj.parseJSONErrors(formId, result.errors);
			}
			mpobj.reInitSlider('missingSomeThingBox');
		},
		onFailure: function(e){
			$('suggestionAjaxLoader').addClass('inv');
			mpInitSuggestionInputs();
			mpobj.switchElements('suggestionForm_submit_inactive', 'suggestionForm_submit');
		}
	});
};

mpobj.createWriteArticleRequest = function(valObj){
	
	mpobj.createAjaxFormSubmitRequest( 'writeArticleForm', {
		onRequest: function(){
			$('writeArticleAjaxLoader').removeClass('inv');
			mpobj.switchElements('writeArticleForm_submit', 'writeArticleForm_submit_inactive');
			
		},
		onSuccess: function(responseText){
			$('writeArticleAjaxLoader').addClass('inv');
			mpobj.switchElements('writeArticleForm_submit_inactive', 'writeArticleForm_submit');
			var result = JSON.decode(responseText);
			if(result && result.status && result.status == 'ok'){
				mpobj.switchElements('writeArticle', 'writeArticleSuccess');
			} else {
				mpobj.parseMiddleJSONErrors(valObj, result);
			}
		},
		onFailure: function(e){
			$('writeArticleAjaxLoader').addClass('inv');
			mpInitWriteArticleInputs();
			//mpobj.clearMiddleJSONErrors('writeArticleForm');
			mpobj.switchElements('writeArticleForm_submit_inactive', 'writeArticleForm_submit');
		}
	});
};



mpobj.parseJSONErrors = function(formId, errors){
	
	var errorBoxId = formId + '_errors_messages';
	if( $defined($(errorBoxId)) ) {
		$(errorBoxId).empty();
		for(i=0;i<errors.length;i++){
			var errorLI = new Element('li', {
			    'html': errors[i].message
			});
			errorLI.inject(errorBoxId, 'bottom');
		}
	}
};


mpobj.parseWriteArticleResult = function(result){
	$('writeArticleAjaxLoader').addClass('inv');
	mpobj.switchElements('writeArticleForm_submit_inactive', 'writeArticleForm_submit');
	if(result.status && result.status == 'ok'){
		mpWriteArticle.validator.clearLocalErrors();
		mpWriteArticle.validator.clearGlobalError();
	  	mpobj.switchElements('writeArticle', 'writeArticleSuccess');
	} else {
		mpobj.parseMiddleJSONErrors(mpWriteArticle.validator, result);
	}
	
};

mpobj.clearMiddleJSONErrors = function(formId){
	$$('#' + formId + ' .mp_errors').each(function(item){
		item.addClass('inv').empty();
	});
	var errorBoxId = formId + '_errors';
	if( $defined($(errorBoxId)) ) $(errorBoxId).empty();
};

mpobj.parseMiddleJSONErrors = function(valObj, result){
	valObj.clearGlobalError();
	for(i=0;i<result.errors.length;i++){
		var elementId = result.formId + '_' + result.errors[i].name;
		valObj.addGlobalError(result.errors[i].message, $(elementId));
	}
};

/*
mpobj.clearAdditionJSONErrors = function(){
	$('errorAddition_content').addClass('inv');
	$('errorAddition_title').addClass('inv');
};*/


mpobj.parseAdditionJSONErrors = function(formId, errors){

	for(i=0;i<errors.length;i++){
		var div = new Element('li', {
		    'class': 'error_text',
		    'html': errors[i].message
		});
	}
	
	var errorBoxId = formId + '_errors';
	if( $defined($('errorMessages')) ) {
		$('errorMessages').empty();
		div.inject('errorMessages', 'top');
	}
	
	if( $defined($(errorBoxId)) ) $(errorBoxId).removeClass('error_hideout');
	

};

mpobj.prepareSlider = function(targetId, toggleId, fn){
	
	if($defined( $(targetId) ) && $defined( $(toggleId))){

		window.addEvent('domready', function(){
			var box = new Fx.Slide(targetId);
			box.hide();
			$(toggleId).addEvent('click', function(e){
				e = new Event(e);
				box.toggle();
				if(fn) fn();
				e.stop();
			});
		});
		
		
	}

};


mpobj.prepareAdditionSlider = function(targetId, toggleId, fn){
	if($defined( $(targetId) ) && $defined( $(toggleId))){

		window.addEvent('domready', function(){
			var box = new Fx.Slide(targetId);
			box.hide();
			$(toggleId).addEvent('click', function(e){
				e = new Event(e);
				box.toggle();
				if(fn) fn();
				e.stop();
			});
		});
	}
	
	
	mpobj.prepareSlider(targetId, toggleId, function(){
		$("toggleAdditionA").toggleClass('grey');
	});
	
}


mpobj.setInputDefaultValue = function(targetId, value) {
  if($defined( $(targetId))){
  	window.addEvent('domready', function(){
		var t = $(targetId);
		t.addEvents({
	        'focus': function(){
	        	t.removeClass('mp_inputDefault');
	            if( t.get('value') == "" || t.get('value') == value ) t.set('value','');
	            else t.select();
	            t.removeClass("mp_grey").removeClass("error_text");
	        },
	        'blur': function(){
	            if( t.get('value') == "" ) t.set('value', value).addClass("mp_grey");
	        }
	    });
	    if( t.get('value')=='' ) t.set('value', value).addClass("mp_grey");
	});
  }
}

mpobj.reSetInputDefaultValue = function(targetId, value) {
  if($defined( $(targetId))){
		var t = $(targetId);
		t.removeEvents();
		t.addEvents({
	        'focus': function(){
	        	t.removeClass('mp_inputDefault');
	            if( t.get('value') == "" || t.get('value') == value ) t.set('value','');
	            else t.select();
	            t.removeClass("mp_grey").removeClass("error_text");
	        },
	        'blur': function(){
	            if( t.get('value') == "" ) t.set('value', value).addClass("mp_grey");
	        }
	    });
	    if( t.get('value')=='' ) t.set('value', value).addClass("mp_grey");
  }
}

mpobj.switchElements = function (elementId_1, elementId_2){
	if($defined(elementId_1) && $defined(elementId_2)){
		$(elementId_1).addClass('inv');
		if($(elementId_2).hasClass('inv')) $(elementId_2).removeClass('inv');
	}
}


mpobj.NMFlashPlayer = function(targetId, options){
	var t = '';
	if(targetId) t = targetId;
	var w = '226';
	var h = '127';
	var q = 'high';
	var wm = 'opaque';
	var a = 'always';
	var m = '';
	if(options.width) w = options.width;
	if(options.height) h = options.height;
	if(options.quality) q = options.quality;
	if(options.wmode) wm = options.wmode;
	if(options.movie) m = options.movie;
	if(options.allowscriptaccess) a = options.allowscriptaccess;
	AC_FL_RunContent(
        'targetId', t,
        'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
        'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
        'quality', q,
        'wmode', wm,
        'allowscriptaccess', a,
        'width', w,
        'height', h,
        'movie', m
    );
};

mpobj.reInitSlider = function(contentId){
	if( $defined($(contentId)) ){
		var parent = $(contentId).getParent().setStyle('height', $(contentId).offsetHeight);
		parent.getParent().setStyle('height', $(contentId).offsetHeight);
	}
};

mpobj.processSlider = function() {
	window.addEvent('domready', function(){
		$$('#contentMiddle div .sliderToggleMiddle').each(function(toggleElement) {
	
			var contentElement = toggleElement.getNext('div .sliderContentMiddle');
			
			var targetElement = new Element('div', {
				'class': 'sliderTargetMiddle',
				'styles': {
					'height': contentElement.offsetHeight
				}
			});
	
			targetElement.wraps(contentElement);
	
			var fx = new Fx.Slide(
				targetElement,
				{
					duration: contentElement.offsetHeight * 5,
					transition: Fx.Transitions.Bounce.easeOut
				});
	
			//Fix Fx.Slide-bug not setting height initially
			targetElement.parentNode.setStyle('height', contentElement.offsetHeight);
	
			//Fix IE6 misbehaviour
			if (Browser.Engine.trident && Browser.Engine.version == 4) {
				contentElement.setStyle('top', 0);
			}
	
			toggleElement.addEvent('click', function(e) {
				e = new Event(e);
				fx.toggle();
				e.stop();
			});
		});
	});
};

mpobj.reInitAdditionSlider = function() {
		$('toggleAddition').removeEvents().getFirst().addClass('mp_grey');
	
		var contentElement = $('additionContentBox');
		
		var targetElement = $('additionSliderContainer');
		targetElement.removeEvents();
		
		var fx = new Fx.Slide(
			targetElement,
			{
				duration: contentElement.offsetHeight * 5,
				transition: Fx.Transitions.Bounce.easeOut
			});
		
		//Fix Fx.Slide-bug not setting height initially
		targetElement.parentNode.setStyle('height', contentElement.offsetHeight);

		//Fix IE6 misbehaviour
		if (Browser.Engine.trident && Browser.Engine.version == 4) {
			contentElement.setStyle('top', 0);
		}
		
		$('toggleAddition').addEvent('click', function(e) {
			e = new Event(e);
			this.getFirst().toggleClass('mp_grey');
			fx.toggle();
			e.stop();
			return false;
		});
		

};


mpobj.processAdditionSlider = function() {
	window.addEvent('domready', function(){

		var contentElement = $('additionContentBox');

		var targetElement = new Element('div', {
			'class': 'sliderTargetMiddle',
			'id': 'additionSliderContainer',
			'styles': {
				'height': contentElement.offsetHeight
			}
		});

		targetElement.wraps(contentElement);
			
		var fx = new Fx.Slide(
			targetElement,
			{
				duration: contentElement.offsetHeight * 5,
				transition: Fx.Transitions.Bounce.easeOut
			});
		
		//Fix Fx.Slide-bug not setting height initially
		targetElement.parentNode.setStyle('height', contentElement.offsetHeight);

		//Fix IE6 misbehaviour
		if (Browser.Engine.trident && Browser.Engine.version == 4) {
			contentElement.setStyle('top', 0);
		}

		$('toggleAddition').addEvent('click', function(e) {
			e = new Event(e);
			this.getFirst().toggleClass('mp_grey');
			fx.toggle();
			e.stop();
		});
		fx.hide();
	});
};

mpobj.reInitSuggestionBox = function(){
	mpobj.switchElements('missingSomeThingResultContent', 'missingSomeThingContent');
	mpobj.switchElements('missingSomeThingResultHead', 'missingSomeThingHead');
	$('suggestionForm').reset();
	mpInitSuggestionInputs();
	mpobj.reInitSlider('missingSomeThingBox');
	return false;
};



mpobj.getTooltipPosition = function(element, item, reference) {
	var refposition = reference.getPosition();
	var size = element.getSize();
	var xoffset = -size.x + 50;
	var yoffset = -size.y + 2;

	var position = item.getPosition();

	/* IE6 needs position adjusted by scroll offset
	if (Browser.Engine.trident && Browser.Engine.version == 4) {
		xoffset += $('site').getScroll().x;
		yoffset += $('site').getScroll().y;
	}*/
	
	position.x += xoffset;
	position.y += yoffset;
	return position;
};

mpobj.generateLink = function(id) {
	var uri = new URI();
	var entryId = id.match(/\d+/g);
	multiChannel.setParameters({'entryId': entryId}, uri);
	return uri.toString();
};

mpobj.delayedFunctions = {
	functionStore : [],
	add :  function(delayedFunction) {
		this.functionStore.push(delayedFunction);
	},
	clear: function() {
		this.functionStore.each(function(item){
			$clear(item);
		});
		this.functionStore.empty();
	}
};

mpobj.tooltipShow = function(tooltipElement, position) {
	
	return function() {
		tooltipElement.setStyle('top', position.y + 'px');
		tooltipElement.setStyle('left', position.x + 'px');
		tooltipElement.setStyle('visibility', 'visible');
		multiChannel.etracker.mouseOverEvent('Tooltip');
	};
};

mpobj.tooltipClose = function() {
	$('mptooltip').setStyle('visibility', 'hidden');
};

mpobj.tooltipMouseout = function() {
	mpobj.delayedFunctions.clear();
	mpobj.delayedFunctions.add(mpobj.tooltipClose.delay(1000));
};

mpobj.tooltipClick = (function(tooltipElement, item, reference, object, link) {
	return (function() {
		
		mpobj.delayedFunctions.clear();
		mpobj.tooltipClose();
		
		var title = object['title'];
		var text = object['text'];
		$('mptooltip_title').set('text', title);
		$('mptooltip_text').set('text', text);
		$('mptooltip_link').set('href', link);
		var pos = mpobj.getTooltipPosition(tooltipElement, item, reference);
		
		var showDelay = mpobj.tooltipShow(tooltipElement, pos).delay(500);
		var closeDelay = mpobj.tooltipClose.delay(10000);
		
		mpobj.delayedFunctions.add(showDelay);
		mpobj.delayedFunctions.add(closeDelay);
	});
});

mpobj.tooltipResponse = function(response) {
	
	var element = $('mptooltip');
	var reference = $('contentMiddle');

	var articleContentEl = reference.getElement('div.articleContent');
	if(!$defined(articleContentEl)) return;
	var articleContentSpanEl = articleContentEl.getElements('.tooltip_content');
	var blacklistedSpanIds = new Array();
	articleContentSpanEl.each(function (item) {
		var id = item.get('id');
		if(!blacklistedSpanIds.contains(id) && response[id]) {				
			blacklistedSpanIds.combine([id]);
			var link = mpobj.generateLink(id);
			item.addEvent('mouseover', mpobj.tooltipClick(element, item, reference, response[id], link));
			item.addEvent('mouseout', mpobj.tooltipMouseout);
			item.addEvent('click', function() { 
				mpobj.delayedFunctions.clear();
				mpobj.tooltipClose();
				window.location.href = link;
			});
			item.setStyle('text-decoration', 'underline');
		}
	});

	var additionsContentEl = reference.getElement('div.articleAdditions');
	if(additionsContentEl != undefined) {
		var additionsContentSpanEl = additionsContentEl.getElements('.tooltip_content');
		additionsContentSpanEl.each(function (item) {
			var id = item.get('id');
			if(!blacklistedSpanIds.contains(id) && response[id]) {
				blacklistedSpanIds.combine([id]);
				var link = mpobj.generateLink(id);
				item.addEvent('mouseover', mpobj.tooltipClick(element, item, reference, response[id], link));
				item.addEvent('mouseout', mpobj.tooltipLinkMouseout);
				item.addEvent('click', function() {
					mpobj.delayedFunctions.clear();
					mpobj.tooltipClose();
					window.location.href = link;
				});
				item.setStyle('text-decoration', 'underline');
			}
		});
	}
};

mpobj.handleTooltips = function() {
	window.addEvent('domready', function() {
		var map = new Hash();
		map.set('entryId', multiChannel.getParameter('entryId'));
		$$('.tooltip_content').each(function(item) {
			map.set(item.get('id'), item.get('base'));
		});
		if (map.getLength() > 0) {
			var req = new Request.JSON({
				url: multiChannel.context.mptooltipjson,
				onSuccess: mpobj.tooltipResponse,
				data: map
			});
			req.send();
		}
		$('mptooltip').addEvent('mouseover', function() {
			mpobj.delayedFunctions.clear();
			mpobj.delayedFunctions.add(mpobj.tooltipClose.delay(10000));
		});
		$('mptooltip').addEvent('mouseout', mpobj.tooltipMouseout);
	});
};

mpobj.initResultsPerPageSelectBox = function(resultsPerPage) {
	window.addEvent('domready', function() {
		var element = $('resultsPerPage');
		if (element) {
			for (var i = 0; i < element.options.length; i++) {
				if (element.options[i].text == resultsPerPage) {
					element.options[i].selected = true;
				}
			}
			element.addEvent('change', function(item) {
				window.open(this.options[this.selectedIndex].value, '_top');
			});
		}
	});
};

mpobj.abcNavigation = new Object();

mpobj.abcNavigation.currentPage = '1';

mpobj.abcNavigation.selectPage = function(letter, page) {
	var newElement = $('abc_letter_' + letter + '_' + page)
	var currentPage = mpobj.abcNavigation.currentPage;
	if (newElement != null) {
		var lastElement = $('abc_letter_' + letter + '_' + currentPage);
		if (lastElement != null) {
			lastElement.addClass('inv');
		}
		newElement.removeClass('inv');
		$$('.abc_paginator_' + letter + '_' + currentPage).each(function(element) {
			element.removeClass('selected');
		});
		$$('.abc_paginator_' + letter + '_' + page).each(function(element) {
			element.addClass('selected');
		});
		mpobj.abcNavigation.currentPage = page;
	}
};

mpobj.abcNavigation.setNavigation = function(letter) {
	var newElement = $('abc_letter_' + letter);
	if (newElement != null) {
		newElement.removeClass('inv');
		if (mpobj.abcNavigation.currentElement != null) {
			mpobj.abcNavigation.currentElement.addClass('inv');
		}
		mpobj.abcNavigation.currentElement = newElement;
	}
	var leftElement = $('block_abc_letter_' + letter);
	if (leftElement != null) {
		leftElement.addClass('selected');
	}
	mpobj.abcNavigation.selectPage(letter, '1');
};

mpobj.abcNavigation.init = function() {
	window.addEvent('domready', function() {
		var param = multiChannel.getParameter('letter');
		if (param != null) {
			mpobj.abcNavigation.setNavigation(param);
		} else {
			var letters = $$('a.navLetter');
			if (letters.length > 0) {
				mpobj.abcNavigation.setNavigation(letters[0].get('text'));
				letters.each(function(item) {
					item.addEvent('click', function(event) {
						mpobj.abcNavigation.setNavigation(item.get('text'));
						event.stop();
					});
				});
			}
		}
	});
};

mpobj.tagNavigation = new Object();

mpobj.tagNavigation.initCategoryTagDisplay = function(categoryId, tagIndex){
	var titleElements = $$('#tag_navigation div.level1');
	titleElements.each(function(titleElement, index){
		if(titleElement.get('id') == 'tagnav_title_' + categoryId){
			titleElement.addClass('selected');
			if($defined(tagIndex)){
				var listElement = $('tagnav_list_' + categoryId);
				$$('#tag_navigation ul.level2').each(function(listElement){
					listElement.addClass('inv');
					listElement.getElements('li').each(function(tagElement){
						tagElement.removeClass('selected');
					});
				});
				var tags = $$('#tagnav_list_' + categoryId + ' li.level2');
				if (tagIndex < tags.length) {
					tags[tagIndex].addClass('selected');
				
				}
			}
			$('tagnav_list_' + categoryId).removeClass('inv');
			titleElement.getParent().removeClass('last');
		} else {
			titleElement.removeClass('selected');
			if(index == titleElements.length-1) titleElement.getParent().addClass('last');
			titleElement.getNext().addClass('inv');
		}
	});

};

mpobj.tagNavigation.init = function(catId, tagId) {
	window.addEvent('domready', function(){
		if ( $defined(catId) ) {
			mpobj.tagNavigation.initCategoryTagDisplay(catId, tagId);
		}
	});
};


mpobj.setTagNavigationLinkParameters = function(searchString, setTagIndex){
	window.addEvent('domready', function(){
		$$(searchString).each(function(link){
			var uri = new URI(link.get('href'));
			if($defined(mpobj.tagNavigation.categoryId))
				multiChannel.setParameters({ncatId:mpobj.tagNavigation.categoryId}, uri);
			if($defined(setTagIndex) && setTagIndex && $defined(mpobj.tagNavigation.tagIndex))
				multiChannel.setParameters({ntagId:mpobj.tagNavigation.tagIndex}, uri);
			link.set('href', uri.toString());
		});
	});
	
};

/* Product teaser */
mpobj.teaser = new Object();

mpobj.teaser.searchAssociatedProducts = function(profile, storeId) {
	var uri = new URI(multiChannel.context.searchAssociatedProducts);
	var entryId = mpobj.teaser.entryId;
	var req = new Request.JSON({
		url: uri.toString(),
		onSuccess: mpobj.teaser.handleJSONResponse
	});
	var parameters = new Object({'entryId': entryId});
	if (profile == undefined) {
		if (multiChannel.context.onlineshopStoreId != undefined) {
			profile = 'onlineshop';
		} else {
			profile = 'marketshop';
		}
	}
	parameters.searchProfile = profile;
	if (storeId != undefined) {
		parameters.storeId = storeId;
	} else if (profile == 'onlineshop') {
		if (multiChannel.context.onlineshopStoreId != undefined) {
			parameters.storeId = multiChannel.context.onlineshopStoreId;
		} else {
			parameters.storeId = multiChannel.context.assetStoreId;
		}
	} else if (profile == 'marketshop') {
		var storeId = Cookie.read('MC_STORE_ID');
		if (storeId != undefined) {
			parameters.storeId = storeId;
		}
	}
	req.post(new Object(parameters));
};

mpobj.teaser.handleJSONResponse = function(response) {
	if (response && response.content) {
		var element = $('shopProductTeaser');
		if (element) {
			element.set('html', response.content);
		}
		if (response.mystore) {
			multiChannel.search.updateMyStore(response.mystore);
		}
	}
};

mpobj.teaser.changeStore = function(parameters) {
	mpobj.teaser.searchAssociatedProducts('marketshop', parameters.storeId);
};

