/**
 * Functions:
 * -------------
 * videoFunction(func:String)
 * setVolume(vol:Number)
 * setStream(url:String)
 **/

var WMPObject;
var radioModule;
var PlayStates = {
  0: "Undefined", // Windows Media Player is in an undefined state.
  1: "Stopped", // Playback of the current media item is stopped.
  2: "Paused", // Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location.
  3: "Playing", // The current media item is playing.
  4: "ScanForward", // The current media item is fast forwarding.
  5: "ScanReverse", // The current media item is fast rewinding.
  6: "Buffering", // The current media item is getting additional data from the server.
  7: "Waiting", // Connection is established, but the server is not sending data. Waiting for session to begin.
  8: "MediaEnded", // Media item has completed playback.
  9: "Transitioning", // Preparing new media item.
  10: "Ready", // Ready to begin playing.
  11: "Reconnecting" // Reconnecting to stream.
};
	
onload = function() {
  if(window.ActiveXObject && navigator.userAgent.indexOf('Windows') != -1){
    //IE browser
    WMPObject = document.getElementById("objectPlayer");
    radioModule = document.getElementById("LiveStats");
  }
  else{
    //mozilla or non-ie browser
    WMPObject = document.getElementById("embedPlayer");
    radioModule = document.getElementById("LiveStats");
  }
  
}

/********EVENT HANDLERS****************/


//PlayStateChange catcher for firefox
function OnDSPlayStateChangeEvt(NewState)
{
  playStateChangeHandler(NewState);
}

function playStateChangeHandler(NewState){
  switch(NewState){
      case 1:
        //Stopped
        radioModule.setPlayStatus(PlayStates[NewState]);
        break;
      case 2:
        radioModule.setStatePaused();
        radioModule.setPlayStatus("Paused");
        break;
      case 3:
       radioModule.setStatePlaying();
       radioModule.setPlayStatus("Playing");
        break;
      case 6:
        //Buffering
        radioModule.setPlayStatus(PlayStates[NewState]);
        break;
      case 10:
      	//Ready to play
      	radioModule.setPlayStatus("Ready");
      	break;
      default:
        if(radioModule.setPlayStatus) radioModule.setPlayStatus("Loading...");
    }
}

/**
 * Controls the WMP object with functions such as play,pause,stop,etc
 *
 * @param p The playback type. Possible values: play,pause,stop,fastFoward,rewind
 **/
function videoFunction(p){
 
  switch(p){
    case "play":
      WMPObject.controls.play();
      break;
    case "pause":
      WMPObject.controls.pause();
      break;
    case "stop":
      WMPObject.controls.stop();
      break;
    case "fastForward":
      var y = WMPObject.controls.currentPosition;
      WMPObject.controls.currentPosition = y + 10;
      break;
    case "rewind":
      var y = WMPObject.controls.currentPosition;
     WMPObject.controls.currentPosition = y - 10;
      break;
    default:
      WMPObject.controls.play();
  }
}


/**
 * Volume control for the WMP object. Accepts values between -1-100, defaulting to 50 if an invalid value is passed. 
 * Volume is muted if -1 is passed.
 *
 * @param vol The volume. Accepts a number between 0-100, and defaults to 50 if the value is invalid.
 **/
function setVolume(vol){
  //Default volume to 50 if value passed is NaN
  if( isNaN(vol) || (vol<-1 || vol>100) ){
    vol = 50;
  }
  //Toggle mute, and set volume. 
  if(vol == -1 && WMPObject.settings.mute == true){
    WMPObject.settings.mute = false;
    radioModule.setStateUnMuted();
  }
  else if(vol == -1 && WMPObject.settings.mute == false){
    WMPObject.settings.mute = true;
    radioModule.setStateMuted();
  }
  else{
    WMPObject.settings.volume = vol;
  }
}

/**
 * Sets URL of the stream/file URL to be played
 *
 * @param streamurl The url of stream.
 **/
function setStream(streamURL){
	WMPObject.URL = streamURL;
	//WMPObject.src = streamURL;
	
}

