function gid(name) {
	return document.getElementById(name);
}

function playitem(item)
{
    sendEvent('player','playitem',item);
}
function changeToChapter(i, send)
{
    var chapters = document.getElementsByTagName("div");
	var iChapter = -1;
    for (var iDiv = 0; iDiv < chapters.length; iDiv++) 
	{
        var chapter = chapters[iDiv];

        if (elementHasCSSClass(chapter, "playerChapterActive"))
        {
			iChapter++;
			if (i != iChapter)
			{
			    removeCSSClassFromElement(chapter, "playerChapterActive");
			    addCSSClassToElement(chapter, "playerChapterInactive");
			}
        }   
		else if (elementHasCSSClass(chapter, "playerChapterInactive"))
		{
			iChapter++;
			if (i == iChapter)
			{
			    removeCSSClassFromElement(chapter, "playerChapterInactive");
			    addCSSClassToElement(chapter, "playerChapterActive");
				if (send)
				{
					sendEvent('sowplayer','ITEM',i);
				}
			}
		}
	}
}
function itemTracker(obj)
{
    index = obj.index;
	changeToChapter(index, false);

} 
function elementHasCSSClass(element, c)
{
    return new RegExp('\\b'+c+'\\b').test(element.className)
}

// add a CSS class to a node (this is better than specifiying the style of the node directly)
function addCSSClassToElement(element, c)
{
    if (!elementHasCSSClass(element, c))
    {
		element.className += ' ' + c;
    }
}

// remove a CSS class from a node
function removeCSSClassFromElement(element, c)
{
    if (elementHasCSSClass(element, c))
    {
		var toReplace = element.className.match(' ' + c) ? ' ' + c : c;
		element.className = element.className.replace(toReplace, '');
    }
}


/*-------------------------------------------------------------------
Player javascript API
-------------------------------------------------------------------*/
function sendEvent(swf,typ,prm) { 
	thisMovie(swf).sendEvent(typ,prm); 
};

function getUpdate(typ,pr1,pr2,swf) {
	if(typ == "state" && swf == "player") 
	{
		if (pr1 == 2)
		{
			// now playing
            gid('playpause').innerHTML = '<a href="javascript:sendEvent(\'player\',\'playpause\');"><img src="/radio/1003/pause.gif" alt="Pause"></a>';
		}
		else if (pr1 == 0)
		{
			// now paused
            gid('playpause').innerHTML = '<a href="javascript:sendEvent(\'player\',\'playpause\');"><img src="/radio/1003/play.gif" alt="Play"></a>';
		}
		
	}
	else if (typ == "item")
	{
        // set all the other backgrounds to white
		var allTDs = document.getElementsByTagName("td");
		for (var i=0;i<allTDs.length ;i++ )
		{
			var td = allTDs[i];
			if (td.className.indexOf("thumbnail") > -1)
			{
				if (i == pr1)
				{
					//td.innerHTML = "me";
					//td.style.background-color = "maroon";
					removeCSSClassFromElement(td,'paused');
					addCSSClassToElement(td,'playing');
				}
				else
				{
					//td.style.background-color = 'white';
					removeCSSClassFromElement(td,'playing');
					addCSSClassToElement(td,'paused');
				}
			}


		}

	}
};
function loadFile(swf,obj) {
	thisMovie(swf).loadFile(obj); 
};
function getLength(swf) { 
	var len = thisMovie(swf).getLength(); 
	alert('the length of the playlist is: '+len);
};
function addItem(swf,obj,idx) {
	thisMovie(swf).addItem(obj,idx);
};
function removeItem(swf,idx) {
	thisMovie(swf).removeItem(idx);
};
function itemData(swf,idx) { 
	var obj = thisMovie(swf).itemData(idx);
	var txt = "";
	for(var i in obj) { 
		txt += i+": "+obj[i]+"\n";
	}
	alert(txt);
};
function thisMovie(movieName) {
	if(navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
};
var tracing = true;
function printTrace(str) {
	if(tracing == true) {
		var itm = gid('tracecode');
		var txt = itm.innerHTML + str + '\n';
		itm.innerHTML = txt;
		itm.scrollTop = itm.scrollHeight;
	}
};
function toggleTrace() {
	if (tracing == true) { 
		tracing = false;
	} else { 
		tracing = true;
		var itm = gid('tracecode');
		itm.innerHTML = '';
	}
};
var configobj;
var playlistobj;
function printConfig() {
	tracing = false; 
	var cfg = thisMovie('mpl').getConfig();
	configobj = cfg;
	printData(cfg);
}
function printPlaylist() {
	tracing = false;
	var ply = thisMovie('mpl').getPlaylist();
	playlistobj = ply;
	var txt = "";
	for(var i=0; i<ply.length; i++) {
		txt += i+":\r\n";
		for(var itm in ply[i]) {
			txt += "-> "+itm+": "+ply[i][itm]+"\r\n";
		}
	}
	var itm = gid('tracecode');
	itm.innerHTML = txt;
}
function printData(cfg) { 
	var txt = "";
	for(var itm in cfg) {
		txt += itm+": "+cfg[itm]+"\r\n";
	}
	var itm = gid('tracecode');
	itm.innerHTML = txt;
}
function playerReady(obj) { 
	if (obj['id'] == 'sowplayer')
	{
		sowplayer = document.getElementById('sowplayer');
		sowplayer.addControllerListener("ITEM","itemTracker");
	}
};