﻿playerDomain = "medialab:8082";
//playerDomain = "dotamedia.com";

uimsg_EmptyPlayer= "Your playlist is empty."

function ListSelCount(list) {
    var selcnt = 0;
    for (var j=list.length-1;j>=0;j--) {
        if (list[j].selected==true) {
            selcnt++;
        }
    }
    return selcnt;
}
function ListSelLast(list) {
    var selindex = -1;
    for (var j=list.length-1;j>=0;j--) {
        if (list[j].selected==true) {
            selindex = j;
            break;
        }
    }
    return selindex;
}
function ListSelFirst(list) {
    var selindex = -1;
    for (var j=0;j<list.length;j++) {
        if (list[j].selected==true) {
            selindex = j;
            break;
        }
    }
    return selindex;
}

function plstAddClip(itemText,clipid, showid, artistid, artistimageurl, artistname) {
   var opts = document.frmPlaylist.lstPlaylist.options;
    var k = opts.length;
    //alert(clipid);
    var clipurl = "http://"+playerDomain+"/bxtk/"+clipid+".mp3";
    opts[k] = new Option(itemText,clipurl + "|" + clipid + "|" + showid + "|" + artistid + "|" + artistimageurl + "|" + artistname);
    showPlaylist();
}

// OLD PLAYER
//function plstPlayClipNow(itemText,clipid, showid, artistid, artistimageurl, artistname) {
//    var plst = new Array;
//    var plstitem = new Array;
//    var clipurl = "http://"+playerDomain+"/bxtk/"+clipid+".mp3";
//    plstitem[0] = itemText;
//    plstitem[1] = clipurl;
//    plstitem[2] = clipid;
//    plstitem[3] = showid;
//    plstitem[4] = artistid;
//    plstitem[5] = artistimageurl;
//    plstitem[6] = artistname;
//    plst[0] = plstitem;
//    window.parent.parent.player.appendMultipleTracks(plst,true);
//}

function plstPlayClipNowXXXXX(itemText,clipid, showid, artistid, artistimageurl, artistname) {
    var Alist = new Array();
    var plstitem = new Object();
    var clipurl = "http://"+playerDomain+"/bxtk/"+clipid+".mp3";
	plstitem.filename = clipurl;
	plstitem.artist   = artistname;
	plstitem.title    = itemText;
	plstitem.visual   = ""; //artistimageurl;
	plstitem.link     = "";
    Alist[0] = plstitem;
	playOnLoad = true;
    window.parent.parent.player.wimpy_addMultipleTracks(playOnLoad, Alist);
}

function playerIsEmpty() {
    var result;
    var plst = wimpy_getPlaylist();
    return result == null;
}

function PlayClip(playNow,itemText,clipid, showid, artistid, artistimageurl, artistname) {
    var clipurl = "http://" + playerDomain + "/bxtk/" + clipid + ".mp3";
    if (playNow==false)
        playNow = (wimpy_getPlaylist() == 0);
    wimpy_addTrack(playNow, clipurl, artistname, itemText, clipid, showid);
}

function addClipToPlaylist(title, artist, clipid, showid, artistid, artistimageurl, artistname) {
    PlayClip(false,title + ' - ' + artist, clipid, showid, artistid, artistimageurl, artistname);
}
function playClipNow(title, artist, clipid, showid, artistid, artistimageurl, artistname) {
    PlayClip(true,title + ' - ' + artist, clipid, showid, artistid, artistimageurl, artistname);
}

function plstMoveSelItem(direction) {
    var opts = document.frmPlaylist.lstPlaylist.options;
    var selcnt = ListSelCount(opts);
    if( selcnt > 0 && selcnt < 2 ) {
        var sel1 = ListSelFirst(opts);
        var tmpText = opts[sel1].text;
        var tmpValue = opts[sel1].value;
        if( direction == "up" && sel1 > 0) {
            opts[sel1].text = opts[sel1-1].text;
            opts[sel1].value = opts[sel1-1].value;
            opts[sel1-1].text = tmpText;
            opts[sel1-1].value = tmpValue;
            opts[sel1].selected=false;
            opts[sel1-1].selected=true;
        } 
        else 
        { 
            if( direction == "down" && sel1 < opts.length-1) {
                opts[sel1].text = opts[sel1+1].text;
                opts[sel1].value = opts[sel1+1].value;
                opts[sel1+1].text = tmpText;
                opts[sel1+1].value = tmpValue;
                opts[sel1].selected=false;
                opts[sel1+1].selected=true;                        
            }
        }
    }
    else
    {
        if(selcnt==0) 
            if(opts.length==0) 
                alert(uimsg_EmptyPlayer);
            else
                alert("Your must select a playlist item before you can move it.");
        else
            alert("You can only move one playlist item at a time.");
    }
}

function plstadd(theTitle,theValue) {
    var opts = document.frmPlaylist.lstPlaylist.options;
    var k = opts.length;
    opts[k] = new Option(theTitle,theValue);
    showPlaylist();
}
function plstClear() {
    document.frmPlaylist.lstPlaylist.options.length=0;
}
function plstClearPlayer() {
//    if(confirm("Clear the player?"))
    wimpy_clearPlaylist();
    wimpy_stop();
}
function plstRemoveSelected() {
    var opts = document.frmPlaylist.lstPlaylist.options;
    var cnt = 0;
    var selcnt = ListSelCount(opts);
    var delall = false;
    if (selcnt==0 && opts.length>0) {
        if( confirm("Clear the playlist?")==false ) 
            return;
        else
            delall=true;
    }
    if (delall==false && selcnt > 0)
        if( confirm("Delete selected playlist items?")==false ) 
            return;            
    if (opts.length==0) {
        alert(uimsg_EmptyPlayer);
    } else {
	    for (var j=opts.length-1;j>=0;j--) {
            if (delall || opts[j].selected==true) {
	        //alert(opts[j].value);
	            opts[j]=null;
	            cnt++;
	        }
	    }
	}
}
function plstAddAll() {
    plstPlaySelected(true,false);
}
function plstAddSelected() {
    plstPlaySelected(false,false);
}
function plstPlayAll() {
    plstPlaySelected(true,true);
}
function plstPlaySelected(doall,play) {
//alert(play);
    var opts = document.frmPlaylist.lstPlaylist.options;
    var plst= new Array();
    var cnt = 0;
    var ar;
    
    if ((ListSelCount(opts)==0 && opts.length>0) || (doall && opts.length>0)) {
        if(play==true) {
            if( confirm("Clear the player and play the current playlist?")==false )
                return;
            else
                doall=true;
        } else {
            if( confirm("Send all items to the player?")==false ) 
                return;
            else
                doall=true;
        } 
    }
    
    if (opts.length==0) {
        alert(uimsg_EmptyPlayer);
    } else {
	    for (var j=opts.length-1;j>=0;j--) {
            if ((doall==false && opts[j].selected==true) || (doall==true)) {
                ar = new Array();
	            ar[0] = opts[j].text;  //title, etc.
	            var clipinfo = opts[j].value.split("|");
	            ar[1] = clipinfo[0]; //clipurl
	            ar[2] = clipinfo[1]; //clipid
	            ar[3] = clipinfo[2]; //showid
	            ar[4] = clipinfo[3]; //artistid
	            ar[5] = clipinfo[4]; //artistimageurl
	            ar[6] = clipinfo[5]; //artistname
	            plst[cnt++] = ar;
	            opts[j] = null;
	         }
        }   		    
        if (plst.length>0) {
// obsolete call
//            window.parent.parent.player.appendMultipleTracks(plst,play);


			var pplist = window.parent.parent.player.wimpy_getPlaylist();
			var pplistlen = pplist.length;
		    
		    for (var j=plst.length-1;j>=0;j--) {
				var item = plst[j];
				var clipurl = item[1];
				var artistname = item[3];
				var itemtext = item[0];
				var clipid = item[1];
				var showid = item[2];
			    window.parent.parent.player.wimpy_addTrack(false,clipurl,artistname,itemtext,clipid,showid);
			}

			if(pplistlen == 0)
			{
			// required to get the first track to play
				window.parent.parent.player.wimpy_gotoTrack(1);
				window.parent.parent.player.wimpy_play();
			}

        } else {
            if(doall==false) {
                alert("Please select items you want to add/move to the player.");
            }
        }
    }		        
}

function handleResize() {
    var lst = document.frmPlaylist.lstPlaylist;
    alert(lst.style.position);
    var htAvailable = getInsideWindowHeight()-getObjectTop(document.frmPlaylist.lstPlaylist);
    if (htAvailable > 100) 
        lst.style.height = htAvailable + "px";
}

function setFrameWidth(newWidth) {
    var lst = document.frmPlaylist.lstPlaylist;
    var fs = window.parent.document.getElementById('contentframeset');
    fs.cols="*," + newWidth;
    lst.style.width= newWidth-5 + "px";
}

var collapsed = false;
function collapsePlaylist() {
    var lst = document.frmPlaylist.lstPlaylist;
    var div = document.getElementById('divPlaylist');
    if (collapsed==true) {
        setFrameWidth(230);
        show(div);
        collapsed=false;
    }
    else
    {
        setFrameWidth(15);
        hide(div);
        collapsed=true;
    }
}

function showPlaylist() {
    collapsed=true;
    collapsePlaylist();
}
function hidePlaylist() {
    collapsed=false;
    collapsePlaylist();
}

function plstKeypress(evt) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    var form = target.form;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 46) {
        plstRemoveSelected();
    }
    return true;        
}
