var __abPlayerUser = 'gptv';
var __abPlayerBasePath = 'http://'+__abPlayerUser+'.abcdn.net/abPlayer3';
var __abPlayerUseVersion = '3.0';
var __abPlayerConfig = {};
var __abPlayerArrow = 'http://'+__abPlayerUser+'.abcdn.net/abPlayer3/images/playbutton.png';

var __abPlayerSettings = new Object();

__abPlayerSettings.category = new Object();
__abPlayerSettings.category.name = 'category';
__abPlayerSettings.category.width = 832;
__abPlayerSettings.category.height = 162;

__abPlayerSettings.article = new Object();
__abPlayerSettings.article.name = 'article';
__abPlayerSettings.article.width = 440;
__abPlayerSettings.article.height = 286;

__abPlayerSettings.mini = new Object();
__abPlayerSettings.mini.name = 'mini';
__abPlayerSettings.mini.width = 200;
__abPlayerSettings.mini.height = 150;

__abPlayerSettings.main = new Object();
__abPlayerSettings.main.name = 'main';
__abPlayerSettings.main.width = 832;
__abPlayerSettings.main.height = 430;


var AbPlayer = {}

AbPlayer.groupHash = {};

AbPlayer.embedPlayer = function abPlayerEmbed(embedObj) {	
	var container 		= embedObj.container;
	var playbackParams 	= embedObj.playbackParams;
	var playerParams 	= embedObj.playerParams;
	var groupId 		= embedObj.groupId;
	
	if (!this.groupHash[groupId])
		this.groupHash[groupId] = groupId + "_" + Math.round(Math.random()*1000000);
	
	// Will allow players to run on different pages.
	groupId = this.groupHash[groupId];
	
	// Get settings
	var setting			= __abPlayerSettings[playerParams.playerType];
	
	
	// Add params
	playbackParams['user'] = __abPlayerUser;
	playbackParams['type'] = setting.name;
	if (playbackParams['playerURL'])
		playbackParams['playerURL'] = unescape(playbackParams['playerURL']);
	
	// Create unique id
	var abPlayerId 		= 'abPlayer_'+playerParams.playerType+'_'+Math.round(Math.random()*1000000);
	
	// If dimensions is set to inherit, inherit width/height from container
	if (typeof playerParams.dimensions == 'string' && playerParams.dimensions == 'inherit') {	
		var _tmpElement = document.getElementById(container);
		playerParams.width = _tmpElement.offsetWidth;
		playerParams.height = _tmpElement.offsetHeight;
	}
	
	// If dimensions is set to default(or null). Use predefined width/height from settings
	if (typeof playerParams.dimensions == 'string' && playerParams.dimensions == 'default' || !playerParams.dimensions) {
		playerParams.width = setting.width;
		playerParams.height = setting.height;
	}
	
	// Add version control
	swfUri = __abPlayerBasePath + '/players/' + __abPlayerUseVersion + '/' + setting.name + ".swf";
	
	// Write abPlayer
	var __swfo = new SWFObject(swfUri,abPlayerId,playerParams.width,playerParams.height,"9",playerParams.bgColor);
	__swfo.addVariable('groupId',groupId);
	__swfo.addParam('allowfullscreen','true');
	__swfo.addParam('bgcolor','#000000');
	__swfo.addParam('allowScriptAccess','always');
	
	// Add swfobject params.
	for (var param in playbackParams)
		__swfo.addVariable(param,playbackParams[param]);
	
	
	// if player is article or mini, and autoplay is 0(or not set), we will fill the div with a clickable image instead.
	if ( (setting.name == 'article' || setting.name == 'mini') && ( !playbackParams['autostart'] || playbackParams['autostart'] == 0 ) ) {
		
		// Set autostart to 1.
		playbackParams['autostart']  = 1;
		
		// Create path to thumbnail.
		var name = playbackParams['playfile'].split('.')[0];
		var thumb = "http://" + playbackParams['path'] + "/_supportfiles/thumbnails/" + name + ".jpg";
		
		var writeArrow = __abPlayerArrow;
		if (setting.name == 'mini')
			writeArrow = '';
		var rnd = Math.round(Math.random()*100000);
		// Create html string
		var html = 	'<div onclick="AbPlayer.renderFlash(this);return false" id="'+container+'_clickarea#'+name+'#'+rnd+'" style="cursor:pointer;position:relative;width:'+ playerParams.width +'px;height:'+ playerParams.height +'px;">';
		html+=		'<img style="width:'+ playerParams.width +'px;height:'+ playerParams.height +'px;" src="'+thumb+'"/>';		
		html+=		'<div  style="cursor:pointer;position:absolute;top:0px;left:0px;width:'+ playerParams.width +'px;height:'+ playerParams.height +'px;background:url('+ writeArrow +');background-repeat:no-repeat;background-position:center"></div>';
		html+=		'</div>';
		
		// Write html
		document.getElementById(container).innerHTML = html;
		
		// Store params
		__abPlayerConfig[name + '#' + rnd]	 			= {};
		__abPlayerConfig[name + '#' + rnd].swfObj		= __swfo;
		__abPlayerConfig[name + '#' + rnd].container	= container;
		
		
	}
	else { // Else, render the flash player

		//__swfo.write(container);
		this.writeSWF(__swfo,container);
	}
	
	

}

AbPlayer.writeSWF = function(swfo,container) {
	
	swfo.useExpressInstall(exinst);
	var exinst = 'http://'+__abPlayerUser+'.abcdn.net/abPlayer3/scripts/expressinstall.swf';
	
	if (!swfo.write(container)) {
		// Player could not be rendered. Show download flash box.
		
		var cont = document.getElementById(container);
	
    var forceDownload = '<object style="display:none;visibility:hidden" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" width="1" height="1" id="abp_SOredirect" align="middle" SWLIVECONNECT="true"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="'+exinst+'" /><param name="quality" value="high" /><param name="bgcolor" /><embed src="'+exinst+'" quality="high" width="1" height="1" name="abp_SOredirect" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" SWLIVECONNECT="true" pluginspage="http://get.adobe.com/flashplayer/" /></object><div style="background: rgb(38, 58, 79);display:block;width:'+cont.offsetWidth+'px;height:'+cont.offsetHeight+'px"><div style="padding:15px;color:#FFFFFF;display:block">F&ouml;r att kunna se GPTV beh&ouml;vs senaste versionen av Adobe Flash Player.<br/><a style="text-decoration:underline;color:#CCC;display:inline" href="http://get.adobe.com/flashplayer/">Klicka h&auml;r f&ouml;r att h&auml;mta hem den.</a></div></div>';
		
		
		cont.innerHTML = forceDownload;
	}
}

AbPlayer.embedPlayers = function(embedArray) {
	
	for (var i=0;i<embedArray.length;i++) {
		var embedObj = embedArray[i];
		this.embedPlayer(embedObj);
	}
	
}

AbPlayer.renderFlash = function(container) {

	var name = container.id.split('#')[1];
	var rnd = container.id.split('#')[2];
	var container = container.id.split('_')[0];
	
	

	var cfg = __abPlayerConfig[name+"#"+rnd];

	//cfg.swfObj.write(container);
	this.writeSWF(cfg.swfObj,container);
	
}

AbPlayer.gotoTop = function() {
	
	// Get tags

	tags = $$('embed[id^=abPlayer_main]', 'object[id^=abPlayer_main]');
	
	tags.each(function(item,index){
		
		document.location = '#'+item.id;
		return;
	
	})
	

}

