﻿//palyer event switcher
var _cuPlayer;
var _cuPlayerName = "";
var _cuLogerArr = new Array ();
var _cuMuteVar = false;
var _cuVolVar = 0;
var _cuposVar = 0;
var _cuDefaulTmbUrl = "images/background.jpg";

function _cuGetclientInfo()
{
    var client= new Object();
    client
}

function OnPlayStateChangeEvt (NewState)
{
    onPlayerEventElementDisplayDispetcher(NewState)
    _cuOnEventMesegesDispatcher(NewState);
	//var noteDiv = document.getElementById ("nottificationsDiv");
	var stateName = "";
	//checkMediaCheng ()
	_cuPushToLoger (translateState(NewState), "OnPlayStateChangeEvt")
	
	switch (NewState)
	{
		case 0 : //Undefined 	Windows Media Player is in an undefined state.
		_cuPlayerUndefinedOnEvent ();
		break
		case 1 : //Stopped 	Playback of the current media item is stopped.
		_cuPlayerStopedOnEvent ()
		break
		case 2 : //Paused 	Playback of the current media item is paused.
		_cuPlayerPausedOnEvent ();
		break
		case 3 : //Playing 	The current media item is playing.
		_cuPlayerPlayingOnEvent ();
		break
		case 4 : //ScanForward 	The current media item is fast forwarding.
		_cuPlayerScanForwardOnEvent ();
		break
		case 5 : // ScanReverse	The current media item is fast rewinding.
		_cuPlayerScanReverseOnEvent ();
		break
		case 6 : //Buffering 	The current media item is getting additional data from the server.
		_cuPlayerBufferingOnEvent ();
		break
		case 7 : //Waiting 	Connection is established, but the server is not sending data. Waiting for session to begin.
		_cuPlayerWaitingOnEvent ();
		break
		case 8 : //MediaEnded 	Media item has completed playback.
		_cuPlayerMediaEndedOnEvent ();
		break
		case 9 : //Transitioning 	Preparing new media item.
		_cuPlayerTransitioningOnEvent ();
		break
		case 10 : //Ready 	Ready to begin playing.
		_cuPlayerReadyOnEvent ();
		break
		case 11 : //Reconnecting 	Reconnecting to stream.
		_cuPlayerReconnectingOnEvent ();
		break
	}
}
//palyer event switcher
//player LogerFunction
function _cuPushToLoger (eventName, eventSender)
{
	try
	{
		media = "-1"
		//alert(_cuPlayer.currentMedia.getItemInfo ("Title"))
		try
		{
			media = PlayerControlAction ("GetMediaMetaData","");
			media = media.getItemInfo ("Title")
		} catch(e)
		{
		    //alert(e);
			media = e;
		}
		_cuLogerArr.push ([eventName, timestemp () , eventSender, media])
		document.getElementById ("LogDiv").innerHTML +=_cuLogerArr[_cuLogerArr.length-1]+"<br/>";

	}
	catch (e)
	{
		//alert (e)
	}
}
//player LogerFunction
function timestemp ()
{
	var NowDate = new Date ()
	NowDateToStr = getShortDateString (NowDate);
	return NowDateToStr;
}
function getShortDateString (dt)
{
	var sTime = dt.getDate () + "/" + (Number (dt.getMonth ()) + 1) + "/" + dt.getFullYear () + " " + dt.getHours () + ":" + dt.getMinutes () + ":" + dt.getSeconds ();
	return sTime;
}
function PlayerControlAction (actionName, actionParam)
{
	try
	{
		_cuPlayer = document.getElementById (_cuPlayerName);
		if (_cuPlayer == null)
		{
			return;
		}
	}
	catch (e)
	{
		//alert (e)
	}
	try
	{
		switch (actionName)
		{
			case "SetPlayerUrl" : //sets player url
			_cuPlayer.URL = actionParam;
			break;
			case "Play" : //player play
			_cuPlayer.controls.play ();
			break;
			case "Pause" : //player play
			if (typeof (_cuPlayer.currentMedia) != "undefined")
			{
				_cuPlayer.controls.pause ();
			}
			break;
			case "SetMute" :
			if (actionParam)
			{
			    _cuPlayer.settings.volume = 0;
			    _cuMuteVar = true;

			}else
			{
			    _cuPlayer.settings.volume = _cuVolVar;
			    _cuMuteVar = false;
			}

			break
			case "GetMute" :
			return _cuMuteVar;
			break
			case "SetCurrentPosition" :
			if (typeof (_cuPlayer.currentMedia) != "undefined")
			{
				_cuPlayer.controls.currentPosition = actionParam;
			}
			break
			case "GetCurrentPosition" :
			try
			{
			    if (typeof (_cuPlayer.currentMedia) != "undefined")
			    {
				    return _cuPlayer.controls.currentPosition
			    }
			    return - 1;
			}catch(e)
			{
			return - 1;
			}
			//media not ready
			break
			case "GetCurrentDuration" :
			try
			{
			    if (typeof (_cuPlayer.currentMedia) != "undefined")
			    {
//				    if (boocmarksExist)
//				    {
//					    return boocmarksDur;
//				    }
//				    else
//				    {
					    return _cuPlayer.currentMedia.duration;
//				    }
			    }
			    return - 1;
			}catch(e)
			{
			    return -1;
			}

			//media not ready
			break
			case "GetCurrentPlaylistCount":

			return _cuPlayer.currentPlaylist.count
			break
			case "FastReverse" :
			_cuPlayer.controls.fastReverse ();
			break
			case "FastForward" :
			_cuPlayer.controls.fastForward ();
			break
			case "Stop" :
			_cuPlayer.controls.stop ();
			break
			case "Fullscreen" :
			_cuPlayer.fullScreen =true;
			break
			case "SetVolume" :
			_cuPlayer.settings.volume = Number (actionParam);
			_cuVolVar = Number (actionParam);
			_cuMuteVar = true;
			break
			case "SetCssClass" :
			_cuPlayer.className = actionParam;
			break
			case "SetCurrentItem" :
			try
			{
				_cuPlayer.controls.currentItem = _cuPlayer.currentPlaylist.item (actionParam);
			}
			catch (e)
			{
				return - 1;
			}
			break
			case "GetMediaMetaData" :
			try
			{
			    if (typeof (_cuPlayer.currentMedia) != "undefined")
			    {
				    return _cuPlayer.currentMedia;
			    }
			}
			catch(e)
			{
			    return -1
			}
			return - 1;
			case "GetItemInfo" :
			try{
				return PlayerControlAction ("GetMediaMetaData", "").getItemInfo (actionParam);
			}
			catch(e)
			{
			    return -1;
			}
			return - 1;
			//media not ready
			break
			case "GetCurrentStatus" :
			return _cuPlayer.status
			break
			case "GetCurrentPlayState" :
			return _cuPlayer.playState
			break
			case "GetBuferingProgres" :
			if (_cuPlayer.playstate == 6)
			{
				return _cuPlayer.network.bufferingProgress;
			}
			else
			{
				return 100
			}
			break
			case "GetMediaColection":
			 var  MediaColection = _cuPlayer.playlistCollection.getAll();
			 return MediaColection;

			break
		}
	}
	catch (e)
	{
		//alert (e)
	}
	_cuPushToLoger (actionName, "User Button Action");
}
function playerObjectBilder (PlayerName,width ,height,cssClass, uimode, URL, autoStart, balance, enableContextMenu, stretchToFit, windowlessVideo)
{
    if((- 1 != navigator.userAgent.indexOf ("Firefox")))
	{
	    if(!isMSFirefoxPlugin())
	    {
	        document.getElementById("NotificationDiv").innerHTML= firefoxPluginInstullNote(URL);
	        document.getElementById("areaLoading").innerHTML =""
	    }
	}
    var return_str = "";
	if (navigator.appVersion.indexOf ("Mac") != - 1 )
	{
	    return_str +="<embed type=\"application/x-mplayer2\" filename=\""+URL+"\" src=\"" + URL + "\"";
        return_str +="showstatusbar=\"true\" showcontrols=\"true\" autostart=\"" + autoStart + "\" strechtofit=\"" + stretchToFit + "\"";
        return_str +=" width=\"" +width+"\" height=\""+height+"\" class=\""+cssClass+"\">"

	    return return_str

	}
	_cuPlayerName = PlayerName;

	return_str += "<OBJECT id=\"" + PlayerName + "\" ";
	if ( (- 1 != navigator.userAgent.indexOf ("MSIE"))   )
	{
		return_str += " classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\"";
	}
	else if ( - 1 != navigator.userAgent.indexOf ("Firefox"))
	{
		return_str += " type=\"application/x-ms-wmp\"";

	}else if (  - 1 != navigator.userAgent.indexOf ("Chrome"))
	{
		return_str += " type=\"application/x-ms-wmp\"";

	}
	return_str += " width=\"" +width+"\" height=\""+height+"\" class=\""+cssClass+"\">";
	return_str += "<PARAM name=\"uimode\" VALUE=\"" + uimode + "\">";
	return_str += "<PARAM name=\"URL\" VALUE=\"" + URL + "\">";
	return_str += "<PARAM name=\"autoStart\" VALUE=\"" + autoStart + "\">";
	return_str += "<PARAM name=\"balance\" VALUE=\"" + balance + "\">";
	return_str += "<PARAM name=\"volume\" VALUE=\"" + _cuVolVar + "\">";
	return_str += "<PARAM name=\"mute\" VALUE=\"" + _cuMuteVar + "\">";
	return_str += "<PARAM name=\"enableContextMenu\" VALUE=\"" + enableContextMenu + "\">";
	return_str += "<PARAM name=\"stretchToFit\" VALUE=\"" + stretchToFit + "\">";
	if ((- 1 != navigator.userAgent.indexOf ("Chrome"))  )
	{
		return_str += "<PARAM name=\"windowlessVideo \" VALUE=\"" + windowlessVideo + "\">";
	}
	if ((- 1 != navigator.userAgent.indexOf ("MSIE"))  )
	{
		return_str += "<PARAM name=\"windowlessVideo \" VALUE=\"" + windowlessVideo + "\">";
	}
	else if ( - 1 != navigator.userAgent.indexOf ("Firefox"))
	{
		return_str += "<PARAM name=\"windowlessVideo \" VALUE=\"false\">";
	}

	return_str += "</OBJECT>";

	return return_str

}

function chromeTimer()
{
    
    setTimeout("chromeTimer()", 100); 
}

function isMSFirefoxPlugin()
{
	var isWMPFFPlugin = false;

	try
	{
		for(i=0;navigator.plugins.length;i++)
		{
			if(navigator.plugins[i].name.indexOf("Windows Media Player Firefox Plugin") > -1)
			{
				isWMPFFPlugin = true;
				break;
			}
		}
	}
	catch(e)
	{
		isWMPFFPlugin = false;
	}

	return isWMPFFPlugin;
}
function enableDisableElements()
{

}
function firefoxPluginInstullNote(URL)
{
    var returnStr=""


    returnStr+="<TABLE BORDER='0' CELLPADDING='0' CELLSPACING='0'id='NotificationTBL'>"
    returnStr+="<TR>"
    returnStr+="<TD BGCOLOR='#475ccd' VALIGN='MIDDLE' STYLE='padding-left: 15px; padding-top: 5px; font-size: 12px;color: #ffffff;font-family: Arial;text-align: left;'>"
    returnStr+="You must install the <B><I>Windows Media Player Firefox Plugin.</I></B>"
    returnStr+="<BR /><BR />"
    returnStr+="<LI><SPAN STYLE='cursor: pointer;' onclick='window.open(\"http://switch5.castup.net/MS_Plugin_Notes.asp\", \"\", \"width=480, height=380, left=350, top=150, modal=yes\")'><U>Click here</U></SPAN> to download and install the plugin.</LI>"
    returnStr+="<BR />"
    returnStr+="<LI>Or <SPAN STYLE=\"cursor: pointer;\" onclick=\"window.open('"+URL+"')\"><U>click here</U></SPAN> to view the content directly in your Windows Media Player.</LI>"
    returnStr+="</TD>"
    returnStr+="</TR>"
    returnStr+="</TABLE>"
    return returnStr;
}
function getClipAttributes()
    {

        // Store the current media object.
        var cm = PlayerControlAction("GetMediaMetaData","");
        var retVal = "";

        // Create arrays to hold each attribute name and value.
        var atNames = new Array();
        var atValues = new Array();

        //alert("attributeCount="+cm.attributeCount);
        // Loop through the attribute list.
        for(var i = 0; i < cm.attributeCount; i++)
        {

           // Fill the arrays with the attribute info.
           atNames[i]  = cm.getAttributeName(i);
           atValues[i] = cm.getItemInfo(atNames[i]);

	       retVal += cm.getAttributeName(i).toString() + ": " + cm.getItemInfo(atNames[i]).toString() + "\n";

        }

        return retVal;
   }
function ajaxFunction()
{
    var xmlHttp;
    var serverURL="writeToServer.asp"
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
    catch (e)
    {
        try
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            alert("Your browser does not support AJAX!");
            return false;
        }
    }
  }
  xmlHttp.onreadystatechange=function()
  {
      if(xmlHttp.readyState==4)
      {
        alert(xmlHttp.responseText);
      }
  }
  serverURL+="?userIP="+userIP+"&userHTTP_USER_AGENT="+userHTTP_USER_AGENT;
  xmlHttp.open("GET",serverURL,true);
  xmlHttp.send(null);
}

