
/* file: ./addons/plugins/page/pixels/pixels.js */
var plg_page_pixels = new function()
{

	this.redisplayPixels = function()
	{
		var ZSM = $('img[src*="erdbeer.ivwbox.de"]');
		var FBO = $('script[src*="erdbeer.ivwbox.de"]');
		var rnd = ( Math.random() * 100000 );
		var reg = /([\d]+)(\.)([\d]+)$/g;

		if( ZSM.length )
		{
			var OLDSRC = $(ZSM).attr('src');
			var NEWSRC = OLDSRC.replace( reg, rnd );
			$(ZSM).attr('src', NEWSRC);
		}

		if( FBO.length )
		{
			var OLDSRC = $(FBO).attr('src');
			var NEWSRC = OLDSRC + '?' + rnd;
			jQuery.getScript( NEWSRC );
		}
	}

	this.redisplayPixelsStyler = function()
	{
		var ZSM = $('img[src*="erdbeer.ivwbox.de"]');
		var FBO = $('script[src*="erdbeer.ivwbox.de"]');
		var rnd = ( Math.random() * 100000 );
		var reg = /([\d]+)(\.)([\d]+)$/g;

		if( ZSM.length )
		{
			var OLDSRC = $(ZSM).attr('src');
			var NEWSRC = OLDSRC.replace( reg, rnd );
			$(ZSM).attr('src', NEWSRC);
		}

		if( FBO.length )
		{
			var OLDSRC = $(FBO).attr('src');
			var NEWSRC = OLDSRC + '?' + rnd;
			jQuery.getScript( NEWSRC );
		}
	}

	this.redisplayPixelsStylerWithReplacing = function( replaceFrom, replaceInto )
	{
		var ZSM = $('img[src*="erdbeer.ivwbox.de"]');
		var FBO = $('script[src*="erdbeer.ivwbox.de"]');
		var rnd = ( Math.random() * 100000 );
		var reg = /([\d]+)(\.)([\d]+)$/g;

		if( ZSM.length )
		{
			code = replaceInto;

			var OLDSRC = $(ZSM).attr('src');
			var NEWSRC = OLDSRC.replace( reg, rnd ).replace( replaceFrom, replaceInto );

			$(ZSM).attr('src', NEWSRC);
		}

		if( FBO.length )
		{
			szmvars = szmvars.replace( replaceFrom, replaceInto );

			var OLDSRC = $(FBO).attr('src');
			var NEWSRC = OLDSRC + '?' + rnd;

			jQuery.getScript( NEWSRC );
		}
	}
	this.showPixel = function(code, type, comment){
		$cont = $('#szmContainer');
		if($cont.length){
			var _code = code;
			var _type = type?type:"CP";
			var _comment = comment?comment:"";
//			var IVW	= "http://erdbeer.ivwbox.de/cgi-bin/ivw/"+_type+"/"+_code+";["+_comment+"]";
			var IVW	= "http://erdbeer.ivwbox.de/cgi-bin/ivw/%type%/%code%;[%comment%]"
					.replace('%code%', _code)
					.replace('%type%', _type)
					.replace('%comment%', _comment)+
					"?"+$.param({r:document.referrer, d:Math.random()*100000});
			var $img = "<img src='%src%' width='1' height='1' alt='szmtag' />"
				.replace('%src%',IVW);
			console.log($img);
			$img = $($img);
			$cont.append($img);
			
		}
	}
}


/* file: ./addons/plugins/menu/menu.js */
function createPopUp() 
{
	var div = document.createElement('div'); 
	div.innerHTML = "<div class='popUp'><iframe src='http://erdbeerlounge2.spreadshirt.net' height='1000' width='710'></iframe><br><button onclick='this.parentNode.parentNode.removeChild(this.parentNode);'>Close</button></div>"; 
	document.body.appendChild(div.firstChild); 
}

/* file: ./addons/plugins/header/search/search.js */

plg_header_search  = {
	submitForm 	: function ( form ){

		if(!form.keyword.value){
			form.keyword.focus();
			return false;
		}
		location.href = form[ 'searchURL_' + form.category.value ].value.replace(/KEYWORD/,encodeURIComponent(form.keyword.value));
		return false;
	}
}



/* file: ./addons/plugins/messages/notifier/notifier.js */
var plg_messages_notifier = new function()
{
	var _self = this;

	this.blink = function( n )
	{
		if( $('#jQ_newMessageNotifier').length > 0 )
		{
			if( n > 0 )
			{
				var c = $('#jQ_newMessageNotifier a').css('color') == 'rgb(255, 255, 255)' ? '#FFAE00' : '#FFFFFF';
				$('#jQ_newMessageNotifier a').css('color', c);
				window.setTimeout( function() { _self.blink( parseInt(n-1) ); }, 1000 );
			}
			else
			{
				$('#jQ_newMessageNotifier a').css('color', '#FFFFFF');
			}
		}
	}
}

$( document ).ready( function() {

	plg_messages_notifier.blink( 10 );

} );

/* file: ./addons/plugins/cmsContent/cmsContent.js */
var plg_cmsContent = new function()
{

    this.run = function()
    {
        for( word in REPLACE_TABLE )
        {
			$('p[id*="editable_text_"]').each(function(){
				var text = $(this).html();
				text = text.replace( eval( '/([\\s|>|\(])(' + word + ')([\\s|<|\,|\.|\)])/i') , '$1<a href="' + REPLACE_TABLE[word] + '" class="lexiconLink">$2</a>$3' );
				$(this).html( text );
			});
			$('span[id*="editable_description_"]').each(function(){
				var text = $(this).html();
				text = text.replace( eval( '/([\\s|>|\(]*)(' + word + ')([\\s|<|\,|\.|\)]*)/i') , '$1<a href="' + REPLACE_TABLE[word] + '" class="lexiconLink">$2</a>$3' );
				$(this).html( text );
			});
        }
    }
}


/* file: ./addons/plugins/register/onPageContainer/onPageContainer.js */

var plg_register_onPageContainer = new function(){
	
	var _self = this;
	
	this.tabsExtendendClass = '';
	this.activeTab = -1;
	
	function activateTab(tabIndex){
		plg_tabs.getTabs().eq(tabIndex).click(); 
		return false;	
	}
	
	this.init = function(){
		
		plg_tabs.setSelector("_r."+_self.tabsExtendendClass);
		var $tabs = plg_tabs.getTabs().unbind('click').click(_self.tabClicked);
		
		$(".registerOnPageContainer .unauthorized button[type='submit']").click(function(){
			return activateTab(1); });
		$(".registerOnPageContainer .unauthorized a.jQLogin").click(function(){
			return activateTab(0);
		});
		$(".registerOnPageContainer .unauthorized a.jQRegister").click(function(){
			return activateTab(1);
		});
		$("button[type='submit'], a.jQLogin, a.jQRegister", ".registerOnPageContainer .unauthorized")
			.add(plg_tabs.getTabs())
			.click(function(){
				plg_page_pixels.redisplayPixels();
			});
		if( _self.activeTab > -1){
			$tabs.eq(_self.activeTab).click();
		}
		
	}
	
	this.tabClicked = function(tab){
		var index =$(plg_tabs.selector+" a").index(this);
		plg_tabs.setActiveTab(index);
		_self.showPanelForIndex(index);
	return false;
	}
	
	this.showPanelForIndex = function(index){
		var i = index+1;
		var $panels = $(".registerOnPageContainer .ropc_item");
		var $currentPanel = $panels.eq(i);
		$panels.not(":eq("+i+")").slideUp('fast',function(){ $currentPanel.slideDown(); });
		
		$currentPanel.find('form').not("input[name='_currenetPanel']").prepend("<input type='hidden' name='_currenetPanel' value='"+(i-1)+"'>");
		
	}	
	
}


/* file: ./addons/plugins/popup/popup.js */
var plg_popup = new function(){

	var $_objects = null;

	this.headerTPL = $('<div class="head oo"><a href="#" class="btn_close jQ_close"></a><h2></h2></div>');
	this.popupTPL = $('<div class="popup"><div class="content oo"></div></div>');
	this.buttonTPL = $('<button type="submit" class="btn btn_b fright" value=""><font><span class="p_1"></span></font></button>');

	this.preparePopup = function(){
		//return $('<div class="popup"><div class="top"></div><div class="content oo"></div><div class="bottom"></div></div>');
		return this.popupTPL.clone();
	};

	this.setContent = function(popup,content){
		if(popup.find(".content.oo:first-child").length > 0){
			if(popup.find(".content.oo .head.oo").length > 0){
				if(popup.find(".content.oo .head.oo + *").length > 0){
					popup.find(".content.oo .head.oo + *").eq(0).replaceWith(content);
				} else {
					if(popup.find(".content.oo ~ *").length > 0){
						popup.find(".content.oo:first-child").replaceWith(content);
					} else {
						popup.find(".content.oo:first-child").append(content);
					}
				}
			} else {
				popup.find(".content.oo").append(content);
			}
		} else {
			popup.find(".content.oo").append(content);
		}
		return popup;
	};

	this.removeContent = function(popup) {
		popup.find(".content.oo *").remove();
		return popup;
	}

	this.setTitle = function(popup,content){
		popup = $(popup);
		if(popup.find(".head.oo h2").length > 0){
			popup.find(".head.oo h2").html(content);
		} else {
			popup.find('.content.oo').prepend(this.headerTPL.clone()).find('h2').html(content);
		}
		return popup;
	};

	this.delButton = function(popup,index){
		popup = $(popup);
		var buttons = popup.find('.content.oo button');

		if(index != undefined){
			buttons.eq(index).remove();
		} else {
			buttons.remove();
		}
	}

	this.addButton = function(popup,text,click){
		popup = $(popup);

			var btn = this.buttonTPL.clone().click(click);
				btn.find('span').html(text);

			popup.find('.content.oo').append(btn);
		return popup;
	};

	this.show = function(popup){
		$.unblockUI();
		$.blockUI(popup);
		$(popup).find('.jQ_close').unbind('click').click(plg_popup.hide);
		var top = parseInt ( ( parseInt( screen.height ) - parseInt( $(popup).get(0).offsetHeight )) / 3 );
		$(".blockMsg").css({ border:'0px', left:'400px', top: top+'px', cursor:'default'});
		$_objects = $('object, embed');

		if( $_objects !== null )
			$_objects.css({visibility:'hidden'});

	};

	this.hide = function(){
		$.unblockUI();

		if( $_objects !== null )
			$_objects.css({visibility:'visible'});

		$_objects = null;
	return false;
	};

	this.showConfirm = function(title,text,yesText,yesCallback,noText,noCallback){
		var confirm = this.preparePopup();
		this.setTitle(confirm,title);
		this.setContent(confirm,text);
		this.addButton(confirm,noText,noCallback);
		this.addButton(confirm,yesText,yesCallback);
		this.show(confirm);
	return confirm;
	}

	$.blockUI.defaults.fadeOut = false;
	$.extend( $.blockUI.defaults.overlayCSS, { backgroundColor: '#000', cursor:'default' } );

}


/* file: ./addons/plugins/popup/cmsContent/cmsContent.js */
var plg_popup_cmsContent = new function()
{

	this.cache = {};
	this.overlayDef = null;
	
	this.init = function()
	{
		$('a.lexiconLink').click( plg_popup_cmsContent.askForContent );
	}

	this.askForContent = function( sender )
	{
		var pop = $('.jQ_cmsContentPopup:eq(0)').clone();
		$.extend( $.blockUI.defaults.overlayCSS, { backgroundColor: 'transparent', cursor:'default' } );	
		plg_popup.show( pop );
	
		
		$( ".blockMsg" ).css( { border:'0px', left:'250px', top:'150px', width:'600px' } );
		$( ".popup" ).css( { width: '600px' } );
		$( ".popup .content" ).css( { background:'#FFF' } );

		$('.jQ_cmsContentPopup_inner:eq(1)').html( $('.jQ_cmsContentPopup_loadingContent:eq(1)').html() );

		if( plg_popup_cmsContent.cache[ $(sender.target).attr('href') ] )
		{
			plg_popup_cmsContent.askForContent__callback( plg_popup_cmsContent.cache[ $(sender.target).attr('href') ] );
			return false;
		}

		majax.call_callback( 'plg_popup_cmsContent::ajaxGetContent', plg_popup_cmsContent.askForContent__callback, [ $(sender.target).attr('href') ] );
		return false;
	}

	this.askForContent__callback = function( response )
	{
		var response = eval( response );
		plg_popup_cmsContent.cache[ response.result.itemUri ] = response;

		$('.title__callback:eq(1)').html( response.result.subject );
		$('.body__callback:eq(1)' ).html( response.result.body );

		$('.jQ_cmsContentPopup_inner:eq(1)').html( $('.jQ_cmsContentPopup_readyContent:eq(1)').html() );
	}

}

/* file: ./addons/plugins/forum/article/thread/actions/actions.js */
var ThreadActions = new function(){

	var _infoTimeout	= 2000;

	var _self			= this;

	/**
	 * opens 'Send private message' popup
	 *
	 * @param {String} receiver
	 */
	this.sendMessage	= function(){
		try {
			var rcv	= $(this).attr( 'href' ).substr( 1 );
			var pop = $('.jQ_messagePopup:eq(0)').clone();
			plg_popup.show( pop );
			plg_popup_sendMessage.init( rcv );
		} catch( e ) {}
		return false;
	};
	
	this.getObserveQuestion	= function(){
		if( Language.talk.CONFIRM_ADD_OBSERVED_TTT != undefined ){
			return Language.talk.CONFIRM_ADD_OBSERVED_TTT;
		}
		if( Language.talk.CONFIRM_ADD_OBSERVED_THERAPY != undefined ){
			return Language.talk.CONFIRM_ADD_OBSERVED_THERAPY;
		}
		if( Language.talk.CONFIRM_ADD_OBSERVED_CONFESSION != undefined ){
			return Language.talk.CONFIRM_ADD_OBSERVED_CONFESSION;
		}
		if( Language.talk.CONFIRM_ADD_OBSERVED_TDT != undefined ) {
			return Language.talk.CONFIRM_ADD_OBSERVED_TDT;
		}
	};
	
	/**
	 * Opens 'Add to observed' popup with question
	 * @param {Object} id
	 */
	this.observe		= function( ){
		try {
			var id	= $( this ).attr( 'href' ).substr( 1 );
			var q	= ThreadActions.getObserveQuestion();
			Dialog.show( q, function(){
				majax.call_callback( 'plg_forum_article_thread::addToObserved', function ( res ){
					$("a.link_edit").remove();
					Dialog.hide( Language.talk.ADDED_TO_OBSERVED, _infoTimeout );
				}, [ id ] );
			} );
		} catch( e ){}
		return false;
	};

	/**
	 * Opens 'Add marker' popup with question
	 * @param {String} confirmMsg
	 * @param {String} code
	 */
	this.mark			= function(){
		try {
			var confirmMsg	= $(this).attr('title');
			var code		= $(this).attr('href').substr(1);
			Dialog.show( confirmMsg, function(){
				majax.call_callback( 'AjaxSingleMethods::runSingleMethod', function( resp ){
					$("a.jQ_mark").remove();
					Dialog.hide( resp.result, _infoTimeout );
				}, [ code ] );
			} );
		} catch( e ) {
			alert( e );
		}
		return false;
	};

	this.report			= function(){
		try {
			plg_popup_raportPopup.show( $(this).attr('href').substr(1), 2 );
		} catch( e ) {}
		return false;
	}
}

/* file: ./addons/plugins/popup/tellFriend/tellFriend.js */
var plg_popup_tellFriend = new function()
{

	this.__id  = 0;
	this.__idk = 0;

	this.send = function(form)
	{
		try{
			var errors=0;
			if(form.friendName.value == ''){
				$(".popup .jQ_error1").show('slow');
				setTimeout(function(){ $(".popup .jQ_error1").hide('slow'); },4000);
				errors = 1;
				}
			if(form.friendMail.value == ''){
				$(".popup .jQ_error2").show('slow');
				setTimeout(function(){ $(".popup .jQ_error2").hide('slow'); },4000);
				errors = 1;
				}
			else if(!plg_popup_tellFriend.emailValidator(form.friendMail.value)){
			 	$(".popup .jQ_error3").show('slow');
				setTimeout(function(){ $(".popup .jQ_error3").hide('slow'); },4000);
				errors = 1;
			 }

			 for( var i = 1; i <= moreFriendsAmount; i++ )
			 {
				var tmpValName = eval( 'form.friendName_' + i + '.value' );
				var tmpValMail = eval( 'form.friendMail_' + i + '.value' );
				plg_popup_tellFriend.__idk = i;

				if( tmpValName != '' || tmpValMail != '' )
				{
					if( tmpValName == '' )
					{
						$(".popup .jQ_error1_" + i).show('slow');
						setTimeout( function() { $(".popup .jQ_error1_" + plg_popup_tellFriend.__idk).hide('slow'); }, 4000 );
						errors = 1;
					}
					if( tmpValMail == '' )
					{
						$(".popup .jQ_error2_" + i).show('slow');
						setTimeout( function() { $(".popup .jQ_error2_" + plg_popup_tellFriend.__idk).hide('slow'); }, 4000 );
						errors = 1;
					}
					else if( !plg_popup_tellFriend.emailValidator( tmpValMail ) )
					{
					 	$(".popup .jQ_error3_" + i).show('slow');
						setTimeout( function() { $(".popup .jQ_error3_" + plg_popup_tellFriend.__idk).hide('slow'); }, 4000 );
						errors = 1;
			 		}
				}
			 }

			 if(form.userFirstName.value == ''){
				$(".popup .jQ_error5").show('slow');
				setTimeout(function(){ $(".popup .jQ_error5").hide('slow'); },4000);
				errors = 1;
				}
			 if(form.userLastName.value == ''){
				$(".popup .jQ_error5").show('slow');
				setTimeout(function(){ $(".popup .jQ_error5").hide('slow'); },4000);
				errors = 1;
				}

			if (errors == 0)
			{
				var names 	= '';
				var emails	= '';

				var namesArray 	= $('input[name*="friendName"]:gt( ' + moreFriendsAmount + ' )');
				var namesCount	= $('input[name*="friendName"]:gt( ' + moreFriendsAmount + ' )').length;

				var mailsArray 	= $('input[name*="friendMail"]:gt( ' + moreFriendsAmount + ' )');
				var mailsCount	= $('input[name*="friendMail"]:gt( ' + moreFriendsAmount + ' )').length;

				$(namesArray).each( function(index, object){
					names = names + $(object).val();
					if( index < namesCount-1 ) names = names + ';';
				});

				$(mailsArray).each( function(index, object){
					emails = emails + $(object).val();
					if( index < mailsCount-1 ) emails = emails + ';';
				});

				//var names = form.friendName.value;
				//var emails = form.friendMail.value;
				var name = form.userFirstName.value+' '+form.userLastName.value;
				var text = form.message.value;
				var url = location.href;

				majax.call_callback( ajax_method , plg_popup_tellFriend.showConfirm(), [names, emails, name, text, url] );
			}
		}
		catch (e)
		{
			return false;
		}

	}

	this.show = function(id)
	{

		plg_popup_tellFriend.hide();

		var popup = $('.JS_tellFriend').clone();

		this.__id = id;
		plg_popup.show( popup );

		$('.popup .jQ_close').click( function() { plg_popup_tellFriend.hide(); return false; } );
	}

	this.hide = function()
	{
		plg_popup.hide();
		this.__id = 0;
	}

	this.showConfirm = function()
	{

		plg_popup.hide();
		var popup = plg_popup.preparePopup();
		plg_popup.setContent(popup,"<h2>"+Language.talk.BOOKMARK_SEND_TO_A_FRIEND+"</h2>");
		plg_popup.show(popup);
		window.setTimeout(function(){ plg_popup.hide(); },2000);
	}


	this.emailValidator = function(email)
	{
		var ok = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
		return ok;
	}

	this.showMore = function() {
		$('.moreFriendsBox:eq(1)').show();
		$('.moreFriendsLink:eq(1)').hide();
	}

}

/* file: ./addons/plugins/popup/sendMessage/sendMessage.js */

var plg_popup_sendMessage = new function(){
	
	this.receiver = null;
	var _self = this;
	
	this.init = function(receiver){
		this.receiver = receiver;
		$(".jQ_privateMessage_popup input[name='receiver']:last").val(receiver);
		$(".jQ_username").html(receiver); 	 		
	}
	
	this.send = function(form){
		majax.submitForm(form,'plg_popup_sendMessage::sendMessage',plg_popup_sendMessage.onSubmit);
	return false;		
	}
	
	this.showFor = function(receiver){
		try {
			var pop = $('.jQ_messagePopup:eq(0)').clone();
			plg_popup.show( pop );
			this.init( receiver );
		} catch( e ) {}
	}
	
	this.onSubmit = function(response){
		
		if(response.success){
			var formC = $('.jQ_privateMessage_popup:last .jQ_form:visible');
			var successM = $('.jQ_privateMessage_popup:last .jQ_success:hidden');
			
			function closePopup(){ 
				window.setTimeout(plg_popup.hide,5000) 
			}
			
			function showConfirm(){ 
				successM.fadeIn('fast', closePopup );
			}
			
			formC.slideUp('fast',showConfirm);
		} else {
			console.log(response.result);
			switch (response.result) {
				case -1:
					$('.jQ_eSubject:last').fadeIn();					
					break;

				case -2:
					$('.jQ_eBody:last').fadeIn();
					break;
				case -3:
					$('.jQ_eLimit:last p').html( $('.jQ_eLimit:last p').html().replace(/%limited%/,_self.receiver) );
					$('.jQ_eLimit:last').fadeIn();
					break;
			}

		}
		
	}
}


/* file: ./addons/plugins/popup/raportPopup/raportPopup.js */

var plg_popup_raportPopup = new function(){
	
	this.TYPE_COMMENT 	= 1;
	this.TYPE_THREAD 	= 2;
	this.TYPE_BOOKMARK 	= 3;
	this.TYPE_PROFILE 	= 4;
	this.TYPE_PHOTO 	= 5;
	this.TYPE_GROUP		= 6;
	
	this.contentType 	= 1;
	this.extraData		= null;
	 
	this.__id = 0;
	
	this.send = function(form){

		try{
			if(form.raportMessage.value != '' && this.__id != 0){
						
				var data = new Object();
					data.type = form.raportType.value;
					data.text = form.raportMessage.value;
					data.id = this.__id;
					data.conntentType = this.contentType;
					data.url = location.href;
					data.extraData = this.extraData;
					
			majax.call_callback("plg_popup_raportPopup::sendRaport",function(res){ if(res) { plg_popup_raportPopup.showConfirm(); } },[data]);
			} else {
				$(".popup .errors").show('slow');
				setTimeout(function(){ $(".popup .errors").hide('slow'); },2000);
			}
		} catch (e) {
			return false;
		}
	}
	
	this.show = function(id,contentType){
		
		plg_popup_raportPopup.hide();
		
		if(contentType > 0){
			this.contentType = contentType;
		} else {
			this.contentType = this.TYPE_COMMENT;
		}
		
		var popup = $('.JS_raportPopup:eq(0)').clone();
		
		this.__id = id;
		plg_popup.show( popup );
		
		$('.popup .jQ_close').click( function() { plg_popup_raportPopup.hide(); return false; } );
	}
	
	this.hide = function(){
		plg_popup.hide();
		this.__id = 0;
		this.contentType = this.TYPE_COMMENT;
	}
	
	this.showConfirm = function(){
		
		plg_popup.hide();
		var popup = plg_popup.preparePopup();
		plg_popup.setContent(popup,"<h2>"+Language.talk.COMMENT_RAPORT_SEND+"</h2>");
		plg_popup.show(popup);
		window.setTimeout(function(){ plg_popup.hide(); },2000);
	}
	
}


/* file: ./addons/plugins/comments/write/write.js */
var cache = {};

$().ready( function() {

	$('#commentBody').focus( clearDefault );
	$('#commentBody').blur( resetToDefault );
	$('#commentForm').submit( submitEvent );

});

function clearDefault(sender)
{
	if( !$(sender.target).hasClass('examples') ) return;

	$(sender.target).removeClass('examples');
	eval ( 'cache.' + $(sender.target).attr('id') + ' = $(this).val() ');
	$(sender.target).val('');
}

function resetToDefault(sender)
{
	if( $(sender.target).val() == '' )
	{
		$(sender.target).addClass('examples');
		eval ( '$(this).val( cache.' + $(sender.target).attr('id') + ' )' );
	}
}

function submitEvent()
{
	$('#commentForm .examples').each( function(I,O)
	{
		var tmp = {};
		tmp.target = O;
		clearDefault(tmp);
	});
}

/* file: ./addons/plugins/tabs/tabs.js */
var plg_tabs = new function(){
	var _self = this;
	this.tabs = null;
	this.selector = '';
	
	this.setSelector = function(className){
		this.selector = ".tabsmenu"+(className.indexOf("_") != 0 ? '.':'')+className;
		this.tabs = $(this.selector);
		return this;	
	}
	
	this.resetStates = function(){
		this.tabs.find("a.active").removeClass('active');
		return this;
	}
	
	this.setActiveTab = function(index){
		this.resetStates().tabs.find("a:eq("+index +')' ).addClass('active');
		return false;	
	}
	
	this.setActiveTabByReference = function(tab){
		this.resetStates();
		$(tab).addClass('active');
		return false;	
	}
	
	this.getTabs = function(){
		return this.tabs.find("a");
	}
}


/* file: ./addons/plugins/register/normal/normal.js */
RegistrationForm = function( elementSelector ) {

	var _self				= this;

	/**
	 * CSS class used to describe containers with error messages
	 */
	_self.errorClass			= '.errors';

	/**
	 * element that holds error text
	 */
	_self.errorElement		= 'p';

	/**
	 * selector that describes whole container
	 */
	_self.elementSelector	= elementSelector;

	/**
	 * selector for the registration form
	 */
	_self.formSelector		= elementSelector + ' form[name="jQ_register_layer_form"]';

	/**
	 * selectors used to find input elements
	 */
	_self.selectors			= {
		userName:	_self.formSelector + ' input[name="userName"]',
		password1:	_self.formSelector + ' input[name="password1"]',
		password2:	_self.formSelector + ' input[name="password2"]',
		firstName:	_self.formSelector + ' input[name="firstName"]',
		eMail:		_self.formSelector + ' input[name="eMail"]',
		cityUser:	_self.formSelector + ' input[name="cityUser"]',
		country:	_self.formSelector + ' select[name="country"]',
		city:		_self.formSelector + ' input[name="city"]',
		captcha:	_self.formSelector + ' input[name="captcha"]',
		newsletter:	_self.formSelector + ' input[name="newsletter"]',
		terms:		_self.formSelector + ' input[name="terms"]'
	};

	/**
	 * provides quick access to an input
	 * @param {String} name
	 */
	this.getField			= function( name ) {
		return $(_self.selectors[ name ]);
	};

	/**
	 * gets a reference to an error message
	 * @param {String} name
	 */
	this.error				= function( errorName ) {
		return $( _self.elementSelector ).find( errorName );
	};

	/**
	 * gets a text of error message
	 * @param {String} errorName
	 */
	this.errorMsg			= function( errorName ) {
		
		var $elem = _self.error( errorName );
		
		if( $elem.size() == 0 ){
			return '';
		}
		
		return _self.error( errorName ).text();
	};
	
	/**
	 * defines validation messages (evaluated by methods)
	 */
	this.validationMessages		= {
		userName:	{
			required:		_self.errorMsg( '.jQ_USERNAME_SHORT'),
			minlength:		_self.errorMsg( '.jQ_USERNAME_SHORT'),
			maxlength:		_self.errorMsg( '.jQ_USERNAME_LONG'),
			userName:		_self.errorMsg( '.jQ_USERNAME_MALFORMED')
		},
		password1:	{
			required:		_self.errorMsg( '.jQ_PASSWORD_SHORT' ),
			minlength:		_self.errorMsg( '.jQ_PASSWORD_SHORT' )
		},
		password2:	{
			required:		_self.errorMsg( '.jQ_PASSWORD_SHORT' ),
			minlength:		_self.errorMsg( '.jQ_PASSWORD_SHORT' ),
			equalTo:		_self.errorMsg( '.jQ_PASSWORD_MISMATCH' )
		},
		firstName:	{
			required:		_self.errorMsg( '.jQ_FIRSTNAME_EMPTY' ),
			minlength:		_self.errorMsg( '.jQ_FIRSTNAME_SHORT' ),
			germanNames:		_self.errorMsg( '.jQ_FIRSTNAME_MALFORMED' )
		},
		eMail:		{
			required:		_self.errorMsg( '.jQ_EMAIL_WRONG' ),
			email:			_self.errorMsg( '.jQ_EMAIL_WRONG' )
		},
		postal:		{
			required:		_self.errorMsg( '.jQ_ZIP_EMPTY' ),
			digits:			_self.errorMsg( '.jQ_ZIP_WRONG' ),
			minlength:		_self.errorMsg( '.jQ_ZIP_WRONG' ),
			postal:			_self.errorMsg( '.jQ_ZIP_WRONG' )
		},
		city:		{
			minlength:		_self.errorMsg( '.jQ_CITY_WRONG' ),
			required:		_self.errorMsg( '.jQ_CITY_WRONG' ),
			cityNames:		_self.errorMsg( '.jQ_CITY_WRONG' )
		},
		captcha:	{
			minlength:		_self.errorMsg( '.jQ_CAPTCHA_MISMATCH' ),
			required:		_self.errorMsg( '.jQ_CAPTCHA_MISMATCH' )
		},
		terms:		{
			required:		_self.errorMsg( '.jQ_TERMS_UNCHECKED' )
		}
	};

	this.createValidator		= function(){

		/**
		 * define validation rules
		 */
		_self.validationRules = {
			userName:	{ required:true, minlength:4, maxlength:15, userName:true },
			password1:	{ required:true, minlength:6 },
			password2:	{ required:true, minlength:6, equalTo: _self.getField( 'password1' ).get(0) },
			firstName:	{ required:true, minlength:3, germanNames:true },
			eMail:		{ required:true, email:true },
			postal:		{ required:true, digits:true, postal:_self.getField('country') },
				// minLength:( _self.getField('country').val() == 'de_DE' ? 5 : 4 ) },
			city:		{ required:true, cityNames:true, minlength:2 },
			captcha:	{ required:captchaRequired, minlength:6 },
			terms:		{ required:true }
		};

		/**
		 * create Validator object
		 */
		this.validator	= $( this.formSelector ).validate( {
			event:			'blur',
			errorElement:	_self.errorElement,
			rules:			_self.validationRules,
			messages:		_self.validationMessages,
			errorPlacement: function( error, element ) {
				//exception for Captcha
				if( $(element).attr('name') == 'captcha' ) {
					$( error ).prependTo( $(element).parent().parent().parent().find( '.errors' ) ).fadeIn();
				} else {
					//input container
					var cnt = $( element ).parent();
					//input is a checkbox put into container
					if( cnt.hasClass( 'jQ_checkbox_container' ) ) {
						//step out two containers
						$( error ).prependTo( cnt.parent().next().next( '.errors') ).fadeIn();
					} else {
						//shorter path; for text inputs
						$( error ).prependTo( cnt.next( '.errors' ) ).fadeIn();
					}
				}
			}
		} );
		//remove potential error from postal field
		$('input[name="postal"]').blur();
	};

	/**
	 * initially generate the validator
	 */
	this.createValidator();

	/**
	 * adds 'generate new' functionality to Captcha image
	 */
	$(this.formSelector + ' img.jQ_captcha').click( function(){
		$(this).attr('src', '/imagecode.png?ts=' + (new Date()).valueOf());
	});

	/**
	 * gets a list of all visible errors
	 */
	this.getVisibleErrors		= function(){
		return $(_self.formSelector + ' ' + _self.errorClass + ' ' + _self.errorElement + ':visible');
	};

	/**
	 * indicates whether or not a form has errors
	 */
	this.hasErrors				= function(){
		return _self.getVisibleErrors().length > 0;
	};

	this.raiseError			= function( errorName ) {
		_self.error( errorName ).hide().fadeIn();
	};

	this.getField( 'country' ).change( _self.createValidator );

	try {
		if (typeof(regErrors) != 'undefined') {
			_self.validator.showErrors(regErrors);
		}
	} catch( e ) {
	}
};

var regForm		= null;

$('document').ready( function(){
	regForm			= new RegistrationForm( '#jQ_register' );
});

/* file: ./addons/plugins/magazine/articles/home/list/list.js */
var plg_magazine_articles_home_list = new function(  )
{
	this.run = function( prefix )
	{
		$('#prev_'+prefix).click( function(){
			plg_magazine_articles_home_list.change(prefix , this);
		} );
		$('#next_'+prefix).click( function(){
			plg_magazine_articles_home_list.change(prefix , this);
		} );
		
		$('#prev_'+prefix).add('#next_'+prefix).click(function() {
			plg_page_pixels.redisplayPixels();
		});
	}

	this.doAjaxQuery = function( p )
	{
		$('#moreListInner').fadeOut("slow");
		majax.call_callback( 'plg_magazine_articles_home_list::ajaxGetContent', plg_magazine_articles_home_list.doAjaxQueryCallback, [DATA[ p ]['SECTION'], DATA[ p ]['NOW_PAGE_NR'], DATA[ p ]['PER_PAGE'], DATA[ p ]['START_OFFSET'], DATA[ p ]['CONTEXT_ARTICLE_ID'], DATA[ p ]['CAT_ID'] , p, DATA[ p ]['EXCLUDED_IDS']] );
	}

	this.doAjaxQueryCallback = function(response)
	{
		var response = eval(response);

		var prefix_plg = response.prefix;
		for( var i = 0; i < DATA[ prefix_plg ]['PER_PAGE']; i++ )
		{
			if( response.data[i] )
			{
				$('#photo_'+ prefix_plg + '_' + i).attr('src', response.data[i].photoSrc);
				$('#photo_'+ prefix_plg + '_' + i).attr('alt', response.data[i].subject);
				//$('#title_' + i).html(response.data[i].subject);
				$('#linkT_' + prefix_plg+ '_'+ i).html(response.data[i].subject);
				$('#teaser_'+ prefix_plg + '_' +i).html(response.data[i].teaser);
				$('#moreItem_'+prefix_plg+'_' + i).removeClass('hid');
				$('#linkT_'+prefix_plg+'_' + i).attr('href', response.data[i].moreUrl);
				$('#linkT2_'+prefix_plg+'_' + i).attr('href', response.data[i].moreUrl);
				$('#linkImg_'+prefix_plg+'_' + i).attr('href', response.data[i].moreUrl);
			}
			else
			{
				$('#moreItem_'+ prefix_plg + '_' + i).addClass('hid');
			}
		}

		setTimeout( function() {
			$('#moreListInner_'+prefix_plg).fadeIn("slow");
			$('#next_'+prefix_plg).removeClass('hid');
			$('#prev_'+prefix_plg).removeClass('hid');
			if( DATA[ prefix_plg ]['NOW_PAGE_NR'] == DATA[ prefix_plg ]['MAX_PAGE_NR'] ) {
				$('#next_'+prefix_plg).addClass('hid');
			} else if ( DATA[ prefix_plg ]['NOW_PAGE_NR'] == DATA[ prefix_plg ]['MIN_PAGE_NR'] ) {
				$('#prev_'+prefix_plg).addClass('hid');
			}
		} , 250);
	}

	this.change = function( p , obj_c)
	{
		var ac = $(obj_c).attr('id');
		if( ac == ('next_'+p) ) {
			if( DATA[ p ]['NOW_PAGE_NR'] < DATA[ p ]['MAX_PAGE_NR'] ) {
				DATA[ p ]['NOW_PAGE_NR']++;
				plg_magazine_articles_home_list.doAjaxQuery( p );
			}
		} else if( ac == ('prev_'+p) ) {
			if( DATA[ p ]['NOW_PAGE_NR'] > DATA[ p ]['MIN_PAGE_NR'] )
			{
				$('#prev_'+p).removeClass('hid');
				DATA[ p ]['NOW_PAGE_NR']--;
				plg_magazine_articles_home_list.doAjaxQuery( p );
			}
		}
	}
}

/* file: ./addons/plugins/magazine/hub/teaser/teaser.js */
var plg_magazine_hub_teaser = new function()
{

}


/* file: ./addons/plugins/tagsV2/cloud/box/box.js */
var plg_tagsV2_cloud_box = new function()
{
	this.relasetShow = function( prefix )
	{
		var isDisplay = $('#'+prefix+'_moreRelated').css( 'display' );
		if( isDisplay == 'none' ) {
			$('#'+prefix+'_moreRelated').show();
		} else {
			$('#'+prefix+'_moreRelated').hide();
		}
		
	}
	this.combinShow = function()
	{
		var isDisplay = $('#moreCombin').css( 'display' );
		
		if( isDisplay == 'none' ) {
			$('#moreCombin').show();
		} else {
			$('#moreCombin').hide();
		}
		
	}
	
	this.boldBaseTag = function( prefix , word )
	{
		var _baseTag = $('#'+prefix+'_baseTag').val();
		$('#'+prefix+'_related a.inv').each(function(){
			var text = $(this).html();
			text = text.replace( eval( '/(.*)(' + _baseTag + ')(.*)/i') , '$1<font class="bld">' + word + '</font>$3' );
			$(this).html( text );
		});
	}
}

