var basemidiURL		= "/SMSMathematica/NKM/sound.jsp?id=";
var blankmidiURL	= "/generate/blank.html?";
var baseimageURL	= "/SMSMathematica/NKM/image.jsp?id=";
var basetextURL		= "/SMSMathematica/NKM/text.jsp?";

var ids = new Array();

document.domain = 'wolfram.com';



function playTone(nkmID) {
	var midiURL = basemidiURL + nkmID;
	if (document.getElementById('toneframe')) {
		document.getElementById('toneframe').src = blankmidiURL;
		document.getElementById('toneframe').src = midiURL;
	}
}



function stopTone() {
	if (document.getElementById('toneframe')) {
		document.getElementById('toneframe').src = blankmidiURL;
	}
}



function loadImage(which, nkmID) {
	var imageURL = baseimageURL + nkmID;
	var color = getCookie('NKMColorScheme');
	if (color) { imageURL = imageURL + '&colorscheme=' + color; }
	if (document.getElementById('NKM_image'+which)) {
		document.getElementById('NKM_image'+which).src = imageURL;
	}
	if (document.getElementById('image_div'+which)) {
		var nkmimg = document.getElementById('NKM_image'+which).src;
		if ((color == 'Mixed') || (color == 'Black')) {
			document.getElementById('image_div'+which).style.border = '#dddddd 1px solid';
		}
		else {
			document.getElementById('image_div'+which).style.border = '#ffffff 1px solid';
		}
	}
}



function deliverTone(nkmID) {
	var left = window.screen.availWidth - 520;
	var top = window.screen.availHeight/2 - 550/2;
	var location = 'http://' + document.location.host + '/deliver/?id=' + nkmID;
	var features = 'scrollbars=yes,menubar=no,height=550,width=500,resizable=yes,toolbar=no,location=no,status=no';
	if (!window.opera) { features = features + ',screenX='+left+',left='+left+',screenY='+top+',top='+top; }
	window.open(location, 'Deliver'+nkmID, features);
}



function getNKMTitleFromIFrame(which, title) {
	if (document.getElementById('CompositionTitle'+which)) {
		document.getElementById('CompositionTitle'+which).innerHTML = title;
	}
}


function getNKMFullScaleNameFromIFrame() {}
function getNKMStringFromIFrame() {}
function getNKMTimingFromIFrame() {}
function getNKMTimingAllFromIFrame() {}
function getNKMScaleLabelsFromIFrame() {}



function displayCollection(ids_arr) {
	var ids_str = new String();
	ids_str = ids_arr;
	ids = ids_str.split(":");
	if (document.getElementById('CollectionContents')) {
		adjustToggleColor('init');
		for (var i = 0; i < ids.length; i++) {
			loadImage(i, ids[i]);
		}
		var ids_string = new String();
		ids_string = ids.join("_");
		if (document.getElementById('titleframe')) {
			document.getElementById('titleframe').src = basetextURL + 'special=Titles&ids=' + ids_string;
		}
	}
}



function adjustToggleColor(action) {
	var toggle_hash = {
		'Color' : '/images/toggle-fullcolor.gif',
		'Mixed' : '/images/toggle-middlecolor.gif',
		'Black' : '/images/toggle-bw.gif'
	};
	if (document.getElementById('ToggleColor')) {
		if (ids.length == 0) {
			document.getElementById('ToggleColor').src = '/common/images/spacer.gif';
			return;
		}
		var current_color = getCookie('NKMColorScheme');
		if ((action) && (action == 'toggle')) {
			current_color = (current_color == 'Color') ? 'Mixed' :
					(current_color == 'Mixed') ? 'Black' : 'Color';
		}
		else {
			if ((current_color != 'Color') && (current_color != 'Mixed') && (current_color != 'Black')) {
				current_color = 'Color';
			}
		}
		document.getElementById('ToggleColor').src = toggle_hash[current_color];
		document.cookie = "NKMColorScheme=" + current_color + ";path=/";
		for (var i = 0; i < ids.length; i++) {
			loadImage(i, ids[i]);
		}
	}
}



function getCookie(which) {
	var name = which;
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	var to_return = "";
	for(var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')	{ c = c.substring(1, c.length); }
		if (c.indexOf(nameEQ) == 0)	{ to_return = c.substring(nameEQ.length, c.length); }
	}
	if (to_return == 'undefined')	{ return undef; }
	else				{ return to_return; }
}

function saveToCollection(nkmID) {
	if (nkmID) {
		window.location = 'http://' + document.location.host + '/mytones/?save=' + nkmID;
	}
}

