document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};

function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
                                     
    var histogram = {}, histogram_r = {}, code = 0, tmp_arr = [];
    var ret = str.toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
    
    for (search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
    
    return ret;
}

var dragsort = ToolMan.dragsort()
var junkdrawer = ToolMan.junkdrawer()
var songTimer;
var boxes = 1;
var autoPlay;
var playNext;
var allSongs;
var styleColor;
var styles;
var changeColors;
autoPlay = "on";
playNext = "on";
changeColors = "on";
allSongs = 0;
styleColor = 1;
styles = new Array("#0E2024","#3B0B0E","#570E4A","#220C82","#043342","#061E10","#353510","#7C1D0D");


function playSong(id,img,time)
{
	var id,img,song,player,time,nextSong,nextSong2;
	
	//If I ever get this to work. -sigh-
	/*if(songTimer != null)
		clearTimeout(songTimer);
	
	if(allSongs > 1)
	{
		nextSong2 = getNext(id);
		if(nextSong2) {
			nextSong = nextSong2.split(";");
			if(nextSong[0] != "")
				songTimer = setTimeout("playSong('"+nextSong[0]+"','"+nextSong[1]+"','"+nextSong[2]+"')",(nextSong[2]*1000));
		}
		else
		{
			clearTimeout(songTimer);
		}
	}*/
					
	player = document.getElementById("player");
	//song = '<table width="360" align="right" cellpadding="0" cellspacing="0"><tr><td width="60"><img src="'+img+'" width="60" height="60"></td><td width="300" style="padding-left:10px;"><object width="300" height="60"><param name="movie" value="http://media.imeem.com/m/'+id+'/aus=true"></param><param name="wmode" value="transparent"></param><param name="FlashVars" value="backColor=0E2024&primaryColor=ffffff&secondaryColor=0E2024&linkColor=999999" /><param name="allowScriptAccess" value="always"></param><embed src="http://media.imeem.com/m/'+id+'/aus=true" type="application/x-shockwave-flash" width="300" height="60" wmode="transparent" allowScriptAccess="always" FlashVars="backColor=0E2024&primaryColor=ffffff&secondaryColor=0E2024&linkColor=999999"></embed></object></td></tr></table>';
	//enablejsapi=1&version=3&playerapiid='+id+'&
	song = '<table width="360" align="right" cellpadding="0" cellspacing="0"><tr><td width="60"><img src="'+img+'" width="80" height="60"></td><td width="300" style="padding-left:10px;"><div id="'+id+'_con"><object width=\"300\" height=\"25\"><param name=\"movie\" value=\"http://www.youtube.com/v/'+id+'?autoplay=1&fs=0&hd=0&showsearch=0&showinfo=0&iv_load_policy=3&border=0&color1=000000&color2=0E2024\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/'+id+'?autoplay=1&fs=0&hd=0&showsearch=0&showinfo=0&iv_load_policy=3&rel=0&kb=0&border=0&color1=000000&color2=0E2024\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"300\" height=\"25\"></embed></object></div></td></tr></table>';
	player.innerHTML = song;
}
function setPlay(play)
{
	var play;
	autoPlay = play;
}


function setContinuous(play)
{
	var play;
	playNext = play;
}

function setColors(play)
{
	var play;
	changeColors = play;
}

function saveOrder(item) {
	var group = item.toolManDragGroup
	var list = group.element.parentNode
	var id = list.getAttribute("id")
	if (id == null) return
	group.register('dragend', function() {
		ToolMan.cookies().set("list-" + id, 
				junkdrawer.serializeList(list), 365)
	})
}

function verticalOnly(item) {
	item.toolManDragGroup.verticalOnly()
}

function getNext(id)
{
	var order,id,img,time,s1,s2,s3,s4,s5,s6,final;
	order = junkdrawer.serializeList(document.getElementById('songBox'));
	
	//Find first one
	s1 = order.split('<!-- SONGVARS-');
	s2 = s1[2].split('-END -->');
	final = s2[0];
	
	if(final.split(";")[0] == id)
	{
		//Repeat back to beginning or stop..?
		return false;
	}
	
	return final;
}

function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest(thepage)
{
  var thepage;
  var xmlHttp = getXMLHttp();
  
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("GET", thepage, true); 
  xmlHttp.send(null);
}

function HandleResponse(response)
{
  document.getElementById('status').innerHTML = response;
}





function onYouTubePlayerReady(playerId) {
  $(playerId+'_con').setPlaybackQuality("medium");
  //ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}

function onytplayerStateChange(newState) {
   alert("Player's new state: " + newState);
}
