var RealPlayer = false;
var RealPlayerG2 = false;
var RealOnePlayer = false;
var WindowsMediaPlayer = false;
var WindowsMediaPlayerversion = 0;
var Quicktime = false;
var Quicktimeversion = 0;
var SniffedData = new Array();
var BitrateSniffed = false;
var LanguageSniffed = false;
var PlayerSniffed = false;
var Mix_OpenedWindow = "";
var Mix_BitrateWindow = null;
var BitrateWindowCheck = 0;
window.opener = this;
		
function SetOptions( optionName, optionarray )
{	
	var ToRet ="&nbsp;&nbsp;<select name=\""+optionName+"\" ID=\""+optionName+"\" onChange=\"Update"+optionName+"()\">";
	var isWINM = true;

	for(var i = 0; i < optionarray.length; i++)
	{
		if(((optionarray[i]!="WINM")&&(optionarray[i]!="WIN6"))||
			(isWINM))
		{
			var OptionElement = "<option value=\"";
			OptionElement += optionarray[i];
			OptionElement += "\"";
			
			if((optionName == "Language") && (optionarray[i] == Mix_Alternates.Language))
				OptionElement += "selected>";
			else if((optionName == "Player") && (((("WINM" == Mix_Alternates.Player)||("WIN6" == Mix_Alternates.Player))&&
												  (("WINM" == optionarray[i])||("WIN6" == optionarray[i]))) || 
												  (optionarray[i] == Mix_Alternates.Player)))		 
				OptionElement += "selected>";
			else if((optionName == "Bandwidth") && (optionarray[i] == Mix_Alternates.Bitrate))
				OptionElement += "selected>";
			else
				OptionElement += ">";
				
			if(optionName == "Language")
				OptionElement += eval("LanguageMap."+optionarray[i]);
			if(optionName == "Player")
				OptionElement +=  eval("PlayerMap."+optionarray[i]);
			if(optionName == "Bandwidth")
				OptionElement +=  eval("BitrateMap.BR"+optionarray[i]);
			OptionElement += "</option>"
			ToRet += OptionElement;
			
			if((optionarray[i]=="WINM")||(optionarray[i]=="WIN6"))
				isWINM = false;
		}
	}
	ToRet += "</select>&nbsp;&nbsp;";
	return ToRet;
}

function StartPresentation()
{
	var Location = "";
	var Mix_Redirect = "";
	var SelPlayer = Mix_Alternates.Player;
	var SelBitrate = Mix_Alternates.Bitrate;
	var SelLang = Mix_Alternates.Language;
	SelPlayer = (SelPlayer != "") ? eval("AssetMap."+SelPlayer) : "";
	
	//Test System for compatability
	for(var i=0; i < Mix_Environment.supportedsystems.length; i = i + 1)
		if(Mix_Environment.platform[0] == Mix_Environment.supportedsystems[i].p)
			if(Mix_Environment.browser[0] == Mix_Environment.supportedsystems[i].b)
				if((Mix_Environment.browser[1] >= Mix_Environment.supportedsystems[i].vs)&&
				   (Mix_Environment.browser[1] <= Mix_Environment.supportedsystems[i].ve))
				{
					Mix_Environment.systemverified = true;
					break;
				}

	if(Mix_Environment.systemverified)
	{
		if((SniffedData["Browser"]["netscape"]) && (SniffedData["Browser"]["version"] < 5)){
			if(Mix_Locations.NS4location != ""){
				Location = Mix_Locations.NS4location;
			}
		}
		else if(SniffedData["Browser"]["IE"] || ((SniffedData["Browser"]["netscape"])&&(SniffedData["Browser"]["version"] > 5))){
			if(Mix_Locations.DHTMLlocation != ""){
				Location = Mix_Locations.DHTMLlocation;
			}
		}
		
		if(typeof(Mix_Locations.Redirectlocation)!="undefined"){
			Mix_Redirect = Location;
			Location = Mix_Locations.Redirectlocation;
		}
	}
	
	if( Location != "" )
	{
		if(!Mix_Alternates.LanguageOverRide)
			Location += (Location.indexOf("?") == -1)? "?gLanguage=" + SelLang : "&gLanguage=" + SelLang;
		if(!Mix_Alternates.BitrateOverRide)
			Location += (Location.indexOf("?") == -1)? "?gBitrate=" + SelBitrate : "&gBitrate=" + SelBitrate;
		if(!Mix_Alternates.PlayerOverRide)
			Location += (Location.indexOf("?") == -1)? "?gFormat=" + SelPlayer : "&gFormat=" + SelPlayer;
		
		var TempHolder = FoundPlayers();
		if(TempHolder != "")
		{
			Location += (Location.indexOf("?") == -1)? "?": "&";
			Location += TempHolder;
		}
				
		//Take Query string and pass it thru
		var tempURLString = window.location.href;
		var beginOfString = tempURLString.lastIndexOf("?") + 1;
		
		if(Mix_Redirect != ""){
			Location += (Location.indexOf("?") == -1)? "?MixPres=" + Mix_Redirect : "&MixPres=" + Mix_Redirect;
		}
		
		if(beginOfString > 0)
		{
			Location += (Location.indexOf("?") == -1)? "?" : "&";
			Location +=  tempURLString.slice(beginOfString, tempURLString.length);
		}
		
		Location = Location.replace(/%26/g,"&");
		
		var WindowStats = "";
		WindowStats += "toolbar=" + TruetoYes(Mix_PresSettings.toolbar);
		WindowStats += ",location=" + TruetoYes(Mix_PresSettings.locationbar);
		WindowStats += ",status=" + TruetoYes(Mix_PresSettings.statusbar);
		WindowStats += ",menubar=" + TruetoYes(Mix_PresSettings.menubar);
		WindowStats += ",scrollbars=" + TruetoYes(Mix_PresSettings.scrollbar);
		WindowStats += ",resizable=" + TruetoYes(Mix_PresSettings.resizable);
		if(Mix_PresSettings.scrollbar) Mix_PresSettings.width = Mix_PresSettings.width + 13;
		WindowStats += ",width=" + Mix_PresSettings.width;
		WindowStats += ",height=" + Mix_PresSettings.height;
		switch(Mix_PresSettings.position)
		{
			case "center":
				WindowStats += ",left=" + (screen.availWidth-Mix_PresSettings.width)/2;
				WindowStats += ",top=" + (screen.availHeight-Mix_PresSettings.height)/2;
				WindowStats += ",screenX=" + (screen.availWidth-Mix_PresSettings.width)/2;
				WindowStats += ",screenY=" + (screen.availHeight-Mix_PresSettings.height)/2;
			break;
			case "ud":
				WindowStats += ",left=" + Mix_PresSettings.positionx;
				WindowStats += ",top=" + Mix_PresSettings.positiony;
				WindowStats += ",screenX=" + Mix_PresSettings.positionx;
				WindowStats += ",screenY=" + Mix_PresSettings.positiony;				
			break;
		}
		
		if(Mix_PresSettings.reusewindow)
		{
			if(Mix_Environment.browser[0] == "IE")
			{
				window.resizeTo(Mix_PresSettings.width,Mix_PresSettings.height);
				HeightAdjust = Mix_PresSettings.height - document.body.clientHeight;
				WidthAdjust = Mix_PresSettings.width - document.body.clientWidth;			
				window.resizeTo(Mix_PresSettings.width+WidthAdjust,Mix_PresSettings.height+HeightAdjust);	
			}
			else if((Mix_Environment.browser[0] == "NS")&&(Mix_Environment.browser[1] < 5))
			{
				window.resizeTo(Mix_PresSettings.width,Mix_PresSettings.height+4);
			}
			else if((Mix_Environment.browser[0] == "NS")&&(Mix_Environment.browser[1] > 5))
			{
				window.resizeTo(Mix_PresSettings.width+50,Mix_PresSettings.height+100);
				HeightAdjust = Mix_PresSettings.height - window.innerHeight + 100;
				WidthAdjust = Mix_PresSettings.width - window.innerWidth+ 50;
				window.resizeTo(Mix_PresSettings.width+WidthAdjust,Mix_PresSettings.height+HeightAdjust);	
			}
			
			switch(Mix_PresSettings.position)
			{
				case "center":
					window.moveTo((screen.availWidth-Mix_PresSettings.width)/2,(screen.availHeight-Mix_PresSettings.height)/2)
				break;
				case "ud":
					window.moveTo(Mix_PresSettings.positionx,Mix_PresSettings.positiony);
				break;
			}
			
			top.location.href = Location;
			return;
		}
		else
		{
			var RNDNUM = Math.floor(Math.random()*1000);
			if(Mix_PresSettings.usedefault)
				Mix_OpenedWindow = window.open(Location,"Presentation"+RNDNUM);
			else
				Mix_OpenedWindow = window.open(Location,"Presentation"+RNDNUM, WindowStats);	
					
			setTimeout("PopupKillerCheck()",2000);
		}	
	}
	else
	{
		if(Mix_Locations.OTHERlocation != "")
		{
			Mix_OpenedWindow = window.open(Mix_Locations.OTHERlocation,"Presentation");
			setTimeout("PopupKillerCheck()",2000);
		}
		else
		{
			alert("The Combination of Operating System and Browser you are using is not supported by this presentation.");
		}
	}
	
	return;
}

function FoundPlayers()
{
	var toRet = "";
	
	if((Mix_Environment.lookingforWM)&&(Mix_Environment.wminstalled))
	{
		if(parseInt(Mix_Environment.wmversion) >= 7)
			toRet += "WINM";
		else
			toRet += "WIN6";
	}
		
	if((Mix_Environment.lookingforRL)&&(Mix_Environment.realinstalled))
	{
		toRet += (toRet == "")? "" : ",";
		toRet += "REAL";
	}
	
	if((Mix_Environment.lookingforQT)&&(Mix_Environment.qtinstalled))
	{
		toRet += (toRet == "")? "" : ",";
		toRet += "QUIK"; 
	}
	
	if(toRet == "")
	{
		if(PlayerSniffed == true)
			if(Mix_Alternates.DefaultPlayer == "")
				return "FP=NONE";
			else
				return "FP="+Mix_Alternates.DefaultPlayer;
		else
			return "";
	}
	else
	{
		return "FP=" + toRet;
	}
}

function SniffLang()
{	
	LanguageSniffed = false;
	
	if((Mix_Environment.languages.length > 1)&&(!Mix_Alternates.LanguageOverRide))
	{	
		if (typeof(navigator.language) != "undefined") {Mix_Environment.language = navigator.language;}
		else if (typeof(navigator.browserLanguage) != "undefined") {Mix_Environment.language = navigator.browserLanguage;}
		else if (typeof(navigator.systemLanguage) != "undefined") {Mix_Environment.language = navigator.systemLanguage;}
		else if	(typeof(navigator.userLanguage) != "undefined") {Mix_Environment.language = navigator.userLanguage;}
		else {Mix_Environment.language = "Property not supported or blank!"}
		Mix_Environment.language = Mix_Environment.language.substr(0, 2).toUpperCase();
		
		var textareastring = "\nLANGUAGE\n";
		textareastring += "Language   : " + Mix_Environment.language+"\n";
		UpdateSniffedData(textareastring);
		
		Mix_Alternates.Language = Mix_Environment.language;
		
		if(Mix_Alternates.LanguageTag != null)
		{
			var target = 0;
			var foundTarget = false;
			for(var i=0;i < Mix_Alternates.LanguageTag.length; i++)
			{
				if(Mix_Alternates.LanguageTag.options[i].value == Mix_Environment.language)
				{
					foundTarget = true;
					target = i;
				}
			}
			if(foundTarget)
				Mix_Alternates.LanguageTag.selectedIndex = target;
		}
	}
	
	LanguageSniffed = true;
	FinishedSniffing();
}

var MIX_BR_DL_IMGS = 0;
var MIX_BR_DL_IMGE = 0;
var MIX_BR_DL_image;

function SniffBitrate()
{
	BitrateSniffed = false;

	if((Mix_Environment.bitrates.length > 1)&&(!Mix_Alternates.BitrateOverRide))
	{
		MIX_BR_DL_image = new Image();
		MIX_BR_DL_IMGS = new Date().getTime();
		MIX_BR_DL_image.src = "sniffer/images/SnifferBRImage.gif?id="+MIX_BR_DL_IMGS; 
		setTimeout("SB_CheckStatus()",100);
			}
	else
	{
		BitrateSniffed = true;
		setTimeout("FinishedSniffing()",100);
	}
}

function SB_CheckStatus()
{
	if(MIX_BR_DL_image.complete)
	{
		MIX_BR_DL_IMGE = new Date().getTime();
		var time_download = (MIX_BR_DL_IMGE - MIX_BR_DL_IMGS) / 1000.0;
		var kbpsx = Math.round(((50.0/time_download)*8.0)*10.0*1.02);
		var bitrate = kbpsx/10.0
		Bitratereturn( bitrate );
	}
	else
	{
		setTimeout("SB_CheckStatus()",100);
	}
}

function Bitratereturn( bitrate )
{
	SniffedData["Bitrate"] = bitrate;
	var Mix_SBI = 0;

	if(SniffedData["Bitrate"] == "Infinity")
	{
		SniffedData["Bitrate"] = 999999999999;
	}
	
	for(var i=0;i < Mix_Environment.bitrates.length; i++)
		if(Mix_Environment.bitrates[i] <= bitrate) Mix_SBI = i;
		
	var textareastring = "\nBITRATE\n";
	textareastring += "Bitrate   : " + bitrate +"\n";
	textareastring += "Setting Bitrate to "+ BitrateMap["BR"+Mix_Environment.bitrates[Mix_SBI]]+"\n";;
	UpdateSniffedData(textareastring);
	
	Mix_Alternates.Bitrate = Mix_Environment.bitrates[Mix_SBI];

	if(Mix_Alternates.BitrateTag != null)
	{	
		Mix_Alternates.BitrateTag.selectedIndex = Mix_SBI;
	}

	BitrateSniffed = true;
	setTimeout("FinishedSniffing()",100);
	return;
}

function SniffPlayer()
{
	PlayerSniffed = false;

//	if((Mix_Environment.players.length > 1)&&(!Mix_Alternates.PlayerOverRide))
	if(Mix_Environment.players.length > 0)
	{
		Mix_Environment.lookingforWM = ((typeof(PlayerMap.WINM)!="undefined")||(typeof(PlayerMap.WIN6)!="undefined"));
		Mix_Environment.lookingforRL = (typeof(PlayerMap.REAL)!="undefined");
		Mix_Environment.lookingforQT = (typeof(PlayerMap.QUIK)!="undefined");

		if ((SniffedData["Browser"]["netscape"]||SniffedData["Browser"]["opera"]||SniffedData["Browser"]["mozilla"])||
		(SniffedData["OS"]["MAC"]&&SniffedData["Browser"]["IE"]&&(SniffedData["Browser"]["version"]>=5))) 
		{		
			for (var i=0; i < navigator.plugins.length; i++) 
			{	
				if(Mix_Environment.lookingforRL)
				if (navigator.plugins[i].name.toLowerCase().indexOf("realone player") >= 0) {
					Mix_Environment.realversion = 9;
					Mix_Environment.realinstalled = true;
				} else if (navigator.plugins[i].name.toLowerCase().indexOf("realplayer") >= 0) {
					Mix_Environment.realversion = 8;
					Mix_Environment.realinstalled = true;
				}
				
				if(Mix_Environment.lookingforWM)
				if (navigator.plugins[i].name.toLowerCase().indexOf("windows media player") >= 0) {
					Mix_Environment.wmversion = navigator.plugins[i].length;
					if(Mix_Environment.wmversion >= 6)
						Mix_Environment.wminstalled = true;
				}
				
				if(Mix_Environment.lookingforQT)
				if (navigator.plugins[i].name.toLowerCase().indexOf("quicktime") >= 0) {
					Mix_Environment.qtversion = navigator.plugins[i].name.substring(18, navigator.plugins[i].name.length);
					var MajorVer = eval(Mix_Environment.qtversion.substr(0,1));
					if(MajorVer >= 6)
						Mix_Environment.qtinstalled = true;
				}
				
			}
		}

		if(SniffedData["OS"]["WIN"]&&SniffedData["Browser"]["IE"]&&(SniffedData["Browser"]["version"]>=4))
		{
			if(Mix_Environment.lookingforRL){
				CheckIEReal();
				if(RealPlayer || RealPlayerG2)
					Mix_Environment.realversion = 8;
				else if(RealOnePlayer)
					Mix_Environment.realversion = 9;
					
				if(Mix_Environment.realversion >= 8)
					Mix_Environment.realinstalled = true;
			}
			
			if(Mix_Environment.lookingforWM){
				var MajorVer = 0;
				CheckIEWindowsMedia();
				if(WindowsMediaPlayer){
					Mix_Environment.wmversion = WindowsMediaPlayerversion;
					if(typeof(WindowsMediaPlayerversion)!="number")
						MajorVer = eval(Mix_Environment.wmversion.substr(0,1));
					else
						MajorVer = WindowsMediaPlayerversion;
					if((MajorVer >= 6)||(MajorVer == 0))
						Mix_Environment.wminstalled = true;
				}
			}
			
			if(Mix_Environment.lookingforQT){
				var MajorVer = 0;
				CheckIEQuicktime();
				Mix_Environment.qtversion = Quicktimeversion;
				if(typeof(Quicktimeversion)!="number")
					MajorVer = eval(Mix_Environment.qtversion.substr(0,1));
				else
					MajorVer = Quicktimeversion;
				if(MajorVer >= 6)
					Mix_Environment.qtinstalled = true;
			}

		}
	   
		var textareastring = "\nPLAYERS\n";
		if(((Mix_Environment.browser[0]=="NS")&&(Mix_Environment.wmversion > 6))||
		((Mix_Environment.browser[0]=="NS")&&(Mix_Environment.browser[1] > 4)))
			Mix_Environment.wminstalled = false;
		
		if(Mix_Environment.lookingforRL){
			textareastring += "Realplayer : ";
			if(Mix_Environment.realinstalled)
				textareastring += "Installed\n";
			else
				textareastring += "Necessary version not installed\n"; 
		}
		
		if(Mix_Environment.lookingforWM){
			textareastring += "WINDOWS MP : ";
			if(Mix_Environment.wminstalled)
				textareastring += "Installed\n";
			else
				textareastring += "Necessary version not installed\n";
		}
		
		if(Mix_Environment.lookingforQT){
			textareastring += "QUICKTIME  : ";
			if(Mix_Environment.qtinstalled)
				textareastring += "Installed\n";
			else
				textareastring += "Necessary version not installed\n";
		}
		
		UpdateSniffedData(textareastring);
		
		var fndWINM = 0;
		var fndREAL = 0;
		var fndQUIK = 0;
		if(Mix_Alternates.PlayerTag != null)
		{
			if((Mix_Environment.browser[0] != "NS") || (Mix_Environment.browser[1] > 5)){
				for(var i=0;i < Mix_Alternates.PlayerTag.length; i++)
				{
					if((Mix_Alternates.PlayerTag.options[i].value == "REAL") && (!Mix_Environment.realinstalled)){
						Mix_Alternates.PlayerTag.remove(i);
						i--;
					}
					else if((Mix_Alternates.PlayerTag.options[i].value == "WINM") && (!Mix_Environment.wminstalled)){
						Mix_Alternates.PlayerTag.remove(i);
						i--;
					}
					else if((Mix_Alternates.PlayerTag.options[i].value == "QUIK") && (!Mix_Environment.qtinstalled)){
						Mix_Alternates.PlayerTag.remove(i);
						i--;
					}
				}
			}
			
			for(var i=0;i < Mix_Alternates.PlayerTag.length; i++){
				if((Mix_Alternates.PlayerTag.options[i].value == "REAL") && (Mix_Environment.realinstalled))
					fndREAL = i;
				else if((Mix_Alternates.PlayerTag.options[i].value == "WINM") && (Mix_Environment.wminstalled))
					fndWINM = i;
				else if((Mix_Alternates.PlayerTag.options[i].value == "QUIK") && (Mix_Environment.qtinstalled))
					fndQUIK = i;
			}
		}
		
		var PLRIndex = 0;
		if((Mix_Environment.realinstalled)&&(Mix_Alternates.DefaultPlayer == "REAL")){
			PLRIndex = fndREAL;
			Mix_Alternates.Player = "REAL";
		}
		else if((Mix_Environment.wminstalled)&&(Mix_Alternates.DefaultPlayer == "WINM")){
			PLRIndex = fndWINM;
			Mix_Alternates.Player = "WINM";
		}
		else if((Mix_Environment.qtinstalled)&&(Mix_Alternates.DefaultPlayer == "QUIK")){
			PLRIndex = fndQUIK;
			Mix_Alternates.Player = "QUIK";
		}
		else
		{
			if(Mix_Environment.realinstalled){
				PLRIndex = fndREAL;
				Mix_Alternates.Player = "REAL";
			}
			else if(Mix_Environment.wminstalled){
				PLRIndex = fndWINM;
				Mix_Alternates.Player = "WINM";
			}
			else if(Mix_Environment.qtinstalled){
				PLRIndex = fndQUIK;
				Mix_Alternates.Player = "QUIK";
			}
			else{
				PLRIndex = 0;
				Mix_Alternates.Player = "";
			}
		}

		if(Mix_Alternates.PlayerTag != null)
			Mix_Alternates.PlayerTag.selectedIndex = PLRIndex;
	}
	
	PlayerSniffed = true;
	FinishedSniffing();
}

function SniffAll()
{
	SniffLang();
	SniffPlayer();
	SniffBitrate();
}

function Setonload()
{	
	// convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();
	
	//Set Window Size
	var HeightAdjust = 0;
	var WidthAdjust = 0;
	if(Mix_Launcher.fullscreen)
	{
		window.resizeTo(screen.availWidth,screen.availHeight);
		window.moveTo(0,0);
	}	
	
	//Set Window Position
	if(Mix_PresSettings.movelauncher)
	{
		window.moveTo(Mix_PresSettings.launcherpositionx,Mix_PresSettings.launcherpositiony);
	}

    // *** BROWSER VERSION ***

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);
	
	SniffedData["Browser"] = new Array();
	SniffedData["Browser"]["version"] = "unknown";
	SniffedData["OS"] = new Array();
	SniffedData["OS"]["version"] = "unknown";
	
	//Opera
	SniffedData["Browser"]["opera"] = (agt.indexOf("opera") != -1);
	if(SniffedData["Browser"]["opera"])
	{
		SniffedData["Browser"]["version"] = 1;
		if(agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1) SniffedData["Browser"]["version"] = 2;
		if(agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1) SniffedData["Browser"]["version"] = 3;
		if(agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1) SniffedData["Browser"]["version"] = 4;
		if(agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) SniffedData["Browser"]["version"] = 5;
		if(agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) SniffedData["Browser"]["version"] = 6;
		if(agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) SniffedData["Browser"]["version"] = 7;
		Mix_Environment.browser[0] = "OPRA";
		Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
	}

    //Konqueror                                 
	SniffedData["Browser"]["konq"] = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       SniffedData["Browser"]["konq"] = true;
       SniffedData["Browser"]["version"] = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
		Mix_Environment.browser[0] = "KONQ";
		Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
    }                                 

	//Safari
    SniffedData["Browser"]["safari"] = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
	if(SniffedData["Browser"]["safari"])
	{
		Mix_Environment.browser[0] = "SFRI";
		Mix_Environment.browser[1] = 1;
	}
    
	//KHTML
	SniffedData["Browser"]["khtml"] = ((SniffedData["Browser"]["safari"]) || (SniffedData["Browser"]["konq"]));
	if(SniffedData["Browser"]["khtml"])
	{
		Mix_Environment.browser[0] = "KTML";
		Mix_Environment.browser[1] = 1;
	}

	//Gecko
    SniffedData["Browser"]["gecko"] = ((!SniffedData["Browser"]["khtml"])&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
	if(SniffedData["Browser"]["gecko"])
	{
		Mix_Environment.browser[0] = "GCKO";
		Mix_Environment.browser[1] = 1;
	}
	
	//Mozilla
    SniffedData["Browser"]["mozilla"] = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (SniffedData["Browser"]["gecko"]) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
    if (SniffedData["Browser"]["mozilla"]) 
	{
       SniffedData["Browser"]["version"] = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(SniffedData["Browser"]["version"])) 
	   {
           SniffedData["Browser"]["version"] = agt.indexOf('rv:');
           SniffedData["Browser"]["version"] = agt.substring(SniffedData["Browser"]["version"]+3);
           is_paren   = SniffedData["Browser"]["version"].indexOf(')');
           SniffedData["Browser"]["version"] = SniffedData["Browser"]["version"].substring(0,is_paren);
       }
	   Mix_Environment.browser[0] = "MOZZ";
	   Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
    }
	
	//Netacape
    SniffedData["Browser"]["netscape"] = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)&& (!SniffedData["Browser"]["khtml"]) && (!(SniffedData["Browser"]["mozilla"])));			
    if ((navigator.vendor)&&((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&(SniffedData["Browser"]["netscape"])) 
	{
		if(CanResize())
		{
			window.resizeTo(Mix_LauncherSettings.width+50,Mix_LauncherSettings.height+100);
			HeightAdjust = Mix_LauncherSettings.height - window.innerHeight + 100;
			WidthAdjust = Mix_LauncherSettings.width - window.innerWidth+ 50;
			window.resizeTo(Mix_LauncherSettings.width+WidthAdjust,Mix_LauncherSettings.height+HeightAdjust);	
		}
			
		SniffedData["Browser"]["version"] = parseFloat(navigator.vendorSub);
		Mix_Environment.browser[0] = "NS";
	    Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
	}
	else if(SniffedData["Browser"]["netscape"])
	{
		if(CanResize())
		{
			window.resizeTo(Mix_LauncherSettings.width,Mix_LauncherSettings.height+4);
		}
		SniffedData["Browser"]["version"] = parseInt(appVer);
		Mix_Environment.browser[0] = "NS";
	    Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
	}
	
	//IE
    SniffedData["Browser"]["IE"] = ((appVer.indexOf('msie') !=-1) && (!SniffedData["Browser"]["opera"]) && (!SniffedData["Browser"]["khtml"]));
	if(SniffedData["Browser"]["IE"])
	{
		if(CanResize())
		{
			window.resizeTo(Mix_LauncherSettings.width,Mix_LauncherSettings.height);
			HeightAdjust = Mix_LauncherSettings.height - document.body.clientHeight;
			WidthAdjust = Mix_LauncherSettings.width - document.body.clientWidth;			
			window.resizeTo(Mix_LauncherSettings.width+WidthAdjust,Mix_LauncherSettings.height+HeightAdjust);	
		}

		if(agt.indexOf("msie 5.5") !=-1)
		{
			SniffedData["Browser"]["version"] = 5.5;
		}
		else
		{
			SniffedData["Browser"]["version"] = parseInt(appVer.substring(appVer.indexOf('msie')+5,appVer.indexOf(';',appVer.indexOf('msie'))));
		}
		Mix_Environment.browser[0] = "IE";
	    Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
	}

	//AOL
    SniffedData["Browser"]["AOL"] = (agt.indexOf("aol") != -1);
	if(SniffedData["Browser"]["AOL"])
	{
		if(!SniffedData["Browser"]["IE"]&&!SniffedData["Browser"]["netscape"])
		{
			SniffedData["Browser"]["version"] = parseInt(appVer.substring(appVer.indexOf('aol')+4,appVer.indexOf(';',appVer.indexOf('aol'))));

			Mix_Environment.browser[0] = "AOL";
			Mix_Environment.browser[1] = SniffedData["Browser"]["version"];
	    }
	}
	
	//AOLTV
    SniffedData["Browser"]["AOLTV"] = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
	if(SniffedData["Browser"]["AOLTV"])
	{
		Mix_Environment.browser[0] = "AOLTV";
		Mix_Environment.browser[1] = 1;
	} 
	
	//WebTV
    SniffedData["Browser"]["WebTV"] = (agt.indexOf("webtv") != -1);
	if(SniffedData["Browser"]["WebTV"])
	{
		Mix_Environment.browser[0] = "WebTV";
		Mix_Environment.browser[1] = 1;
	} 	

    // *** PLATFORM ***
	
	//Windows
    SniffedData["OS"]["WIN"] = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
	if(SniffedData["OS"]["WIN"])
	{
		if((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) || (agt.indexOf("windows 16-bit")!=-1)) SniffedData["OS"]["version"] = "3.1";
		if((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1)) SniffedData["OS"]["version"] = "95";
		if((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1)) SniffedData["OS"]["version"] = "98";
		if((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1)) SniffedData["OS"]["version"] = "NT";
		if((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1)) SniffedData["OS"]["version"] = "2K";
		if((agt.indexOf("win 9x 4.90")!=-1)) SniffedData["OS"]["version"] = "ME";
		if((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1)) SniffedData["OS"]["version"] = "XP";
		Mix_Environment.platform[0] = "WIN";
		Mix_Environment.platform[1] = SniffedData["OS"]["version"];
	}
	
	//Macintosh
    SniffedData["OS"]["MAC"] = (agt.indexOf("mac")!=-1);
	if(SniffedData["OS"]["MAC"])
	{
		if((agt.indexOf("68k")!=-1) ||(agt.indexOf("68000")!=-1)) SniffedData["OS"]["version"] = "68K";
		if((agt.indexOf("ppc")!=-1) ||(agt.indexOf("powerpc")!=-1)) SniffedData["OS"]["version"] = "PPC";
		Mix_Environment.platform[0] = "MAC";
		Mix_Environment.platform[1] = SniffedData["OS"]["version"];
		
		//Make Quicktime the Default player on the Mac if it is one of the players.
		if (typeof(PlayerMap.QUIK)!="undefined")
			Mix_Alternates.DefaultPlayer == "QUIK";

	}
	
	// ***Settings***
	
	//Javascript Settings
	SniffedData["JavaScript"] = true;

	var textareastring = "";
	textareastring += "BROWSER    : "+Mix_Environment.browser[0]+" "+Mix_Environment.browser[1]+"\n";
	textareastring += "OS         : "+Mix_Environment.platform[0]+" "+Mix_Environment.platform[1]+"\n";
	
	UpdateSniffedData(textareastring);
		
	Mix_Alternates.BitrateTag = GetBitrates();
	Mix_Alternates.PlayerTag = GetPlayers();
	Mix_Alternates.LanguageTag = GetLanguages();
	
	var tempURLString = window.location.href;
	Mix_Alternates.BitrateOverRide = (tempURLString.lastIndexOf("gBitrate") == -1)? false : true ;
	Mix_Alternates.LanguageOverRide = (tempURLString.lastIndexOf("gLanguage") == -1)? false : true ;
	Mix_Alternates.PlayerOverRide = (tempURLString.lastIndexOf("gFormat") == -1)? false : true ;
		
	if( (Mix_Environment.bitrates.length <= 1) && 
		(Mix_Environment.players.length <= 1) &&
		(Mix_Environment.languages.length <= 1))
		{
			if(Mix_Launcher.autolaunch == false)
			{
				StartPresentation();
				return;
			}
		}
	
	if(Mix_Launcher.autodetect)
	{
		SniffAll();
	}
	else if(Mix_Launcher.autolaunch)
		StartPresentation();
}

//Updating functions for sniffer

function UpdateSniffedData(FormData)
{
	Mix_Launcher.formdata += FormData;
	
	if((SniffedData["Browser"]["IE"])||((SniffedData["Browser"]["netscape"])&&(SniffedData["Browser"]["version"] > 5)))
	{
		if(document.getElementById("SniffedData") != null)	
			document.getElementById("SniffedData").value = Mix_Launcher.formdata;
	}
	else if((SniffedData["Browser"]["netscape"]) && (SniffedData["Browser"]["version"] < 5))
	{
		if(document.layers["SniffedDataLayer"]+"" != "undefined")
			document.layers["SniffedDataLayer"].document.forms["SniffedDataForm"].SniffedData.value = Mix_Launcher.formdata;
	}		
}
function GetBitrates()
{
	if((SniffedData["Browser"]["IE"])||((SniffedData["Browser"]["netscape"])&&(SniffedData["Browser"]["version"] > 5)))
		return document.getElementById("Bandwidth")
	else if((SniffedData["Browser"]["netscape"]) && (SniffedData["Browser"]["version"] < 5))
	{
		if(document.layers["BandwidthLayer"]+"" != "undefined")
			return document.layers["BandwidthLayer"].document.forms["BandwidthForm"].Bandwidth
		else
			return null;
	}
}
function GetPlayers()
{
	if((SniffedData["Browser"]["IE"])||((SniffedData["Browser"]["netscape"])&&(SniffedData["Browser"]["version"] > 5)))
		return document.getElementById("Player")
	else if((SniffedData["Browser"]["netscape"]) && (SniffedData["Browser"]["version"] < 5))
	{
		if(document.layers["PlayerLayer"]+"" != "undefined")
			return document.layers["PlayerLayer"].document.forms["PlayerForm"].Player
		else
			return null;
	}
}
function GetLanguages()
{
	if((SniffedData["Browser"]["IE"])||((SniffedData["Browser"]["netscape"])&&(SniffedData["Browser"]["version"] > 5)))
		return document.getElementById("Language")
	else if((SniffedData["Browser"]["netscape"]) && (SniffedData["Browser"]["version"] < 5))
	{
		if(document.layers["LanguageLayer"]+"" != "undefined")
			return document.layers["LanguageLayer"].document.forms["LanguageForm"].Language
		else
			return null;
	}
}

function UpdateLanguage(){
	if(Mix_Alternates.LanguageTag != null){
		Mix_Alternates.Language = Mix_Alternates.LanguageTag.options[Mix_Alternates.LanguageTag.selectedIndex].value
	}
}

function UpdatePlayer(){
	if(Mix_Alternates.PlayerTag != null){
		Mix_Alternates.Player = Mix_Alternates.PlayerTag.options[Mix_Alternates.PlayerTag.selectedIndex].value
	}
}

function UpdateBandwidth(){
	if(Mix_Alternates.BitrateTag != null){
		Mix_Alternates.Bitrate = Mix_Alternates.BitrateTag.options[Mix_Alternates.BitrateTag.selectedIndex].value
	}
}

//Extra Functions

function FinishedSniffing()
{
	if((BitrateSniffed == true)&&
	   (LanguageSniffed == true)&&
	   (PlayerSniffed == true)&&
	   (Mix_Launcher.autolaunch == true))
	   	{
			StartPresentation();
		}
}

function TruetoYes( value )
{
	if(value)
		return "yes";
	else
		return "no";
}

function ReturnTrue(){
	return;
}

function CloseSniffer( value )
{
	if((value == "start")&&(Mix_Launcher.autocloseonstart))
		window.close();
	if((value == "end")&&(Mix_Launcher.autocloseonclose))
		window.close();		
}

function PopupKillerCheck()
{
	if((Mix_OpenedWindow == null)||(Mix_OpenedWindow.closed))
	{
		alert("Presentation window not created Successfully\nProblem might be caused by a popup blocker.");
	}
	else
	{
		CloseSniffer( "start" );
	}
}

function CanResize()
{
	if(Mix_Launcher.fullscreen)
		return false;
		
	if(Mix_PresSettings.reusewindow)
	{
		if(Mix_Launcher.autolaunch)
			return false;
			
		if( (Mix_Environment.bitrates.length <= 1) && 
			(Mix_Environment.players.length <= 1) &&
			(Mix_Environment.languages.length <= 1)	)
			return false;
	}
	
	return true;
}
