// Append ?raw to the URL of this page to view the raw source (for 
// comments, copyright & licence), or ?pretty for a colorized version.

﻿
var nsXhtml="http://www.w3.org/1999/xhtml";var nsSvg="http://www.w3.org/2000/svg";var nsXlink="http://www.w3.org/1999/xlink";var nsBAPlaylist="http://freecogg.net/namespaces/baplaylist/";var volinc=5;var balinc=10;var tickerDirection="countup";var globalTickerDelay=178;var globalTickerIncrement=3;var g_fadedisplay="none";var g_degbugdisplay="none";var g_maindisplay="block";var g_mainpostop=0;var g_mainposleft=0;var g_eqdisplay="block";var g_eqposleft=275;var g_eqpostop=0;var g_pldisplay="block";var g_plposleft=0;var g_plposright=0;var g_plposbottom=0;var normalFontColor="rgb(0,255,0)";var currentFontColor="rgb(0,128,255)";var normalBgColor="rgb(0,0,0)";var selectedBgColor="rgb(40,40,66)";var mbFg="rgb(0,255,0)";var mbBg="rgb(0,0,0)";var bandslinecolor="rgb(222,207,0)";var preamplinecolor="rgb(255,255,240)";var font="Arial";var lastTime=(parseInt("00")*60)+parseInt("37");var lastStatus="pause";var globalSeconds=parseInt("34");var globalMinutes=parseInt("02");var globalSecondsLeft=parseInt("57");var globalMinutesLeft=parseInt("01");var globalTotalTime=parseInt("34");var globalSeekDone=false;var globalShuffleOn=false;var globalRepeatStatus="off";var globalVolume=96;var globalBalance=0;var pageLoaded=false;var globalPauseBlinkerInterval=null;var globalPauseHidden=false;var globalSelectedPlTime=0;var globalTotalPlTime=0;var useFakeXmlHttp=false;function toggleServerCommunication(){if(useFakeXmlHttp==true){useFakeXmlHttp=false;globalEqReq=newXmlHttp();statusRefresh();}else{useFakeXmlHttp=true;globalEqReq=newXmlHttp();}
return useFakeXmlHttp;};function fadeOutIntro(stage,el){el=el||document.getElementById("intro");if(stage>.2){stage=stage-.1;el.style.opacity=stage;setTimeout(function(){fadeOutIntro(stage,el);},50);}else{el.parentNode.removeChild(el);}};function initPauseBlinker(){document.getElementById("status").addEventListener("DOMAttrModified",function(evt){if(evt.attrName.toLowerCase()=="class"){lastStatus=evt.currentTarget.className;if(lastStatus=="pause"){globalPauseBlinkerInterval=window.setInterval(pauseBlinker,2000);}else{window.clearInterval(globalPauseBlinkerInterval);document.getElementById("minutes").style.visibility="visible";document.getElementById("seconds").style.visibility="visible";document.getElementById("minus").style.visibility="visible";}
var slider=document.getElementById("progressbardrag");if(lastStatus=="stop"){slider.style.display="none";}else{slider.style.display="block";}}},false);};function pauseBlinker(){if(lastStatus=="pause"){if(!globalPauseHidden){document.getElementById("minutes").style.visibility="hidden";document.getElementById("seconds").style.visibility="hidden";document.getElementById("minus").style.visibility="hidden";globalPauseHidden=true;}else{document.getElementById("minutes").style.visibility="visible";document.getElementById("seconds").style.visibility="visible";document.getElementById("minus").style.visibility="visible";globalPauseHidden=false;}}};function closeWindow(){if(confirm("Are you sure that you want to close JsAmp?")){close();}};function toggleTickerDir(){var div=document.getElementById("ulbox");if(tickerDirection=="countup"){div.className=div.className.replace(/countup/,"countdown");tickerDirection="countdown";numberEncode(numl(globalMinutesLeft),"minutes");numberEncode(numl(globalSecondsLeft),"seconds");textReplace(minstring("-"+numl(globalMinutesLeft)),document.getElementById("pl_currenttime_min"));textReplace(numl(globalSecondsLeft),document.getElementById("pl_currenttime_sec"));}else{div.className=div.className.replace(/countdown/,"countup");tickerDirection="countup";numberEncode(numl(globalMinutes),"minutes");numberEncode(numl(globalSeconds),"seconds");textReplace(minstring(numl(globalMinutes)),document.getElementById("pl_currenttime_min"));textReplace(numl(globalSeconds),document.getElementById("pl_currenttime_sec"));}
sendArg("inisection=settings&tickerdir_setini="+tickerDirection);};function initVolume(){applyVolume();};function insertVolume(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","volume.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var globalVolume=parseInt(xmlhttp.responseText);applyVolume();}}
xmlhttp.send(null);};function applyVolume(){calcVolBg(globalVolume);var volumeslider=document.getElementById("volumeslider");volumeslider.vol_volume=globalVolume;var sliderPos=Math.round(globalVolume*0.51);volumeslider.style.left=sliderPos+"px";volumeslider.parentNode.title="Current Volume: "+globalVolume+"%";};function calcVolBg(vol){var offset=(Math.round((vol*0.27)))*15;document.getElementById("volumebar").style.backgroundPosition="0 -"+offset+"px";};function initBalance(){applyBalance();};function insertBalance(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","balance.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4)
{globalBalance=parseInt(xmlhttp.responseText,10);}}
xmlhttp.send(null);};function applyBalance(){calcBalBg(globalBalance);var sliderPos=Math.round((globalBalance+100)*0.12);slider=document.getElementById("balanceslider");slider.style.left=sliderPos+"px";slider.parentNode.title="Current Balance/Panning: "+globalBalance+"%";};function calcBalBg(preBal){if(preBal<0){preBal=preBal*-1;}
var offset=(Math.round((preBal*0.27)))*15;var style="-9px -"+offset+"px";document.getElementById("balancebar").style.backgroundPosition=style;};function insertMonoSter(){var xmlhttp=newXmlHttp();xmlhttp.open("GET","monoster.html",true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var toEval=xmlhttp.responseText;var mono=document.getElementById("mono");var stereo=document.getElementById("stereo");if(toEval=="mono"){mono.className="on";stereo.className="off";}else{mono.className="off";stereo.className="on";}}}
xmlhttp.send(null);};function buttonPress(arg){if(arg=="?play"){newSong();}else if(arg=="?prev"||arg=="?next"){lastTime==9999999;}
var xmlhttp=newXmlHttp();xmlhttp.open("GET","status.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var obj=document.getElementById("status");obj.className=xmlhttp.responseText;}}
xmlhttp.send(null);};function textReplace(string,node){var spans=node.getElementsByTagNameNS(nsXhtml,"span");string=string.toString().toUpperCase();for(var x=0;x<string.length;x++){if(!spans[x]){var newSpan=document.createElementNS(nsXhtml,"span");newSpan.className="text1-"+string.charCodeAt(x);node.appendChild(newSpan);}else{spans[x].className="text1-"+string.charCodeAt(x);}}
if(spans.length>string.length){while(spans.length>string.length){node.removeChild(spans[spans.length-1]);}}};function initTicker(){var inner=document.getElementById("tickerinner");inner.scroll_direction=-1;inner.style.position="absolute";inner.style.left="9px";inner.scroll_left=9;inner.scroll_pause=0;setTimeout(moveIt,500);inner.parentNode.addEventListener("dblclick",function(){generateTicker();},false);pageLoaded=true;var distance=document.getElementById("songticker-controls-distance");var delay=document.getElementById("songticker-controls-delay");var interval=null;distance.stepUp=function(){if(globalTickerIncrement<8)this.value=++globalTickerIncrement;};delay.stepUp=function(){if(globalTickerDelay<1000)this.value=++globalTickerDelay;};distance.stepDown=function(){if(globalTickerIncrement>1)this.value=--globalTickerIncrement;};delay.stepDown=function(){if(globalTickerDelay>20)this.value=--globalTickerDelay;};var stepDown=function(){var input=this.nextSibling.nextSibling;interval=window.setInterval(function(){input.stepDown();},100);input.stepDown();};distance.previousSibling.previousSibling.onmousedown=stepDown;delay.previousSibling.previousSibling.onmousedown=stepDown;var stepUp=function(){var input=this.previousSibling.previousSibling;interval=window.setInterval(function(){input.stepUp();},100);input.stepUp();};distance.nextSibling.nextSibling.onmousedown=stepUp;delay.nextSibling.nextSibling.onmousedown=stepUp;var cancelInterval=function(){window.clearInterval(interval);};distance.nextSibling.nextSibling.onmouseup=cancelInterval;delay.nextSibling.nextSibling.onmouseup=cancelInterval;distance.previousSibling.previousSibling.onmouseup=cancelInterval;delay.previousSibling.previousSibling.onmouseup=cancelInterval;};function generateTicker(){var xmlhttp=newXmlHttp();xmlhttp.open("GET","tickertext.html",true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var string=xmlhttp.responseText.replace(/\[Opening\] ?/,"");textReplace(string,document.getElementById("tickerinner"));scrollMe(string);}}
xmlhttp.send(null);};function scrollMe(string){inner=document.getElementById("tickerinner");inner.scroll_innerwidth=string.length*5;inner.style.width=inner.scroll_innerwidth+"px";inner.scroll_rightStop=((inner.scroll_innerwidth-156)*-1)-3;if(inner.scroll_innerwidth<=156){inner.scroll_left=3;inner.style.left="3px";}};function moveIt(){var inner=document.getElementById("tickerinner");if(inner.scroll_innerwidth>156){if(inner.scroll_pause==0){inner.scroll_left=inner.scroll_left+inner.scroll_direction;inner.style.left=inner.scroll_left+"px";if(inner.scroll_left<=inner.scroll_rightStop){inner.scroll_direction=globalTickerIncrement;inner.scroll_pause=5;}else if(inner.scroll_left>=3){inner.scroll_direction=-1*globalTickerIncrement;inner.scroll_pause=5;}}else{inner.scroll_pause--;}}
window.setTimeout(moveIt,globalTickerDelay);};function openTickerControls(){var controls=document.getElementById("songticker-controls");controls.style.display="block";controls.scroll_oldTickerDelay=globalTickerDelay;controls.scroll_oldTickerIncrement=globalTickerIncrement;document.getElementById("songticker-controls-distance").value=globalTickerIncrement;document.getElementById("songticker-controls-delay").value=globalTickerDelay;};function closeTickerControls(saveChanges){var controls=document.getElementById("songticker-controls");controls.style.display="none";if(saveChanges){var arg="inisection=settings&tickerdelay_setini="+encodeURIComponent(globalTickerDelay)+"&tickerincrement_setini="+encodeURIComponent(globalTickerIncrement);setDebugDisplay(arg);sendArg(arg);}else{globalTickerDelay=controls.scroll_oldTickerDelay;globalTickerIncrement=controls.scroll_oldTickerIncrement;}};function mainWindowModeToggle(){href=document.getElementById("mainwindowcss");if(href.href.indexOf("mainfull.css")!=-1){href.href="mainws.css";}else{href.href="mainfull.css";}};function plWindowModeToggle(){href=document.getElementById("plcss").href;if(href.href.indexOf("plfull.css")!=-1){href="plws.css";}else{href="plfull.css";}};function volUp(){if(globalVolume+volinc>100){insertVolume("?volume=100");}else{insertVolume("?incvol="+volinc);}};function volDown(){if(globalVolume-volinc<0){insertVolume("?volume=0");}else{insertVolume("?decvol="+volinc);}};function balLeft(){currentbal=parseInt(document.getElementById("balancebar").rel,10);if(currentbal-balinc<=-100){insertBalance("?balance=-100");}else{insertBalance("?balance="+(currentbal-balinc));}};function balRight(){currentbal=parseInt(document.getElementById("balancebar").rel,10);newbal=currentbal+balinc;if(currentbal+balinc>=100){insertBalance("?balance="+100);}else{insertBalance("?balance="+newbal);}};function checkRepeat(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","repeat.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var obj=document.getElementById("repeatbutton");obj.className=xmlhttp.responseText;obj.title="Repeat: "+xmlhttp.responseText;globalRepeatStatus=xmlhttp.responseText;}}
xmlhttp.send(null);};function checkShuffle(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","shuffle.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){var obj=document.getElementById("shufflebutton");obj.className=xmlhttp.responseText;obj.title="Shuffle: "+xmlhttp.responseText;if(xmlhttp.responseText=="on"){globalShuffleOn=true;}else{globalShuffleOn=false;}}}
xmlhttp.send(null);};function toggleRepeat(){checkRepeat("?repeat");};function toggleShuffle(){checkShuffle("?shuffle");};function toggleMainWindowDisplay(){if(g_maindisplay=="none"){g_maindisplay="block";}else{statusRefresh();}};function statusRefresh(){if(g_maindisplay=="none"){return false;}
var req=newXmlHttp();req.open("GET","refresh.html",true);req.onerror=function(){window.setTimeout(function(){try{statusRefresh();}catch(e){void(null);}},250);};req.onreadystatechange=function(){if(req.readyState==4){try{var array=req.responseText.split(/&/g);if(!document.getElementById("status")){return false;}
document.getElementById("status").className=array[0];globalMinutes=parseInt(array[1],10);globalSeconds=parseInt(array[2],10);globalSecondsLeft=parseInt(array[4],10);globalMinutesLeft=parseInt(array[3],10);globalTotalTime=parseInt(array[5],10);if(tickerDirection=="countup"){numberEncode(array[1],"minutes");numberEncode(array[2],"seconds");textReplace(minstring(array[1]),document.getElementById("pl_currenttime_min"));textReplace(array[2],document.getElementById("pl_currenttime_sec"));}else{numberEncode(array[3],"minutes");numberEncode(array[4],"seconds");textReplace(minstring("-"+array[3]),document.getElementById("pl_currenttime_min"));textReplace(array[4],document.getElementById("pl_currenttime_sec"));}
var offset=(globalMinutes*60)+globalSeconds;if(lastTime>offset&&!globalSeekDone){newSong();}
lastTime=offset;globalSeekDone=false;setPositionBar(lastTime/globalTotalTime);var kbpsContainer=document.getElementById("kbps");if(array[6]==""){array[6]="0";}
if(array[6].length<3){kbpsContainer.style.paddingLeft="5px";}else{kbpsContainer.style.paddingLeft="0";}
textReplace(array[7],kbpsContainer);textReplace(array[6],document.getElementById("khz"));}catch(e){null}finally{window.setTimeout(function(){try{statusRefresh();}catch(e){void(null);}},10000);}}}
req.send(null);};function numberEncode(string,targetElementId){if(string=="undefined"||string==null||string==""){setDebugDisplay("null or undefined string passed to numberEncode()");string="00";}
if(typeof string!="string"){string=string.toString();}
var spans=document.getElementById(targetElementId).getElementsByTagNameNS(nsXhtml,"span");var off1=parseInt(string.charAt(0))*-9;var off2=parseInt(string.charAt(1))*-9;spans[0].style.backgroundPosition=off1+"px 0";spans[1].style.backgroundPosition=off2+"px 0";};function pleditToGlobals(skin){var xmlhttp=newXmlHttp();if(skin==null){xmlhttp.open("GET","skins/Winamp2Classic/pledit.txt",true);}else{var url="skins/"+skin+"/pledit.txt";xmlhttp.open("GET",url,true);}
xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){cutPledit(xmlhttp.responseText);}};xmlhttp.send(null);};function cutPledit(file){var lines=file.split("\n");var LnormalBgColor,LnormalFontColor,LcurrentFontColor,LselectedBgColor,LmbFg,LmbBg,Lfont;var titles=new Array("sormalbg","current","normal","selectedbg","font","mbfg","mbbg");for(var p=0;p<lines.length;p++){var specialLine=lines[p].toLowerCase();if(specialLine.indexOf("normalbg")!=-1){lines[p]="s"+specialLine.substring(1,specialLine.length);}}
for(var i=0;i<lines.length;i++){var line=lines[i].toLowerCase();for(var x=0;x<titles.length;x++){var pos=line.indexOf(titles[x]);if(pos!=-1){var hexStart=line.indexOf("#");if(hexStart==-1){var hexStart=line.indexOf("=");var hex=line.substring((hexStart+1),(line.length+1));Lfont=hex;}else{hexStart++
var hex=line.substring(hexStart,(hexStart+6));if(titles[x]=="sormalbg"){LnormalBgColor="#"+hex;}else
if(titles[x]=="normal"){LnormalFontColor="#"+hex;}else
if(titles[x]=="current"){LcurrentFontColor="#"+hex;}else
if(titles[x]=="selectedbg"){LselectedBgColor="#"+hex;}else
if(titles[x]=="mbfg"){LmbFg="#"+hex;}else
if(titles[x]=="mbbg"){LmbBg="#"+hex;}}}}}
if(!LmbBg){LmbBg=normalBgColor;}
if(!LmbFg){LmbFg=normalFontColor;}
document.getElementById("skin-normalfontcolor").setColor(LnormalFontColor);document.getElementById("skin-normalbgcolor").setColor(LnormalBgColor);document.getElementById("skin-currentfontcolor").setColor(LcurrentFontColor);document.getElementById("skin-selectedbgcolor").setColor(LselectedBgColor);document.getElementById("skin-mbfg").setColor(LmbFg);document.getElementById("skin-mbbg").setColor(LmbBg);document.getElementById("skin-font").setFont(Lfont);document.getElementById("skin-bandslinecolor").setColor(LcurrentFontColor);document.getElementById("skin-preamplinecolor").setColor(LnormalFontColor);};function newSong(){if(g_maindisplay=="block"){generateTicker();}
if(g_pldisplay=="block"){if(!globalShuffleOn){refreshPlaylist("");}else{refreshPlaylist("",true);}}};function initPlaylist(xml){if(xml){processPlXml(xml);}else{refreshPlaylist(null,false);}
pl_refreshTotals();};function refreshPlaylist(cmd,useOffset){if(g_pldisplay.indexOf("block")<0){return false;}
var xmlHttp=newXmlHttp();var url=(useOffset==true&&!globalShuffleOn)?"playlistoffset.xml":"playlist.xml";url=(cmd)?url+"?"+cmd:url;xmlHttp.open("GET",url,true);xmlHttp.send(null);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){var xml=xmlHttp.responseXML;processPlXml(xml);pl_refreshTotals();}};};function processPlXml(xml){var d=document;var pltbody=d.getElementById("pltbody");var oldEntries=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var entries=xml.getElementsByTagNameNS(nsBAPlaylist,"entry");if(entries[0]){var offset=parseInt(entries[0].getAttribute("index"),10)-1;for(var x=0;x<entries.length;x++){if(oldEntries[x+offset]==undefined){var row=d.createElementNS(nsXhtml,"tr");row.pl_selected=false;row.setAttribute("id","pl_track"+entries[x].getAttribute("id"));row.addEventListener("dblclick",pl_playEntry,false);row.addEventListener("mousedown",pl_selectPlEntry,false);row.addEventListener("mouseover",function(evt){if(pltbody.pl_mousedown){pl_selectPlEntry(evt);}},false);row.addEventListener("mouseout",function(evt){if(pltbody.pl_mousedown){}},false);row.pl_baid=entries[x].getAttribute("id");var td1=d.createElementNS(nsXhtml,"td");td1.className="trackname";row.pl_index=parseInt(entries[x].getAttribute("index"),10);row.pl_name=unescape(entries[x].getAttribute("title").replace(/\+/g,"%20")).replace(/\[Opening\] ?/,"");row.pl_path=unescape(entries[x].getAttribute("path").replace(/\+/g,"%20"));td1.appendChild(d.createTextNode(row.pl_index+". "+row.pl_name));row.appendChild(td1);var td2=d.createElementNS(nsXhtml,"td");td2.className="fade";for(var c=0;c<5;c++){td2.appendChild(d.createElementNS(nsXhtml,"div"));}
row.appendChild(td2);var td3=d.createElementNS(nsXhtml,"td");td3.className="trackops";var div1=d.createElementNS(nsXhtml,"div");var a1=d.createElementNS(nsXhtml,"a");a1.addEventListener("click",pl_moveUpEntry,false);a1.className="trackup";div1.appendChild(a1);var a2=d.createElementNS(nsXhtml,"a");a2.addEventListener("click",pl_moveDnEntry,false);a2.className="trackdown";div1.appendChild(a2);var a3=d.createElementNS(nsXhtml,"a");a3.addEventListener("click",pl_deleteEntry,false);a3.className="trackdel";div1.appendChild(a3);td3.appendChild(div1);row.appendChild(td3);var td4=d.createElementNS(nsXhtml,"td");td4.className="pos";row.pl_lengthmin=entries[x].getAttribute("lengthmin");row.pl_lengthsec=entries[x].getAttribute("lengthsec");row.pl_lengthtotal=parseInt(parseInt(row.pl_lengthmin,10)*60+parseInt(row.pl_lengthsec,10),10);globalTotalPlTime+=row.pl_lengthtotal;td4.appendChild(d.createTextNode(row.pl_lengthmin+":"+row.pl_lengthsec));row.appendChild(td4);row.className="";if(entries[x].getAttribute("current")=="true"){row.className+=" current";row.pl_current=true;setScrollPos(row);}else{row.pl_current=false;}
document.getElementById("pltbody").appendChild(row);}else if(oldEntries[x+offset].pl_baid==entries[x].getAttribute("id")){if(entries[x].getAttribute("current")=="true"){if(oldEntries[x+offset].pl_current==false){transitionTextColor(oldEntries[x+offset],1);oldEntries[x+offset].className+=" current";oldEntries[x+offset].pl_current=true;setScrollPos(oldEntries[x+offset]);}}else{if(oldEntries[x+offset].pl_current==true){transitionTextColor(oldEntries[x+offset],-1);oldEntries[x+offset].className=oldEntries[x+offset].className.replace(/ ?current/,"");oldEntries[x+offset].pl_current=false;}}}else{var row=oldEntries[x+offset];if(row.pl_selected){pl_select(row);}
row.pl_baid=entries[x].getAttribute("id");row.pl_index=parseInt(entries[x].getAttribute("index"),10);row.pl_name=unescape(entries[x].getAttribute("title").replace(/\+/g,"%20")).replace(/\[Opening\] ?/,"");row.pl_path=unescape(entries[x].getAttribute("path").replace(/\+/g,"%20"));row.pl_lengthmin=entries[x].getAttribute("lengthmin");row.pl_lengthsec=entries[x].getAttribute("lengthsec");row.pl_lengthtotal=parseInt(row.pl_lengthmin,10)*60+parseInt(row.pl_lengthsec,10);row.childNodes[0].childNodes[0].nodeValue=row.pl_index+". "+row.pl_name;row.childNodes[3].childNodes[0].nodeValue=row.pl_lengthmin+":"+row.pl_lengthsec;row.pl_selected=false;if(entries[x].getAttribute("current")=="true"){transitionTextColor(row,1);row.className="current";row.pl_current=true;setScrollPos(row);}else{transitionTextColor(row,-1);row.className="";row.pl_current=false;}}}}
if(oldEntries.length>entries.length){while(oldEntries.length>entries.length){var row=oldEntries[oldEntries.length-1];if(row.pl_selected){pl_select(row);}
globalTotalPlTime-=row.pl_lengthtotal;document.getElementById("pltbody").removeChild(row);}}};var globalCurrentRowTempVariable;function setScrollPos(row,forceAtTop){if(!pageLoaded){globalCurrentRowTempVariable=row;setTimeout(setScrollPos,1000);return;}
row=(row)?row:globalCurrentRowTempVariable;var content=document.getElementById("pltbody");var container=document.getElementById("pllistcontainer");var pltnegoffset=(isNaN(parseInt(content.style.top,10)))?0:parseInt(content.style.top,10)*-1;var isVisibleTop=(pltnegoffset<row.offsetTop);var isVisibleBottom=((pltnegoffset+container.offsetHeight)>(row.offsetTop+row.offsetHeight));if(!isVisibleTop||!isVisibleBottom){var track=document.getElementById("track");var drag=document.getElementById("drag");var trackRealHeight=track.offsetHeight-drag.offsetHeight;var contentRealHeight=content.offsetHeight-container.offsetHeight;var newPos=(forceAtTop)?row.offsetTop:row.offsetTop-(container.offsetHeight-(row.offsetHeight*2));if(newPos<0){newPos=0;}else
if(newPos>contentRealHeight){newPos=contentRealHeight;}
content.style.top="-"+newPos+"px";var percent=newPos/contentRealHeight;drag.style.top=Math.round(percent*trackRealHeight)+"px";}};function pl_refreshTotals(){var string=toTimeFormat(globalSelectedPlTime)+"/"+toTimeFormat(globalTotalPlTime);while(string.length<19){string+=" ";}
textReplace(string,document.getElementById("pl_selectedtotal"));};function toTimeFormat(totalSeconds){var seconds=totalSeconds%60;if(totalSeconds>=(60*60)){var hours=Math.floor(totalSeconds/(60*60));var minutes=Math.floor((totalSeconds-(hours*60*60))/60);return hours+":"+numl(minutes)+":"+numl(seconds);}else if(totalSeconds>=60){var minutes=Math.floor(totalSeconds/60);return minutes+":"+numl(seconds);}else{return"0:"+numl(seconds);}};var minstring=function(string){if(string.length<4){while(string.length<4){string=" "+string;}}
return string;};function pl_selectPlEntry(evt){pl_select(evt.currentTarget);pl_refreshTotals();};var g_plSelection=[];g_plSelection.insertRow=function(newRow){if(!this[0]||this[0].pl_index>newRow.pl_index){this.unshift(newRow);return true;}
if(this[this.length-1].pl_index<newRow.pl_index){this.push(newRow);return true;}
for(var i=0;i<this.length;i++){if(this[i].pl_index<newRow.pl_index&&(!this[i+1]||this[i+1].pl_index>newRow.pl_index)){this.splice(i+1,0,newRow);return true;}else if(this[i].pl_index==newRow.pl_index){this.splice(i,1,newRow);return true;}}
return false;};g_plSelection.removeRow=function(row){for(var i=0;i<this.length;i++){if(this[i].pl_index==row.pl_index){this.splice(i,1);return true;}}
window.status="failed to find row "+row.pl_index;return false;};function pl_select(row){if(row.pl_selected==true){row.pl_selected=false;var rowClass=row.className;var rowClass=rowClass.replace(/ ?selected/g,"");row.className=rowClass;globalSelectedPlTime-=row.pl_lengthtotal;g_plSelection.removeRow(row);}else{row.pl_selected=true;row.className+=" selected";globalSelectedPlTime+=row.pl_lengthtotal;g_plSelection.insertRow(row);}
pl_refreshTotals();};function pl_playEntry(evt){var row=evt.currentTarget;evt.preventDefault();refreshPlaylist("playtrack="+row.pl_baid+"&playifnotplaying");};function pl_moveUpEntry(evt){evt.stopPropagation();var row=evt.currentTarget.parentNode.parentNode.parentNode;refreshPlaylist("moveup="+row.pl_baid);};function pl_moveDnEntry(evt){evt.stopPropagation();var row=evt.currentTarget.parentNode.parentNode.parentNode;refreshPlaylist("movedn="+row.pl_baid);};function pl_deleteEntry(evt){evt.stopPropagation();var row=evt.currentTarget.parentNode.parentNode.parentNode;refreshPlaylist("removesong="+row.pl_baid);};function pl_invertSelection(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");for(var i=0;i<rows.length;i++){pl_select(rows[i]);}};function pl_zeroSelection(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");var regExp=/ ?selected/g;for(var i=0;i<rows.length;i++){rows[i].pl_selected=false;var rowClass=rows[i].className;var rowClass=rowClass.replace(regExp,"");rows[i].className=rowClass;}
globalSelectedPlTime=0;pl_refreshTotals();};function pl_allSelection(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");for(var i=0;i<rows.length;i++){if(!rows[i].pl_selected){rows[i].pl_selected=true;rows[i].className+=" selected";globalSelectedPlTime+=rows[i].pl_lengthtotal;}}
pl_refreshTotals();};function pl_removeSelected(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");var postString="";for(var i=0;i<rows.length;i++){if(rows[i].pl_selected==true){postString+="&removesong="+rows[i].pl_baid;}}
postString=postString.substring(1,postString.length-1);var xmlHttp=newXmlHttp();xmlHttp.open("GET","status.html?"+postString,true);xmlHttp.send(null);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){refreshPlaylist();}};};function pl_cropToSelected(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");var postString="";for(var i=0;i<rows.length;i++){if(rows[i].pl_selected==false){postString+="&removesong="+rows[i].pl_baid;}}
var xmlHttp=newXmlHttp();xmlHttp.open("GET","status.html?"+postString,true);xmlHttp.send(null);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){refreshPlaylist();}};};function pl_removeAll(){var rows=document.getElementById("pltbody").getElementsByTagNameNS(nsXhtml,"tr");var postString="";for(var i=0;i<rows.length;i++){postString+="&removesong="+rows[i].pl_baid;}
postString=postString.substring(1,postString.length-1);var xmlHttp=newXmlHttp();xmlHttp.open("GET","status.html?"+postString,true);xmlHttp.send(null);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){refreshPlaylist();}};};function pl_sortByTitle(){var pltbody=document.getElementById("pltbody");var rows=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var sortable=[];for(var i=0;i<rows.length;i++){sortable[i]=new String(rows[i].pl_name);sortable[i].row=rows[i];}
sortable.sort();pl_applyOrderArray(sortable);};function pl_sortByFilename(){var pltbody=document.getElementById("pltbody");var rows=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var sortable=[];for(var i=0;i<rows.length;i++){sortable[i]=new String(rows[i].pl_path.replace(/[\\\/]([^\\\/]+)$/,"$1"));sortable[i].row=rows[i];}
sortable.sort();pl_applyOrderArray(sortable);};function pl_sortByPathAndFilename(){var pltbody=document.getElementById("pltbody");var rows=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var sortable=[];for(var i=0;i<rows.length;i++){sortable[i]=new String(rows[i].pl_path);sortable[i].row=rows[i];}
sortable.sort();pl_applyOrderArray(sortable);};function pl_reverseList(){var pltbody=document.getElementById("pltbody");var rows=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var sortable=[];for(var i=0;i<rows.length;i++){sortable[i]=new Number(rows[i].pl_index);sortable[i].row=rows[i];}
sortable.sort(function(a,b){return b-a;});pl_applyOrderArray(sortable);};function pl_randomizeList(){var pltbody=document.getElementById("pltbody");var rows=pltbody.getElementsByTagNameNS(nsXhtml,"tr");var sortable=[];for(var i=0;i<rows.length;i++){sortable[i]=new String(rows[i].pl_name);sortable[i].row=rows[i];}
sortable.shuffle(sortable.length*3);pl_applyOrderArray(sortable);};function pl_applyOrderArray(sorted){var pltbody=document.getElementById("pltbody");var current=null;var arg="";for(var i=0;i<sorted.length;i++){if(sorted[i].row.pl_current){var current=sorted[i].row;}else{arg+="removetrack="+sorted[i].row.pl_baid+"&add="+encodeURIComponent(sorted[i].row.pl_path)+"&";}}
for(var i=0;i<current.pl_index-1;i++){arg+="movedn="+current.pl_baid+"&";}
refreshPlaylist(arg.replace(/&$/,""),false);};function setPositionBar(percentProgress){if(isNaN(percentProgress)){percentProgress=0;}
var pbDrag=document.getElementById("progressbardrag");if(!pbDrag.dragging){var pbTrack=document.getElementById("progressbartrack");var pbTrackWidth=pbTrack.offsetWidth-pbDrag.offsetWidth;pbDrag.style.left=Math.round(percentProgress*pbTrackWidth)+"px";}};var eqBars=new Array(10);var eqScale18=new Array(10);var eqScale100=new Array(10);var eqScaleDecimal=new Array(10);var eqFreqs=new Array("60Hz","170Hz","310Hz","600Hz","1Khz","3Khz","6Khz","12Khz","14Khz","16Khz","Preamp");var globalEqReq=newXmlHttp();var eqPresets=[{"name":"Classical","values":[0,0,0,0,0,0,-41,-41,-41,-54,0]},{"name":"Club","values":[0,0,16,29,29,29,16,0,0,0,0]},{"name":"Dance","values":[48,35,9,-3,-3,-35,-41,-41,-3,-3,0]},{"name":"Full Bass","values":[48,48,48,29,6,-25,-48,-58,-61,-61,0]},{"name":"Full Bass & Treble","values":[35,29,0,-41,-29,6,41,54,61,61,0]},{"name":"Full Treble","values":[-54,-54,-54,-25,12,54,80,80,80,87,0]},{"name":"Laptop speakers/headphones","values":[22,54,25,-22,-16,6,22,48,64,74,0]},{"name":"Large Hall","values":[51,51,29,29,0,-29,-29,-29,0,0,0]},{"name":"Live","values":[-29,0,19,25,29,29,19,12,12,9,0]},{"name":"Party","values":[35,35,0,0,0,0,0,0,35,35,0]},{"name":"Pop","values":[-12,22,35,38,25,-9,-16,-16,-12,-12,0]},{"name":"Reggae","values":[0,0,-6,-35,0,32,32,0,0,0,0]},{"name":"Rock","values":[38,22,-32,-45,-22,19,45,54,54,54,0]},{"name":"Ska","values":[-16,-29,-25,-6,19,29,45,48,54,48,0]},{"name":"Soft","values":[22,6,-9,-16,-9,19,41,48,54,61,0]},{"name":"Soft Rock","values":[19,19,9,-6,-25,-32,-22,-6,12,45,0]},{"name":"Techno","values":[38,29,0,-32,-29,0,38,48,48,45,0]}];function initEqBands(newScale){handlePresetSelection(newScale);};function refreshPresetsList(){var cont=document.getElementById("presetsbody");var li=cont.getElementsByTagName("li")[0];while(li){cont.removeChild(li);li=cont.getElementsByTagName("li")[0];};for(var c=0;c<eqPresets.length;c++){var li=document.createElementNS(nsXhtml,"li");li.className="eq_preset";var text=document.createTextNode(eqPresets[c]["name"]);li.appendChild(text);li.preset=eqPresets[c]["values"];li.onclick=function(){handlePresetSelection(this.preset)};li.name=eqPresets[c]["name"];cont.appendChild(li);}};function handlePresetSelection(newEqScale100){for(var i=0;i<newEqScale100.length;i++){eqScale100[i]=newEqScale100[i];var toWhatDec=1-((newEqScale100[i]+100)/200);previewBandTo(i,toWhatDec);var newDragPos=Math.round(51*toWhatDec);eqBars[i].eq_slider.style.top=newDragPos+"px";calcEqBandBg(i);}
completeEqualizerSet();hidePresetsWindow();};function showPresetsWindow(){document.getElementById("presets").style.display="block";document.getElementById("presetsshader").style.display="block";};function hidePresetsWindow(){document.getElementById("presets").style.display="none";document.getElementById("presetsshader").style.display="none";};function addEqPreset(presetArray,name){if(name==false||name==""||name==null){return;}
eqPresets[eqPresets.length]={name:"",values:[]};eqPresets[eqPresets.length-1]["name"]=name;eqPresets[eqPresets.length-1]["values"]=presetArray;var arg="inisection=eq&presets_setini="+encodeURIComponent(JSON.stringify(eqPresets));sendArg(arg);refreshPresetsList();};function fetchEqBands(arg,force){if(g_eqdisplay=="none"){return;}
if(globalEqReq.readyState!=4&&globalEqReq.readyState!=0){globalEqReq.abort();setDebugDisplay("Equalizer XMLHttp call aborted.");}
globalEqReq.open("GET","eqbands.html"+arg,true);if(force){globalEqReq.onreadystatechange=function(){handlePresetSelection(null,globalEqReq.responseText.split(/,/g));};}
globalEqReq.send(null);};function parseEqBandsFile(text){var newEqScale100=text.split(/,/g);for(var i=0;i<newEqScale100.length;i++){eqScale100[i]=parseInt(newEqScale100[i],10);var newDragPos=52-Math.round((eqScale100[i]+100)*0.26);eqBars[i].eq_slider.style.top=newDragPos+"px";eqScale18[i]=18-((eqScale100[i]+100)*0.09);eqScaleDecimal[i]=eqScale100[i]/100;calcEqBandBg(i);}
setEqDisplay(eqScale18);};function previewBandTo(whichBand,toWhatDecimal){eqScaleDecimal[whichBand]=1-toWhatDecimal;eqScale18[whichBand]=(18*toWhatDecimal);eqScale100[whichBand]=Math.round(-1*((200*toWhatDecimal)-100));setEqDisplay(eqScale18);var db=Math.round(eqScale100[whichBand]*1.2)/10;if(db>0){db="+"+db;}else
if(db==0){db="+"+db+".0";}
if(pageLoaded){setTickerDisplay("Eq: "+eqFreqs[whichBand]+": "+db+" dB");}};function setTickerDisplay(txt){var container=document.getElementById("auxdisplay");var display=document.getElementById("auxdisplayinner");textReplace(txt.toString(),display);};function showTickerDisplay(){var el=document.getElementById("auxdisplay");if(el.jsamp_timeout){window.clearTimeout(el.jsamp_timeout);}
el.jsamp_show=true;el.style.opacity=1;el.style.display="block";};function hideTickerDisplay(){var el=document.getElementById("auxdisplay");if(el.jsamp_show){el.jsamp_show=false;el.jsamp_timeout=setTimeout(function(){fadeOutTickerDisplay(el);},100);}};function fadeOutTickerDisplay(el,stage){if(el.jsamp_show)return;stage=stage||1;if(stage<=.1){el.style.display="none";el.style.opacity=1;el.jsamp_timeout=null;}else{stage-=.2;stage=(stage<=0)?0:stage;el.style.opacity=stage;el.jsamp_timeout=setTimeout(function(){fadeOutTickerDisplay(el,stage);},55);}};function allBandsTo(toWhatDec){for(var x=0;x<10;x++){previewBandTo(x,toWhatDec);var newDragPos=Math.round(51*toWhatDec);eqBars[x].eq_slider.style.top=newDragPos+"px";calcEqBandBg(x);}
completeEqualizerSet();};function completeEqualizerSet(){var arg="?";for(var x=0;x<=10;x++){arg=arg+x+"_seteq="+eqScale100[x]+"&";calcEqBandBg(x);}
fetchEqBands(arg);};function setEqDisplay(e){var curvy=document.getElementById("CurvyPath");if(!curvy)return;curvy.setAttribute("d","M 2.50,"+e[0]+" L 14.5,"+e[1]+" L 26.5,"+e[2]+" L 38.5,"+e[3]+" L 50.5,"+e[4]+" L 62.5,"+e[5]+" L 74.5,"+e[6]+" L 86.5,"+e[7]+" L 98.5,"+e[8]+" L 110.5,"+e[9]);var e10=18-e[10];document.getElementById("BaseLine").setAttribute("d","M 2.5,"+e10+" H 110.5");};function insertEqStatus(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","eqstatus.html"+arg,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){document.getElementById("eq_onbutton").className=xmlhttp.responseText;}}
xmlhttp.send(null);};function calcEqBandBg(whichOne){var value=eqScale100[whichOne];value=Math.round(((value+100)/2)*.27);if(value<14){var xoffset=(15*value)+13;var yoffset=164;}else{var xoffset=(15*(value-14))+13;var yoffset=229;}
var bp="-"+xoffset+"px -"+yoffset+"px";eqBars[whichOne].style.backgroundPosition=bp;};function normaizeWhitespace(what){what=what.replace(/[\n\r\t ]{1,}/g," ");what=what.replace(/^ /,"");what=what.replace(/ $/,"");return what;};function trimWhitespace(what){what=what.replace(/^[\n\r\t ]{1,}/,"");what=what.replace(/[\n\r\t ]{1,}$/,"");return what;};function newXmlHttp(){if(useFakeXmlHttp){return(new FakeXMLHttpRequest());}
var xmlhttp=false;if(!xmlhttp&&typeof XMLHttpRequest!='undefined'){xmlhttp=new XMLHttpRequest();}
return xmlhttp;};function FakeXMLHttpRequest(){var self=this;this.open=function(method,url,async){if(url!="refresh.html"){window.status="XMLHttpRequest thwarted with following paramenters: "+method+", "+url+", "+async;}
setTimeout(function(){self.onerror();},50);};this.send=function(){};this.onerror=function(){};this.setRequestHeader=function(){};this.abort=function(){};};function getResponseXml(xmlUrl,postThis){var xmlHttp=newXmlHttp();xmlHttp.open("POST",xmlUrl,false);if(postThis!=null){xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");xmlHttp.send(postThis);}else{xmlHttp.send(null);}
return xmlHttp;};function generateFiller(howMuch,toWhereId){toWhere=document.getElementById(toWhereId);for(var i=0;i<howMuch;i++){toWhere.appendChild(document.createElementNS(nsXhtml,"div"));}};function numl(num){if(num.toString().length<2){num="0"+num;}
return num;};function toggleDisplay(ofWhatId,ofWhatAbbr,toWhat){var window=document.getElementById(ofWhatId);if(document.getElementById(ofWhatAbbr+"button")){var button=document.getElementById(ofWhatAbbr+"button");}else{var button=false;}
if(toWhat==null){if(g_pldisplay=="none"){if(button){button.className="block";}
g_pldisplay="block";window.style.display="block";sendArg("inisection=interface&"+ofWhatAbbr+"display_setini=block");initPlaylist();}else{if(button){button.className="none";}
g_pldisplay="none";window.style.display="none";sendArg("inisection=interface&"+ofWhatAbbr+"display_setini=none");}}else{g_pldisplay=toWhat;window.style.display=toWhat;if(button){button.className=toWhat;}
sendArg("inisection=interface&"+ofWhatAbbr+"display_setini="+toWhat);}
setEqDisplay(eqScale18);};function setDebugDisplay(txt){document.getElementById("debugdisplay").firstChild.nodeValue=txt;};function sendArg(arg){var xmlhttp=newXmlHttp();xmlhttp.open("GET","songpos.html?"+arg,true);xmlhttp.send(null);return xmlhttp;};function addUrl(){var arg=prompt("URL?","http://");if(arg&&arg!="http://"){refreshPlaylist("add="+encodeURIComponent(arg),false);}};function savePlaylist(){window.open("SavePlaylist.xhtml","saveplaylist","location=no,menubar=no,toolbar=yes,status=no");};Array.prototype.shuffle=function(times){var i,j,t,l=this.length;while(times--){with(Math){i=floor(random()*l);j=floor(random()*l);}
t=this[i];this[i]=this[j];this[j]=t;}
return this;};function transitionTextColor(node,increment,stage){if(stage==null){increment=(increment>0)?1:-1;stage=(increment>0)?0:9;node.className=node.className+" textTransition"+stage;setTimeout(function(){transitionTextColor(node,increment,stage)},20);}else if((stage>=9&&increment==1)||(stage<=0&&increment==-1)){node.className=node.className.replace(/textTransition[0-9]/g,"");}else{node.className=node.className.replace(/textTransition[0-9]/g,"textTransition"+stage);stage=stage+increment;setTimeout(function(){transitionTextColor(node,increment,stage);},(stage+5)*3);}};function generateTextTransitionStyles(r1,g1,b1,r2,g2,b2){var string="";var rInc=Math.round((r1-r2)/10)*-1;var gInc=Math.round((g1-g2)/10)*-1;var bInc=Math.round((b1-b2)/10)*-1;for(var i=0;i<10;i++){string+=".textTransition"+i+" {color:rgb(";if(i==0){string+=r1+","+g1+","+b1;}else if(i==9){string+=r2+","+g2+","+b2;}else{string+=(r1+(i*rInc))+","+(g1+(i*gInc))+","+(b1+(i*bInc));}
string+=");} ";}
return string.replace(/ $/,"");};
