﻿/*--------------------------------------------------------------------------------------------------------------------------
USAGE: 		
				call mediaPlayer() to create a new object to access the methods below

CONSTRUCTOR ARGUMENTS:

				newObjReference: name of the object given by the developer
				container: container (div) object to contain media player object

METHODS:
				play(filePath - optional) - starts playback
				stop() - stops playback
				pause() - pauses playback
				getPlayState() - returns the play state of the player
				registerObservers()
				catchErrors() - prevents errors from alerting to user and filters them to the event handlers
								netscape will need applets to catch errors
				enableContextMenu()
				setFullscreen(boolean)
				isFullscreen() - returns boolean
				getClipTitle() - returns the title field of clip playing
				getCopyright() - returns the copyright field of clip playing
				getFileName() - returns the filename of clip playing
				getAuthor() - returns the author field of clip playing
				setVolume(level) -  sets the volume
				

EXAMPLE:	
				var myplayer = new mediaPlayer('wmp');
				myplayer.setFullscreen(true);
--------------------------------------------------------------------------------------------------------------------------*/
 
    function mediaPlayer(newObjReference, container,name,width,height){
    
        //-------------------------------------------------------------------------------------
        // local class variables
        //-------------------------------------------------------------------------------------
    
        //reference to the media player object
        c_mpReferenceObj = newObjReference;
        //reference to container for media player object
        c_containerRef = simpleFindObj(container);
        //reference to name of player
        c_playernameRef = name;
        //detect browser
        c_browser = detect_browser();  
        c_PlayerObj = null;        
        c_width = width;
        c_height = height;
        
        
        
        //-------------------------------------------------------------------------------------
        // WMP Player Creation
        //-------------------------------------------------------------------------------------
           function CreateMSIE(source){
		        try{
		            var screenimage = '<div id="screencover" class="screenimage"></div>';                  
                    var screen = '<div id="screen" style="display:none"><object id="'+c_playernameRef+'" classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" width="'+c_width+'" height="'+c_height+'">'
                            + ' <param name="AutoStart" value="true">'
                            + ' <param name="uiMode" value="full">'
                            + ' <param name="enableContextMenu" value="false">'
                            + ' <param name="stretchToFit" value="false">'      
                            + ' <param name="volume" value="100">' 
                            + ' <param name="ShowControls" value="0">'
		 	                + ' <param name="URL" value="'+source+'">'
			                + '<EMBED id="'+c_playernameRef+'" type="application/x-mplayer2"'
			                +   ' pluginspage="http://download.microsoft.com/download/winmediaplayer/nsplugin/6.4/WIN98/EN-US/wmpplugin.exe"'
			                +	' src="'+source+'"'
			                +	' AUTOSTART="1"'
			                +	' WIDTH="'+c_width+'"'
			                +	' HEIGHT="'+c_height+'"></EMBED></object></div>';                                         
                    c_containerRef.innerHTML = screenimage + screen;
                    c_PlayerObj = simpleFindObj(c_playernameRef);
                } catch(err){
                    alert(err.description);
                }           
           }
           function CreateSafari(source){
		  try{  
		       var screenimage = '<div id="screencover" class="screenimage"></div>';  
		            /*             
                    var screen = '<div id="screen" style="display:none"><EMBED id="'+c_playernameRef+'" type="application/x-mplayer2"'
			                +   ' pluginspage="http://download.microsoft.com/download/winmediaplayer/nsplugin/6.4/WIN98/EN-US/wmpplugin.exe"'
			                +	' src="'+source+'"'
			                +	' AUTOSTART="1"'
			                +	' WIDTH="'+c_width+'"'
			                +	' HEIGHT="'+c_height+'"></EMBED></div>';  
			         */          
		     var screen = '<div id="screen" style="display:none"><OBJECT id="'+c_playernameRef+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="'+c_width+'" height="'+c_height+'" codebase="http://www.apple.com/qtactivex/qtplugin.cab">'
                    + '<param name="src" value="'+source+'">'
                    + '<param name="autoplay" value="true">'
                    + '<param name="controller" value="true">'
                    + '<param name="loop" value="false">'
                    + '<EMBED id="'+c_playernameRef+'" src="'+source+'" width="'+c_width+'" height="'+c_height+'" autoplay="true"'
                    + ' controller="true" loop="false" bgcolor="#000000" pluginspage="http://www.apple.com/quicktime/download/">'
                    + ' </EMBED>'
                    + ' </OBJECT></div>'  	
                    //alert(screen);		                                    
                    c_containerRef.innerHTML = screenimage + screen;
                    c_PlayerObj = simpleFindObj(c_playernameRef);
                } catch(err){
                    alert(err.description);
                }             
           }
           function CreateFirefox(source){
		        try{  
		            var screenimage = '<div id="screencover" class="screenimage"></div>';              
                    var screen = '<div id="screen" style="display:none"><embed id="'+c_playernameRef+'" type="application/x-mplayer2"'
			                +	' src="'+source+'"'
			                +	' autostart="true"'
			                +	' width="'+c_width+'"'
			                +	' height="'+c_height+'"></embed></div>';                                         
                    c_containerRef.innerHTML = screenimage + screen;
                    c_PlayerObj = simpleFindObj(c_playernameRef);
                } catch(err){
                    alert(err.description);
                }                  
           }                 

        
       
        //-------------------------------------------------------------------------------------
        // Class Functions
        //-------------------------------------------------------------------------------------
            function setMediaPlayerSourceFile(fileURL) {
                switch (c_browser) {
		            case 'MSIE':
			            c_PlayerObj.URL = fileURL;
			            coverScreen(false);
			            break;
		            case "Safari":
		                CreateSafari(fileURL);
		                coverScreen(false);
		                //alert('setting safari video to = ' + fileURL);
			            //c_PlayerObj.src =  fileURL;
			            break;
		            case "Firefox":
			            c_PlayerObj.src =  fileURL;
			            c_PlayerObj.src = fileURL;
			            coverScreen(false)
			            //c_PlayerObj.controls.play();
			            break;			    
		            default:
		                 //c_PlayerObj.URL =  fileURL;
		                 break;
			            //mPlayerObj.SetFileName(fileURL);        
                
                }
            }
                     
           function startMediaPlayer(){
              if (arguments.length > 0)
	            setMediaPlayerSourceFile(arguments[0]);
           }
           
           function stopMediaPlayer(){
           	        //mPlayerObj.Stop();
                switch (c_browser) {
		            case 'MSIE':
			            c_PlayerObj.controls.stop();
			            coverScreen(true);
			            break;
		            case "Safari":
			            CreateSafari('empty');
			            break;
			        case 'Firefox':
			            c_PlayerObj.src =  '';
			            c_PlayerObj.src = '';
			            coverScreen(true);    			        
			            break;
		            default:
		                 break;
			            //mPlayerObj.SetFileName(fileURL);        
                
                }
           }
           
           function coverScreen(coverIt){
                try{
                    var cover = simpleFindObj("screencover");
                    var screen = simpleFindObj("screen");
                    if (coverIt){
                        cover.style.display="";
                        screen.style.display="none";
                                        
                    } else {
                        cover.style.display="none";
                        screen.style.display="";                                        
                    }
                }catch(err){
                
                }
           
           
           }
           
           function createPlayerMethods() {    
                mediaPlayer.prototype.play = startMediaPlayer;	
                mediaPlayer.prototype.stop = stopMediaPlayer;
           }  
        
        
        //-------------------------------------------------------------------------------------
        // Class Initialization Code
        //------------------------------------------------------------------------------------- 
        switch (c_browser) {
            case 'MSIE':
                CreateMSIE('');
                break;
		    case 'Safari':
                CreateSafari('empty');
                break;
		    case 'Firefox':    
		        CreateFirefox('');        
		        break;
		     default:
        } //end swith         
        createPlayerMethods();
         
        
        
    } //end media player 2 class







