// Global var to track what's playing
var nowPlayingOnBonanza = "";
var initCount = 1;
var loadplay = false;
var playThisAsset;

window.addEvent('load', function() {
	bonanzaFunctions.playerOnLoad();
});

window.addEvent('domready', function() {
			document.getElement('#columnWrap').setStyle('height', 'auto');
									  });

var bonanzaFunctions = {

	initGrid: function() {
		
		$$('.gridWrapper').each(function(el) {
			bonanzaFunctions.gridRender(el, 'normal')
		});
		$$('.gridWrapperDRK').each(function(el) {
			bonanzaFunctions.gridRender(el, 'drk')
		});
		
		$$('.userRatingStar').each(function(el) {
		el.addEvent('mouseover',
		function() {
			bonanzaFunctions.starPower(el.getProperty('title'));
		});
	
		el.addEvent('mouseout',
		function() {
			bonanzaFunctions.starPower(0);
		});
	
		el.addEvent('click',
		function() {
			bonanzaFunctions.getRating(nowPlayingOnBonanza, el.getProperty('title'));
		});
		
		var relatedWrapper = new Element('div', {'id':'relatedClipsWrapper'});
        relatedWrapper .inject($('bonanzaSearch'), 'after');
		
		//window.addEvent('domready', function() {
			//console.log('domready:event');
			//initCount += 1;
			//bonanzaFunctions.playerOnLoad();
			//console.log("Ready to play");
		//});
		
	});
	
	},
	
	playerOnLoad: function() {
		//console.log('domready:playerOnLoad');
		initCount ++;
		bonanzaFunctions.playAsset();
	},	
	
	playAsset: function() {
		if (initCount != 2){
			return
		} 
		//console.log("in playAsset delayed startPlay");
		setTimeout("bonanzaFunctions.startPlay()", 400);
		//bonanzaFunctions.startPlay();
	},
	
	startPlay: function(){
		//console.log("startPlay");
		
		var queryS = window.location.search.substring(1).parseQueryString();
	
		if (queryS.assetId){
			playThisAsset = queryS.assetId;
		}else if (queryS.AssetId){
			playThisAsset = queryS.AssetId;
		}else{
			playThisAsset = "";
		}
		if (null != document.getElement('#playerWrapper') ){
			if(null != document.getElement('.listItem') && null== document.getElement('.resentsContentWrapper .listItem')) {
				var firstAvailableAsset = document.getElement('.listItem').getProperty('Id');
			} else {
			
				// Get the playerWrapper
				var playerWrapper = document.getElement('#playerWrapper');
			
				//Show playerwrapper
				playerWrapper.setStyle('display', 'block');
			
				//Add div to wrapper
				var noAssetsFound = new Element('div', {id: 'noAssetsFound'});
				playerWrapper.adopt(noAssetsFound);
			
				var noAssetsTxt = 'Bonanza fandt intet resultat - Beklager!';
				noAssetsFound.set('text', noAssetsTxt);
			
			
				//Css stuff - I'll clean this up
			
				playerWrapper.setStyle('position', 'relative');
			
				noAssetsFound.setStyles({
				position: 'absolute',
				width: '100%',
				height: '100%',
				backgroundColor: '#323231',
				top: 0,
				left: 0,
				color: '#fff',
				fontWeight: 'bold',
				textAlign: 'center',
				lineHeight: '385px',
				opacity: 0
				});
			
				//Fade the message in..
				noAssetsFound.fade(1);

				document.getElement('#forList').setStyle('display', 'block');
			}
		}
	
		if (playThisAsset != "" && $(playThisAsset) != "") {
			$(playThisAsset).onclick();
			bonanzaFunctions.playMe(playThisAsset);
		} else if ($(firstAvailableAsset) != null) {
			$(firstAvailableAsset).onclick();
			bonanzaFunctions.playMe(firstAvailableAsset);
		}
		
	},
	
	
	gridRender: function(wrp, type) {
	
		// Create tab container for this grid
		var grdTab = new Element('ul', {
			id: wrp.getProperty('id') + 'Tab'
		});
	
		grdTab.inject(wrp, 'top');
		grdTab.addClass('tabs');
	
		var firstTab = true;
		// Add tab for each for wrapper in grid
		$$('#' + wrp.getProperty('id') + ' .tabTitle').each(function(el) {
			
			
			// MSAN hack snafu
			var doLink = el.getAttribute && el.getAttribute('href') && 'string' == typeof el.getAttribute('href');
			
			var nextTabTxt = new Element('li');
			var nextTab = new Element('a', {
				id: el.get('text'),
				href: doLink ? el.getAttribute('href') : 'javascript:void(0);', // MSAN hack
				text: el.get('text')
			});
	
			// Add margin for DRK logo
			if (firstTab && type == 'drk') {
				nextTabTxt.setStyle('margin-left', '120px');
			}
			firstTab = false;
			// Add effects for each tab in grid
			nextTab.addEvent('click',
			function() {
	
				$$('#' + wrp.getProperty('id') + ' .tabWrapper').removeClass('visible');
				el.getParent().addClass('visible');
	
				$$('#' + wrp.getProperty('id') + ' .tabs li').removeClass('selected');
				nextTabTxt.addClass('selected');
	
	
				$$('#' + wrp.getProperty('id') + ' .paging').setStyle('display', 'none');
				el.getParent().getNext().setStyle('display', 'block');
				//console.log(el.getParent().getNext());
	
	
			});
	
			// Inject content in tab container
			nextTabTxt.inject(grdTab, 'bottom');
			nextTab.inject(nextTabTxt, 'top');
			nextTabTxt.addClass('tabTxt');
	
		});
	
		// Display wich clip is playing
		$$('.Video').each(function(el) {
			var isPlaying = new Element('span');
			isPlaying.addClass('isPlaying');
			isPlaying.inject(el, 'top');
			isPlaying.setStyle('display', 'none');
	
			el.addEvent('click',
			function() {
				$$('.isPlaying').setStyle('display', 'none');
				isPlaying.setStyle('display', 'block');
			});
	
		});
	
		$$('#' + wrp.getProperty('id') + ' .tabWrapper').each(function(el) {
			new DR.Bonanza.Grid.Paging({
				grid: $(el),
				itemsPerPage: 12
			});
		}
		);
	
		//Set default image
		$$('.listItem img').each(function(el) {
			if (el.getProperty('src') == null) {
				el.setProperty('src', 'http://www.dr.dk/tjenester/bonanzaweb/grid/img/default_video.jpg');
			}
		});
	
		$$('.collection').each(function(el) {
			var isCollection = new Element('span');
			isCollection.addClass('ribbon');
			isCollection.inject(el, 'top');
		});
	
		if (type == 'drk') {
			var drkLogo = new Element('img', {
				'class': 'drkLogo',
				'src': '/tjenester/bonanzaweb/Grid/img/DRKlogo.png'
			});
			drkLogo.inject(wrp, 'top');
		}
	
		// Init the first tab in each grid
		document.getElement('#' + wrp.getProperty('id') + ' .tabWrapper').addClass('visible');
		
		if(undefined != document.getElement('#' + wrp.getProperty('id') + ' .paging'))
		document.getElement('#' + wrp.getProperty('id') + ' .paging').setStyle('display', 'block');
		
		document.getElement('#' + wrp.getProperty('id') + ' .tabs li').addClass('selected');
	
	},
	
	getAutoplay: function(){
		
		var queryS = window.location.search.substring(1).parseQueryString();
		var rtnBool = false;
		if ((queryS.assetId || queryS.AssetId) & !loadplay) rtnBool = true;
		if (loadplay) rtnBool = true;
		loadplay = true;
		return rtnBool;	
	},
	
	newPlaylist: function(obj) {
		
		bonanzaFunctions.updateRelatedClips(obj.AssetId);
		
		// Scroll playerinfo to top
		var BonanzaPlayerFx = new Fx.Scroll($('rightCol')).toTop();
		
		//set urls
		var firstFrameImage;
		var mediaFileLow;
		var mediaFileMedium;
		var mediaFileHigh;
		var audioFile;
		
		//debug
		if (!obj.Files.length) obj.Files = new Array(obj.Files.AssetFileView);
			
		var len = obj.Files.length;
		
		
		for (var i=0; i < len; i++ )
		{
			switch (obj.Files[i].Type){
				case "VideoLow":
					mediaFileLow = obj.Files[i].Location;
					break;
					
				case "VideoMid":
					mediaFileMedium = obj.Files[i].Location;
					break;
				case "VideoHigh":
					mediaFileHigh = obj.Files[i].Location;
					break;
				case "Thumb":
					firstFrameImage = obj.Files[i].Location;
					break;
				case "Audio":
					audioFile = obj.Files[i].Location;
					break;
				
			}
		}
		
		//Add content to playerinfo
		$("clipTitle").set('text', obj.Title);
		$("clipDuration").set('text', bonanzaGeneral.msToTimeString(Number(obj.Duration)));
		$("clipFirstPublished").set('text', obj.FirstPublished.substring(0,10));
		$("clipViews").set('text', obj.Views);
		$("clipDescription").set('text', obj.Description);
		$("clipColophon").set('text', obj.Colophon);
		
		if(obj.Actors != "none")
			$("clipActors").set('text', obj.Actors);
			
		$("smallRating").setStyle('background-image', 'url(http://www.dr.dk/tjenester/bonanzaweb/img/rating/rating_purple' + Math.round(2 * obj.Rating) * 5 + '.png)');
		$("clipStill").set('src', firstFrameImage);
		$("disableRating").setStyle('display', 'none');
		$("userRating").setStyle('display', 'block');
		
		//set share vars
		var pathArray = window.location.href.split( '?' );
		
		var getParams = window.location.search.substring(1).parseQueryString();
		
		if(pathArray.length < 2){
			addthis_url = pathArray[0] + "?assetId=" + obj.AssetId;			
		} else {
			addthis_url = pathArray[0] + "?needle=" + getParams.needle + "&type=" + getParams.type + "&limit=" + getParams.limit + "&assetId=" + obj.AssetId;
		}
		
		//email
		$('addthisEmailBtn').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/email/offer?url=' + escape(addthis_url) +'&title='+ escape(obj.Title) +'&content=' + obj.Description + '&lng=da');

		$('addthisTwitterBtn').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/twitter/offer?url=' + escape(addthis_url) +'&title='+ escape(obj.Title) +'&content=' + obj.Description + '&lng=da');
		$('addthisFacebookBtn').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/forward/facebook/offer?url=' + escape(addthis_url) +'&title='+ escape(obj.Title) +'&content=' + obj.Description + '&lng=da');
		$('addthisMoreBtn').setAttribute('href', 'http://api.addthis.com/oexchange/0.8/offer?url=' + escape(addthis_url) +'&title='+ escape(obj.Title) +'&content=' + obj.Description + '&lng=da');
		
	addthis_config = {
		ui_cobrand: "Danmarks Radio",
		ui_language: "da",
		username: "drdk",
		ui_header_color: "#ffffff",
		ui_header_background: "#1188C1"
	 }; 
	 

	addthis_share = {
		email_vars: { imageurl : firstFrameImage,
		logourl : firstFrameImage }
	}; 

	//autoplay
	var autoplayStr = (bonanzaFunctions.getAutoplay()) ? '"autoplay":true,' : '';
	
	
	// Show or hide playlistGrid depending on the amount of listItems
	if(document.getElement('#forList').getElements('.listItem').length < 2 && window.location.pathname != "/bonanza/search.htm" ) {
		autoplayStr = '"autoplay":true,';
	} else {
		document.getElement('#forList').setStyle('display', 'block');	
	}
		
		//Format json string for player (deafuls to medium)
		var defaultLow = (mediaFileHigh || mediaFileMedium ) ? "false":"true";
		var defaultMedium = "true";
		var defaultHigh = (mediaFileMedium) ? "false":"true";
		
		var jsonString = '[';
		if (mediaFileHigh) {
			jsonString +=  '{'+autoplayStr+' "default":'+defaultHigh+', "quality":"high",   "channels":[ { "title":"' + bonanzaFunctions.addslashes(obj.Title) + '", "duration": "' + obj.Duration + '", "assetId": "' + obj.AssetId + '", "mediaFile":"' + mediaFileHigh + '", "fileFormat":"FLV", "firstframeImage": "' + firstFrameImage + '", "gemius_materialId":"019_'+ obj.AssetId +'&' + bonanzaFunctions.addslashes(obj.Title) + '", "gemius_live":false, "gemius_customPackage":[{"name":"QUALITY", "value":"High"}, {"name":"CHANNEL", "value":"Bonanza"}, {"name":"AUTOPLAY", "value":"No"}] } ] } ';
			if (mediaFileMedium || mediaFileLow ) jsonString += ',';
		}
		if (mediaFileMedium) {
			jsonString +=  '{ '+autoplayStr+' "default":'+defaultMedium+',  "quality":"medium", "channels":[ { "title":"' + bonanzaFunctions.addslashes(obj.Title) + '", "duration": "' + obj.Duration + '", "assetId": "' + obj.AssetId + '", "mediaFile":"' + mediaFileMedium + '", "fileFormat":"FLV", "firstframeImage": "' + firstFrameImage + '", "gemius_materialId":"019_'+ obj.AssetId +'&' + bonanzaFunctions.addslashes(obj.Title) + '", "gemius_live":false, "gemius_customPackage":[{"name":"QUALITY", "value":"Medium"},{"name":"CHANNEL", "value":"Bonanza"}, {"name":"AUTOPLAY", "value":"No"}] } ] } '; 
			if ( mediaFileLow ) jsonString += ',';
		}
		if (mediaFileLow) {
			jsonString +=  '{ '+autoplayStr+' "default":'+defaultLow+', "quality":"low",    "channels":[ { "title":"' + bonanzaFunctions.addslashes(obj.Title) + '", "duration": "' + obj.Duration + '", "assetId": "' + obj.AssetId + '", "mediaFile":"' + mediaFileLow + '", "fileFormat":"FLV", "firstframeImage": "' + firstFrameImage + '", "gemius_materialId":"019_'+ obj.AssetId +'&' + bonanzaFunctions.addslashes(obj.Title) + '", "gemius_live":false, "gemius_customPackage":[{"name":"QUALITY", "value":"Low"},{"name":"CHANNEL", "value":"Bonanza"}, {"name":"AUTOPLAY", "value":"No"}] } ] } ';
		}
		if (audioFile) {
			jsonString +=  '{ '+autoplayStr+' "default":true, "quality":"low",    "channels":[ { "title":"' + bonanzaFunctions.addslashes(obj.Title) + '", "duration": "' + obj.Duration + '", "assetId": "' + obj.AssetId + '", "mediaFile":"' + audioFile + '", "fileFormat":"mp3", "firstframeImage": "' + firstFrameImage + '" } ] } ';
		}
		jsonString += ' ]';
	
		//Send json string to player
		$('BonanzaPlayer').setChannels(jsonString);
		
		//Scroll window to top
		BonanzaPlayerFx = new Fx.Scroll(window).toTop();
	
		//Keep track of what's playing
		nowPlayingOnBonanza = obj.AssetId;
	
		return false;
	
	},
	
	updateRelatedClips: function(assetId) {
		var req = new Request.HTML({
					method: 'get',
					url: 'http://www.dr.dk/tjenester/bonanzaWeb/grid/listFromOthersViewed.drxml?assetId=' + assetId + "&limit=3",
					update: $('relatedClipsWrapper')
				}).send();
	},	
	
	// Used for user clipratings
	getRating: function(assetId, rating) {
		var setRating = new Request({
			method: 'get',
			url: 'http://www.dr.dk/bonanzapp/service.svc/setRating'
		});
		setRating.send('assetId=' + assetId + '&rating=' + rating);
	
		$("disableRating").setStyle('display', 'block');
		$("userRating").setStyle('display', 'none');
	},
	
	starPower: function(count) {
		$$('.userRatingStar').each(function(el) {
			if (count > 0) {
				if (el.getProperty('title') <= count)
				el.setStyle('background-image', 'url(/tjenester/bonanzaweb/img/rating/rating_big_gold.png)');
			} else {
				el.setStyle('background-image', 'url(/tjenester/bonanzaweb/img/rating/rating_big_grey.png)');
			}
		});
	},
	
	//Display play-arrow in grid
	playMe: function(obj) {
		if ($$('.isPlaying')) $$('.isPlaying').setStyle('display', 'none');
		document.getElement('#' + obj).getElement('.isPlaying').setStyle('display', 'block');
	},
	
	addslashes: function(str) {
		str=str.replace(/\\/g,'\\\\');
		str=str.replace(/\'/g,'\\\'');
		str=str.replace(/\"/g,'\\"');
		str=str.replace(/\0/g,'\\0');
		return str;
	}
};
