/////////////////////////////////////////////////////////////////////////
// Media Player Interface                                              //
/////////////////////////////////////////////////////////////////////////
// By Kenny Ngo (10-07-2007)

var cacheElapse   = 0;
var cacheOffset   = 0;

// Volume Slider
var defVolume     = 100;
var defVolumeSha  = 0;
var defVolumeStep = 10;

function goFullScreen(id,total,vmap,ticket){
      if(!vmap) { vmap='video'; }
      window.location.replace("http://"+vmap+".forvn.com/show/"+id+".html?ticket="+ticket+"&fullscreen=1&offset="+cacheOffset+"&segments="+total);
}
function volume(dir){
      (dir=='up')  ? defVolume+=defVolumeStep : defVolume-=defVolumeStep;
      if(defVolume > 100) defVolume = 100;
      if(defVolume < 0  ) defVolume = 0;

      sendEvent('volume',defVolume);
      volume_pos(defVolume);
}
function volume_mute(){
      if(defVolume>0) {
            defVolumeSha=defVolume;
            volume_pos(0);
            sendEvent('volume',0);
      } else {
            volume_pos(defVolumeSha);
            sendEvent('volume',defVolumeSha);
      }
}
function volume_pos(value){
      defVolume = value;
      getObject('pl_volume').style.backgroundPosition=(100-defVolume)+"% 0%";
}

var defProgress     = 0;
var defLength       = 0;
var defPosition     = 0;
var defProgressStep = 5;
var defInterval     = null;
var defTimeout      = null;
var defClips	  = null;
var defLoopme       = 1;
var defStatus       = 0;
var cacheVolume     = 80;

function playAll(){
      sendEvent('playitem','0');
}
function playItem(id){
      sendEvent('playitem',id);
}
function progress(dir){
      (dir=='more')  ? defPosition+=defProgressStep : defPosition-=defProgressStep;
      if(defPosition < 0  )         defPosition = 0;
      sendEvent('scrub',defPosition);
}
function progress_forward(){
      sendEvent('volume',0);
      progress('more');
      defInterval = setInterval("progress('more');", 300);
}
function progress_rewind(){
      sendEvent('volume',0);
      progress('less');
      defInterval = setInterval("progress('less');", 300);
}
function progress_pos(value){
      if(value > 100 )  value=100;
      defProgress = value;
      getObject('pl_progress').style.backgroundPosition=(100-defProgress)+"% 0%";
}
// track the infinite
var oThrough = 0;
function progress_resume(current,offset){
      if(defPosition >= current || oThrough >= current){
            sendEvent('volume',80);
            oThrough=0;
            return;
      }
      oThrough++;
      sendEvent('scrub',defPosition+defProgressStep);
      setTimeout("progress_resume("+current+","+current+");",1000);

}
// State Toggle
var defState=0;
function state_toggle(state){
      var bgSRC = getObject('pl_state').src;
      defState     = state;

      if(state==0){
            getObject('pl_state').src = bgSRC.replace("btnPause","btnPlay");
      } else {
            getObject('pl_state').src = bgSRC.replace("btnPlay","btnPause");
      }

}
function state_switch(){
      sendEvent('playpause');
}
// some variables to save
var currentItem=0;
function thisMovie(movieName) {
    if(navigator.appName.indexOf("Microsoft") != -1) {
            return window[movieName];
      } else {
            return document[movieName];
      }
}
function sendEvent(typ,prm) {
      if(thisMovie("mpl").sendEvent){
            thisMovie("mpl").sendEvent(typ,prm);
      } else {
            setTimeout("sendEvent('"+typ+"','"+prm+"')",1000);
      }
}
function getUpdate(typ,pr1,pr2,pid) {
      if(typ == "time") {
            defPosition = parseInt(pr1);
            defLength   = parseInt(pr2);
            progress_pos(Math.round((pr1*100)/(pr2+pr1)));
      }
      else if(typ == "volume") { volume_pos(pr1);   }
      else if(typ == "load" )  {
            getObject('pl_progress_load').style.backgroundPosition=(100-parseInt(pr1))+"% 0%";
      }
      else if(typ == "item")   {
            cacheOffset     = pr1;
            if(getObject('totalParts').value){
                  for(var i=0; i< getObject('totalParts').value;i++){
                        if(i!=pr1){
                              getObject('PartID'+i).className = "partIN";
                        } else {
                              getObject('PartID'+i).className = "partAC";
                              getObject('KNPlayerScroll').scrollTop=(63*i);
                        }
                  }
            }
      }
      else if(typ == "state")  {
      	defStatus = pr1;
      	
            if(getObject('playAll')){
            	if(getObject('playAll').checked) 	defLoopme = 1;
            	else          				defLoopme = 0;
            }
            if((  pr1==1 || pr1==3 )
               && defLength < 1
               && defPosition > 1
            ) {
                  // make sure that it jumps
                  if( (parseInt(cacheOffset)+1) < parseInt(defTotal) && defLength < 1 && defLoopme==1){
                  	setTimeout("sendEvent('stop');",1000);
                        setTimeout("playItem("+(parseInt(cacheOffset)+1)+");",2000);
                  } else {
                  	setTimeout("sendEvent('stop');",1000);
                  }
            }
            if(pr1==0 || pr1 == 2) state_toggle(pr1);
      }
}