enabled_1500  = 1;
arrayAllRates = new Array('modem','dsl','1500');

function showVoreinstellungen() {
	if (document.getElementById('abspielseite')) document.getElementById('abspielseite').style.display = 'none';
	if (document.getElementById('linkversenden')) document.getElementById('linkversenden').style.display = 'none';
	if (document.getElementById('voreinstellungen')) document.getElementById('voreinstellungen').style.display = 'block';
	return false;
}
function showAbspielseite() {
	if (document.getElementById('voreinstellungen')) document.getElementById('voreinstellungen').style.display = 'none';
	if (document.getElementById('linkversenden')) document.getElementById('linkversenden').style.display = 'none';
	if (document.getElementById('abspielseite')) document.getElementById('abspielseite').style.display = 'block';
	return false;
}
function showLinkversenden() {
	if (document.getElementById('abspielseite')) document.getElementById('abspielseite').style.display = 'none';
	if (document.getElementById('voreinstellungen')) document.getElementById('voreinstellungen').style.display = 'none';
	if (document.getElementById('linkversenden')) document.getElementById('linkversenden').style.display = 'block';
	return false;
}

function loadUserSettingsFromCookie() {
	var userSettings = getCookie("userSettings");
	if (userSettings == null) userSettings = "";
	return userSettings;
}

function saveUserSettingsToCookie(userSettings) {
	if (document.getElementById('speichern').checked) {
		setCookie("userSettings", userSettings, 60, "/ZDFmediathek/inhalt");
		setCookie("userSettings", userSettings, 60, "/");
		setCookie("userSettings", userSettings, 60, "/ZDFheute");
	}
}

function getUserSettings() {
	var userSettings = "";
	if (document.getElementById('format_wm').checked)   userSettings += "wm_";
	if (document.getElementById('format_rv').checked)   userSettings += "rv_";

	if (document.getElementById('bandbreite_modem').checked)   userSettings += "modem";
	if (document.getElementById('bandbreite_dsl').checked)     userSettings += "dsl";
	if (enabled_1500) {
		if (document.getElementById('bandbreite_1500').checked)   userSettings += "1500";
	}
	return userSettings;
}

function setUserSettings(userSettings) {
	if (userSettings == "") {
		userSettings = "wm_dsl";
	}
	var playFormat =  userSettings.split('_')[0];
	var bandwidth =  userSettings.split('_')[1];
	
	changeVideoType(playFormat);
	changeVideoRate(bandwidth);
	//if (playFormat == "wm")   document.getElementById('format_wm').checked = true;
	//if (playFormat == "rv")   document.getElementById('format_rv').checked = true;

	//if (bandwidth == "modem")   document.getElementById('bandbreite_modem').checked = true;
	//if (bandwidth == "dsl")     document.getElementById('bandbreite_dsl').checked = true;
}

function checkUserSettings() {
	var userSettings = loadUserSettingsFromCookie();

	if (userSettings == "") {
		showVoreinstellungen();
	} else {
		
		var availableQualities = document.getElementById('availableQualities').value;
		if (availableQualities.indexOf("," + userSettings.split('_')[0] + "," + userSettings.split('_')[1] + ",") == -1) {
			showVoreinstellungen();
		} else {
			setUserSettings(userSettings);
			callRunningPage();
		}
	}
}


function callRunningPage() {
	var curl = document.getElementById('runningUrl').value;

	var re = new RegExp ('methodParameter', 'gi') ;
	curl = curl.replace(re, getUserSettings());

	document.location.href = curl;
}


function indicateRecommended(name) {
	document.getElementById(name).className = "empfehlung";
}

function checkPlayerAvailability() {
	if (!isWindowsMediaInstalled()) {
		var objtemp = document.getElementById('label_format_wm');
		if (testIsValidObject(objtemp)) {
			objtemp.style.visibility = 'visible';
		}
		objtemp = document.getElementById('format_wm');
		if (testIsValidObject(objtemp)) {
			objtemp.style.visibility = 'hidden';
		}
		objtemp = document.getElementById('wm_installLink');
		if (testIsValidObject(objtemp)) {
			objtemp.style.display = 'inline';
		}
		
		document.getElementById('label_format_wm').htmlFor = "invalid_id";
	}
	if (!isRealPlayerInstalled()) {
		var objtemp = document.getElementById('label_format_rv');
		if (testIsValidObject(objtemp)) {
			objtemp.style.visibility = 'visible';
		}
		objtemp = document.getElementById('format_rv');
		if (testIsValidObject(objtemp)) {
			objtemp.style.visibility = 'hidden';
		}
		objtemp = document.getElementById('rv_installLink');
		if (testIsValidObject(objtemp)) {
			objtemp.style.display = 'inline';
		}
		
		document.getElementById('label_format_rv').htmlFor = "invalid_id";
	}
	

	if (!isRealPlayerInstalled() && !isWindowsMediaInstalled()) {
		showObject('mediadokument-start-button',false);
		showObject('mediadokument-einstellungen-speichern',false);
	}
	
	if (isWindowsMediaInstalled() && isRealPlayerInstalled()) {
		indicateRecommended('label_format_wm');
	} else if (isWindowsMediaInstalled()) {
		indicateRecommended('label_format_wm');
	} else if (isRealPlayerInstalled()) {
		indicateRecommended('label_format_rv');
	}
}

function isMailAddressValid(mailAddress) {
	var filter  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(mailAddress)) {
		return true;
	} else {
		return false;
	}
}


function sendAssetLink() {
	
	if (document.getElementById("empfaenger").value == document.getElementById("empfaenger").defaultValue) {
		alert("Bitte geben Sie die E-Mail Adresse des Empfängers ein.");
		return;
	}
	if (!isMailAddressValid(document.getElementById("empfaenger").value)) {

		alert("Bitte geben Sie eine gültige E-Mail Adresse des Empfängers ein.");

		return;
	}

	if (document.getElementById("email").value == document.getElementById("email").defaultValue) {
		alert("Bitte geben Sie Ihre E-Mail Adresse ein.");
		return;
	}
	if (!isMailAddressValid(document.getElementById("email").value)) {
		alert("Ihre E-Mail Adresse is nicht gültig. Bitte geben Sie eine gültige E-Mail Adresse ein.");
		return;
	}
	
	
	var formFields = new Array("empfaenger", "email", "betreff", "nachricht");
	for (var i=0; i<formFields.length; i++) {
		var actFormFieldNode = document.getElementById(formFields[i]);
		if (actFormFieldNode.value == actFormFieldNode.defaultValue) {
			actFormFieldNode.value = "";
		}
	}
	
	document.getElementById('linkversenden').submit();
}

// video format, rate functions
function getVideoRate() {
	var retval = 'dsl';
	var objtemp = document.getElementById('bandbreite_modem');
	if (testIsValidObject(objtemp)) {
		if (objtemp.checked) {
			retval = 'modem';
		}
	}
	if (enabled_1500) {
		var objtemp = document.getElementById('bandbreite_1500');
		if (testIsValidObject(objtemp)) {
			if (objtemp.checked) {
				retval = '1500';
			}
		}
	}
	return retval;
}

function getVideoType() {
	var retval = 'rv';
	var objtemp = document.getElementById('format_wm');
	if (testIsValidObject(objtemp)) {
		if (objtemp.checked) {
			retval = 'wm';
		}
	}
	return retval;
}

function getVideoRatesArray() {
	var tmpRates = new Array();
	for (var i = 0; i < arrayAllRates.length; i++) {
		if(typeIsAvailable(arrayAllRates[i])) {
			tmpRates.push(arrayAllRates[i]);
		}
	}
	return tmpRates;
}
function changeVideoRate(sRate) {
	var arrayRates =getVideoRatesArray();
	var sType = getVideoType();
	for (var i = 0; i < arrayAllRates.length; i++) {
		showObject('bandbreite_'+ arrayAllRates[i],settingIsAvailable(sType,arrayAllRates[i]));
	}
	var sType = getVideoType();
	if (settingIsAvailable(sType,sRate)) {
		var objtemp = document.getElementById('bandbreite_' + sRate);
		if (testIsValidObject(objtemp)) {
			objtemp.checked = true;

		}	
	} else {
		for (var i = 0; i < arrayRates.length; i++) {
			sRate = arrayRates[i];
			if (settingIsAvailable(sType,sRate)) {
				var objtemp = document.getElementById('bandbreite_' + sRate);
				if (testIsValidObject(objtemp)) {
					objtemp.checked = true;
					break;
				}
			}
		}
	}	
	return;	
}
function noStreamAvailable() {
	var idSToHide = new Array ('mediadokument-start-button','mediadokument-einstellungen-speichern');
	for (var i = 0; i < idSToHide.length; i++) {
		showObject(idSToHide[i],false);
	}
	var objtemp = document.getElementById('mediadokument-voreinstellungen-text');
	if (testIsValidObject(objtemp)) {
		objtemp.innerHTML = 'Für dieses Video sind keine Streams verfügbar.';
	}
}
function changeVideoType(sType) {
	var sOppositeType = getOppositType(sType);
	if(!typeIsAvailable (sType)) {
		showObject('format_' + sType,false);
		if(typeIsAvailable (sOppositeType)) {
			changeVideoType(sOppositeType);
			return;
		} else {
			showObject('format_' + sOppositeType,false);
			noStreamAvailable();
			//alert('No stream is available !');
			return;
		}
	}
	var objtemp = document.getElementById('format_' + sType);
	if (testIsValidObject(objtemp)) {
		objtemp.checked = true;
	}
	changeVideoRate(getVideoRate());
	return;
}

function typeIsAvailable (sType) {
	var objtemp = document.getElementById('availableQualities');
	if (testIsValidObject(objtemp)) {
		var sList= objtemp.value;
		if (sList.indexOf(',' + sType + ',')>=0) {
			return true;
		}
	}
	return false;
}

function typeIsAvailable (sType) {
	var objtemp = document.getElementById('availableQualities');
	if (testIsValidObject(objtemp)) {
		var sList= objtemp.value;
		if (sList.indexOf(',' + sType + ',')>=0) {
			return true;
		}
	}
	return false;
}

function settingIsAvailable (sType,sRate) {
	var objtemp = document.getElementById('availableQualities');
	if (testIsValidObject(objtemp)) {
		var sList= objtemp.value;
		if (sList.indexOf(',' + sType + ',' + sRate + ',')>=0) {
			return true;
		}
	}
	return false;
}

function getOppositRate(sRate) {
	if (sRate == 'modem') {
		return 'dsl';
	} else {
		return 'modem';
	}
}
function getOppositType(sType) {
	if (sType == 'wm') {
		return 'rv';
	} else {
		return 'wm';
	}
}
function showObject(objname,flag) {
	var objtemp = document.getElementById(objname);
	if (testIsValidObject(objtemp)) {
		if (flag) {
			objtemp.style.visibility = 'visible';
		} else {
			objtemp.style.visibility = 'hidden';
		}
	}
	var objtemp = document.getElementById('label_' + objname);
	if (testIsValidObject(objtemp)) {
		if (flag) {
			objtemp.style.visibility = 'visible';
		} else {
			objtemp.style.visibility = 'hidden';
		}
	}
}

function removeForNotInstalledPlayer() {
	var objtemp = document.getElementById('availableQualities');
	var availableQualitiesStr = objtemp.value;
	if (!isWindowsMediaInstalled()) {
		availableQualitiesStr = availableQualitiesStr.replace(',wm,modem,', ',');
		availableQualitiesStr = availableQualitiesStr.replace(',wm,dsl,', ',');
		availableQualitiesStr = availableQualitiesStr.replace(',wm,1500,', ',');
	}
	if (!isRealPlayerInstalled()) {
		availableQualitiesStr = availableQualitiesStr.replace(',rv,modem,', ',');
		availableQualitiesStr = availableQualitiesStr.replace(',rv,dsl,', ',');
		availableQualitiesStr = availableQualitiesStr.replace(',rv,1500,', ',');
	}
	
	objtemp.value = availableQualitiesStr;
}




// Browser-Detection
function getBrowserName() {
	var strBrowserName = '';

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

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

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


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

}



function unveilLink(linkDomId) {
	var objtemp = document.getElementById(linkDomId);

		//only show it on IE, bec. of a firefox bug...for IE it works.
		//if it works for other browsers too, then this part should be extended!
	if (navigator.appName.indexOf('Microsoft') > -1 && testIsValidObject(objtemp)) {
		objtemp.style.visibility = 'visible';
	}
}


function openMediathekURLReplacedForVideo(url, alternativUrl,doType) {
	if (doType == "VI") {
		var userSettings = loadUserSettingsFromCookie();
		if (userSettings != "") {
			var pos = alternativUrl.indexOf('wm_modem');
			url = alternativUrl.substring(0,pos) + userSettings + alternativUrl.substring(pos+8,alternativUrl.length);
		}		
	}
	openMedia(url);
}

