function selectgamecategory(sid, disallow, callback) {
	var pm={};
	if(sid) {
		pm.sid=sid;
	}
	s_g_c_sid=sid;
	s_g_c_scats=[];
	var csi=0;
	var fs=0;
	$.post('/includes/ajax/categories.php', pm, function(data) {
		var html='<b>Select a site:</b> <select id="sgc_s_sel" onchange="sgc_changesite($(\'#sgc_s_sel option:selected\').attr(\'id\'));" style="width:400px;">';
		data=eval(data);
		$.each(data, function(key, val) {
			if(s_g_c_scats[val.si]==undefined) {
				s_g_c_scats[val.si]=[];
			}
			if($.inArray(val.ci, disallow)>-1) {
				s_g_c_scats[val.si][val.ci]=[val.cn,0];
			}else{
				s_g_c_scats[val.si][val.ci]=[val.cn,1];
			}
			if(val.si!=csi) {
				csi=val.si;
				html+='<option id="'+val.si+'">'+val.sn+'</option>';
			}
			if(fs==0) {
				fs=val.si;
			}
		});
		html+='</select><br />';
		if(sid) {
			var html='<input type="hidden" id="sgc_s_sel" value="'+sid+'" />';
		}
		html+='<b>Select a game category:</b> <select id="sgc_c_sel" style="width:400px;" onchange="sgc_chngcat();"></select>';
		$('#thebigd').html(html);
		if(sid) {
			sgc_changesite(sid);
		}else{
			sgc_changesite(fs);
		}
	});
	$('#thebigd').dialog('option',{title:'Select a category',width:600}).html('<h2>Loading...</h2>').dialog('option','buttons',{'Select':function() {
		var cid=$('#sgc_c_sel option:selected').attr('id');
		if(!sid) {
			var sid=$('#sgc_s_sel option:selected').attr('id');
		}
		if(typeof callback == 'function'){
			callback.call(this, cid, sid);
		}
		
		$('#thebigd').dialog('close');
	}}).dialog('open');
}
function sgc_changesite(sid) {
	$('#sgc_c_sel').html('');
	$.each(s_g_c_scats[sid], function(key, val) {
		if(val!=undefined) {
			if(val[1]==1) {
				$('#sgc_c_sel').append('<option id="'+key+'">'+val[0]+'</option>');
			}else{
				$('#sgc_c_sel').append('<option id="'+key+'" disabled="disabled">'+val[0]+'</option>');
			}
		}
	});
	$('#sgc_c_sel').append('<option id="add">Add a category...</option>');
}
function sgc_chngcat() {
	var cid=$('#sgc_c_sel option:selected').attr('id');
	if(cid=='add') {
		if(s_g_c_sid===undefined || s_g_c_sid==0) {
			var sid=$('#sgc_s_sel option:selected').attr('id');
		}else{
			var sid=s_g_c_sid;
		}
		var cname=prompt('Enter the name of the new category');
		if(cname) {
			$.getJSON("includes/feedback.php?sid="+sid+"&addcat=" + cname, function(data) {
				if(data.id!='ERROR') {
					s_g_c_scats[sid][data.id]=[cname,1];
					display_success_msg('A new game category has been added successfully.');
					sgc_changesite(sid);
				}else{
					display_error_msg('An error occurred whilst trying to add a new game category.');
				}
			});
		}
	}
}
