// Original baronsimms help file
var tracklocationurl;
var trackstatus;
var soundid;
var lastmp3pos = 0;
var currentmp3pos =0;
var i = 100;
var rarted_file ="";

soundManager.consoleOnly = false; 
soundManager.debugMode = false;


soundManager.onload = function() {
  soundManager.defaultOptions.autoLoad = false;
  soundManager.defaultOptions.autoPlay = false;
  soundManager.defaultOptions.whileplaying = updateRuntime;
  soundManager.defaultOptions.onfinish = trackfin;
  soundManager.defaultOptions.onplay = pingmusicbox;
  soundManager.defaultOptions.onid3 = mp3handler ;
  soundManager.defaultOptions.volume = 100 ;
  soundManager.defaultOptions.multishot = false ;
  createPlaylist();
  startPlaylist();  
}

function mp3handler(){
 soundManager._writeDebug('sound '+this.sID+' ID3 got');
  var prop = null;
  var data = '';
  for (prop in this.id3) {
    if (prop == 'songname') changeContent('nowplaying',this.id3[prop]);
  }
}
function getTime(nMSec,bAsString) {
    // convert milliseconds to mm:ss, return as object literal or string
    var nSec = Math.floor(nMSec/1000);
    var min = Math.floor(nSec/60);
    var sec = nSec-(min*60);
    if (min == 0 && sec == 0) return null; // return 0:00 as null
 //    return (bAsString?(min+':'+(sec<10?'0'+sec:sec)):{'min':min,'sec':sec});
  return (bAsString?(min+':'+(sec<10?'0'+sec:sec)):{'min':min,'sec':sec});
  }

function updateTime(nMSec) {
    // update "current playing" time
    lastmp3pos = nMSec;
    var runtime = (getTime(nMSec,true)||'0:00');
    changeContent('previewtime',runtime);

  }

function updateRuntime(){
	 if (Math.abs(this.position-lastmp3pos)>1000) updateTime(this.position);
}

function slideVol()
{
   if(i > 0)
   {
      i = i-12;
      if (i < 0) i =0;
      soundManager._writeDebug('*****************Starting volume slide '+rarted_file);
      soundManager.setVolume(rarted_file,i);
      var c = window.setTimeout("slideVol()", 500);
   }
   else
   {
       soundManager._writeDebug(' Volume less than Zero ******************** '+i);
      
   }
}

function changeContent(id,content) {
   if (document.getElementById || document.all) {
      var el = document.getElementById? document.getElementById(id): document.all[id];
      var cntnt = content
      if (el && typeof el.innerHTML != "undefined") el.innerHTML = cntnt;
   }
}

function InsertVideo(moviename,buffering){
     var fo = new SWFObject("/script/flowplayer/FlowPlayer.swf", "FlowPlayer", "300", "250", "9", "#ffffff", true);
     var movieUrl = "/modpub/media/"+moviename+".flv";
     var coverUrl = "/modpub/media/"+moviename+".jpg";
     fo.addParam("AllowScriptAccess", "always");
     fo.addParam("allowFullScreen", "false");
     fo.addVariable("config", "{  menuItems: [ false, false, false, false, false, false ],showFullScreenButton: false, showPlayListButtons: true, playList: [ { url: '"+coverUrl+"' }, { url: '"+movieUrl+"' },  ], loop: false, autoRewind: true, initialScale: 'orig', autoBuffering: "+buffering+" , useNativeFullScreen: true }");
     fo.write(moviename);
}
function EInsertVideo(moviename,buffering){
     var fo = new SWFObject("/script/flowplayer/FlowPlayer.swf", "FlowPlayer", "300", "250", "9", "#ffffff", true);
     var movieUrl = "http://66.70.206.93/videos/"+moviename+".flv";
     var coverUrl = "http://66.70.206.93/videos/"+moviename+".jpg";
     fo.addParam("AllowScriptAccess", "always");
     fo.addParam("allowFullScreen", "false");
     fo.addVariable("config", "{  menuItems: [ false, false, false, false, false, false ],showFullScreenButton: false, showPlayListButtons: true, playList: [ { url: '"+coverUrl+"' },{ url: 'http://66.70.206.93/videos/vidvert.flv'}, { url: '"+movieUrl+"' },  ], loop: false, autoRewind: true, initialScale: 'orig', autoBuffering: "+buffering+" , useNativeFullScreen: true }");
     fo.write(moviename);
}
function InsertFlash(width,height,name,location,loop){
    document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
    document.write('codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"');
    document.write('WIDTH="'+width+'" HEIGHT="'+height+'" id="'+name+'intro" ALIGN="">');
    document.write('<PARAM NAME=movie VALUE="'+location+'"> <PARAM NAME=loop VALUE='+loop+'> <PARAM NAME=menu VALUE=false> <PARAM NAME=quality VALUE=high>  <EMBED src="'+location+'" loop='+loop+' menu=false quality=high WIDTH="'+width+'" HEIGHT="'+height+'" NAME="'+name+'" ALIGN=""');
    document.write('TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>');
    document.write('</OBJECT>');
}


/*
playmp3 = function(flsoundid,previewid){
	soundid = flsoundid;
	var content ="<h1>Loading track</h1>";
	placediv('player');
 	changeContent('player',content);
        new Effect.Appear('player',{ to: 0.9 });
	SendRequest(previewid);
}

*/

function startPlaylist(){
	soundManager.stopAll();
	changeContent('mediacontrol','<a href="javascript:stopall();"><img src="/modpub/icons/media_stop.gif"></a>');
	soundManager.play('preview0');
	
}

function  playmp3(trackid,previewid){
	soundManager.stopAll();
	changeContent('nowplaying','Baronsimms.com'); 
	changeContent('mediacontrol','<a href="javascript:stopall();"><img src="/modpub/icons/media_stop.gif"></a>');
	soundManager.play(trackid)	
}

function  playmp3file(trackid,previewlocation){
	soundManager.stopAll();
	changeContent('nowplaying','Baronsimms.com'); 
	changeContent('mediacontrol','<a href="javascript:stopall();"><img src="/modpub/icons/media_stop.gif"></a>');
	soundManager.play(trackid,previewlocation);
}

function pingmusicbox(){
        new Effect.Highlight("musicbox","{ startcolor: '#cc00ff', endcolor: '#ffffff' }");
}
 

/**
 * 
 */ 
 function makeitso(){
 	placediv('player');
 	var content ="<h1>Loading track</h1>";
 	changeContent('player',content);
	new Effect.Appear('player',{ to: 0.8 });
 	SendRequest();
 	setTimeout("Effect.Puff('player')",10000);
 } 

stopall = function() {
    changeContent('mediacontrol',' ');
    changeContent('previewtime','0:00');
	changeContent('nowplaying','Baronsimms.com'); 
	soundManager.stopAll();
	
}

trackfin = function(){
	changeContent('previewtime','0:00');
	changeContent('nowplaying','Baronsimms.com');
	changeContent('mediacontrol',' ');
}


/**
 * 
 * @param {string} id id of the element to change information
 * @param {string} content
 */
function changeContent(id,content) {
   if (document.getElementById || document.all) {
      var el = document.getElementById? document.getElementById(id): document.all[id];
      var cntnt = content
      if (el && typeof el.innerHTML != "undefined") el.innerHTML = cntnt;
   }
}

/**
 * 
 */
 function getXMLHttpRequest(){
 var request = false;
 // Firefox
 try {request = new XMLHttpRequest();} 
 catch(err1)
 {  // IE Sucks !
 	try {request = new ActiveXObject("Msxml2.XMLHTTP");} 
 	catch(err2)
 	{	// IE Really sucks
 		try { request = new ActiveXObject("Microsoft.XMLHTTP");} 
 		catch(err3)
 		{
 			request = false;
 		}
 	}
 }
 return request;
 } 
 
 var webRequest = getXMLHttpRequest();
 /**
  * 
  */
  function RequestHandler(){
  	if((webRequest.readyState == 4)){
  		
  		if((webRequest.status ==200)){
  			// Web request has completed
  		var response = webRequest.responseXML.documentElement;
  
  		var trackname = response.getElementsByTagName('trackname')[0].firstChild.nodeValue;
  		var comments = response.getElementsByTagName('comments')[0].firstChild.nodeValue;
  		var author = response.getElementsByTagName('author')[0].firstChild.nodeValue;
  		var genre = response.getElementsByTagName('genre')[0].firstChild.nodeValue;
		// These are global
		tracklocationurl = response.getElementsByTagName('locationurl')[0].firstChild.nodeValue;
  		trackstatus = response.getElementsByTagName('status')[0].firstChild.nodeValue; 		
		var data='';
		data+='<img src="\/modpub\/style\/speaker2.png">';
  		if(trackstatus == '200'){
		  data+=' <h3 align="center">Now Playing preview !<\/h3>';
		  data+=' <table>';
		  data+='  <tr><th>Author:<\/th><td>'+author+'<\/td><\/tr>';
		  data+='  <tr><th>Track:<\/th><td>'+trackname+'<\/td><\/tr>';
		  data+='  <tr><th>Genre:<\/th><td>'+genre+'<\/td><\/tr>';
		  data+=' <\/table>';
		  data+=' <p>'+comments+'<\/p>';
  		  changeContent('player',data);		  
		  soundManager.stopAll();
		  soundManager.play(soundid,tracklocationurl);
		  	
  		}else{
  		  data+=' <h3 align="center">Track Not found !<\/h3>';
  		  changeContent('player',data);
  		}
  		
  		}else{
  		var message = "A problem occured sending the request"+webRequest.status+"--"+webRequest.readyState;
  		alert  (message);
  	}
  }
 }
/**
 * 
 */
 function SendRequest(fileid){
 	// var fileid ='BE15793E4306F319A031D5DAFA72657C';
 	var rarted = Math.random();
 	var url ="http://www.baronsimms.com/ajax/trackmetapreview.php?fileid="+fileid+"&rated="+rarted;
 	webRequest.open("GET",url,true);
 	webRequest.onreadystatechange = RequestHandler;
 	webRequest.send(null);
 }
 
/**
 * 
 * @param {string} id element to re postion on the web page
 */
 function placediv(id){
 	layer = document.getElementById(id);
 	var  scrollOffsetX,scrollOffsetY,objectHeight,objectWidth;
 	var xVector,yVector,divX,divY,actualX,actualY,actualMiddleX,actualMiddleY;
 	objectHeight  =  parseInt(layer.style.height);
 	objectWidth   =  parseInt(layer.style.width);
 	xVector       =  parseInt(objectWidth/2);
 	yVector       =  parseInt(objectHeight/2);
// 	alert ("xVector ="+xVector+" yVector="+yVector);
 	actualX = f_clientWidth();
 	actualY	= f_clientHeight();
// 	alert ("actualX ="+actualX+" actualY="+actualY);
 	scrollOffsetX =  document.documentElement.scrollLeft; 
 	scrollOffsetY =  document.documentElement.scrollTop;
 //	alert ("scrollOffsetX ="+scrollOffsetX+" actualMiddleY="+scrollOffsetY);
 	actualMiddleX =  parseInt((actualX /2));
 	actualMiddleY =  parseInt((actualY /2));
 //	alert ("actualMiddleX ="+actualMiddleX+" actualMiddleY="+actualMiddleY);
 	divX = ((actualMiddleX + scrollOffsetX) - xVector)+"px";
 	divY = ((actualMiddleY + scrollOffsetY) - yVector)+"px";
 //	alert ("divx ="+divX+" divy="+divY);
 	document.getElementById('player').style.left=divX;
 	document.getElementById('player').style.top=divY; 
 
 }
 
/////////////////////////////////////////// Helper functions to read screen dimensions etc 
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}

function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
