
(function($) {
    var DEFAULTS = {
        domId: '#mainPlayer',
        flowPlayer: 'files/flowplayer-3.2.2.swf',
        flvMovie: 'files/dummy_video.flv',
        h264Movie: 'files/dummy_video.mp4',
        baseUrl: 'http://localhost/',
        previewImage: 'files/dummy_video_preview.gif',
        playerOptions: {
            clip: {
                autoPlay: false, 
                autoBuffering: false
            },
            canvas: {
                backgroundColor: 'transparent',
                backgroundGradient: 'none' 
            },
            screen: {
                backgroundColor: 'transparent',
                bottom: 0
            },
            plugins:  { 
                controls:  { 
                    width: '90pct',
		    bottom: '6pct',
		    backgroundColor: 'transparent', 
                    all:false, 
                    scrubber:true,
                    time: true,
                    volume: true,
                    mute: true,
                    play: true,
                    backgroundGradient: 'none',
                    autoHide: 'always',
                    hideDelay: 2000,
                    sliderColor: '#e6e1da',
                    sliderGradient: 'none',
                    progressColor: '#ffffff',
                    progressGradient: 'none',
                    bufferColor: '#535251',
                    volumeSliderColor: '#535251',
                    tooltipColor: '#e5e1d9',
                    tooltipTextColor: '#535251'
                }
            }
        }    
    };
    
    var supportsH264Video = function() {
	var element = document.createElement('video');
	return (!!element.canPlayType && element.canPlayType('video/mp4; codecs="avc1.42E01E, mp4.40.2"'));
    };
 
    var loadHTML5Video= function(config) {
        $('a.playerSwitch', '#player').remove();
        var code = '<video style="display: block;" src="' + config.h264Movie + '" width="580" height="354" controls autobuffer></video>';
        
        var container = $(config.domId);
        container.empty().html(code);
        if ('' != config.flvMovie) {
        	var flashButton = $('<a class="playerSwitch" href="#">Flash Player</a>').click(function() {
        		loadFlashplayer(config);
        		return false;
        	});
        	container.parents().eq(1).append(flashButton);
        }
    };

    var loadFlashplayer = function(config) {

	$('a.playerSwitch', '#player').remove();
        config.playerOptions.clip.baseUrl = config.baseUrl;
        config.playerOptions.clip.url = config.flvMovie;
        config.playerOptions.canvas.backgroundImage = 'url(' + config.previewImage + ')';
	
	var container = $(config.domId);
	container.empty().flowplayer({src: config.flowPlayer, wmode: 'transparent'}, config.playerOptions);
	if ('' != config.h264Movie && supportsH264Video()) {
		var html5Button = $('<a class="playerSwitch" href="#">HTML5 Player</a>').click(function() {
			loadHTML5Video(config);
			return false;
		});
		container.parents().eq(1).append(html5Button);
    	}
    };

    var loadPlayer = function(settings) {
    	
        var config = $.extend({}, DEFAULTS, settings);
	if ('' != config.h264Movie && supportsH264Video()) {	
           loadHTML5Video(config);
	} else {
	  loadFlashplayer(config);
	}
    };
   $.extend({loadVideoPlayer: loadPlayer});
})(jQuery);

