function gotopg(url_string, num_pages)
{
	var page = Math.round(document.getElementById('gotopage').value);
	
	if(!page || page < 1)
	{
		alert("Please enter a valid page number");
	}
	else if(page > num_pages)
	{
		alert("You have to enter a number between 1 and " + num_pages);
	}
	else
	{
		url = new String(url_string)
		url = url.replace("{P}", page)
		
		document.location.href = url;
	}
}


function field_add(field_id, add_value)
{
	if(window.opener)
	{
		var field = window.opener.document.getElementById(field_id);
	}
	else
	{
		var field = document.getElementById(field_id);
	}

	if(field)
	{
		field.value += add_value;
	}
}


function switchdisplay(elem, stl)
{
	var el = document.getElementById(elem);
	var st = stl ? stl : 'block';
	
	if(el)
	{
		if(el.style.display == 'none' || el.style.display == '')
		{
			el.style.display = st;
		}
		else
		{
			el.style.display = 'none';
		}
		
		return true;
	}
	else
	{
		return false;
	}
}

function popup(popup_url, popup_name, width, height)
{
	var newwin = window.open(popup_url, popup_name, 'width=' + width + ',height=' + height + ',left=' + (screen.width-width)/2 + ',top=' + (screen.height-height)/2 + ',toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0');
	newwin.focus();
}


function request_init()
{
	req = false;

	try
	{
		req = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{
			req = false;
		}
	}

	if(!req && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			req = new XMLHttpRequest();
		}
		catch(e)
		{
			req = false;
		}
	}
	
	if(!req && window.createRequest)
	{
		try
		{
			req = window.createRequest();
		}
		catch(e)
		{
			req = false;
		}
	}
}


function request_do(url)
{
	request_init();
	
	req.open("GET", url, true);
	
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
		{
			document.getElementById('catselector').innerHTML = req.responseText;
		}
	}
	
	req.send(null);	
}


function cat_update(catid, catname)
{
	document.getElementById('selected_category').value = catname;
	document.getElementById('sel_category').value = catid;
}


function escapeHTML(txt)
{
	if(txt)
	{
		return txt.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split("\"").join("&quot;");
	}
	else
	{
		return;
	}
}

// SONGLIST

songs_id = new Array();
songs_title = new Array();
songs_note = new Array();

function songadd(song_id, song_title)
{
	if(!song_id)
	{
		var songname = escapeHTML(prompt('Please enter a song title / artist', ''));
		
		if(songname)
		{
			song_title = songname;
		}
		else
		{
			song_title = false;
		}
	}
	
	if(song_title.length)
	{
		songs_id[songs_id.length] = song_id;
		songs_title[songs_title.length] = song_title;
		songs_note[songs_note.length] = '';
	
		setlistdisplay();
	}
}


function songmove(id, direction)
{
	var temp_song_id = songs_id[id-direction];
	var temp_song_title = songs_title[id-direction];
	//var temp_song_note = songs_note[id-direction];
	
	songs_id.splice(id-direction, 1, songs_id[id]);
	songs_title.splice(id-direction, 1, songs_title[id]);
	//songs_note.splice(id-direction, 1, songs_note[id]);
	
	songs_id[id] = temp_song_id;
	songs_title[id] = temp_song_title;
	//songs_note[id] = temp_song_note;
	
	setlistdisplay();
}


function songremove(id)
{
	songs_id.splice(id, 1);
	songs_title.splice(id, 1);
	//songs_note.splice(id, 1);
	
	setlistdisplay();
}


/*function addnote(id)
{
	var sn = songs_note[id] ? songs_note[id] : '';

	var songnote = escapeHTML(prompt('Note', sn));
	
	songs_note[id] = songnote;
	
	setlistdisplay();
}*/


function setlistdisplay()
{
	var setlist = document.getElementById('setlist');
	
	if(songs_id.length)
	{
		var temp = '<table cellpadding="0" cellspacing="0" border="0">';
		
		for(i=0; i<songs_id.length; i++)
		{
			var temp_up = i ? '<a title="Move up" href="javascript:void(0);" onclick="songmove(' + i + ', 1)"><img alt="Up" src="/images/arrow-up.gif" /></a>' : '&nbsp;';
			var temp_dn = (i != songs_id.length-1) ? '<a title="Move down" href="javascript:void(0);" onclick="songmove(' + i + ', -1)"><img alt="Down" src="/images/arrow-down.gif" /></a>' : '&nbsp;';
			var temp_sn = songs_note[i] ? '<em>, ' + songs_note[i] + '</em>' : '';
			
			//temp += '<tr><td class="r"><input type="hidden" name="songs[]" value="' + songs_id[i] + '" /><input type="hidden" name="songs_note[]" value="' + songs_note[i] + '" />' + (i+1) + '</td><td class="w100"><input type="hidden" name="songs_title[]" value="' + songs_title[i] + '" />' + songs_title[i] + temp_sn + '</td><td><a title="Note" href="javascript:void(0);" onclick="addnote(' + i + ')"><img alt="Note" src="/administration/_images/notes.gif" /></a></td><td>' + temp_up + '</td><td>' + temp_dn + '</td><td><a title="Remove" href="javascript:void(0);" onclick="songremove(' + i + ')"><img alt="Delete" src="/administration/_images/delete.gif" /></a></td></tr>';
			
			
			temp += '<tr><td class="r"><input type="hidden" name="songs[]" value="' + songs_id[i] + '" /><input type="hidden" name="songs_note[]" value="' + songs_note[i] + '" />' + (i+1) + '</td><td class="w100"><input type="hidden" name="songs_title[]" value="' + songs_title[i] + '" />' + songs_title[i] + temp_sn + '</td><td>' + temp_up + '</td><td>' + temp_dn + '</td><td><a title="Remove" href="javascript:void(0);" onclick="songremove(' + i + ')"><img alt="Delete" src="/images/delete.gif" /></a></td></tr>';	
		}
		
		temp += '</table>';
	}
	else
	{
		temp = '<p>Click on the song title on the right to add the song to the setlist.</p>';
	}
	 
	setlist.innerHTML = temp;
}


function mark(val)
{
	var items = document.getElementsByName("item[]");
	
	for(var i=0; i<items.length; i++)
	{
		items[i].checked = val;
	}
}