

function ModerationActions(sn) {
	
	var selfName = sn;
	
	var movie = null;			//Moderations movie
	var secMovie = null;		//Zweitfilm der nach Ende der Moderation startet.
	var status = '0';
	
	var movieBig = null;		//Großes Video des Lernbegleiters
	var movieSmall = null;		//Kleines Video des Lernbegleiters
	var maxWidthSmall = 1000;	//Maximale breite für das kleine Video
	var playerUrl = null;		//Url des Players
	
	var movieHeight = null;		//Höhes des grossen Videos
	var movieWidth = null;		//Breite des grossen Videos
	var movieSmallHeight = null;
	var movieSmallWidth = null;
	var smallJustification = null;
	var morphProz = 50;			//Verkleinerung in Prozent für das kleine Video
	
	var menu = null;			//DivObjekt des Menüs
	var menuWidth = 134;
	
	var divContainer = null;	//Container für Menü & ID
	var containerId = null;
	var divContainerLeft = null;
	var divContainerWidth = null;
	
	
	
	var movieContainer = null;	//Container des Movies & ID
	var movieContainerId = null;
	
	var contentDiv = null;		//ContentDiv des Menüs
	
	var hideDiv = null;			//Punkte des Menüs
	var stopDiv = null;			//*
	var showDiv = null;			//*
	var showAllDiv = null;		//*
	var so = null;
	
	var callBack = null;		//CallBack bei fertiger Moderation
	var playButton = null;		//Extern Playbutton;
	var textLayer = null;		//Textlayer zur darstellugn des gesprochenen Textes
	
	var movieStopEvent = null;	//externer Player event
	var moviePlayEvent = null;	//*
	
	var stamp = null;			//Eindeutige ID 
	
	var actionDesc = Array("Einblenden","Immer einblenden","Ausblenden","Immer ausblenden");
	
	this.init = function(secM, divId, movieDivId) {

		movieContainer = document.getElementById(movieDivId);
		movieContainerId = movieDivId;
		
		divContainer = document.getElementById(divId);
		containerId = divId;
		
		
		//setze Stamp
		var a = new Date();
		a = new Date(a.getTime());
		stamp = "_"+Date.parse(a);
		
		secMovie = secM;
		
		setTimeout(function() {
			divContainerLeft = divContainer.style.left.replace("px", "");
			divContainerLeft = parseInt(divContainerLeft);
			divContainerWidth = divContainer.offsetWidth;
			divContainerWidth = parseInt(divContainerWidth);
			
			loadStatus();
			if(status == '3') {
				loadSmallMovie();			
				try{
					callBack();
				}catch(e){}	
			}
			else {
				document.getElementById(movieContainerId).style.paddingLeft = "0px";
				playMovie(movieBig, movieWidth, movieHeight, 'false');
			}
			
		},200);		
		
		
		
		
		var div = document.createElement("div");
		var id = document.createAttribute("id");
        id.nodeValue = "modMenu"+stamp;
        div.setAttributeNode(id);
        divContainer.appendChild(div);
		menu = $("modMenu"+stamp);
		menu.className = "modMenu";
		menu.hide();
		
		
		var cont = 	'<div id="modCont" class="backg">' + 
					'	<div id="mod_show'+stamp+'" class="moditem" style="display:block;">'+actionDesc[0]+'</div>' + 
					'	<div id="mod_showAll'+stamp+'" class="moditem" style="display:block;">'+actionDesc[1]+'</div>' + 
					'	<div id="mod_stop'+stamp+'" class="moditem" style="display:block;">'+actionDesc[2]+'</div>' + 
					'	<div id="mod_hide'+stamp+'" class="moditem" style="display:block;">'+actionDesc[3]+'</div>' + 
					'</div>' +
					'<div id="modBottom" class="bottom"></div>';
		
		
		menu.innerHTML = cont;
		contentDiv = document.getElementById("modCont"+stamp);
		hideDiv = document.getElementById("mod_hide"+stamp);
		stopDiv = document.getElementById("mod_stop"+stamp);
		showDiv = document.getElementById("mod_show"+stamp);
		showAllDiv = document.getElementById("mod_showAll"+stamp);
		
		hideDiv.onmouseover = overItem;
		hideDiv.onmouseout = outItem;
		hideDiv.onmouseup = function() {
			status = '3';
			saveStatus();
			moderationNextStep();
			menu.hide();
		}
		
		stopDiv.onmouseover = overItem;
		stopDiv.onmouseout = outItem;		
		stopDiv.onmouseup = function() {
			moderationNextStep();
			menu.hide();
		}

		if(playButton) {
			playButton.onmouseover = overItem;
			playButton.onmouseout = outItem;		
			playButton.onmouseup = function() {
				moderationNextStep();
				menu.hide();
			}
		}		
		
		showDiv.onmouseover = overItem;
		showDiv.onmouseout = outItem;		
		showDiv.onmouseup = function() {
			status = '0';
			menu.hide();
			moveIn();
		}
		
		showAllDiv.onmouseover = overItem;
		showAllDiv.onmouseout = outItem;		
		showAllDiv.onmouseup = function() {
			status = '0';
			saveStatus();
			menu.hide();
			moveIn();
		}		
		
		divContainer.onmouseover = over;
		divContainer.onmouseout = out;
		
		try {
			top.modController.addModerator(this);
		}catch(e) {}
		
	}
	
	
	//Spiel die Moderation ab.
	function playMovie(m, width, height, loop) {
			
		if(loop != 'true') {
			if(divContainerWidth == null) {
				setTimeout(function() {
					//var mL = (divContainerWidth - menuWidth) / 2;
					//menu.style.left = mL+"px";
					//divContainer.style.width = divContainerWidth+"px";
					//divContainer.style.left = divContainerLeft+"px";
				},300);
			}else {
				var mL = (divContainerWidth - menuWidth) / 2;
				//menu.style.left = mL+"px";
				//divContainer.style.width = divContainerWidth+"px";
				//if(divContainerLeft) divContainer.style.left = divContainerLeft+"px";				
			}
		}		
		
		so = new SWFObject(playerUrl, 'mod'+stamp, width, height, '9');
		so.addParam('wmode','transparent');
		so.addVariable('loop',loop);
		so.addVariable('video', m);
		so.addVariable('callBack', selfName+'.moderationNextStep();');
		so.write(movieContainerId);
		
		movie = $("mod"+stamp);
		movie.style.cursor = "pointer";
		if(status == '1' || status == '3') {
			movie.onmousedown = moveIn;
		}
	}
	
	//Menüpunkt Action
	function overItem(dasEreignis) {
		var meinEreignis = dasEreignis || window.event;
		var ereignisQuelle = meinEreignis.target || meinEreignis.srcElement;
		
		ereignisQuelle.className = "moditemSelect";		
	}
	
	//Menüpunkt Action
	function outItem(dasEreignis) {
		var meinEreignis = dasEreignis || window.event;
		var ereignisQuelle = meinEreignis.target || meinEreignis.srcElement;	
		
		ereignisQuelle.className = "moditem";	
	}
	
	//Menü zeigen
	function over(dasEreignis) {
		var meinEreignis = dasEreignis || window.event;
		var ereignisQuelle = meinEreignis.target || meinEreignis.srcElement;		
		
		//alert(status);
		
		switch(status) {
		case '3':
			hideDiv.style.display = "none";
			stopDiv.style.display = "none";
			showDiv.style.display = "block";
			showAllDiv.style.display = "block";
			break;
		case '0':
			hideDiv.style.display = "block";
			stopDiv.style.display = "block";
			showDiv.style.display = "none";	
			showAllDiv.style.display = "none";
			break;
		case '2':
			hideDiv.style.display = "none";
			stopDiv.style.display = "block";
			showDiv.style.display = "none";	
			showAllDiv.style.display = "none";
			break;
		case '1':
			hideDiv.style.display = "none";
			stopDiv.style.display = "none";
			showDiv.style.display = "block";	
			showAllDiv.style.display = "block";
			break;
		}
		
		menu.show();
	}
	
	//Menü ausblenden
	function out(dasEreignis) {
		var meinEreignis = dasEreignis || window.event;
		var ereignisQuelle = meinEreignis.target || meinEreignis.srcElement;		
				
		while(ereignisQuelle.getAttribute("ID") != containerId) {
			if(ereignisQuelle.nodeName == "BODY") return;
			
			ereignisQuelle = ereignisQuelle.parentNode;
		}
		
		menu.hide();
	}
	
	//Moderation wird Eingeblendet
	function moveIn() {	
		
		try{
			top.modController.stopAllMovies();	
		}catch(e) {}
		
		try{
			movieStopEvent();
		}catch(e) {}
		
		try {
			window.document[secMovie].StopPlay();
		}catch(e){}
		
		if(playButton) playButton.style.display = "block";
		if(textLayer) textLayer.style.display = "block";
		
		status = '0';
		document.getElementById(movieContainerId).style.paddingLeft = "0px";
		playMovie(movieBig, movieWidth, movieHeight, 'false');	
	}
	
	//Action nach der Moderation
	this.moderationNextStep = function(noMove, movieStop) { moderationNextStep(noMove,movieStop); }
	function moderationNextStep(noMove,movieStop) {
		
		if(status == '0'){
			status = '1';	
		}
		
		if(playButton) playButton.style.display = "none";
		if(textLayer) textLayer.style.display = "none";
		
		if(noMove != true) {
			loadSmallMovie();
		}
			
		try{
			contentSwitcher.setContent(1);
			window.document[secMovie].Play();
		}catch(e){}
		
		try{
			callBack();
		}catch(e){}	
		
		setTimeout(function() {
			try{
				if(movieStop!=true) {					
					moviePlayEvent();					
				}else {
					movieStopEvent();
				}
			}catch(e){}	
		},500);
	}
	
	//Kleines Video der Moderation wird gezeigt.
	function loadSmallMovie() {
			
		var w = null;
		var h = null;
		
		if(movieSmallHeight == null && movieSmallWidth == null && morphProz != null) {
			//Movie
			w = (movieWidth/100) * morphProz;
			w = parseInt(w);
			h = (movieHeight/100) * morphProz;	
			h = parseInt(h);
		}else {
			w = movieSmallWidth;
			h = movieSmallHeight;
		}
		
		
		setTimeout(function() {
			//Container anpassung
			/*
			var cW = divContainerWidth / 2;
			cW = cW - (w / 2);
			
			if(divContainerLeft) {
				var left = divContainerLeft + cW;
				divContainer.style.left = left+"px";
			}
			
			if(w > maxWidthSmall) {
				divContainer.style.width = maxWidthSmall+"px";
			}else {
				divContainer.style.width = w+"px";
			}
			
			//Menü anpassung
			menu.style.left = "1px";
			*/
			try {
				document.getElementById(movieContainerId).style.paddingLeft = smallJustification+"px";
			}catch(e){}
			
			playMovie(movieSmall, w, h, 'true');
		},200);
	}
	
	//Status als Cookie speichern
	function saveStatus() {
		var a = new Date();
		a = new Date(a.getTime() +1000*60*60*24*365);
		
		//Benchmark Speicher speichern
		var jString  = "status="+status+"; ";
		document.cookie = jString+'expires='+a.toGMTString()+'; '+new Date().toGMTString()+'; path=/;'; 
	}
	
	//Status aus Cookie laden
	function loadStatus() {
		var arr =  document.cookie.split(";");
		
		var state = false;
		try {
			for(var i=0; i < arr.length; i++) {
				var item = arr[i].split("=");
				//alert(">"+item[0]+"<");
				if( trim(item[0]) == "status") {
					//alert("gefunden");
					status = item[1];
					//alert("Status geladen: "+status);
				}
			}
		}catch(e) {
			//alert("cookie: "+e);
		}
		
	}
	
	//String trim 
	function trim(s) {
		  while (s.substring(0,1) == ' ') {
		    s = s.substring(1,s.length);
		  }
		  while (s.substring(s.length-1,s.length) == ' ') {
		    s = s.substring(0,s.length-1);
		  }
		  return s;
	}
	
	
	this.setMovieBig = function(m) {
		movieBig = m;
	}
	
	this.setMovieSmall = function(m) {
		movieSmall = m;
	}
	
	this.setPlayerUrl = function(p) {
		playerUrl = p;
	}
	
	this.setHeight = function(h) {
		movieHeight = h;
	}
	
	this.setWidth = function(w) {
		movieWidth = w;		
	}
	
	this.setMorphProz = function(p) {
		morphProz = p;
	}
	
	this.setSmallWidth = function(w) {
		movieSmallWidth = w;
	}
	
	this.setSmallHeight = function(h) {
		movieSmallHeight = h;
	}
	
	this.setSmallJustification = function(w) {
		smallJustification = w;
	}
	
	this.setCallBack = function(obj) {
		callBack = obj;
	}
	
	this.setPlayButtonId = function(id) {
		playButton = document.getElementById(id);
	}
	
	this.setTextLayerId = function(id) {
		textLayer = document.getElementById(id);
	}
	
	this.setMovieStopEvent = function(obj) {
		movieStopEvent = obj;
	}
	
	this.setMoviePlayEvent = function(obj) {
		moviePlayEvent = obj;
	}
	
	this.setMaxWidthSmall = function(p) {
		maxWidthSmall = p;
	}
	
	this.setActionDesc = function(arr) {
		actionDesc = arr;
	}
		
}