$(function(){															
				var b = $.manageAjax({maxReq: 0, blockSameRequest: true});
				var d = $.manageAjax({dataType: 'xml', manageType: 'abortOld', maxReq: 1, blockSameRequest: true});
				
				$("#warriorTalents a").click(function() { return false; });
				
				$("#slClass").change(function() { 
					var $class_id = $(this).val();
					var $slsubclass = $("#slSubclass");
					$slsubclass.empty();
					var $talentCont = $("#talentContainer");
					$('#dResults').html("");
					
					/*switch($class_id){ 
						case '1': $slsubclass.append('<option value="1" selected>Arms</option>'); $slsubclass.append('<option value="2">Fury</option>'); $slsubclass.append('<option value="3">Protection</option>'); break;
						case '2': $slsubclass.append('<option value="4" selected>Holy</option>'); $slsubclass.append('<option value="5">Protection</option>'); $slsubclass.append('<option value="6">Retribution</option>'); break;
						case '3': $slsubclass.append('<option value="7" selected>Beast Mastery</option>'); $slsubclass.append('<option value="8">Marksmanship</option>'); $slsubclass.append('<option value="9">Survival</option>'); break;
						case '4': $slsubclass.append('<option value="10" selected>Assassination</option>'); $slsubclass.append('<option value="11">Combat</option>'); $slsubclass.append('<option value="12">Subtlety</option>'); break;
						case '5': $slsubclass.append('<option value="13" selected>Discipline</option>'); $slsubclass.append('<option value="14">Holy</option>'); $slsubclass.append('<option value="15">Shadow</option>'); break;
						case '6': $slsubclass.append('<option value="16" selected>Elemental</option>'); $slsubclass.append('<option value="17">Enhancement</option>'); $slsubclass.append('<option value="18">Restoration</option>'); break;
						case '7': $slsubclass.append('<option value="19" selected>Arcane</option>'); $slsubclass.append('<option value="20">Fire</option>'); $slsubclass.append('<option value="21">Frost</option>'); break;
						case '8': $slsubclass.append('<option value="22" selected>Affliction</option>'); $slsubclass.append('<option value="23">Demonology</option>'); $slsubclass.append('<option value="24">Destruction</option>'); break;
						case '9': $slsubclass.append('<option value="25" selected>Balance</option>'); $slsubclass.append('<option value="26">Feral Combat</option>'); $slsubclass.append('<option value="27">Restoration</option>'); break;
						case '10': $slsubclass.append('<option value="28" selected>Blood</option>'); $slsubclass.append('<option value="29">Frost</option>'); $slsubclass.append('<option value="30">Unholy</option>'); break;
						default :; 
					} */ 
					$('#warriorTalents').hide(0);
					$('#paladinTalents').hide(0);
					$('#hunterTalents').hide(0);
					$('#rogueTalents').hide(0);
					$('#priestTalents').hide(0);
					$('#dkTalents').hide(0);
					$('#shamanTalents').hide(0);
					$('#mageTalents').hide(0);
					$('#warlockTalents').hide(0);
					$('#druidTalents').hide(0);
					/*switch($class_id){ 
						case '1': $slsubclass.append('<option value="0" selected>Melee</option>'); $('#warriorTalents').show(0); break;
						case '2': $slsubclass.append('<option value="0" selected>Melee</option>'); $slsubclass.append('<option value="1">Caster</option>'); $('#paladinTalents').show(0); break;
						case '3': $slsubclass.append('<option value="0" selected>Melee</option>'); $('#hunterTalents').show(0); break;
						case '4': $slsubclass.append('<option value="0" selected>Melee</option>'); $('#rogueTalents').show(0); break;
						case '5': $slsubclass.append('<option value="1" selected>Caster</option>'); break;
						case '6': $slsubclass.append('<option value="0">Melee</option>'); $slsubclass.append('<option value="1" selected>Caster</option>'); break;
						case '7': $slsubclass.append('<option value="1" selected>Caster</option>'); break;
						case '8': $slsubclass.append('<option value="1" selected>Caster</option>'); break;
						case '9': $slsubclass.append('<option value="0">Melee</option>'); $slsubclass.append('<option value="1" selected>Caster</option>'); break;
						case '10': $slsubclass.append('<option value="0" selected>Melee</option>'); break;
						default :; 
					}*/
					switch($class_id){ 
						case '1': $('#warriorTalents').show(0); break;
						case '2': $('#paladinTalents').show(0); break;
						case '3': $('#hunterTalents').show(0); break;
						case '4': $('#rogueTalents').show(0); break;
						case '5': $('#priestTalents').show(0); break;
						case '6': $('#dkTalents').show(0); break;
						case '7': $('#shamanTalents').show(0); break;
						case '8': $('#mageTalents').show(0); break;
						case '9': $('#warlockTalents').show(0); break;
						case '11': $('#druidTalents').show(0); break;
						default :; 
					}
					return false;
				});
				
				$("#slWarriorPrecision").change(function() {
					var $value = $("#slWarriorPrecision option:selected").val();
					var $hrefvalue = 29590;										
					if ($value > 0) {
						$hrefvalue = $hrefvalue + parseInt($value) - 1;
						$("#warriorTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Ability_Marksmanship.gif');
					} else {
						$("#warriorTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dAbility_Marksmanship.gif');
					}
					$("#warriorTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});	
				$("#slPaladinEJ").change(function() {
					var $value = $("#slPaladinEJ option:selected").val();
					var $hrefvalue = 53556;										
					if ($value > 0) {
						$hrefvalue = $hrefvalue + parseInt($value) - 1;
						$("#paladinTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/ability_paladin_enlightenedjudgements.gif');
					} else {
						$("#paladinTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dability_paladin_enlightenedjudgements.gif');
					}
					$("#paladinTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});	
				$("#slHunterFocusedAim").change(function() {
					var $value = $("#slHunterFocusedAim option:selected").val();
					var $hrefvalue = 53620;										
					if ($value > 0) {
						$hrefvalue = $hrefvalue + parseInt($value) - 1;
						$("#hunterTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/ability_hunter_focusedaim.gif');
					} else {
						$("#hunterTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dability_hunter_focusedaim.gif');
					}
					$("#hunterTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slRoguePrecision").change(function() {
					var $value = $("#slRoguePrecision option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 13705; break;
						case '2': $hrefvalue = 13832; break;
						case '3': $hrefvalue = 13843; break;
						case '4': $hrefvalue = 13844; break;
						case '5': $hrefvalue = 13845; break;
						default : $hrefvalue = 13705; 
					}
					if ($value > 0) {
						$("#rogueTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Ability_Marksmanship.gif');
					} else {
						$("#rogueTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dAbility_Marksmanship.gif');
					}
					$("#rogueTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slPriestSF").change(function() {
					var $value = $("#slPriestSF option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 15260; break;
						case '2': $hrefvalue = 15327; break;
						case '3': $hrefvalue = 15328; break;
						default : $hrefvalue = 15260; 
					}
					if ($value > 0) {
						$("#priestTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Shadow_BurningSpirit.gif');
					} else {
						$("#priestTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Shadow_BurningSpirit.gif');
					}
					$("#priestTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slDeathKnightVirulence").change(function() {
					var $value = $("#slDeathKnightVirulence option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 48962; break;
						case '2': $hrefvalue = 49567; break;
						case '3': $hrefvalue = 49568; break;
						default : $hrefvalue = 48962; 
					}
					if ($value > 0) {
						$("#imgDKVirulence").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Shadow_BurningSpirit.gif');
					} else {
						$("#imgDKVirulence").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Shadow_BurningSpirit.gif');
					}
					$("#aDKVirulence").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slDeathKnightNoCS").change(function() {
					var $value = $("#slDeathKnightNoCS option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 49226; break;
						case '2': $hrefvalue = 50137; break;
						case '3': $hrefvalue = 50138; break;
						default : $hrefvalue = 49226; 
					}
					if ($value > 0) {
						$("#imgDKNoCS").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Ability_DualWield.gif');
					} else {
						$("#imgDKNoCS").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dAbility_DualWield.gif');
					}
					$("#aDKNoCS").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				
				$("#slShamanEP").change(function() {
					var $value = $("#slShamanEP option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 30672; break;
						case '2': $hrefvalue = 30673; break;
						case '3': $hrefvalue = 30674; break;
						default : $hrefvalue = 30672; 
					}
					if ($value > 0) {
						$("#imgShamanEP").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Nature_ElementalPrecision_1.gif');
					} else {
						$("#imgShamanEP").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Nature_ElementalPrecision_1.gif');
					}
					$("#aShamanEP").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slShamanDWS").change(function() {
					var $value = $("#slShamanDWS option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 30816; break;
						case '2': $hrefvalue = 30818; break;
						case '3': $hrefvalue = 30819; break;
						default : $hrefvalue = 30816; 
					}
					if ($value > 0) {
						$("#imgShamanDWS").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Ability_DualWield.gif');
					} else {
						$("#imgShamanDWS").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dAbility_DualWield.gif');
					}
					$("#aShamanDWS").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				
				$("#slMagePrecision").change(function() {
					var $value = $("#slMagePrecision option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 29438; break;
						case '2': $hrefvalue = 29439; break;
						case '3': $hrefvalue = 29440; break;
						default : $hrefvalue = 29438; 
					}
					if ($value > 0) {
						$("#imgMagePrecision").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Ice_MagicDamage.gif');
					} else {
						$("#imgMagePrecision").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Ice_MagicDamage.gif');
					}
					$("#aMagePrecision").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				$("#slMageArcaneFocus").change(function() {
					var $value = $("#slMageArcaneFocus option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 11222; break;
						case '2': $hrefvalue = 12839; break;
						case '3': $hrefvalue = 12840; break;
						default : $hrefvalue = 11222; 
					}
					if ($value > 0) {
						$("#imgMageArcaneFocus").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Holy_Devotion.gif');
					} else {
						$("#imgMageArcaneFocus").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Holy_Devotion.gif');
					}
					$("#aMageArcaneFocus").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				
				$("#slWarlockSuppression").change(function() {
					var $value = $("#slWarlockSuppression option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 18174; break;
						case '2': $hrefvalue = 18175; break;
						case '3': $hrefvalue = 18176; break;
						default : $hrefvalue = 18174; 
					}
					if ($value > 0) {
						$("#warlockTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Spell_Shadow_UnsummonBuilding.gif');
					} else {
						$("#warlockTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dSpell_Shadow_UnsummonBuilding.gif');
					}
					$("#warlockTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				
				$("#slDruidBoP").change(function() {
					var $value = $("#slDruidBoP option:selected").val();
					switch($value){ 
						case '1': $hrefvalue = 33592; break;
						case '2': $hrefvalue = 33596; break;
						default : $hrefvalue = 33592; 
					}
					if ($value > 0) {
						$("#druidTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/Ability_Druid_BalanceofPower.gif');
					} else {
						$("#druidTalents img").attr('src', 'http://static.wow-heroes.com/images/hit/talents/dAbility_Druid_BalanceofPower.gif');
					}
					$("#druidTalents a").attr('href', 'http://www.wowhead.com/?spell='+$hrefvalue);
					return false;
				});
				
				$("#bGetCalcHit").click(function(){		
					var $class_id = $("#slClass option:selected").val();
					var $dmain = $('#calcResult');
					var $dres = $('#dResults');
					var $hit = 200;
					var $hp = $("#cbxHeroicPresence:checked").length;
					var $iff = $("#cbxIff:checked").length;
					var $food = $("#cbxFood:checked").length;
					var $elixir = $("#cbxElixir:checked").length;
					var $warr_prec = $("#slWarriorPrecision option:selected").val();
					var $pala_ej = $("#slPaladinEJ option:selected").val();
					var $hunter_focusedaim = $("#slHunterFocusedAim option:selected").val();
					var $rogue_prec = $("#slRoguePrecision option:selected").val();
					var $priest_sf = $("#slPriestSF option:selected").val();
					var $dk_nocs = $("#slDeathKnightNoCS option:selected").val();
					var $dk_virulence = $("#slDeathKnightVirulence option:selected").val();
					var $shaman_ep = $("#slShamanEP option:selected").val();
					var $shaman_dws = $("#slShamanDWS option:selected").val();
					var $mage_prec = $("#slMagePrecision option:selected").val();
					var $mage_af = $("#slMageArcaneFocus option:selected").val();
					var $lock_suppression = $("#slWarlockSuppression option:selected").val();
					var $druid_bop = $("#slDruidBoP option:selected").val();
					
					$dres.html("");
					$('#bGetCalcHit').attr("disabled", "true");
					$('#dLoaderCalc').html('<img src="http://static.wow-heroes.com/images/ajax-loader.gif" width="16" height="16" alt="">');					
					
					var $endstamp = new Date();
				    var $difference = $endstamp.getTime();
					
					var $appendstr = "";
					switch($class_id){ 
						case '1': $appendstr = "&warrior-precision="+$warr_prec; break;
						case '2': $appendstr = "&paladin-ej="+$pala_ej; break;
						case '3': $appendstr = "&hunter-focusedaim="+$hunter_focusedaim; break;
						case '4': $appendstr = "&rogue-precision="+$rogue_prec; break;						
						case '5': $appendstr = "&priest-sf="+$priest_sf; break;
						case '6': $appendstr = "&dk-nocs="+$dk_nocs+"&dk-virulence="+$dk_virulence; break;
						case '7': $appendstr = "&shaman-ep="+$shaman_ep+"&shaman-dws="+$shaman_dws; break;
						case '8': $appendstr = "&mage-precision="+$mage_prec+"&mage-af="+$mage_af; break;
						case '9': $appendstr = "&warlock-suppression="+$lock_suppression; break;
						case '11': $appendstr = "&druid-bop="+$druid_bop; break;
						default :; 
					}
					
					d.add({
                      success: function(html) {
						var curr_value = "0";  
						var curr_dw_value = "0";  
						var curr_dw_auto_value = "0";  
						var curr_spell_value = "0";
						var curr_shadow_spell_value = "0";
						var curr_arcane_spell_value = "0";
						var percent_value = "0";  
						var percent_dw_value = "0";  
						var percent_dw_auto_value = "0";  
						var percent_spell_value = "0";
						var percent_shadow_spell_value = "0";
						var percent_arcane_spell_value = "0";
						var resulttable = "";
						$('#dLoaderCalc').html('');
						$('#bGetCalcHit').removeAttr("disabled"); 
						
						$(html).find('single').each(function(){
							curr_value = $(this).attr('rating');
							percent_value = $(this).attr('percent');
					    });
						$(html).find('dual-special').each(function(){
							curr_dw_value = $(this).attr('rating');
							percent_dw_value = $(this).attr('percent');
					    });
						$(html).find('dual-auto').each(function(){
							curr_dw_auto_value = $(this).attr('rating');
							percent_dw_auto_value = $(this).attr('percent');
					    });
						$(html).find('caster').each(function(){
							curr_spell_value = $(this).attr('rating');
							percent_spell_value = $(this).attr('percent');
					    });
						$(html).find('spell-shadow').each(function(){
							curr_shadow_spell_value = $(this).attr('rating');
							percent_shadow_spell_value = $(this).attr('percent');
					    });
						$(html).find('spell-arcane').each(function(){
							curr_arcane_spell_value = $(this).attr('rating');
							percent_arcane_spell_value = $(this).attr('percent');
					    });
						$dmain.html("");
						$dres.html("");
						resulttable = "<center><b>Required hit rating:</b></center><br><table width=\"100%\" border=\"0\"><tr>";
						if (curr_value != "N/A") {
							//$dmain.append("Required hit rating when using 1 weapon / special attacks:<b>"+curr_value+"</b><br>\n");
							if ($class_id != 3) {
								resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/Ability_MeleeDamage.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Single<br>Weapon<br><b>"+ curr_value +"</b><br>"+ percent_value +"%</td>";
							} else {
								resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/hit/Ability_Hunter_RunningShot.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Ranged<br>Weapon<br><b>"+ curr_value +"</b><br>"+ percent_value +"%</td>";
							}
						}
						if (curr_dw_value != "N/A") {
							//$dmain.append("Required hit rating when dual-wielding / special attacks:<b>"+curr_dw_value+"</b><br>\n");										  
							resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/Ability_DualWield.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Dual wield<br>Special<br><b>"+ curr_dw_value +"</b><br>"+ percent_dw_value +"%</td>";
						}
						if (curr_dw_auto_value != "N/A") {
							//$dmain.append("Required hit rating for dual wield auto attacks:<b>"+curr_dw_auto_value+"</b><br>\n");										  
							resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/Ability_DualWield.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Dual wield<br>Auto<br><b>"+ curr_dw_auto_value +"</b><br>"+ percent_dw_auto_value +"%</td>";
						}
						if (curr_spell_value != "N/A") {
							//$dmain.append("Required spell hit rating:<b>"+curr_spell_value+"</b><br>\n");										  
							resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/ability_warlock_backdraft.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>All<br>Spells<br><b>"+ curr_spell_value +"</b><br>"+ percent_spell_value +"%</td>";
						}
						//$dmain.html("Required hit rating when using 1 weapon / special attacks:<b>"+curr_value+"</b><br>\nRequired hit rating when dual-wielding / special attacks:<b>"+curr_dw_value+"</b><br>\nRequired hit rating for dual wield auto attacks:<b>"+curr_dw_auto_value+"</b><br>\nRequired spell hit rating:<b>"+curr_spell_value+"</b><br>\n");
						if ($class_id == 5) {
							//$dmain.append("Required spell hit rating (shadow):<b>"+curr_shadow_spell_value+"</b><br>\n");
							resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/Spell_Holy_PrayerofShadowProtection.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Shadow<br>spells<br><b>"+ curr_shadow_spell_value +"</b><br>"+ percent_shadow_spell_value +"%</td>";
						}
						if ($class_id == 8) {
							//$dmain.append("Required spell hit rating (arcane):<b>"+curr_arcane_spell_value+"</b><br>\n");
							resulttable = resulttable+"<td align=\"center\"><img src=\"http://static.wow-heroes.com/images/Spell_Arcane_Arcane01.jpg\" width=\"40\" height=\"40\" border=\"0\"><br>Arcane<br>spells<br><b>"+ curr_arcane_spell_value +"</b><br>"+ percent_arcane_spell_value +"%</td>";
						}
						resulttable = resulttable + "</tr></table>";
						$dres.html(resulttable);
						//alert($dres.html());
                      },
                      url: "get_hit.php?class="+encodeURI($class_id)+"&hit="+encodeURI($hit)+"&hp="+encodeURI($hp)+"&food="+encodeURI($food)+"&elixir="+encodeURI($elixir)+"&iff="+encodeURI($iff)+$appendstr+"&stamp=" + $difference
                   	});
                   	//return false;
				}); 
});
