﻿//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();
}

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)
        {
            //alert ('null player')
            return;
        }
    }
    catch (e)
    {
        //alert (e)
    }
    try //RE CHECK AND FIX VOLUME
	{
		if(_cuMuteVar)
			if(_cuPlayer.settings.volume >0 )_cuPlayer.settings.volume=0;
		//else
		//	if(_cuPlayer.settings.volume != _cuVolVar)_cuPlayer.settings.volume=_cuVolVar;
	}
	catch (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;
                }
                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 "GetVolume":
				return _cuVolVar;
			break;
            case "SetVolume":
                _cuPlayer.settings.volume = Number(actionParam);
                _cuVolVar = Number(actionParam);
                _cuMuteVar = false;
                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("NotificationDiv").style.display = "block";
            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);
}

