

//setting of config variables
var playerType = '';
var wmVolumeStep = 250;
var wmVolumeMin = -2500;
var wmVolumeMax = 0;
var rvVolumeStep = 10;
var rvVolumeMin = 0;
var rvVolumeMax = 100;

var scrollStart = 5;
var scrollMax = 144;
var actScrollPos = 1;
	

var actType = 'video';
var keepCookieType = 'audio';

function VSSave() {
	var CookieStr = "";
	alert('Die Einstellungen werden in einem Cookie auf Ihrem Computer gespeichert. \rBitte bestätigen Sie gegebenfalls die nächste Sicherheitsabfrage!');

	
	tmp = '' + getCookie('Mediathek');

	if (tmp.indexOf(keepCookieType + 'rv')!= -1)
		CookieStr = CookiStr + '_' + keepCookieType + 'rv';
	if (tmp.indexOf(keepCookieType + 'wm')!= -1)
		CookieStr = CookiStr + '_' + keepCookieType + 'wm';
	if (tmp.indexOf(keepCookieType + 'broad')!= -1)
		CookieStr = CookiStr + '_' + keepCookieType + 'broad';
	if (tmp.indexOf(keepCookieType + 'modem')!= -1)
		CookieStr = CookiStr + '_' + keepCookieType + 'modem';
	if (tmp.indexOf(keepCookieType + 'fullscreen')!= -1)
		CookieStr = CookiStr + '_' + keepCookieType + 'fullscreen';

	
	CookieStr = CookieStr + "_" + actType + document.VideoCookie.AccessType.value;
	CookieStr = CookieStr + "_" + actType + document.VideoCookie.VideoType.value;
	
	if (document.VideoCookie.Vollbild.value=='yes') {
		CookieStr = CookieStr + "_" + actType + "fullscreen";
	}
	
	ExpiryDate = new Date(2022, 0, 25);
	
	document.cookie = "Mediathek" + "=" + escape (CookieStr) + "; expires=" + ExpiryDate.toGMTString() ;
	return false;
}


function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function VSRestore(sList) {
	//if the whole check fails - the default settings will be used
	try {
		var CookieStr2 = getCookie('Mediathek');
		if (CookieStr2==null) {
			CookieStr2 = "_" + actType + "modem_" + actType + "wm";
		}
		
		var elem = "";
		if ( typeof(document.images['img_modem']) == 'object' ) {
			elem = elem + '_modem';
		}
		if ( typeof(document.images['img_breitband']) == 'object' ) {
			elem = elem + '_broad';
		}
		if ( typeof(document.images['img_wm']) == 'object' ) {
			elem = elem + '_wm';
		}
		if ( typeof(document.images['img_rv']) == 'object' ) {
			elem = elem + '_rv';
		}
	
		if (elem.indexOf("modem")!=-1&&elem.indexOf("broad")!=-1) {
			
			if (CookieStr2.indexOf(actType + "modem")!=-1) {
				//changeVideoRate('modem');
				actRate='modem';
			} else {
				//changeVideoRate('broad');
				actRate='broad';
			}
		} else {
			
			if (elem.indexOf("modem")!=-1) {
				//changeVideoRate('modem');
				actRate='modem';
			} else {
				//changeVideoRate('broad');
				actRate='broad';
			}
		}
	
		if (elem.indexOf("rv")!=-1&&elem.indexOf("wm")!=-1) {
			
			if (CookieStr2.indexOf(actType + "rv")!=-1) {
				changeVideoType2('rv',sList);
			} else {
				changeVideoType2('wm',sList);
			}
		} else {
			
			if (elem.indexOf("rv")!=-1) {
				changeVideoType2('rv',sList);
			} else {
				changeVideoType2('wm',sList);
			}
		}
	
		if ( typeof(document.VideoCookie) == 'object' ) {
			if (CookieStr2.indexOf(actType + "fullscreen")!=-1) {
				document.images['img_vollbild'].src='/ZDFde/img/mediathek/v_checkbox_checked.gif';
				document.VideoCookie.Vollbild.value = 'yes';
			} else {
				document.VideoCookie.Vollbild.value = '';
			}
		}
		
		changeFormAction();
	} catch (ex) {
		//default logic will be used
	}
}
function changeVideoRate(sRate) {
	//changes the rate image and sets the hidden field 
	actRate = '';	
	if (sRate == 'modem') {
		if ( typeof(document.images['img_modem']) == 'object') {
			if (document.images['img_modem'].src.indexOf('/img/p.gif')<0) {
				document.images['img_modem'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
				actRate = 'modem';
				if ( typeof(document.images['img_breitband']) == 'object') {
					if (document.images['img_breitband'].src.indexOf('/img/p.gif')<0) {
						document.images['img_breitband'].src="/ZDFde/img/mediathek/v_radio.gif";
					}
				}
			} else {
				actRate = 'broad';
			}
		}
	} else {		
		if ( typeof(document.images['img_breitband']) == 'object') {
			if (document.images['img_breitband'].src.indexOf('/img/p.gif')<0) {
				document.images['img_breitband'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
				actRate = 'broad';
				if ( typeof(document.images['img_modem']) == 'object') {
					if (document.images['img_modem'].src.indexOf('/img/p.gif')<0) {
						document.images['img_modem'].src="/ZDFde/img/mediathek/v_radio.gif";
					}
				}
			} else {
				actRate = 'modem';
			}
		}
	}
	
	if ( typeof(document.VideoCookie) == 'object' && actRate!='') {
		document.VideoCookie.AccessType.value = actRate;
		changeFormAction();
	}
}

function changeVideoType(sType) {
	//changes the type image and sets the hidden field 
	var actType='';
	
	if (sType == 'wm') {
		if (typeof(document.images['img_wm']) == 'object') {
			//windows media is available
			actType = 'wm';
			document.images['img_wm'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
		}
		
		if ( typeof(document.images['img_rv']) == 'object') {
			document.images['img_rv'].src="/ZDFde/img/mediathek/v_radio.gif";
		}
	} else {
		if ( typeof(document.images['img_wm']) == 'object') {
			document.images['img_wm'].src="/ZDFde/img/mediathek/v_radio.gif";
		}
		
		if ( typeof(document.images['img_rv']) == 'object') {
			document.images['img_rv'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
			actType = 'rv';
		}
	}

	if ( typeof(document.VideoCookie) == 'object' ) {
		document.VideoCookie.VideoType.value = actType;
		changeFormAction();
	}
}

function changeVideoType2(sType,sList) {
	//changes the type image and sets the hidden field 
	var actType='';
	if (sType == 'wm') {
		if (typeof(document.images['img_wm']) == 'object') {
			//windows media is available
			actType = 'wm';
			document.images['img_wm'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
		}
		
		if ( typeof(document.images['img_rv']) == 'object') {
			document.images['img_rv'].src="/ZDFde/img/mediathek/v_radio.gif";
		}
	} else {
		if ( typeof(document.images['img_wm']) == 'object') {
			document.images['img_wm'].src="/ZDFde/img/mediathek/v_radio.gif";
		}
		
		if ( typeof(document.images['img_rv']) == 'object') {
			document.images['img_rv'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
			actType = 'rv';
		}
	}

	var tmpI =0;
	if (sList.indexOf(',' + sType + ',modem,')>=0) {
		tmpI +=1;
	}
	if (sList.indexOf(',' + sType + ',broad,')>=0) {
		tmpI +=2;
	}
	switch (tmpI) {
   		case 1 :
		//just modem available		
			if ( typeof(document.images['img_breitband']) == 'object') {
				document.images['img_breitband'].src="/ZDFde/img/p.gif";
			}
			if ( typeof(document.images['v_breitband']) == 'object') {
				document.images['v_breitband'].src="/ZDFde/img/p.gif";
			}
			if ( typeof(document.images['img_modem']) == 'object') {
				document.images['img_modem'].src="/ZDFde/img/mediathek/v_radio_selected.gif"
			}
			if ( typeof(document.images['v_modem']) == 'object') {
				document.images['v_modem'].src="/ZDFde/img/mediathek/v_modem.gif";			
			}
			actRate = 'modem';		
      		break;
   		case 2 :
		//just broad available
			if ( typeof(document.images['img_modem']) == 'object') {
				document.images['img_modem'].src="/ZDFde/img/p.gif";
			}
			if ( typeof(document.images['v_modem']) == 'object') {
				document.images['v_modem'].src="/ZDFde/img/p.gif";
			}
			if ( typeof(document.images['img_breitband']) == 'object') {
				document.images['img_breitband'].src="/ZDFde/img/mediathek/v_radio_selected.gif";
			}
			if ( typeof(document.images['v_breitband']) == 'object') {
				document.images['v_breitband'].src="/ZDFde/img/mediathek/v_breitband.gif";			
			}
			actRate = 'broad';
      		break;
   		case 3 :
			if ( typeof(document.images['img_breitband']) == 'object') {
				document.images['img_breitband'].src="/ZDFde/img/mediathek/v_radio.gif";
			}
			if ( typeof(document.images['img_modem']) == 'object') {
				document.images['img_modem'].src="/ZDFde/img/mediathek/v_radio.gif";
			}
			if ( typeof(document.images['v_modem']) == 'object') {
				document.images['v_modem'].src="/ZDFde/img/mediathek/v_modem.gif";
			}
			if ( typeof(document.images['v_breitband']) == 'object') {
				document.images['v_breitband'].src="/ZDFde/img/mediathek/v_breitband.gif";
			}
			changeVideoRate(actRate);
		//both available	
	}	
	
	if ( typeof(document.VideoCookie) == 'object' ) {	
		document.VideoCookie.AccessType.value = actRate;
		document.VideoCookie.VideoType.value = actType;
		changeFormAction();
	}
}

function changeVollbild() {
	//changes the rate image and sets the hidden field 
	
	actSrc = document.images['img_vollbild'].src;

	if ( actSrc.indexOf('/ZDFde/img/mediathek/v_checkbox.gif') != -1 ) {
		document.images['img_vollbild'].src="/ZDFde/img/mediathek/v_checkbox_checked.gif";
		actValue = 'yes';
	} else {
		document.images['img_vollbild'].src="/ZDFde/img/mediathek/v_checkbox.gif";
		actValue = '';
	}
	document.VideoCookie.Vollbild.value = actValue;
	changeFormAction();

}

function m_StartTimer() {
	if(document.forms[0])	{
		if (playerType == 'wm') {
			//windows media player
			
			playerObject = getMediaPlayer();

			if (strBrowserName == 'ns') {
	    		var currentSec = playerObject.GetCurrentPosition();
				var maxSec = playerObject.GetDuration();
				var iCurrent = m_ConvertTime(currentSec);
	    		var iDuration = m_ConvertTime(maxSec);
		    	var iBuffer = playerObject.GetBufferingProgress();
			} else {
	    		var currentSec = playerObject.CurrentPosition;
				var maxSec = playerObject.Duration;
				var iCurrent = m_ConvertTime(currentSec);
	    		var iDuration = m_ConvertTime(maxSec);
		    	var iBuffer = playerObject.BufferingProgress;
			}
		} else {
			//real video
			
			//get the reference to the real object
			playerObject = getRealPlayer();
		
			var currentSec = playerObject.GetPosition()/1000;
			var maxSec = playerObject.GetLength()/1000;

			var iCurrent = m_ConvertTime(currentSec);
			var iDuration = m_ConvertTime(maxSec);
			
			bTE = playerObject.GetBufferingTimeElapsed();
			bTR = playerObject.GetBufferingTimeRemaining();
	
	    	var iBuffer = bTE/(bTE + bTR) * 100;
			
			if (isNaN(iBuffer)) {
				iBuffer = "";
			} else {
				iBuffer = parseInt(iBuffer, 10);
			}
		}
	
		document.forms[0].zeit.value = iCurrent + ' / ' + iDuration
		
		if (iBuffer != '') {
			document.forms[0].buffering.value = iBuffer + ' %';
		}
		
		//calculating the scroll position
		actScrollPos = parseInt((currentSec/maxSec * scrollMax), 10);
		if (actScrollPos > scrollMax) {
			actScrollPos = scrollMax;
		}
		if (actScrollPos < scrollStart) {
			actScrollPos = scrollStart;
		}
		
		if (isNaN(actScrollPos)) {
			actScrollPos = 1
		}
		if (typeof(strBrowserName) == 'string') {
			if (strBrowserName == 'ns') {
				//special handling for netscape (the width is read only)

				if (typeof(document.div_scroll) == 'object') {
					document.div_scroll.left = actScrollPos;
				}
			} else {
				document.all.div_scroll.style.setAttribute('left', actScrollPos);
			}
		}
		
	    dTimer = setTimeout('m_StartTimer()',1000);
	}	
}

  function m_ConvertTime(tmp) {
    var mins = parseInt(tmp/60,10);
    var secs = parseInt(tmp%60,10);
    if (isNaN(mins)) {mins=0;}
    if (isNaN(secs) || secs < 0) {secs=0;}
	if (secs < 10) {secs = '0' + secs;}
    tmp = mins+":"+secs;
    return tmp
}

function WMP_IE_Vollbild() {
	playerObject = getMediaPlayer();
	if (strBrowserName == 'ns') {
		playerObject.SetDisplaySize(3);
	} else {
		playerObject.DisplaySize = 3;
	}
}


if (parseInt(navigator.appVersion)>=4) {
  if (navigator.appName=="Netscape")
    isNav=true
  else
    isNav=false
}
function RV_IE_Vollbild() {
	if (isNav) {
		document.embeds[0].SetFullScreen();
	} else {
		document.all.rv.SetFullScreen();
	}

}
function doPlay() {
	//starts the player
	//alert(document.VideoCookie.VideoType.value);
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();
		playerObject.Play();
	}
	if (playerType == 'rv') {
		//get the reference to the real object
		playerObject = getRealPlayer();

		playerObject.DoPlay();
	}
	return true;
}
function doPause() {
	//makes a pause
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();
		playerObject.Pause();
	}
	if (playerType == 'rv') {
		//get the reference to the real object
		playerObject = getRealPlayer();

		playerObject.DoPause();
	}
	return true;
}
function doStop() {
	//stops the player and returns to the beginning of the video
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();

		playerObject.Stop();
		if (strBrowserName == 'ns') {
			playerObject.SetCurrentPosition(0);
		} else {
			playerObject.CurrentPosition = 0;
		}
	}
	if (playerType == 'rv') {
		//get the reference to the real object
		playerObject = getRealPlayer();
		
		playerObject.DoStop();
	}

	return true;
}
function changeVolume(direction) {
	//changes the volume up or down
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();
	
		if (strBrowserName == 'ns') {
			actVolume = playerObject.GetVolume();
		} else {
			actVolume = playerObject.Volume;
		}

		if (direction == 'up') {
			newVolume = actVolume + wmVolumeStep;
		} else {
			newVolume = actVolume - wmVolumeStep;
		}	
		if (newVolume < wmVolumeMin)
			newVolume = wmVolumeMin;
			
		if (newVolume > wmVolumeMax) 
			newVolume = wmVolumeMax;

		if (strBrowserName == 'ns') {
			playerObject.SetVolume(newVolume);
		} else {
			playerObject.Volume = newVolume;
		}
	}
	if (playerType == 'rv') {
		//get the reference to the real object
		playerObject = getRealPlayer();

		actVolume = playerObject.GetVolume();

		if (direction == 'up') {
			newVolume = actVolume + rvVolumeStep;
		} else {
			newVolume = actVolume - rvVolumeStep;
		}	
		if (newVolume < rvVolumeMin)
			newVolume = rvVolumeMin;
			
		if (newVolume > rvVolumeMax) 
			newVolume = rvVolumeMax;

		playerObject.SetVolume(newVolume);
	}
		
}
function changeMute() {
	//turns off/on the sound
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();

		if (strBrowserName == 'ns') {
			actMute = playerObject.GetMute();
		} else {
			actMute = playerObject.Mute;
		}

		if (actMute == true) {
			newMute = false;
			muteImage = '/ZDFde/img/mediathek/v_ton_aus.gif';
		} else {
			newMute = true;
			muteImage = '/ZDFde/img/mediathek/v_ton_ein.gif';
		}
		if (strBrowserName == 'ns') {
			playerObject.SetMute(newMute);
		} else {
			playerObject.Mute = newMute;
		}
	}	
	
	if (playerType == 'rv') {
		//get the reference to the real object
		playerObject = getRealPlayer();

		actMute = playerObject.GetMute();

		if (actMute == true) {
			newMute = false;
			muteImage = '/ZDFde/img/mediathek/v_ton_aus.gif';
		} else {
			newMute = true;
			muteImage = '/ZDFde/img/mediathek/v_ton_ein.gif';
		}
		playerObject.SetMute(newMute);
	}	
	
	//setting the source of the mute image
	document.images['img_mute'].src = muteImage;
}
function getRealPlayer() {
	//returns a reference to the real player object
	if (typeof(document.embeds[0]) == 'object') {
		return document.embeds[0];
	} else {
		return document.rv;
	}

}
function getMediaPlayer() {
	//returns a reference to the media player object
	if (typeof(document.embeds[0]) == 'object') {
		return document.embeds[0];
	} else {
		return document.wmp;
	}

}
function changePosition(caller) {
	//changes the position of the current video
	newPos = event.x;
	
	if (newPos < scrollStart || newPos >= scrollMax) 
		return;
	
	factor = newPos / scrollMax;
	
	//getting the max time value
	if (playerType == 'wm') {
		playerObject = getMediaPlayer();
		if (strBrowserName == 'ns') {
			var maxSec = playerObject.GetDuration();
			playerObject.SetCurrentPosition(maxSec*factor);
		} else {
			var maxSec = playerObject.Duration;
			playerObject.CurrentPosition = maxSec * factor;
		}
	} 

	if (playerType == 'rv') {
	
	}
	return false;
}

// Browser-Detection
function getBrowser()
{
	if(document.layers)
	{
		strBrowserName = "ns";
	}

	if(document.all)
	{
		strBrowserName = "ie";
	}

	if(navigator.platform.indexOf('Win') >= 0)
	{
		strPlatform = "win";
	}
	else
	{
		strPlatform = "mac";
	}

	strBrowserVersion = navigator.appVersion.substr(0,1);
}
getBrowser();
