﻿// Play Music---------------------------------------------------------

var PlayObject1 = "<object id=\"mediaplayer\" width=\"200\""
var PlayObject2 = ">" + 
    "<param name=\"Volume\" value=\"100\" /><param name=\"autoStart\" value=\"1\" /><param name=\"balance\" value=\"0\" />" + 
    "<param name=\"ShowDisplay\" value=\"true\" /><param name=\"URL\" value=\"";
var PlayObject3 = "\" />" + 
    "<embed type=\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/windows/windowsmedia/download/default.asp\" " +
    "name=\"mediaplayer1\" src=\"";
var PlayObject4 = "\" autostart=\"1\" playcount=\"1\" width=\"200\"";
var playObject5 = "></embed></object>";

var classid;
var objectH;
var PlayIds;

function setClassID(id)
{
    classid = " classid=\"" + id + "\"";
}

function setPlayerHeight(h)
{
    objectH = " height=\"" + h + "\"";
}

function playListAllPlay(file, bitrate, format, playtype)
{
    var tracks = $$('input.trackid');
    
    if(tracks == null || tracks.length < 1)
    {
        return;
    }
    
    var arr = new Array();
    
    for( var i = 0; i < tracks.length; i++)
    {
        arr.push(tracks[i].value);
    }
    
    var url = file + "?pl=t&ti=" + arr.join(",") + bitrate + format + playtype + getRepeatParam();
    playMusic(url);

    return;
}

function playListSelectPlay(file, bitrate, format, playtype)
{
    var tracks = $$('input.trackid');
    
    if(tracks == null || tracks.length < 1)
    {
        return;
    }
    
    var arr = new Array();
    
    for( var i = 0; i < tracks.length; i++)
    {
        if(tracks[i].checked == true)
        {
            arr.push(tracks[i].value);
        }
    }

    if(arr.length == 0)
    {
        alert("再生したいトラックを選択してください");
        return false;
    }
    
    var url = file + "?pl=t&ti=" + arr.join(",") + bitrate + format + playtype + getRepeatParam();
    playMusic(url);
    
    return;
}

var IsRepeatPlay = false;

function setRepeatPlay(flag)
{
    IsRepeatPlay = flag;
    return;
}

function getRepeatParam()
{
    if (IsRepeatPlay == true)
    {
        return "&r=2";
    }
    return "";
}

function isPlayListRepeat()
{
    return IsRepeatPlay;
}

function playMusic(url)
{
    var obj =  PlayObject1 + objectH + classid + PlayObject2 + url + PlayObject3 + url + PlayObject4 + objectH + playObject5;
    
    var player = $$('div#album-player div.player');
    
    if (player.length > 0)
    {
        player[0].innerHTML = obj;
    }

    return;
}

// Fire Fox RecordLog---------------------------------------------------------

var DefaultCordList;
var DefaultTimingList;
var CordList;
var TimingList;

function setDefaultList(cords, timings)
{
    DefaultCordList = cords;
    DefaultTimingList = timings;
    CordList = cords;
    TimingList = timings;
}

function getPLCords()
{
    return CordList;
}

function getPLTimings()
{
    return TimingList;
}

function makeTimerList(allcheck)
{
    if(allcheck == false)
    {
        var list = getCheckedIdList();
        
        var arrtime = new Array();
        var defc = DefaultCordList.split(",");
        var deft = DefaultTimingList.split(",");
        
        for (var i = 0; i < list.length; i++)
        {
            for (var j = 0; j < defc.length; j++)
            {
                if (list[i] == defc[j])
                {
                    arrtime.push(deft[j]);
                }
            }
        }
        
        CordList = list.join(",");
        TimingList = arrtime.join(",");
    }
    else
    {
        CordList = DefaultCordList;
        TimingList = DefaultTimingList;
    }
    return;
}

function getCheckedIdList()
{
    var tracks = $$('input.trackid');
    
    if(tracks == null || tracks.length < 1)
    {
        return null;
    }
    
    var arr = new Array();
    
    for( var i = 0; i < tracks.length; i++)
    {
        if(tracks[i].checked == true)
        {
            arr.push(tracks[i].value);
		}
    }

    return arr
}

// Play List Data Getter---------------------------------------------------------

function playListDataGetter()
{
    this.requester = null;
    this.dataArray = null;
}

playListDataGetter.prototype.getData = function(trackid)
{
    if (this.dataArray === null)
    {
        this.dataArray = new Array();
    }

    if (this.dataArray[trackid] != null && this.dataArray[trackid] != "undefined")
    {
        this.receiveResponse(this.dataArray[trackid]);
    }
    else
    {
        var thisInstance = this;
        this.requester = req.createXMLHttpRequest(function() { thisInstance.onChangeState(thisInstance); });
        
        this.requester.open("POST", "PlayListDataGetter.ashx", true);
        this.requester.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
        this.requester.send("ti=" + trackid);
    }
};

// change state event.
playListDataGetter.prototype.onChangeState = function(getter)
{
	if (getter.requester == null)
	{
	    return;
	}
	if (getter.requester.readyState != 4)
	{
		return;
	}

	try
	{
		if (getter.requester.status == 200)
		{
		    getter.setHashTable(getter.requester.responseText);
		
			if (getter.receiveResponse(getter.requester.responseText) === false)
			{
				// Report Data invalidate.
			}
		}
		else if (getter.requester.status != 304)
		{
			// Report error
		}
        getter.terminateRequest();
	}
	catch (e)
	{
		// Need error handling.
	}
	finally
	{

	}
};

// Set Hash Table
playListDataGetter.prototype.setHashTable = function(responsetext)
{
    if (responsetext.length > 0)
    {
        var datas = responsetext.split("\t");
        
        if (datas.length !== 4)
        {
            return false;
        }
        
        this.dataArray[datas[0]] = responsetext;
    }
}

// Set AboutThisRecording.
playListDataGetter.prototype.receiveResponse = function(responsetext)
{
    if(responsetext.length > 0)
    {
        var datas = responsetext.split("\t");
        
        if(datas.length !== 4)
        {
            return false;
        }
        
        // For Image.
    	var imagearea = $$('div.album-image p.image');
        for (var index = 0; index < imagearea.length; index++)
        {
            imagearea[index].innerHTML = "<img src=\"" + datas[1] + "\" style=\"height:200px;width:200px;border-width:0px;\" />";
        }
        
        // For AboutThisRecording.
    	var targetArea = document.getElementById('idAboutThisRecording');
        
        targetArea.removeAttribute("onclick");

        if(datas[2].length == 0)
        {
            targetArea.style.display = "none";
        }
        else
        {
            targetArea.style.display = "block";
        	  
            var att = "javascript:window.open('" + datas[2] + "','oNewWindow', 'width=800,height=600,left=5,top=5,scrollbars=yes'); return false;";
            
            if (targetArea != null)
            {
                targetArea.setAttribute("onclick", new Function(att));
            }
        }
    }
    return false;
};

// Terminate Request
playListDataGetter.prototype.terminateRequest = function()
{
	if (this.requester !== null)
	{
		this.requester.abort();
		this.requester = null;
	}
};

function PlaylistToggleMember(FolderID){
    var playlistFolder = $$('li#' + FolderID);
    var memberPlayListAry = $$('li#' + FolderID + ' ul');
    if(playlistFolder.length > 0){
        if(playlistFolder[0].className == "folder open"){
            playlistFolder[0].className = 'folder';
        }else{
            playlistFolder[0].className = 'folder open';
        }
    }
    if(memberPlayListAry.length > 0){
        memberPlayListAry.invoke('toggle');
    }
}

function EnableNewFolderBox(){
    var DropDown = $$('select.PlaylistFolderDropDown');
    if(DropDown.length > 0){
        var Input = $('NewFolderNameDIV');
        if((DropDown[0].getValue() == "CreateNewFolder")){
            Input.show();
        }else{
            Input.hide();
        }
    }
}

function EnableNewFolderTR(){
    var DropDown = $$('select.PlaylistFolderDropDownCreate');
    if(DropDown.length > 0){
        var Input = $$('tr.NewFolderNameTR');
        if((DropDown[0].getValue() == "CreateNewFolder")){
            Input[0].show();
        }else{
            Input[0].hide();
        }
    }
}

function PlaylistDisableAddControl(){
    var ctrl = $$('select.PlaylistFolderDropDownAdd', 'select.PlaylistNameDropDownAdd');
    ctrl.invoke('disable');
    ctrl     = $$('select.PlaylistFolderDropDownCreate', 'input.NewFolderName', 'input.NewPlaylistNameCreate');
    ctrl.invoke('enable');
}


function PlaylistDisableCreateControl(){
    var ctrl = $$('select.PlaylistFolderDropDownCreate', 'input.NewFolderName', 'input.NewPlaylistNameCreate');
    ctrl.invoke('disable');
    ctrl     = $$('select.PlaylistFolderDropDownAdd', 'select.PlaylistNameDropDownAdd');
    ctrl.invoke('enable');
}

