var ML;
window.addEvent('domready', function(){
	// add top-picks flash:
	if (page.categ == 'home') {
		$('top-picks').empty();
		if (swfobject.hasFlashPlayerVersion('9.0.0')) {
			$('top-picks').setStyle('margin-bottom', '0').adopt(
				new Element('div', {id: 'top-picks-flash'})
			);
			swfobject.createSWF({
				data: page.basedir + 'flash/toppicks.swf',
				width: '484',
				height: '400'
			}, {
				wmode: 'opaque',
				flashVars: 'lang=' + page.lang + '&cat=homepage',
				menu: 'false'
			}, 'top-picks-flash');
		}
		else
			showFlashError($('top-picks')).setStyle('height', '400px');
	}
	// add overlay to click on video-links:
	ML = new ModaLay.SAP($$('.videoLink'), {
		overlayColor: '#808080',
		overlayOpacity: 0.8,
		contentWidth: 960,
		contentHeight: 505,
		contentEmpty: false,
		boxBorderWidth: 0,
		boxBorderColor: '#FFF',
		bottomHeight: 95,
		macMozFlashPNG: page.basedir + 'images/ml_overlay.png'
	});
	// directly show overlay on video pages:
	if (page.clipID) ML.show('overlay');
});

var relatedUpdated = false;
function setRelatedVids(vidID, lang) {
	if ($('ml_related_flash').updateRelated
	&& $('ml_videoplayer').getStyle('visibility') == 'visible'
	&& !relatedUpdated) {
		$('ml_related_flash').updateRelated(vidID, lang);
		(function(){
			if ($('ml_videoplayer').getStyle('visibility') == 'visible')
				$('ml_related').setStyle('visibility', 'visible');
		}).delay(1000);
	}
}

// called from related vids:
function callExternalInterface2(id) {
	//alert("called: startFlash()");
	if ($('ml_videoplayer_flash').startFlash) {
		$('ml_videoplayer_flash').startFlash(id);
		relatedUpdated = true;
	}
}

function setDescription(clipObj) {
	// slide in overlay-bottom:
	ML.bottom.slide('in');
	// set title and description:
	var title = clipObj.metadata.title._value || '';
	$('ml_bottom').getElement('h1').set('text', title);
	$('ml_bottom').getElement('p').set('text', clipObj.metadata.editorial_comment._value || '');
	// set download-links:
	var mediafile = clipObj.mediadata.mediafile;
	if (!mediafile)
		return;
	var MP4paths = {};
	var len = mediafile.length;
	for (var i = 0; i < len; i++){
		var codec = mediafile[i].codec._value;
		if (codec == 'QT H.264' || codec == 'QT MPEG 4'){
			var path = mediafile[i].location._value;
			path = path.substring(path.lastIndexOf('/') + 1);
			if (codec == 'QT H.264')
				MP4paths.H264 = path;
			else
				MP4paths.MP4 = path;
		}
	}
	var links = $('ml_bottom').getElements('.downl a');
	//var path = 'http://www.sap-tv.com/flv/flash';
	var path = 'http://video.sap-tv.com/tv';
	links[0].set('href', path + '/' + MP4paths.H264);
	links[1].set('href', path + '/' + MP4paths.MP4);
	// set url and title for addthis-button:
	var url = page.basedir + cleanUrl(title) + '/' + clipObj.metadata.id._value;
	var host_url = location.host + url;
	$('ml_bottom').getElement('.addthis a').removeEvents('mouseover')
	.addEvent('mouseover', function(){return addthis_open(this, '', 'http://' + host_url, title);});
	// make WebTrends-call:
	if (typeof(_tag) != 'undefined' && !page.clipID) {
		_tag.dcsMultiTrack(
			'WT.es', host_url + '/' + (page.campID || 'floater'),
			'WT.ti', title,
			'DCS.dcsref', location.href,
			'DCS.dcsuri', url + '/' + (page.campID || 'floater'),
			'DCSext.window', 'floater'
		);
	}
}

function cleanUrl(str) {
	var arr, chr;
	arr = str.toLowerCase().split('');
	for (var i = 0; i < arr.length; i++) {
		chr = arr[i];
		// allowed chars and ISO-8159 chars to be replaced:
		if ('abcdefghijklmnopqrstuvwxyz1234567890àáâãäåæçèéêëìíîïñòóôõöùúûüß'.indexOf(chr) >= 0) {
			// replace accented chars:
			if ('àáâãäåæ'.indexOf(chr) >= 0)
				arr[i] = 'a';
			else if ('ç'== chr)
				arr[i] = 'c';
			else if ('èéêë'.indexOf(chr) >= 0)
				arr[i] = 'e';
			else if ('ìíîï'.indexOf(chr) >= 0)
				arr[i] = 'i';
			else if ('ñ' == chr)
				arr[i] = 'n';
			else if ('òóôõö'.indexOf(chr) >= 0)
				arr[i] = 'o';
			else if ('ùúûü'.indexOf(chr) >= 0)
				arr[i] = 'u';
			// replace "ß":
			else if ('ß' == chr)
				arr[i] = 'ss';
			// add an "e" for german Umlaute:
			if ('äöü'.indexOf(chr) >= 0)
				arr[i] += 'e';
		}
		// all other chars:
		else {
			// remove char at beginning and following "-" (only 1 consecutive "-"):
			if (i == 0 || arr[i - 1] == '-' || arr[i - 1] == '')
				arr[i] = '';
			// replace with "-":
			else
				arr[i] = '-';
		}
	}
	// trim probable "-" from the end:
	while (arr[arr.length - 1] == '-' || arr[arr.length - 1] == '')
		arr.pop();
	return arr.join('');
}

function showVideoOverlay(vidID) {
	ML.link = page.basedir + vidID;
	ML.show('overlay');
}

function showFlashError(el) {
	if (page.lang == 'de') {
		txt = 'An dieser Stelle sollte ein Flash-Movie erscheinen. Bitte installieren Sie die neueste Version des Adobe Flash Players, indem Sie auf den unten stehenden Button klicken.';
		href = 'http://www.adobe.com/go/getflashplayer_de';
		alt = 'Adobe Flash Player installieren';
	}
	else {
		txt = 'A Flash Movie should appear in this place. Please install the latest version of the Adobe Flash Player by clicking on the button below.';
		href = 'http://www.adobe.com/go/getflashplayer';
		alt = 'Install Adobe Flash Player';
	}
	return el.adopt(
		new Element('h3').set('text', txt),
		new Element('p').adopt(
			new Element('a').adopt(
				new Element('img', {
					src: page.basedir + 'images/Get_Flash_Player.jpg',
					width: 160, height: 41, alt: alt
				})
			).set('href', href)
		)
	).addClass('error');
}

// ModaLay for videos in SAP-website
ModaLay.SAP = new Class({
	Extends: ModaLay,

	create: function(el){
		switch (el) {
			case 'content' :
				this.parent(el);
				this.content.adopt(
					new Element('div', {
						id: 'ml_videoplayer'
					}).adopt(
						showFlashError(new Element('div', {
							id: 'ml_videoplayer_flash'
						}))
					),
					new Element('div', {
						id: 'ml_related'
					}).adopt(
						new Element('div', {
							id: 'ml_related_flash'
						})
					)
				);
				break;
			case 'bottom' :
				this.parent(el);
				$('ml_close').set('text', page.lang == 'de' ? 'schließen' : 'close');
				var f_r = page.lang == 'de' ? 'für' : 'for';
				this.bottom.adopt(
					new Element('h1'),
					new Element('p'),
					new Element('div').adopt(
						new Element('a').set('text', 'Download ' + f_r + ' iPhone'),
						new Element('a').set('text', 'Download ' + f_r + ' Blackberry')
					).addClass('downl').setStyle('display', 'none'),
					new Element('div').adopt(
						new Element('a', {
							href: '#'
						}).addEvents({
							mouseout: addthis_close,
							click: function(){return false;}
						}).adopt(
							new Element('img', {
								src: page.basedir + 'images/addthis/lg-bookmark-en.gif',
								width: 125,
								height: 16,
								alt: 'Bookmark and Share',
								style: 'border:0'
							})
						)
					).addClass('addthis').setStyle('display', 'none')
				);
				this.bottom.set('slide', {
					onComplete: function(){
						this.bottom.getElements('.downl, .addthis').setStyle('display', 'block')
					}.bind(this)
				});
				break;
			default :
				this.parent(el);
				break;
		}
	},

	show: function(el){
		var vidID = page.clipID ? page.clipID
		: this.link.substring(this.link.lastIndexOf('/') + 1);
		switch (el) {
			case 'content' :
				this.parent(el);
				var l = page.lang == 'de' ? 2 : 1;
				if (swfobject.hasFlashPlayerVersion('9.0.0')) {
					if (!$('ml_videoplayer_flash').startFlash) {
						swfobject.createSWF({
							data: page.basedir + 'flash/main.swf',
							width: '720',
							height: '456'
						}, {
							flashVars: 'playerFormat=1&isFloater=true&vidID=' + vidID + '&l=' + l,
							//allowScriptAccess: 'always', // doesn't seem to work with: $('ml_videoplayer_flash')!!!
							allowFullScreen: 'true',
							menu: 'false',
							wmode: 'opaque'
						}, 'ml_videoplayer_flash');
					}
					if (!$('ml_related_flash').updateRelated) {
						swfobject.createSWF({
							data: page.basedir + 'flash/related.swf',
							width: '160',
							height: '456'
						}, {
							menu: 'false',
							wmode: 'opaque'
						}, 'ml_related_flash');
					}
				}
				break;
			case 'bottom' :
				$('ml_videoplayer').setStyle('visibility', 'visible');
				if ($('ml_videoplayer_flash').startFlash)
					$('ml_videoplayer_flash').startFlash(vidID);
				this.box.setStyle('height', 'auto');
				this.bottom.getElements('h1, p').set('text', '');
				this.bottom.getElements('.downl, .addthis').setStyle('display', 'none');
				break;
			default :
				this.parent(el);
				break;
		}
	},

	load: function(){
		this.show('content');
	},

	hide: function(){
		if ($('ml_videoplayer_flash').stopFlash) {
			ret = $('ml_videoplayer_flash').stopFlash();
			if (!ret) {
				swfobject.removeSWF('ml_videoplayer_flash');
				$('ml_videoplayer').adopt(new Element('div', {id: 'ml_videoplayer_flash'}));
			}
		}
		this.content.getElements('#ml_related, #ml_videoplayer').setStyle('visibility', 'hidden')
		this.bottom.getElements('.downl, .addthis').setStyle('display', 'none');
		relatedUpdated = false;
		this.parent();
		if (page.clipID) {
			var loca = page.basedir;
			if (page.lang == 'de')
				loca += page.lang;
			document.location = loca;
		}
	}

});
