/* 
	VideoPlayer Class
	-----------------
	For embedding video on RB.com
	
	Example embded: 
	VideoPlayer.init(true, {data_url: '/flash/xml/video-data.xml'});
	
	The player can be colored with CSS. The default styles are:
	
	.video-player-primary-up{color:#FF0000;}
	.video-player-primary-over{color:#660000;}
	.video-player-primary-down{color:#330000;}
	.video-player-secondary-up{color:#0000FF;}
	.video-player-secondary-over{color:#000066;}
	.video-player-secondary-down{color:#000033;}
	
	
*/

var VideoPlayerRB = {

	options: {
		width: "620",
		height: "349",
		player_swf: "/cs/RedBull/flash/RBPlayerNew.swf",
		data_url: null,
		insert_id: "video-player",
		quality: "",
		// for testing purposes only. should not be used
		stream: "",
		install_swf: RBConfig.install_player_swf,
		hide_bull: null,
		autoplay: 0
	},
	
  init: function(standardPlayer, options, allowResize) {
    
		//Hiding the Bull Logo from Air-Race Site.
		if(eval(RBConfig.site_Name)!=-1) {
			VideoPlayerRB.options['hide_bull'] = true;
		}
		//merge passed options with defaults
		for(attr in VideoPlayerRB.options) {
		 	if(typeof(options[attr]) != 'undefined' && options[attr] != null) {
	    		VideoPlayerRB.options[attr] = options[attr];
	  		}
		}

		
		if(!standardPlayer){
			VideoPlayerRB.setupWidePlayer();
						
			VideoPlayerRB.options['width'] = '960';
			VideoPlayerRB.options['height'] = '540';

		}else{
			VideoPlayerRB.options['quality'] = "low";
		}
		
		VideoPlayerRB.setupColors();
		

		VideoPlayerRB.loadPlayer();
		if(allowResize){VideoPlayerRB.addToggleLink(standardPlayer)};
		
		return true;
  },
	RGBtoHex: function(rgbString){
		function toHex(N){
		 if (N==null) return "00";
		 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
		 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
		 return "0123456789ABCDEF".charAt((N-N%16)/16)
		      + "0123456789ABCDEF".charAt(N%16);
		};
		if(rgbString.indexOf('#') == 0){
			//IE
			return "0x"+ rgbString.substring(1);
		}else{
			//everything else
			var rgbArr = rgbString.substring(4, rgbString.length - 1).split(/\s*,\s*/);
			return "0x"+toHex(rgbArr[0])+toHex(rgbArr[1])+toHex(rgbArr[2]);
		}

	},
	
	/* Loads the player colors from the CSS */
	setupColors: function(){
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-primary-up"></div>');
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-primary-over"></div>');
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-primary-down"></div>');
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-secondary-up"></div>');
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-secondary-over"></div>');
		$('#'+VideoPlayerRB.options['insert_id']).append('<div class="video-player-secondary-down"></div>');
				
		VideoPlayerRB.options['primary_up_color'] = VideoPlayerRB.RGBtoHex($('.video-player-primary-up').css('color'));
		VideoPlayerRB.options['primary_over_color'] = VideoPlayerRB.RGBtoHex($('.video-player-primary-over').css('color'));
		VideoPlayerRB.options['primary_down_color'] = VideoPlayerRB.RGBtoHex($('.video-player-primary-down').css('color'));
		VideoPlayerRB.options['secondary_up_color'] = VideoPlayerRB.RGBtoHex($('.video-player-secondary-up').css('color'));
		VideoPlayerRB.options['secondary_over_color'] = VideoPlayerRB.RGBtoHex($('.video-player-secondary-over').css('color'));
		VideoPlayerRB.options['secondary_down_color'] = VideoPlayerRB.RGBtoHex($('.video-player-secondary-down').css('color'));

	},
	setupWidePlayer: function(){
		var widePlayer = $('<div id="featured-content"></div>').append($('#main-content #category-navigation')).append($('#main-content h2').clone()).append($('#main-content #video-player'));
    $('#main-content').before(widePlayer);
		
		//console.log($('#main-content ul#category-navigation'));
		//$('#main-content #category-navigation').remove();
		$('#main-content h2').remove();
		$('#main-content #video-player').remove();
		return true;
	},
	addToggleLink: function(standardPlayer){
		
 
		if(standardPlayer){
			//todo - bind JS update event to this 
			var url = $.query.SET('quality', 'hq');
			$("#"+VideoPlayerRB.options['insert_id']).after($('<br /><a href="'+url+'" class="video-quality">'+translate('Watch in high quality')+'</a>'));
		}else{
			//todo - bind JS update event 
			var url = $.query.SET('quality', 'standard');
			$("#"+VideoPlayerRB.options['insert_id']).after($('<br /><a href="'+url+'" class="video-quality">'+translate('Watch in standard quality')+'</a>'));
		}
		return true;
	},
 	loadPlayer: function() {
		VideoPlayerRB.options['data_url'] = escape(VideoPlayerRB.options['data_url']);
		var flashvars = {
			data_url: VideoPlayerRB.options['data_url'],
			buffer_size: 1,
			primary_up_color: VideoPlayerRB.options['primary_up_color'],
			primary_over_color: VideoPlayerRB.options['primary_over_color'],
			primary_down_color: VideoPlayerRB.options['primary_down_color'],
			secondary_up_color: VideoPlayerRB.options['secondary_up_color'],
			secondary_over_color: VideoPlayerRB.options['secondary_over_color'],
			secondary_down_color: VideoPlayerRB.options['secondary_down_color'],
			quality: VideoPlayerRB.options['quality'],
			stream: VideoPlayerRB.options['stream'],
			on_redbull:"yup",
			hide_bull: VideoPlayerRB.options['hide_bull'],
			autoplay: VideoPlayerRB.options['autoplay']
		};

		var params = {
			width: VideoPlayerRB.options['width'],
			height: VideoPlayerRB.options['height'],
			quality: "high",
			pluginspage: "http://www.macromedia.com/go/getflashplayer",
			align: "middle",
			play: "true",
			loop: "true",
			scale: "noscale",
			wmode: "window",
			devicefont: "false",
			bgcolor: "#000000",
			menu: "true",
			allowScriptAccess: "sameDomain",
			allowFullScreen: "true",
			wmode:'transparent'
		};
		var attributes = {id: "RBPlayer"};		
		try{
			swfobject.embedSWF(VideoPlayerRB.options['player_swf']+"?data_url="+VideoPlayerRB.options['data_url'], VideoPlayerRB.options['insert_id'], VideoPlayerRB.options['width'], VideoPlayerRB.options['height'], "9.0.115", VideoPlayerRB.options['install_swf'], flashvars, params, attributes);
		}catch(evt){}
		return true;
	}
};
