// Folder here MUST end with '/'. No checks are performed.

function launchAudioWin(song,format,size,name,folder)
{
	var URL = "media/audioPlayer.php?song="+song+"&format="+format+"size="+size;
	
	if (name)	URL = URL + "&name="+name;
	if (folder)	URL = URL + "&folder="+folder;
	launchNewWin(URL, 'ContinuumAudioPlayer', 400, 200);
}

function launchAudioPicker(song, name, folder, formats, formatNames, sizes, sizeNames)
{
	// formats and sizes must be arrays with keys.
	var URL = "media/audioPicker.php?song="+song+"&folder="+folder;
	
	if (name)		URL = URL + "&name="+URLencode(name);
	if (folder)		URL = URL + "&folder="+folder;
	if (formats)	URL = URL + "&formats="+js_array_to_php_array(formats);
	if (sizes)		URL = URL + "&sizes="+js_array_to_php_array(sizes);
	if (sizeNames)	URL = URL + "&sizeNames="+js_array_to_php_array(sizeNames);
	launchNewWin(URL, 'ContinuumAudioPlayer', 400, 200);
}

function launchNewWin(URL, windowName, windowWidth, windowHeight, scrollbars)
{
	var xposition = 400;
	var yposition = 300;
	
    if ((parseInt(navigator.appVersion) >= 4 )) {
        xposition = (screen.width - windowWidth) / 2;
        yposition = (screen.height - windowHeight) / 2;
    }
	
	if (!scrollbars) var scrollbars = 0;
	
    var args = "width=" + windowWidth + ","
	    	+ "height=" + windowHeight + ","
	    	+ "location=0,"
		    + "menubar=0,"
		    + "scrollbars=" + scrollbars + ","
		    + "status=0,"
		    + "titlebar=0,"
		    + "hotkeys=0,"
		    + "screenx=" + xposition + ","  // NN Only
		    + "screeny=" + yposition + ","  // NN Only
		    + "left=" + xposition + ","     // IE Only
		    + "top=" + yposition;           // IE Only
		
	if (this.newWin)
		if (!this.newWin.closed)
			this.newWin.close();

	this.newWin = window.open(URL, windowName, args);
	
	newWin.focus();
}

function URLencode(sStr) {
    return escape(sStr).
             replace(/\+/g, '%2B').
                replace(/\"/g,'%22').
                   replace(/\'/g, '%27').
                     replace(/\//g,'%2F');
}

function js_array_to_php_array (a)
{
    var a_php = "";
    var total = 0;
    for (var key in a)
    {
        ++ total;
        a_php = a_php + "s:" +
                String(key).length + ":\"" + String(key) + "\";s:" +
                String(a[key]).length + ":\"" + String(a[key]) + "\";";
    }
    a_php = "a:" + total + ":{" + a_php + "}";
    return a_php;
}
