 var current_outfit = new Array();
 var current_bonuses = new Array();
 var slot_prices = new Array();
 var current_price = 0;
 var shield_disabled = false;
 var getquery = "";
 
 function $(id) { return document.getElementById(id); }

 function createXMLHttpRequest() {
   try { return new XMLHttpRequest(); } catch(e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   alert("XMLHttpRequest not supported");
   return null;
 }
 
 function init(slot, query) {
	 $(slot + '_results').innerHTML = '<div align="center"><img src="http://www.draynor.net/images/ajax-loader.gif" /></div>';
	 $(slot + '_results').style.display = 'block';
	 $(slot + '_clear').style.display = 'inline';
	 var xhr = createXMLHttpRequest();
	 xhr.open("GET", "http://www.draynor.net/act/wardrobe_autocomplete.php?slot=" + escape(slot) + "&query=" + escape(query));
	 
	 xhr.onreadystatechange = function() {
		 if(xhr.readyState == 4) {
			 var scriptresponse = xhr.responseText;
			 
			 $(slot + '_results').innerHTML = scriptresponse;
		 }		 
	 };
	 
	 xhr.send(null);
 }
 
 function selectItem(slot, item_id, item_name) {
	var wdovurl = window.location.toString();
	var wdovurl_s = 'http://www.draynor.net/act/wardrobe_view.php';
	if(wdovurl.indexOf(wdovurl_s) < 0) {
		$(slot + '_input').value = item_name;
		$(slot + '_data').value = item_id;
		$(slot + '_results').innerHTML = '';
		$(slot + '_results').style.display = 'none';
	}
	
	var xhr = createXMLHttpRequest();
	xhr.open("GET", "http://www.draynor.net/act/wardrobe_iteminfo.php?id=" + item_id);
	
	$(slot + '_info').innerHTML = ' ... LOADING ... ';
	
	xhr.onreadystatechange = function() {
		if(xhr.readyState == 4) {
			var scriptresponse = xhr.responseText;
			scriptresponse = scriptresponse.split(';');

			if(scriptresponse[3].substr(0,1) == 'p') {
				var price = parseInt(scriptresponse[3].substr(1));
				var image_url = "http://www.draynor.net/system/styles/images/applications/wardrobe/items/" + item_id + ".gif";
			} else {
				var price = parseInt(scriptresponse[3]);
				var image_url = "http://www.draynor.net/system/styles/images/applications/wardrobe/items/" + item_id + ".gif";
			}			
			
			$(slot).innerHTML = '<a onmouseover="javascript:tooltip($(\'' + slot + '_info\').innerHTML);" onmouseout="javascript:exit();"><img class="block_image" src="' + image_url + '" /></a><div class="block_overlay"></div>';
			 
			$(slot + '_info').innerHTML = '<h3 class="light">' + scriptresponse[1].replace('\\', '') + '</h3><p style="padding:3px;"><strong>In-game Desc.:</strong> <span class="green">' + scriptresponse[2] + '</span></p><p style="padding:3px;"><strong>Current Marketprice:</strong> <span class="green">' + addCommas(price) + '</span> GP</p>';
			
			var attackBonuses = new Array(scriptresponse[5], scriptresponse[6], scriptresponse[7], scriptresponse[8], scriptresponse[9]);
			var defenceBonuses = new Array(scriptresponse[10], scriptresponse[11], scriptresponse[12], scriptresponse[13], scriptresponse[14], scriptresponse[15]);
			
			var strength = scriptresponse[16];
			var prayer = scriptresponse[17];
			
			current_bonuses[slot] = new Array(attackBonuses, defenceBonuses, strength, prayer);
			slot_prices[slot] = price;
			current_price = current_price + slot_prices[slot];
			
			uptBonus('stab_attack', attackBonuses[0]);
			uptBonus('slash_attack', attackBonuses[1]);
			uptBonus('crush_attack', attackBonuses[2]);
			uptBonus('magic_attack', attackBonuses[3]);
			uptBonus('ranged_attack', attackBonuses[4]);
			
			uptBonus('stab_defence', defenceBonuses[0]);
			uptBonus('slash_defence', defenceBonuses[1]);
			uptBonus('crush_defence', defenceBonuses[2]);
			uptBonus('magic_defence', defenceBonuses[3]);
			uptBonus('ranged_defence', defenceBonuses[4]);
			uptBonus('summon_defence', defenceBonuses[5]);
			
			uptBonus('strength', strength);
			uptBonus('prayer', prayer);
			
			refreshPrice();
			
			if(scriptresponse[4] == '1') {
				clearSlot('shield');
				if(shield_disabled != true) {
					if(wdovurl.indexOf(wdovurl_s) < 0) {
						$('shield_input').disabled = true;
						$('shield_input').style.backgroundColor = '#CCCCCC';
						$('shield_input').value = 'Two-Handed Weapon';
					}
					
					$('shield').innerHTML = '<img src="http://www.draynor.net/system/styles/images/applications/wardrobe/na.gif" class="block_image" />';
					shield_disabled = true;
				}
			}
		} 
	};
	 
	xhr.send(null);
 }
 
 function clearSlot(slot) {
	 $(slot + '_input').value = '';
	 $(slot + '_clear').style.display = 'none';
	 $(slot + '_results').style.display = 'none';
	 $(slot).innerHTML = '<a style="display: block;height:54px;" href="javascript:focusSlot(\'' + slot + '\');"><img class="add_img" src="system/styles/images/applications/add.png" /></a>';
	 $(slot + '_info').innerHTML = '';
	 
	 if(slot == 'weapon') {
		 if($('shield_input').disabled) {
			$('shield_input').disabled = false; 
			$('shield_input').value = '';
			$('shield_input').style.backgroundColor = '#FFFFFF';
			$('shield').innerHTML = '';
			shield_disabled = false;
		 }
	 }
	 
	 // Bonuses...
	 if(current_bonuses[slot] != null) {
		 uptBonus('stab_attack', flipNum(current_bonuses[slot][0][0]));
		 uptBonus('slash_attack', flipNum(current_bonuses[slot][0][1]));
		 uptBonus('crush_attack', flipNum(current_bonuses[slot][0][2]));
		 uptBonus('magic_attack', flipNum(current_bonuses[slot][0][3]));
		 uptBonus('ranged_attack', flipNum(current_bonuses[slot][0][4]));
		 
		 uptBonus('stab_defence', flipNum(current_bonuses[slot][1][0]));
		 uptBonus('slash_defence', flipNum(current_bonuses[slot][1][1]));
		 uptBonus('crush_defence', flipNum(current_bonuses[slot][1][2]));
		 uptBonus('magic_defence', flipNum(current_bonuses[slot][1][3]));
		 uptBonus('ranged_defence', flipNum(current_bonuses[slot][1][4]));
		 uptBonus('summon_defence', flipNum(current_bonuses[slot][1][5]));
		 
		 uptBonus('strength', flipNum(current_bonuses[slot][2]));
		 uptBonus('prayer', flipNum(current_bonuses[slot][3]));
	 }
	 
	 if(slot_prices[slot] != null) {
		 current_price = current_price - slot_prices[slot];
		 refreshPrice();
	 }
 }
 
 function focusSlot(slot) {
		$(slot + '_input').focus();
		$(slot + '_input').style.borderWidth = '2px';
 }
 
 function blurSlot(slot) {
		$(slot + '_input').style.borderWidth = '1px';
		if($(slot + "_input").value == "") {
			clearSlot(slot);	
		}
 }
 
 function clearAll() {
	var slots = new Array('helmet', 'cape', 'necklace', 'weapon', 'torso', 'shield', 'legs', 'gloves', 'boots', 'ring');
	
	
	for(var i = 0; i < slots.length; i++) {
		if($(slots[i] + "_input").value != "") clearSlot(slots[i]);	
	}
	
	$('total_price').innerHTML = '0';
	if($('outfit_info')) $('outfit_info').innerHTML = '';
	
	clearBonus();
 }
	
 function openHelp() {
	window.open('http://www.draynor.net/act/wardrobe_help.html', 'Wardrobe Help', 'width=410, height=310, directories=no, location=no, menubar=no, resizable=no, scrollbars=0, status=no, toolbar=no');
 }
 
 function viewOutfit(id) {
	 var left   = (screen.width  - 550)/2;
	 var top    = (screen.height - 400)/2;
	window.open('http://www.draynor.net/act/wardrobe_view.php?id=' + id, 'Viewing Outfit', 'width=550, height=400, left=' + left + ', top=' + top + ', directories=0, location=1, menubar=0, resizable=n0, scrollbars=0, status=0, toolbar=0');
 }
 
 function uptBonus(field, value) {
	var current_value = $(field).innerHTML.replace('+', '');
	current_value = parseInt(current_value);
	
	var modifier = parseInt(value);
	var abs_modifier = Math.abs(modifier);

	var updated_bonus = (modifier < 0) ? current_value - abs_modifier : (modifier == 0) ? current_value : current_value + abs_modifier;
	current_bonuses[field] = updated_bonus;
	
	// Update
	$(field).innerHTML = (updated_bonus < 0) ? updated_bonus : (updated_bonus == 0) ? '+0' : '+' + updated_bonus;
 }
 
 function refreshBonuses() {
	var all_slots = new Array('stab', 'slash', 'crush', 'ranged', 'magic');
	for(var i = 0; i<all_slots.length; i++) {
		var current_attack = current_bonuses[all_slots[i] + '_attack'];
		var current_defence = current_bonuses[all_slots[i] + '_defence'];
		$(all_slots[i] + '_attack').innerHTML = (current_attack > 0) ? '+' + current_attack : current_attack;	
		$(all_slots[i] + '_defence').innerHTML = (current_defence > 0) ? '+' + current_defence : current_defence;	
	}
	
	var current_strength = current_bonuses['strength'];
	var current_prayer = current_bonuses['prayer'];
	var current_summondef = current_bonuses['summon_defence'];
	
	$('strength').innerHTML = (current_strength > 0) ? '+' + current_strength : current_strength;
	$('prayer').innerHTML = (current_prayer > 0) ? '+' + current_prayer : current_prayer;
	$('summon_defence').innerHTML = (current_summondef > 0) ? '+' + current_summondef : current_summondef;
 }
 
 function clearBonus() {
	 var fields = new Array('stab', 'crush', 'slash', 'ranged', 'magic', 'summon');
	 for(var i = 0; i<fields.length; i++) {
		 $(fields[i] + '_attack').innerHTML = '+0';
		 $(fields[i] + '_defence').innerHTML = '+0';
	 }
	 $('strength').innerHTML = '+0';
	 $('prayer').innerHTML = '+0';
 }
 
 function flipNum(number) { 
	return (number < 0) ? parseInt(number.toString().substr(1)) : parseInt('-' + number.toString());
 }
 
 function refreshPrice() {
	 $('total_price').innerHTML = addCommas(current_price);
 }
 
 function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
 }
 
 function changeClass(obj, value) {
    obj.className = value;
 }
 
 function submitOutfit() {
	 $('submit_details').innerHTML = '<label class="left_label">Your Name:</label> <input type="text" id="outfit_author" value="' + username + '" onclick="if(this.value==\'Unknown\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\' Unknown\';" /> (Don\'t leave this blank, we want to know who you are!) <br /><label class="left_label">Outfit Name: </label> <input type="text" id="outfit_title" value="Untitled" onclick="if(this.value==\'Untitled\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'Untitled\';" /> (Name your outfit!)<br /><label class="left_label">Description: </label> <input type="text" id="outfit_description" value="N/A" onclick="if(this.value==\'N/A\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'N/A\';" /> (Describe your outfit.)<br /><label class="left_label">Keywords: </label> <input type="text" id="outfit_keywords" onclick="if(this.value==\'general,outfit\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'general,outfit\';" value="general,outfit" /> (Please set some keywords for your outfit so others can find it, separate by comma.)<br /><input type="button" onclick="javascript:handleSubmitOutfit();" value="Submit" />';
 }
 
 function handleSubmitOutfit() {
	 var author = escape($('outfit_author').value);
	 var title = escape($('outfit_title').value);
	 var desc = escape($('outfit_description').value);
	 var keywords = escape($('outfit_keywords').value);
	 var slots = new Array('helmet', 'cape', 'necklace', 'weapon', 'torso', 'shield', 'legs', 'gloves', 'boots', 'ring');
	 getquery = "?author=" + author + "&title=" + title + "&keywords=" + keywords + "&description=" + desc;
	 for(var i = 0; i<slots.length; i++) {
		if($(slots[i] + '_data').value == '') $(slots[i] + '_data').value = "null";
		getquery = getquery + "&" + slots[i] + "=" + $(slots[i] + '_data').value;
	 }
	 
	 var xhr = createXMLHttpRequest();
	 xhr.open("GET", "http://www.draynor.net/act/wardrobe_submitoutfit.php" + getquery);
	 
	 xhr.onreadystatechange = function() {
		 if(xhr.readyState == 4) {
			 var scriptresponse = xhr.responseText;
			 
			 $('submit_details').innerHTML = scriptresponse;
		 }		 
	 };
	 
	 xhr.send(null);
 }
 
 function outfitSearch() {
	 $('results').innerHTML = '<div align="center" style="height: 300px;"><img src="http://www.draynor.net/images/ajax-loader.gif" /><br /><br />Loading Results - Please Wait</div>';
	 var keywords = $('keywords').value;
	 var xhr = createXMLHttpRequest();
	 xhr.open("GET", "http://www.draynor.net/act/wardrobe_search.php?keywords=" + keywords);
	 
	 xhr.onreadystatechange = function() {
		 if(xhr.readyState == 4) {
			 var scriptresponse = xhr.responseText;
			 
			 $('results').innerHTML = scriptresponse;
			 $('results').style.height = '400px';
		 }
	 };
	 
	 xhr.send(null);
 }
 
 function searchClear() {
	$('keywords').value = "";
	$('results').style.height = '300px';
	$('results').innerHTML = '<div style="line-height:300px;text-align:center;"><span class="green">Please enter your keywords to the box on the left and hit <strong>Search</strong> to look for outfits.</span></div>';
 }
 
 /*
 ** Tooltips!
 */
 var offsetx = 12;
 var offsety =  8;

 function newelement(newid) { 
 	if(document.createElement) { 
 		var el = document.createElement('div'); 
 		el.id = newid;     
 		with(el.style) { 
 			display = 'none';
 			position = 'absolute';
 		} 
 		el.innerHTML = '&nbsp;'; 
 		document.body.appendChild(el); 
 	} 
 }

 
 var ie5 = (document.getElementById && document.all); 
 var ns6 = (document.getElementById && !document.all); 
 var ua = navigator.userAgent.toLowerCase();
 var isapple = (ua.indexOf('applewebkit') != -1 ? 1 : 0);
 
 function getmouseposition(e) {
 	if(document.getElementById) {
 		var iebody=(document.compatMode && 
 			document.compatMode != 'BackCompat') ? 
 				document.documentElement : document.body;
 		pagex = (isapple == 1 ? 0:(ie5)?iebody.scrollLeft:window.pageXOffset);
 		pagey = (isapple == 1 ? 0:(ie5)?iebody.scrollTop:window.pageYOffset);
 		mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
 		mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;
 
 		var lixlpixel_tooltip = document.getElementById('tooltip_wardrobe');
 		lixlpixel_tooltip.style.left = (mousex+pagex+offsetx) + 'px';
 		lixlpixel_tooltip.style.top = (mousey+pagey+offsety) + 'px';
 	}
 }

 function tooltip(tip) {
 	if(!document.getElementById('tooltip_wardrobe')) newelement('tooltip_wardrobe');
 	var lixlpixel_tooltip = document.getElementById('tooltip_wardrobe');
 	lixlpixel_tooltip.innerHTML = '<table class="dark" cellspacing="1" cellpadding="5"><tr><td class="m_darker">' + tip + '</td></tr></table>';
 	lixlpixel_tooltip.style.display = 'block';
 	document.onmousemove = getmouseposition;
}
 
function exit()
{
	document.getElementById('tooltip_wardrobe').style.display = 'none';
}


 
 
 
 