/**
 * @author daniel.kurre
 * This sitestat specific function counts plugin detection
 * called in:
 * doCheckPrefPluginAvail()
 * doCheckInstalledFlash()
 * 
 * available counter
 * -> flash.detection.succeeded
 * -> flash.detection.failed
 */

function ns_flashcounter(ns_flashn) {

    var ns_flash = "http://de.sitestat.com/wgz/wgzbank/s?" + ns_flashn + "&amp;ns_type=flash" + "&amp;ns__t=" + (new Date()).getTime();
    document.ns_flashp.src=ns_flash;
}

/**
 * @author martin.dilg
 */
function ViewControl(){
				
				vControlInst = this;
				
				pDect = new PluginDetector();
				
				cookie = new Cookie();
				
				this.init = function(){
					
					doCheckAvailPlugins();
					
				}
				
				function doCheckAvailPlugins(){
					
					var flashVersion = pDect.getFlashVersion();
					
					var wmpVersion = pDect.getWmpVersion();
					
					log("Flash Version: " + flashVersion);
					log("WMP Version: " + wmpVersion );
					
					doCheckCookieAvail();
					
				}
				
				function doCheckCookieAvail(){
			
					var preferredPlayer = cookie.getCookie('player');
			
					var preferredBandwidth = cookie.getCookie('speed');
			
					log("preferredPlayer: " + preferredPlayer);
					log("preferredBandwidth: " + preferredBandwidth);
					
					if(preferredPlayer != null && preferredBandwidth != null){
						doCheckPrefPluginAvail();
						
					}else{
						doCheckInstalledFlash();
					}
					
				}
				
				function doCheckPrefPluginAvail(){
					
					if(cookie.getCookie('player') == "swf" && pDect.getFlashVersion() >= 8){
						doLoadSlides();
					}else if(cookie.getCookie('player') == "wmp" && pDect.getWmpVersion() >= 7){
						doLoadSlides();
					}else{
						doCheckInstalledFlash();
					}
					
				}
				
				
				function doCheckInstalledFlash(){
					log("doCheckInstalledFlash");
					
					if(pDect.getFlashVersion() >= 8){
						cookie.setCookie("player","swf");
						log("cookie 'player' set to: " + cookie.getCookie("player"));
						doCheckBandwidth();
					}else{
						doCheckInstalledWmp();
					}
					
				}
				
				function doCheckInstalledWmp(){
					
					log("doCheckInstalledWmp");
					
					if(pDect.getWmpVersion() >= 7){
						cookie.setCookie("player","wmp");
						log("cookie 'player' set to: " + cookie.getCookie("player"));
						doCheckBandwidth();
					}else{
						doShowDownloadLinks();
					}
					
				}
				
				
				
				function doCheckBandwidth(){
					log("doCheckBandwidth");
					
					bChecker = new BandwidthChecker(bandwidthCheckImagePath, bandwidthCheckImageSize , function(){vControlInst.doSetSpeedCookie(bandwidth);});	
					bChecker.check();
				}
				
				this.doSetSpeedCookie = function(speed){
						
					log("bandwidth is: : " +speed + " Kbit/s");
						
					if(speed > 400){
						speed = "fast";
					}else if(speed > 64){
						speed = "slow";
					}else{
						speed = "audio";
					}
					

                                        // hack for wmp to force 'audio' speed
					if(cookie.getCookie("player") == "wmp"){
						speed = "audio";
					}					

                                        detectedBandwidth = speed;

					cookie.setCookie("speed",speed);
					log("set 'speed' cookie: " +speed);
					
					doLoadSlides();
					
				}
				
				function doShowDownloadLinks(){
					
					log("doShowDownloadLinks");
					
					document.getElementById("video-content").innerHTML="<p>Ein Player wurde nicht gefunden.</p>\
																		<p>F&uuml;r die Darstellung von &quot;WGZ Cognitrend TV&quot; ist ein Flash Player (ab Version 8) oder Windows Media Player (ab Version 9) erforderlich. Bitte installieren Sie einen der folgenden Player:</p>\
																		<div class=\"ModFliesstextListe\"><ul class=\"link-liste-extern\"><li><a href=\"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW\" target=\"_blank\">Flash Player installieren (empfohlen)</a></li>\
																		<li><a href=\"http://www.microsoft.com/windows/windowsmedia/default.mspx\" target=\"blank\">Windows Media Player installieren</a></li></ul></div>\
                                                                                                                                                <p>Hinweis: Sie werden zum Installieren eines Players auf die Website eines Drittanbieters (Adobe / Microsoft) weitergeleitet.</p>";
					
				}
				
				function doLoadSlides(){
					log("doLoadSlides");
					
					document.getElementById("slide").src= imgBasePath + "blank.gif";
					
					slides = new Slides(function(){vControlInst.doRenderMediaPlayer();});
					
					log(document.getElementById("videoSelector").value);
					
					slides.loadSlides(document.getElementById("videoSelector").value);
					
					
					doRenderBandwidthSelector();
					
					
				}
				
				
				
				this.doRenderMediaPlayer = function(){
					
					log("doRenderMediaPlayer");
					
					arrays = slides.getArrays();
					
					log("Folien geladen: " + arrays.slides.length);
					log("Zeiten geladen: " + arrays.times.length);
					
					document.getElementById("audioImage").style.display = "none";
					
					if(document.cookie){
						
					 var player = cookie.getCookie("player");
					 var speed = cookie.getCookie("speed");
					 
					}else{
						
						if(pDect.getFlashVersion() >= 8){
							
							var player = "swf";
							
						}else if(pDect.getWmpVersion() >= 7){
							
							var player = "wmp";
							
						}
						
						var speed = detectedBandwidth;
					}
					
					
					if(player == "swf"){
						
						var extension = ".flv";
						var height = 425;
						
						if(speed == "audio"){
							extension = ".mp3";
							height = 405;
							document.getElementById("audioImage").style.display = "block";
						}

						MPlayer = new MediaPlayer("720",height,"swf", videoBasePath + document.getElementById("videoSelector").value + speed + extension,"mediaplayerContainer");
						
						log("Rendered Flash Player");
						
					}else if(player == "wmp"){
						
						var extension = ".wmv";
						var height = 226;
						if(speed == "audio"){ 
							extension = ".mp3";
							height = 65;
							document.getElementById("audioImage").style.display = "block";
						}
						
						MPlayer = new MediaPlayer("212",height,"wmp", videoBasePath + document.getElementById("videoSelector").value + speed + extension,"mediaplayerContainer");
						
						log("Rendered WMP Player");
					}

					MPlayer.renderPlayer();
					
					if(player == "wmp"){
						syncInterval = window.setInterval("vControlInst.doSync(Math.floor(MPlayer.getTime()));", 500);
					}
				}
				
				this.doSync = function (time){

					var displaySlide = "";
				
					for(var k=0; k < arrays.times.length ; k++){
						if(k < arrays.times.length - 1  && time < arrays.times[k+1] && time >= arrays.times[k]){
							displaySlide = slidesBasePath + document.getElementById("videoSelector").value + arrays.slides[k];			
							break;
						}else if(k == arrays.times.length - 1  && time >= arrays.times[k]){
							displaySlide = slidesBasePath + document.getElementById("videoSelector").value + arrays.slides[k];
						}
					
					}
					
					
				
					if(document.getElementById("slide").src != displaySlide && displaySlide != ""){
						document.getElementById("slide").src = displaySlide;
						log(displaySlide);
					log(document.getElementById("slide").src);	
					}
		
				}
				
				
				this.doChangeVideoBandwidth = function(json){
					
					var object = eval('(' + json + ')');
					
					try{
						window.clearInterval(syncInterval);
					}catch(e){
					};
					
					document.getElementById("audioImage").style.display = "none";
					
					var height = 405;
					var width =  720;
					
					if(object.player == "swf" && object.speed == "fast"){
						var extension="flv";
						width =  720;
					}else if(object.player == "swf" && object.speed == "slow"){
						var extension="flv";
						width =  720;
					}else if(object.player == "swf" && object.speed == "audio"){
						var extension="mp3";
						width =  720;
						document.getElementById("audioImage").style.display = "block";
						height=405;
					}else if(object.player == "wmp" && object.speed == "slow"){
						var extension="wmv";
						height = 226;
					}else if(object.player == "wmp" && object.speed == "fast"){
						var extension="wmv";
						height = 226;
					}else if(object.player == "wmp" && object.speed == "audio"){
						document.getElementById("audioImage").style.display = "block";
						var extension="mp3";
						height=65;
					}
					
					cookie.setCookie("speed",object.speed);
					cookie.setCookie("player",object.player);
					
					log(videoBasePath + document.getElementById("videoSelector").value + object.speed + "." + extension);
					
					MPlayer.reinitialize(width,height,object.player,videoBasePath + document.getElementById("videoSelector").value + object.speed + "." + extension);
					
					MPlayer.renderPlayer();
					
					if(object.player=="wmp"){
						syncInterval = window.setInterval("vControlInst.doSync(Math.floor(MPlayer.getTime()));", 500);
					}
				}
				
				this.doLoadNewVideo = function(){
					doLoadSlides();
				}
				
				
				 function doRenderBandwidthSelector(){
					
					var html = "<select id=\"speedSelector\" onchange=\"VControl.doChangeVideoBandwidth(this.value);\" disabled=\"disabled\" style=\"display:none;\">";

					
					if(pDect.getFlashVersion() >= 8){
						html += "<option value=\"{'player':'swf','speed':'fast'}\">Gute Qualit&auml;t Flash</option>\
								 ";
					}
					
					if(pDect.getWmpVersion() >= 7){
						html += "<!--<option value=\"{'player':'wmp','speed':'fast'}\">Gute Qualit&auml;t Windows Media</option>\
								";
					}
					
					html += "</select>";
					
					document.getElementById("speedSelectorContainer").innerHTML = html;
					
					if(cookie.getCookie('player') != null && cookie.getCookie('speed') != null){
					
						optionValue = "{'player':'"+cookie.getCookie('player')+"','speed':'"+cookie.getCookie('speed')+"'}";
					
						log(optionValue);
					
						for(var i=0; i<6; i++){
						
							if(document.getElementById("speedSelector").options[i].value == optionValue){
								document.getElementById("speedSelector").selectedIndex = i;
								break;
							}		
						}
					}
					
				}
				
				function log(message){
				
					if(document.getElementById("debugoutput")){
						document.getElementById("debugoutput").innerHTML += "<div>" + message + "</div>";
					}
				}
			}
