if (!images) var images = new Array();
var isHot=false;
var whichDog = null;
var nowX;
var nowY;
var offsetx = 0;
var helddown = null;
var maxvolume = 18;
var currentvolume = 9;
var draggingtracker = false;

var statustext = new Array();
statustext[0] = "0";
statustext[1] = "Stopped";
statustext[2] = "Paused";
statustext[3] = "Playing";
statustext[4] = "Fast Forward";
statustext[5] = "Rewind";
statustext[6] = "Buffering";
statustext[7] = "Waiting...";
statustext[8] = "Stopped";
statustext[9] = "Processing";
statustext[10] = "Stopped";
statustext[11] = "Seeking";

var statusiconmap = new Array();
statusiconmap[0] = "other";
statusiconmap[1] = "stop";
statusiconmap[2] = "pause";
statusiconmap[3] = "play";
statusiconmap[4] = "busy";
statusiconmap[5] = "busy";
statusiconmap[6] = "busy";
statusiconmap[7] = "busy";
statusiconmap[8] = "other";
statusiconmap[9] = "busy";
statusiconmap[10] = "stop";

var imagetable = new imagelist();
imagetable.imagepath = imagepath;
imagetable.addimage("buttonffwd","buttffwd?.gif","out","down");
imagetable.addimage("buttonrewind","buttrewind?.gif","out","down");
imagetable.addimage("buttonstop","buttstop?.gif","out","down");
imagetable.addimage("buttonplaypause","butt?.gif","pauseout","pausedown","playout","playdown");
imagetable.addimage("buttonmute","buttmute?.gif","out","down");
imagetable.addimage("volumeknob","volumelevel?.gif","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18");
imagetable.addimage("statusicon","status?.gif","busy","play","pause","stop","other");

function writecontrol(mediaobj) {
  document.write("<div id=\"btlogo\"><a href=\"http://www.bright-talk.com\" target=\"_blank\"></a></div>");	
  document.write("<div class='playercontrol' id='playercontrol' atomicselection='true'>");
  if (mediaobj.checkcapability("search")) {
    document.write("<div id=\"trackerbar\" class=\"trackerbar\" style=\"background-image: url("+imagepath+"trackerback.gif);\">");
    document.write("<div id=\"trackerbarplayed\" class=\"trackerbarplayed\" style=\"background-image: url("+imagepath+"trackerdone.png);\" align=\"right\"><div id=\"trackergrab\" class=\"trackergrab\" style=\"background-image: url("+imagepath+"trackerbutton.png);\"></div></div>");
    document.write("</div>");
  }
  document.write("<div class='playerbuttons'>");  
  document.write("<div class='medianav'>");
  if (mediaobj.checkcapability("search")) {  
    document.write("<img id=\"buttonrewind\" src=\""+imagepath+"buttrewindout.gif\" width=\"26\" height=\"36\">");
    document.write("<img id=\"buttonffwd\" src=\""+imagepath+"buttffwdout.gif\" width=\"26\" height=\"36\">");
  }
  if (mediaobj.checkcapability("playpause")) {
    document.write("<img id=\"buttonplaypause\" src=\""+imagepath+"buttplayout.gif\" width=\"33\" height=\"36\">");
  }
  if (mediaobj.checkcapability("stop")) {
    document.write("<img id=\"buttonstop\" src=\""+imagepath+"buttstopout.gif\" width=\"29\" height=\"26\">");  
  }
  document.write("</div>");
  if (mediaobj.checkcapability("volume")) {
    document.write("<img id=\"volumedown\" src=\""+imagepath+"volumedown.gif\" width=\"7\" height=\"30\" >");
    document.write("<img id=\"volumeknob\" style=\"background-image: url("+imagepath+"/volumeback.gif);\" src=\""+imagepath+"volumelevel9.gif\" width=\"26\" height=\"30\" >");
    document.write("<img id=\"volumeup\" src=\""+imagepath+"volumeup.gif\" width=\"7\" height=\"30\" >");
  }
  if (mediaobj.checkcapability("mute")) {
    document.write("<img id=\"buttonmute\" src=\""+imagepath+"buttmuteout.gif\" width=\"32\" height=\"30\" >"); 
  }
  document.write("<img id=\"statusicon\" src=\""+imagepath+"statusplay.gif\" width=\"18\" height=\"18\">");
  document.write("<div id=\"timeduration\">");
  document.write("<span id=\"oTime\">00:00</span>");
  if (mediaobj.checkcapability("duration")) {
    document.write(" / <span id=\"oDuration\">00:00</span>");
  }
  document.write("</div>");		
  document.write("<div id=\"logo\"><a href=\"http://www.brighttalk.com\" target=\"_blank\"><img src=\""+imagepath+"/spacer.gif\" border=\"0\"></a></div>");		  		    
  document.write("<div id=\"statustext\"></div>");		   
  document.write("</div>");   
  document.write("</div>");     
}


function writeimage(alias) {
   document.write("<img src=\""+images[alias]+"\">");
}

function ddInit(e){
  //topDog=isIE ? "body" : "HTML";
  topDog="HTML";  
  hotDog=isIE ? event.srcElement : e.target;
  
  while (hotDog.tagName!=topDog) {
    switch(hotDog.id) {
	  case "trackerbar" :
        whichDog = hotDog;
        offsetx=isIE ? event.clientX : e.clientX;
        offsety=isIE ? event.clientY : e.clientY;
	    var nowX = offsetx - getAbsX(whichDog);
	    var nowY = offsety - getAbsY(whichDog);	
        ddEnabled=true;
		draggingtracker = true;
        document.onmousemove=ddtracker;
	    document.onmouseup=ddtrackerend;
		return;
	    break;

	  case "buttonrewind" :    
		imagetable.replaceimage("buttonrewind","down");
		document.getElementById("buttonrewind").onmouseup = function() {
		  imagetable.replaceimage("buttonrewind","out");
		  media.fastreverse();
		  document.onmouseup = null;			  
		};		
		return;
	    break;
		
	  case "buttonplaypause" :
		updateplaypausebutt(true);
		document.getElementById("buttonplaypause").onmouseup = function() {
		  media.toggleplaypause();			
		  document.onmouseup = null;			  
		};		
		return;
	    break;
		
	  case "buttonffwd" :
		imagetable.replaceimage("buttonffwd","down");
		document.getElementById("buttonffwd").onmouseup = function() {
		  imagetable.replaceimage("buttonffwd","out");
		  media.fastforward();
		  document.onmouseup = null;			  
		};		
		return;
	    break;
		
	  case "buttonstop" :
		imagetable.replaceimage("buttonstop","down");
		document.getElementById("buttonstop").onmouseup = function() {
		  imagetable.replaceimage("buttonstop","out");
		  media.stop();
		  document.onmouseup = null;		  
		};		
		return;
	    break;		

	  case "buttonmute" :
		imagetable.replaceimage("buttonmute",((media.getmutestatus())?"out":"down"));
		document.getElementById("buttonmute").onmouseup = function() {
		  media.togglemute();
		  document.onmouseup = null
		};		
		return;
	    break;					
		
	  case "volumeup" :
	    volumeup();
		window.clearTimeout(helddown); 		
	    helddown = window.setTimeout("volumeup();",200);
	  	document.onmouseup = function() { 
		  window.clearTimeout(helddown);
		  document.onmouseup = null;
		};
		return;
		break;
		
	  case "volumedown" :
	    volumedown();
		window.clearTimeout(helddown); 		
	    helddown = window.setTimeout("volumedown();",200);	  
	  	document.onmouseup = function() { 
		  window.clearTimeout(helddown);
		  document.onmouseup = null;		  
		};
		return;
		break;
		
	  case "volumeknob" :
        whichDog = hotDog;
        offsetx=isIE ? event.clientX : e.clientX;
        offsety=isIE ? event.clientY : e.clientY;
	    //var nowX = offsetx - getAbsX(whichDog);
	    //var nowY = offsety - getAbsY(whichDog);	
        ddEnabled=true;
        document.onmousemove=ddvol;
	    document.onmouseup=ddvolend;  
	    return;
	    break;	
		
		
	  default :
	    hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
	    break;
	}
  }  
  return;
}


function ddtracker(e){
  if (!ddEnabled) return;
  //window.status = nowX;//whichDog.style.left;
  var trackerbarplayedObj = document.getElementById(whichDog.id+"played");
  var trackerbarcontrolObj = document.getElementById(whichDog.id+"control");  
  if (trackerbarplayedObj) {
    var trackerwidth = media.getwidth();
    var newwidth = (isIE ? event.clientX : e.clientX) - getAbsX(whichDog);
	if (newwidth<0) newwidth=0;
	if (newwidth>trackerwidth) newwidth=trackerwidth;
    setStyle(trackerbarplayedObj, "width", newwidth + "px");
    var secondsplayed = media.getsecondsplayedbyfraction(newwidth/trackerwidth);
	var oTimeObj = document.getElementById("oTime");
    if (oTimeObj) oTimeObj.innerHTML = formatms(secondsplayed);
  }
  //window.status = event.clientX+":"+event.clientY;
  return false;  
}

function ddtrackerend(e) {  
  ddtracker(e);  
  ddEnabled = false; 
  document.onmousemove=null;
  document.onmouseup=null;  
  var trackerbarplayedObj = document.getElementById(whichDog.id+"played");  
  if (trackerbarplayedObj) {
    var trackerwidth = media.getwidth();
    newwidth = (isIE ? event.clientX : e.clientX) - getAbsX(whichDog);  
    secondsplayed = media.getsecondsplayedbyfraction(newwidth/trackerwidth);  
    media.setcurrentposition(secondsplayed);
  }
  draggingtracker = false; 
}

function ddvol(e){
  if (!ddEnabled) return;
  var volumeObj = document.getElementById(whichDog.id);
  newx = (isIE ? event.clientX : e.clientX);
  newx = newx - offsetx;		
  var changeinvolume = Math.round((newx*(Math.abs(newx)))/10);
  if (changeinvolume!=0) {
    if (!setvolume(currentvolume + changeinvolume)) offsetx = event.clientX;	
  } else {
    media.setmute(false);
    imagetable.replaceimage("buttonmute",((media.getmutestatus())?"down":"out"));	  
  }
  return false;  
}

function ddvolend(e) {
  ddvol(e);
  ddEnabled = false;
}

function setvolume(volume) {
	volume = Math.round(volume);
	if (volume>=0 && volume<=18) {
		currentvolume = volume;
		media.setvolume(Math.round((currentvolume/maxvolume)*100));
		imagetable.replaceimage("volumeknob",currentvolume);
		imagetable.replaceimage("buttonmute",((media.getmutestatus())?"down":"out"));
		return true;
	}	
	return false;
}

function setvolumepercentage(volume) {
  if (isNaN(volume) || volume==false) return false;
  return setvolume(Math.round((volume/100)*18));
}

function settrackerbar(percentage) {
  var trackerbarplayedObj = document.getElementById("trackerbarplayed");  
  if (isNaN(percentage)) percentage = 0;
  if (trackerbarplayedObj) setStyle(trackerbarplayedObj, "width", Math.round(percentage)+"%");
}


function volumeup() {
    var amount = (volumeup.arguments.length>0) ? volumeup.arguments[0]:1;
        //window.status = currentvolume+amount;
	if (setvolume(currentvolume+amount)) {
	  if (helddown) helddown = window.setTimeout("volumeup("+amount+");",200);
	}
}

function volumedown() {
    var amount = (volumedown.arguments.length>0) ? volumedown.arguments[0]:1;
        //window.status = currentvolume-amount;
	if (setvolume(currentvolume-amount)) {
	  if (helddown) helddown = window.setTimeout("volumedown("+amount+");",200);	
    }
}

function ddN4(whatDog){
  if (!isN4) return;
  N4=eval(whatDog);
  N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
  N4.onmousedown=function(e){
    N4.captureEvents(Event.MOUSEMOVE);
    N4x=e.x;
    N4y=e.y;
  }
  N4.onmousemove=function(e){
    if (isHot){
      N4.moveBy(e.x-N4x,e.y-N4y);
      return false;
    }
  }
  N4.onmouseup=function(){
    N4.releaseEvents(Event.MOUSEMOVE);
  }
}

function getstatustext(playstate) {
	if (isNaN(playstate)) return "";
    return statustext[playstate]?statustext[playstate]:"";	
}

function updateplaypausebutt(down) {
  var butttype = (media.getplaystate()==3)?"pause":"play";
  imagetable.replaceimage("buttonplaypause",butttype+(down?"down":"out"));
}

function updatestatusicon(playstate) {
  if (isNaN(playstate)) return "";
  var imagestate = statusiconmap[playstate]?statusiconmap[playstate]:"";		
  imagetable.replaceimage("statusicon",imagestate); 
}

function updatestatusobjects(playstate) {
  setInnerHTML("statustext",getstatustext(playstate));
  setInnerHTML("oDuration",formatms(media.getduration()));  
  updatestatusicon(playstate);
  updateplaypausebutt(false);
}

function updatetimeobjects(currentpos) {
  setvolumepercentage(media.getvolume());      
  if (!draggingtracker) { // && media.getplaystate()!=1) {
  //if (!draggingtracker && media.getplaystate()!=1) {
    //window.status = currentpos;
    setInnerHTML("oTime",formatms(currentpos)); 	  
    settrackerbar((currentpos/media.getduration())*100);
  }
}

document.onmousedown=ddInit;
document.ondblclick=null;


