var races     = new Array ('Blood Elf', 'Draenai', 'Dwarf','Gnome','Human','Night Elf','Orc','Tauren','Troll','Undead');
var races_a   = new Array (0,0,0,0,1,1,1,1);
var classes   = new Array ('Druid','Hunter','Mage','Paladin','Priest','Rogue','Shaman','Warlock','Warrior');
var classes_a = new Array (20,158,99,160,179,251,14,105,255);
var regions   = new Array ('US', 'EU/EN', 'EU/DE', 'EU/FR', 'EU/SP');
var pvpranks  = new Array ('Scout', 'Grunt', 'Sergeant', 'Senior  Sergeant', 
													'First Sergeant', 'Stone Guard', 'Blood Guard', 'Legionnaire',
												  'Centurion', 'Champion', 'Lieutenant  General', 'General',
												  'Warlord', 'High Warlord');

function updateServerDropdown(region) {

region = parseInt(region)-1;
	var element = document.getElementById("server");
	element.length = 1;
	element.options[0] = new Option();
	element.options[0].value = -1;
	element.options[0].text = "Select Server";
	if ( region < 4 && region >=0 ) {
		
		start = SLST_region[region];
		type = '';
		i=1;
		
		current = SLST[SLST_sort[start]];
		while(current[3]==region) {
			
			if(type!=current[1]) {
				element.length++;
				element.options[i] = new Option();
				element.options[i].value = -1;
				element.options[i].className = "dropdownHeader";
				element.options[i].text = current[1];
				type=current[1];
				i++;
			}
			
			element.length++;
			element.options[i] = new Option();
			element.options[i].value = SLST_sort[start];
			element.options[i].text = current[0];
			i++;
			
			start++;
			current = SLST[SLST_sort[start]];
			
		}
		element.disabled = false;
	} else {
		element.disabled = true;
	}
	element.selectedIndex = 0;
}

function updateClassDropdown(race) {
	race = parseInt(race)-1;
	var realRace = (races.length-1) - race;
	var element = document.getElementById("class");
	var currValue = parseInt(element.value);
	element.options[0] = new Option();
	element.options[0].value = -1;
	element.options[0].text = "Select Class";
	var numOptions = 0;
	for( var i = 0; i < classes.length; i++ ) {
		if ( race == -2 || ( ( classes_a[i] >> realRace ) % 2 ) == 1 ) {
			numOptions++;
			element.options[numOptions] = new Option;
			element.options[numOptions].value = (i+1);
			element.options[numOptions].text = classes[i];
			if ( (i+1) == currValue ) {
				element.selectedIndex = numOptions;
			}
		}
	}
	element.length = (numOptions+1);
}

var elements = new Array(
	["name", 0],
	["guild", 0],
	["region", 1],
	["server", 1],
	["race", 1],
	["class", 1],
	["level", 1],
	["rank", 1],
	["greq", 2],
	["listing", 1]
);

function resetFields() {
	for ( var i = 0; i < elements.length; i++ ) {
		if ( elements[i][1] == 0 ) {
			document.getElementById(elements[i][0]).value = "";
		} else if ( elements[i][1] == 1 ) {
			document.getElementById(elements[i][0]).selectedIndex = 0;
		} else {
			document.getElementById(elements[i][0]).checked = false;
		}
	}
}

function addDefault(id, val) {
	for ( var i = 0; i < elements.length; i++ ) {
		if ( elements[i][0] == id ) {
			if ( elements[i][1] == 0 ) {
				document.getElementById(id).value = val;
			} else if ( elements[i][1] == 1 ) {
				var element = document.getElementById(id);
				for ( var y = 0; y < element.length; y++ ) {
					if ( element.options[y].value == val ) {
						element.selectedIndex = y;
						break;
					}
				}
			} else {
				document.getElementById(id).checked = ( val != 0 );
			}
			break;
		}
	}
}

function customizeDisplay() {
	document.getElementById('customizeDisplay').style.display = 'block';
	document.getElementById('customizeText').style.display = 'none';
}

function toggleValue(obj) {
	var id, display;
	
	id = obj.id;
	display = 'none';
	if ( obj.checked )
		display = '';
		
	document.getElementById('header'+id).style.display = display;
	for ( var x = 0; x < NUM_PER_PAGE; x++ ) {
		var object = document.getElementById(id + 'row' + x);
		if ( !object || typeof(object) != "object" )
			break;
		object.style.display = display;
	}
	
	var requestScript;
	requestScript = document.createElement('script');
	requestScript.language = 'javascript';
	requestScript.type = 'text/javascript';
	requestScript.src = 'listing_display_update.ct?s='+id+'&c='+(obj.checked?1:0);
	document.body.appendChild( requestScript );
}

function displayList() {

	var index = 0;
	var colors   = Array('#BBBCC3','#C5C6CB');
	var factions = Array('alliance', 'horde');
	var flags    = Array('us', 'eu-en', 'eu-de', 'eu-fr');
	
	document.write('<table style="width: 100%; padding: 2px" cellspacing="0">'+
				'<tr style="background-color: #9FA0AA">'+
				'<td style="padding-left: 50px; font-weight: bold; white-space: nowrap">'+
				'<a href="?'+querystring+'sortBy=0&sortWay='+(1-sortway)+'" class="ct_link">Name</a></td>'+
				((mod==1)?'<td class="header">Admin</td>':'')+
				'<td class="header" style="width: 20px">&nbsp;</td>'+
				'<td class="header" style="width: 40px">'+
				'<a href="?'+querystring+'sortBy=1&sortWay='+(sortway==1&&sortby==1?0:1)+'" class="ct_link">Race</a></td>');
	
	for(;index<(optlist.length-1);index++) {
	
		document.write('<td class="header" id="header'+optlist[index][3]+'"'+(optlist[index][6]==1?' style="display: none"':'')+
		'><a href="?'+querystring+(sortby==(index+2)?'sortWay='+(sortway==1?0:1)+'&':'')+'sortBy='+(index+2)+
		(current_page>1?'&p='+current_page:'')+'" class="ct_link">'+optlist[index][0]+'</a></td>');
					
	
	}
	
	document.write('</tr>');
		
	
	for(index=0;index<(userlist.length-1);index++) {
	
		document.write('<tr style="background-color: '+colors[index&0x1]+'">'+
			'<td id="main'+userlist[index][0]+'" style="vertical-align: top; white-space: nowrap;">'+
			'<div style="clear: right; float: left; width: 25px; text-align: right; color: #888888">'+userlist[index][0]+'</div>'+
			'<div style="clear: right; float: left; width: 20px; text-align: right">'+userlist[index][4]+'</div> &nbsp;'+
			'<img style="clear: right; vertical-align: bottom; width: 16px; height: 16px; border: 0px" '+
			'src="images/classes/'+classes[userlist[index][6]]+'.gif" title="'+classes[userlist[index][6]]+'"> '+
			'<a class="'+factions[userlist[index][8]]+'" href="javascript: openProfile('+userlist[index][1]+');">'+userlist[index][9]+'</a>'+
			(userlist[index][10]!=''?' &lt;<a href="http://ctprofiles.net/guild/'+userlist[index][11]+'" target="_blank" class="ct_link">'+userlist[index][10]+'</a>&gt;':'')+'</td>'+
			((mod==1)?
			
						'<td class="footer" style="font-size: 14px">'+
						'<a href="?'+querystring+'&p='+current_page+'&sortBy='+sortby+'&sortWay='+sortway+'&refresh='+userlist[index][1]+'">'+
						'<img src="icons/Spell_Holy_ElunesGrace.jpg" style="width: 16px; height: 16px; border: 0px" title="Refresh Profile"></a>'+
						'<input type="checkbox" name="hide[]" style="width: 16px; height: 16px; margin: 0px; padding: 0px; position: relative; top: -3px" value="'+userlist[index][1]+'"' + ((userlist[index][12]==2)?' checked':'') + '/>'+
						'</td>':''
			)+
			'<td id="flag'+userlist[index][0]+'" class="footer">'+
			'<img src="images/flag_'+flags[userlist[index][2]]+'.gif" title="' + SLST[userlist[index][3]][0] + ' ('+regions[SLST[userlist[index][3]][3]]+')"/></td>'+
			'<td class="footer"><img src="images/'+races[userlist[index][5]]+userlist[index][7]+'.gif" '+
			'title="'+races[userlist[index][5]]+' '+(userlist[index][7]==0?'Male':'Female')+'"/></td>');
			
		for (var dindex=0;dindex<(optlist.length-1);dindex++) {	
		
			document.write('<td id="'+optlist[dindex][3]+'row'+userlist[index][0]+'" class="footer" style="'+
					(optlist[dindex][4]!=''?'color:#'+optlist[dindex][4]+';':'') +
					(optlist[dindex][6]==1?'display: none;':'') +
					(optlist[dindex][5]!=''?'background-color:#'+optlist[dindex][5]+';':'') +
					'">' + 
					
				(optlist[dindex][0]!='MP'||(userlist[index][6]!=5&&userlist[index][6]!=8)?
					(optlist[dindex][0]=='HeP'&&userlist[index][(dindex+14)]==0?'N/A':
					userlist[index][(dindex+14)]):'N/A')+'</td>');
					
		}
		
		document.write('</tr>');

	}
	
	document.write('</table>');

}

function refineSearch(maxlvl, listingtypes) {
		
	document.write(''+
'<div class="ct_header">Refine Search</div>' +
'<div class="ct_imbed2" style="margin-top: 0px" align="center">' +
	'<form style="display: inline" method="GET" action="listing.ct">' +
		'<input type="hidden" name="sortWay" value="'+sortway+'">' +
		'<input type="hidden" name="sortBy" value="'+sortby+'">' +
		'<table style="width: 90%; border: 0px; margin: 0px; padding: 5px; padding-top: 10px; padding-bottom: 0px" cellspacing="3">' +
			'<tr>' +
				'<td style="text-align: right">Name/ID:</td>' +
				'<td><input name="name" id="name" type="text"></td>' +
				'<td style="text-align: right">Guild:</td>' +
				'<td><input name="guild" id="guild" type="text"></td>' +
				'<td style="text-align: right">Region:</td>' +
				'<td><select name="region" id="region" onchange="javascript: updateServerDropdown(this.value);">' +
					'<option value="-1">Select Region</option>');
	
	for(var i=0;i<regions.length;i++)
		document.write('<option value="'+(i+1)+'">'+regions[i]+'</option>');
		
	document.write('</select></td>' +
				'<td style="text-align: right">Server:</td>' +
				'<td><select name="server" id="server" disabled><option value="-1">Select Server</option></select></td>' +
			'</tr>' +
			'<tr>' +
				'<td style="text-align: right">Race:</td>' +
				'<td><select name="race" id="race" onchange="javascript: updateClassDropdown(this.value);">' +
					'<option value="-1">Select Race</option>');
	
	for(var i=0;i<races.length;i++)
		document.write('<option value="'+(i+1)+'">'+races[i]+'</option>');
	
	document.write('</select></td>' +
				'<td style="text-align: right">Class:</td>' +
				'<td><select name="class" id="class">' +
					'<option value="-1">Select Class</option>');
	
	for(var i=0;i<classes.length;i++)
		document.write('<option value="'+(i+1)+'">'+classes[i]+'</option>');
	
	document.write('</select></td>' +
				'<td style="text-align: right">Level:</td>'+
				'<td><select name="level" id="level">'+
					'<option value="-1">Select Level</option>');
	
	for(var i=maxlvl;i>=1;i--)
		document.write('<option value="'+i+'">'+i+'</option>');
		
	document.write('</select></td>' +
				'<td style="text-align: right">Rank:</td>' +
				'<td><select name="rank" id="rank">' +
					'<option value="-1">Select Rank</option>' +
					'<option value="0">Unranked</option>');

	for(var i=0;i<pvpranks.length;i++)
		document.write('<option value="'+(i+1)+'">'+pvpranks[i]+' ['+(i+1)+']</option>');
		
	document.write('</select></td>' +
			'</tr>' +
			'<tr>' +
				'<td colspan="4" style="text-align: right">' +
					'Listing: <select id="listing" name="listing">')
	
	for(var i=0;i<(listingtypes.length-1);i++)
		document.write('<option value="'+listingtypes[i][0]+'">'+listingtypes[i][1]+'</option>');
		
	document.write('</select></td>' +
				'<td colspan="4" style="text-align: left">' +
				'<input style="width: 13px; height: 11px; vertical-align: top" id="greq" name="greq" type="checkbox" value="1"/>' +
				' Display guilded characters only</input></td>' +
			'</tr>' +
			'<tr>' +
				'<td colspan="4" style="text-align: right"><input type="submit" value="Refine Search"></td>' +
				'<td colspan="4" style="text-align: left"><input type="button" onclick="resetFields();" value="Reset"></td>' +
			'</tr>' +
		'</table>' +
	'</form>' +
'</div><br/>');
	
}

function listHeader(players,user,customListing) {
	
	var areas = Array ("Normal Stats", "Caster Stats", "Melee Stats");
	
	document.write('' +
	'<div class="ct_header">Player Listing &raquo; '+players+' Players Found</div>' +
	'<div class="ct_imbed2" style="margin-top: 0px">');
	
	if (user) {
		document.write('' +
		'<div id="customizeDisplay" style="display: none" align="center">' +
			'<span style="font-size: 14px; font-weight: bold">Customize Display</span>' +
			'<table cellspacing="0" style="border: 0px"><tr>');
		
		for (var i=0;i<areas.length;i++)
			document.write('<td style="border-bottom: 1px solid #000000; font-weight: bold; text-align: center">'+areas[i]+'</td>');

		document.write('</tr><tr>');
		
		for (var i=0;i<(optlist.length-1);i++) {			
			if(i==0||optlist[i][2]!=optlist[(i-1)][2]) 
				document.write((i>0?'</td>':'')+'<td style="vertical-align: top; background-color: #BBBCC3; width: 200px; text-align: left">');
			else
				document.write('<br/>');
			document.write('<input type="checkbox" id="'+optlist[i][3]+'" style="width: 14px; height: 14px"'+
										 (customListing.charAt(optlist[i][3])=='1'?' checked':'')+' onClick="toggleValue(this)">['+optlist[i][0]+'] '+optlist[i][1]);
		}
		
	document.write('</tr>' +
				'</table>' +
			'<br/>' +
		'</div>');
	
	}
		
	document.write('<div style="float: right" id="customizeText">' +
								 (user?
								 	'<a href="javascript: customizeDisplay()" class="ct_link">Customize the listings!</a>':
								 	'Log in to customize the listings') 
								 + '</div><div align="left">' + pagestring +
								  (mod?
									'<div style="text-align: center"><form method="POST" id="hideProfiles" style="display: inline" name="hideProfiles" action="listing.ct?'+querystring+'&p='+current_page+'&sortBy='+sortby+'&sortWay='+sortway+'"><a href="#" onClick=\"javascript: document.forms.hideProfiles.submit()\" class="ct_link"">Hide selected profiles</a></div>'
									:''));

}

function listFooter(user) {
	
	document.write((mod?'</form>':'')+'<div style="float: left; clear: right">'+pagestring+'</div>' +
		(user?
			'<div style="text-align: center">See a fake profile? Report it <a href="reportProfile.ct" class="ct_link" target="_blank">here</a>.</div>':
			'<br/>')
		+'</div>');
	
}

