// JScript File
// Affiche les multimédias dans les cours
//
// Stéphane Graziano Nov.2005
// Ne volez pas les scripts ! demandez les par email !
// you musn't steal scripts ! ask for possede them by mail !
// slappyto.net


function getFlashObject(movieName)
{
  if (window.document[movieName]) 
      return window.document[movieName];
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  else
    return document.getElementById(movieName);
}


function StartPlayer(BoxId,file,type,width,height)
{
    StartPlayerEngine(BoxId,file,type,width,height,"");
}

function StartPlayerEngine(BoxId,file,type,width,height,path)
{

    _PlayerBox = myGetElementById(BoxId);    
    _ZoomBox = myGetElementById(BoxId + "Zoom");
    

    if(_PlayerBox && _ZoomBox)
    {
    
    
        var flashHtmlArg;
        if(type == "video")
            flashHtmlArg = "myVideo=" + file;
        else if(type == "audio")
            flashHtmlArg = "myAudio=" + file;
    
        var flashHtml = "";
        


        var embed = document.createElement('embed');         
         embed.setAttribute('id',"myFlashPlayer");         
         embed.setAttribute('src',path+"Slappyto Player2.swf");         
         embed.setAttribute('FlashVars',flashHtmlArg);         
         embed.setAttribute('width',width);
         embed.setAttribute('height',height);   
         embed.setAttribute('allowFullScreen','true');            
         //embed.setAttribute('STYLE',"width: 320px; height: 310px;");
         embed.width = width;
         embed.height = height;
        // embed.style.width = width;
       //  embed.style.height = height;
         
          
          var hasRightVersion = DetectFlashVer(9, 0, 115);
	  if(!hasRightVersion) 
	  {
		var embed = document.createElement('span');
  	
	  	myInnerHTML(embed,"<div style='padding:10px;border:1px dashed red'><a style='color:blue;font-style:bold;' href='http://www.macromedia.com/go/getflashplayer' target='_blank'><img border=0 src='images/get_flash.jpg'/><br/>Vous devez d'abord installer le nouveau lecteur Flash 9.0.115 : cliquez ici ! <br/>(You must install the new Flash player : clic here)</a></div>");
	  	
	  }
         
         
         if(embed.outerHTML && navigator.appName.indexOf("Opera")!=-1)
         {
         
	         embed.outerHTML = embed.outerHTML.replace("FlashVars","flashvars"); //Opera bug :S	         
         }
                
    
         
         //0 est ce qu'il y a un précédent player ?
         var OldPlayer = myGetElementById("myFlashPlayer");
         if(OldPlayer) //si oui on lui donne la taille actuelle
         {
             embed.width = OldPlayer.width;
             embed.height = OldPlayer.height;             
             
         }
         
         var embedSlider = document.createElement('embed');         
         embedSlider.setAttribute('id',"mySliderZoom");
         embedSlider.setAttribute('src',movieclipSlider);         
         embedSlider.setAttribute('pluginspage','http://www.macromedia.com/go/getflashplayer');         
         embedSlider.setAttribute('FlashVars',"Sliderposition="+getPercent(embed.width)+"&javascriptFunction=SliderZoom('myFlashPlayer',");
         embedSlider.width = 208;
         embedSlider.height = 6;
         embedSlider.style.width =  embedSlider.width;
         embedSlider.style.height = embedSlider.height;
         if(embedSlider.outerHTML && navigator.appName.indexOf("Opera")!=-1)
         {
         	embedSlider.outerHTML = embedSlider.outerHTML.replace("FlashVars","flashvars"); //Opera bug :S
         }
         
         var titleSlider = document.createElement('span');
         myInnerHTML(titleSlider,"<span style='font-size:12px;'>Zoom <img src='/Cours/images/loupe1.gif' align='middle'> : </span>");
         
  
         
         //1 on enleve tous les noeuds:
         myInnerHTML(_PlayerBox,"");
         myInnerHTML(_ZoomBox ,"");
         
         
           
          if(navigator.appName.indexOf("Opera")!=-1) // OPERA ?
          {
             myInnerHTML(_ZoomBox,embedSlider.outerHTML + embedSlider.outerHTML);
             myInnerHTML(_PlayerBox,embed.outerHTML);
          }
          else //FFox , IE & autres
          {   
            
            _PlayerBox.appendChild(embed); 
            _ZoomBox.appendChild(titleSlider);
            _ZoomBox.appendChild(embedSlider); 
          }
    
       
    }
   
   
    
}

    var initX = 550;
    var initY = 463;
    var coeff = initY/initX;
    
    
    var xMIN = 212;
    var yMIN = xMIN*coeff;
    
    var xMAX = 760;
    var yMAX = xMAX*coeff;
    
    
function SliderZoom(Objet,percent)
{    
    var _player = myGetElementById(Objet);
           
		if(_player)
		{
		    //produit en croix		    		    
		    _player.width = (percent*((xMAX-xMIN)/100)) + xMIN;
		    _player.height = _player.width*coeff;
		    _player.style.width = _player.width;
		    _player.style.height = _player.height;
		}

}

function getPercent(_width)
{   
   //renvoi le pourcentage de longueur (par rapport à la longueur min et max)
    return (_width - xMIN)/((xMAX-xMIN)/100);
}


function ClosePlayer(BoxId)
{    
    _PlayerBox = myGetElementById(BoxId);
    _ZoomBox = myGetElementById(BoxId + "Zoom");
    
      //1 on enleve tous les noeuds:
      if(_PlayerBox)
        myInnerHTML(_PlayerBox,"");
        
      if(_ZoomBox)
        myInnerHTML(_ZoomBox,"");
    
}






/**** FLASH DETECTION PLAYER 9.0.0.115 *****/


//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

