function TalentDamageOverlap(){for(i=0;i<spell_list.length;i++){if(spell_list[i][1].damage_lower||spell_list[i][1].dot){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].damage_lower_modified=0;skill[j].damage_upper_modified=0;skill[j].dot_modified=1;}else{break;}}}}TalentArcaneInstability(document.getElementById('talent_arcane_instability').value);TalentEmpoweredArcaneMissiles(document.getElementById('talent_empowered_arcane_missiles').value);TalentArcanePower(document.getElementById('talent_arcane_power').value);TalentSpellPower(document.getElementById('talent_spell_power').value);TalentImprovedFireball();TalentIgnite();TalentImprovedScorch();TalentPlayingWithFire(document.getElementById('talent_playing_with_fire').value);TalentFirePower(document.getElementById('talent_fire_power').value);TalentMoltenFury();TalentImprovedFrostbolt();IceLanceEffect();TalentIceShards(document.getElementById('talent_ice_shards').value);TalentPiercingIce(document.getElementById('talent_piercing_ice').value);TalentImprovedConeOfCold(document.getElementById('talent_improved_cone_of_cold').value);TalentArcticWinds(document.getElementById('talent_arctic_winds').value);for(i=0;i<spell_list.length;i++){if(spell_list[i][1].damage_lower||spell_list[i][1].dot){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower=skill[j].damage_lower_base*(1+skill[j].damage_lower_modified);}if(skill[j].damage_upper_base){skill[j].damage_upper=skill[j].damage_upper_base*(1+skill[j].damage_upper_modified);}if(skill[j].dot_base){skill[j].dot=skill[j].dot_base*skill[j].dot_modified;}document.getElementById(skill[j].id_name+"_total_damage").innerHTML=CalculateTotalDamage(skill[j]);document.getElementById(skill[j].id_name+"_avg_hit").innerHTML=CalculateAverageHit(skill[j]);document.getElementById(skill[j].id_name+"_dps").innerHTML=CalculateDPS(skill[j]);document.getElementById(skill[j].id_name+"_dpm").innerHTML=CalculateDPMRE(skill[j]);}else{break;}}}}}function TalentCostOverlap(){for(i=0;i<spell_list.length;i++){if(spell_list[i][1].cost_base){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].damage_lower_modified=0;skill[j].damage_upper_modified=0;skill[j].dot_modified=1;skill[j].cost_modified=0;}else{break;}}}}ArcaneBlastEffect();TalentEmpoweredArcaneMissiles(document.getElementById('talent_empowered_arcane_missiles').value);TalentArcanePower(document.getElementById('talent_arcane_power').value);TalentMasterOfElements();TalentPyromaniac(document.getElementById('talent_pyromaniac').value);TalentElementalPrecision(document.getElementById('talent_elemental_precision').value);TalentFrostChanneling(document.getElementById('talent_frost_channeling').value);var arcane_conc_multiplier=0;arcane_conc_multiplier=TalentArcaneConcentration();for(i=0;i<spell_list.length;i++){if(spell_list[i][1].cost_base){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cost=(skill[j].cost_base*(1-skill[j].cost_modified)*(1-arcane_conc_multiplier));document.getElementById(skill[j].id_name+"_cost").innerHTML=CalculateCost(skill[j]);if(skill[j].damage_lower_base||skill[j].dot_base){document.getElementById(skill[j].id_name+"_dpm").innerHTML=CalculateDPMRE(skill[j]);}}else{break;}}}}}function TalentCastingTimeOverlap(){for(i=0;i<spell_list.length;i++){if(spell_list[i][1].casting_time_base){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].casting_time_modified=0;}else{break;}}}}TalentImprovedFireball();TalentImprovedFrostbolt();ArcaneBlastEffect();TalentIcyVeins();TalentPresenceOfMind();for(i=0;i<spell_list.length;i++){if(spell_list[i][1].casting_time_base){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].casting_time=skill[j].casting_time_base-(skill[j].casting_time_modified*10);document.getElementById(skill[j].id_name+"_casting_time").innerHTML=CalculateCastingTime(skill[j]);if(skill[j].damage_lower_base||skill[j].dot_base){document.getElementById(skill[j].id_name+"_dps").innerHTML=CalculateDPS(skill[j]);}}else{break;}}}}}function TalentBonusOverlap(){for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].coefficient_bonus=0;skill[j].coefficient_bonus_modified=0;skill[j].coefficient_bonus2=0;skill[j].coefficient_bonus2_modified=0;}else{break;}}}TalentEmpoweredArcaneMissiles(document.getElementById('talent_empowered_arcane_missiles').value);TalentMindMastery();TalentImprovedFireball(document.getElementById('talent_improved_fireball').value);TalentEmpoweredFireball(document.getElementById('talent_empowered_fireball').value);TalentImprovedFrostbolt(document.getElementById('talent_improved_frostbolt').value);TalentEmpoweredFrostbolt(document.getElementById('talent_empowered_frostbolt').value);for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].coefficient_bonus=skill[j].coefficient_bonus_modified;skill[j].coefficient_bonus2=skill[j].coefficient_bonus2_modified;CalculateBonusDamage(skill[j]);CalculateBonusDamageForSpell(skill[j]);document.getElementById(skill[j].id_name+"_bonus").innerHTML=DisplayBonusDamage(skill[j],false);}else{break;}}}}function TalentCritOverlap(){for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_bonus=0;skill[j].crit_bonus_modified=0;}else{break;}}}TalentSpellPower(document.getElementById('talent_spell_power').value);TalentIceShards(document.getElementById('talent_ice_shards').value);for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_bonus=skill[j].crit_bonus_modified;}else{break;}}}}function TalentCritChanceOverlap(){for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance=0;skill[j].crit_chance_modified=0;}else{break;}}}TalentArcaneImpact();TalentArcaneInstability(document.getElementById('talent_arcane_instability').value);TalentArcanePotency();TalentIncinerate();TalentImprovedFlamestrike();TalentCriticalMass();TalentPyromaniac(document.getElementById('talent_pyromaniac').value);TalentCombustion();TalentShatter();TalentWintersChill();TalentEmpoweredFrostbolt(document.getElementById('talent_empowered_frostbolt').value);for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance=skill[j].crit_chance_modified;skill[j].crit_chance=CalculateCritChance(skill[j],false);document.getElementById(skill[j].id_name+"_crit_chance").innerHTML=Math.round(skill[j].crit_chance*10000)/100+"%";}else{break;}}}}function ArcaneBlastEffect(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_arcane_blast_effect.checked==false)return false;if(document.forms[0].assumption_arcane_blast_stacks.value=="0")return false;var num=parseInt(document.forms[0].assumption_arcane_blast_stacks.value);}else{if(document.forms[0].assumption_s_arcane_blast_effect.checked==false)return false;if(document.forms[0].assumption_s_arcane_blast_stacks.value=="0")return false;var num=parseInt(document.forms[0].assumption_s_arcane_blast_stacks.value);}if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;talent_value2=0;break;case 1:talent_value=.3;talent_value2=-.75;break;case 2:talent_value=.7;talent_value2=-1.5;break;case 3:talent_value=1;talent_value2=-2.25;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==1&&spell_list[i][1].id_name=="arcane_blast_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cost_modified+=talent_value2;skill[j].casting_time_modified+=talent_value;}else{break;}}}}}function TalentArcaneConcentration(){var num=document.getElementById("talent_arcane_concentration").value;if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_clearcasting.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_clearcasting.checked==false)return false;var sustained_dmg=true;}if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;case 4:talent_value=.08;break;case 5:talent_value=.1;break;}if(!sustained_dmg){return 1;}else{return talent_value;}for(i=0;i<spell_list.length;i++){if(num>0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(!sustained_dmg){skill[j].cost=1;}else{skill[j].cost*=(1-talent_value);}}else{break;}}}}}function TalentArcaneImpact(){var num=document.getElementById("talent_arcane_impact").value;if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==1&&(spell_list[i][1].id_name=="arcane_explosion_1"||spell_list[i][1].id_name=="arcane_blast_1")){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentPresenceOfMind(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_presence_of_mind.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_presence_of_mind.checked==false)return false;if(document.forms[0].assumption_s_presence_of_mind_perc.value=="0")return false;var sustained_dmg=true;}var num=document.getElementById("talent_presence_of_mind").value;if(isNaN(num)||num<0||num>1)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=1;break;}if(sustained_dmg)var perc=document.forms[0].assumption_s_presence_of_mind_perc.value/100;for(i=0;i<spell_list.length;i++){if(spell_list[i][1].casting_time_base>0&&num==1){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(!sustained_dmg){skill[j].casting_time_modified=(skill[j].casting_time_base/10);}else{skill[j].casting_time_modified+=((skill[j].casting_time_base-(skill[j].casting_time_modified*10))/10*perc)}}else{break;}}}}}function TalentArcaneInstability(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.01;break;case 2:talent_value=.02;break;case 3:talent_value=.03;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentArcanePotency(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_clearcasting.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_clearcasting.checked==false)return false;var sustained_dmg=true;}var num=document.getElementById("talent_arcane_potency").value;if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;case 3:talent_value=.3;break;}if(sustained_dmg)talent_value*=document.getElementById("talent_arcane_concentration").value/50;for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentEmpoweredArcaneMissiles(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;talent_value2=0;break;case 1:talent_value=.15;talent_value2=.02;break;case 2:talent_value=.30;talent_value2=.04;break;case 3:talent_value=.45;talent_value2=.06;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==1&&spell_list[i][1].id_name=="arcane_missles_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].coefficient_bonus_modified+=talent_value;skill[j].cost_modified-=talent_value2;}else{break;}}}}}function TalentArcanePower(num){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_arcane_power.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_arcane_power.checked==false)return false;if(document.forms[0].assumption_s_arcane_power_perc.value=="0")return false;var sustained_dmg=true;}if(isNaN(num)||num<0||num>1)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.3;break;}if(sustained_dmg){talent_value*=document.forms[0].assumption_s_arcane_power_perc.value/100;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}skill[j].cost_modified-=talent_value;}else{break;}}}}}function TalentSpellPower(num){if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.25;break;case 2:talent_value=.5;break;}for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_bonus_modified=talent_value;}else{break;}}}}function TalentMindMastery(){var num=document.getElementById("talent_mind_mastery").value;if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.05;break;case 2:talent_value=.1;break;case 3:talent_value=.15;break;case 4:talent_value=.2;break;case 5:talent_value=.25;break;}if(document.forms[0].show_damage_type[2].checked==false){var mind_mastery_dmg_bonus_value=(talent_value*document.forms[0].assumption_mind_mastery_intelligence.value);if(document.forms[0].assumption_mind_mastery_effect.checked==false)mind_mastery_dmg_bonus_value=0;}else{var mind_mastery_dmg_bonus_value=(talent_value*document.forms[0].assumption_s_mind_mastery_intelligence.value);if(document.forms[0].assumption_s_mind_mastery_effect.checked==false)mind_mastery_dmg_bonus_value=0;}document.forms[0].mind_mastery_dmg_bonus.value=mind_mastery_dmg_bonus_value;}function TalentImprovedFireball(){var num=document.getElementById("talent_improved_fireball").value;if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;case 3:talent_value=.3;break;case 4:talent_value=.4;break;case 5:talent_value=.5;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&spell_list[i][1].id_name=="fireball_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].casting_time_modified+=talent_value;}else{break;}}}}}function TalentIgnite(){var num=document.getElementById("talent_ignite").value;if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.08;break;case 2:talent_value=.16;break;case 3:talent_value=.24;break;case 4:talent_value=.32;break;case 5:talent_value=.4;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].ignite_effect=talent_value;}else{break;}}}}}function TalentImprovedFireBlast(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.5;break;case 2:talent_value=1;break;case 3:talent_value=1.5;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&spell_list[i][1].id_name=="fire_blast_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cooldown=skill[j].cooldown_base-(talent_value*10);document.getElementById(skill[j].id_name+"_cooldown").innerHTML=CalculateCooldown(skill[j]);}else{break;}}}}}function TalentFlameThrowing(num){if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=3;break;case 2:talent_value=6;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&spell_list[i][1].range!=0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].range=skill[j].range_base+talent_value;document.getElementById(skill[j].id_name+"_range").innerHTML=CalculateRange(skill[j]);}else{break;}}}}}function TalentIncinerate(){var num=document.getElementById("talent_incinerate").value;if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&(spell_list[i][1].id_name=="fire_blast_1"||spell_list[i][1].id_name=="scorch_1")){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentImprovedFlamestrike(){var num=document.getElementById("talent_improved_flamestrike").value;if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.05;break;case 2:talent_value=.1;break;case 3:talent_value=.15;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&spell_list[i][1].id_name=="flamestrike_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentImprovedScorch(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_scorch.checked==false)return false;var num=document.forms[0].assumption_scorch_stacks.value;}else{if(document.forms[0].assumption_s_scorch.checked==false)return false;var num=document.forms[0].assumption_s_scorch_stacks.value;}if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.03;break;case 2:talent_value=.06;break;case 3:talent_value=.09;break;case 4:talent_value=.12;break;case 5:talent_value=.15;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}}function TalentMasterOfElements(){var num=document.getElementById("talent_master_of_elements").value;if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;case 3:talent_value=.3;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>1){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].can_crit&&document.forms[0].show_damage_type[1].checked==true){skill[j].cost_modified+=talent_value;}else if(skill[j].can_crit&&document.forms[0].show_damage_type[2].checked==true){skill[j].cost_modified+=(talent_value*skill[j].crit_chance);}}else{break;}}}}}function TalentPlayingWithFire(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.01;break;case 2:talent_value=.02;break;case 3:talent_value=.03;break;}for(i=0;i<spell_list.length;i++){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}function TalentCriticalMass(){var num=document.getElementById("talent_critical_mass").value;if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentCombustion(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_combustion.checked==false)return false;var num=parseInt(document.forms[0].assumption_combustion_stacks.value);var sustained_dmg=false;}else{if(document.forms[0].assumption_s_combustion.checked==false)return false;var num=parseInt(document.forms[0].assumption_s_combustion_perc.value)/10;var sustained_dmg=true;}if(isNaN(num)||num<0||num>10)num=0;num=num-0;if(document.getElementById("talent_combustion").value=="0")num=0;for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=(num*.1);}else{break;}}}}}function TalentFirePower(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;case 4:talent_value=.08;break;case 5:talent_value=.1;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}}function TalentPyromaniac(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.01;break;case 2:talent_value=.02;break;case 3:talent_value=.03;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cost_modified+=talent_value;skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentMoltenFury(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_molten_fury.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_molten_fury.checked==false)return false;if(document.forms[0].assumption_s_molten_fury_perc.value=="0")return false;var sustained_dmg=true;}var num=document.getElementById("talent_molten_fury").value;if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;}if(sustained_dmg){talent_value*=document.forms[0].assumption_s_molten_fury_perc.value/100;}for(i=0;i<spell_list.length;i++){if(1){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}}function TalentEmpoweredFireball(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.03;break;case 2:talent_value=.06;break;case 3:talent_value=.09;break;case 4:talent_value=.12;break;case 5:talent_value=.15;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==2&&spell_list[i][1].id_name=="fireball_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].coefficient_bonus_modified+=talent_value;}else{break;}}}}}function IceLanceEffect(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_frozen.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_frozen.checked==false)return false;if(document.forms[0].assumption_s_frozen_perc.value=="0")return false;var sustained_dmg=true;}var talent_value=2;if(sustained_dmg){talent_value*=document.forms[0].assumption_s_frozen_perc.value/100;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="ice_lance_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}}else{break;}}}}}function TalentImprovedFrostbolt(){var num=document.getElementById("talent_improved_frostbolt").value;if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;case 3:talent_value=.3;break;case 4:talent_value=.4;break;case 5:talent_value=.5;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="frostbolt_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].casting_time_modified+=talent_value;}else{break;}}}}}function TalentElementalPrecision(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.01;break;case 2:talent_value=.02;break;case 3:talent_value=.03;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>1){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cost_modified+=talent_value;}else{break;}}}}}function TalentIceShards(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.2;break;case 2:talent_value=.4;break;case 3:talent_value=.6;break;case 4:talent_value=.8;break;case 5:talent_value=1;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_bonus_modified+=talent_value;}else{break;}}}}}function TalentImprovedFrostNova(num){if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=2;break;case 2:talent_value=4;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="frost_nova_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cooldown=skill[j].cooldown_base-(talent_value*10);document.getElementById(skill[j].id_name+"_cooldown").innerHTML=CalculateCooldown(skill[j]);}else{break;}}}}}function TalentPiercingIce(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}}function TalentIcyVeins(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_icy_veins.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_icy_veins.checked==false)return false;if(document.forms[0].assumption_s_icy_veins_perc.value=="0")return false;var sustained_dmg=true;}var num=document.getElementById("talent_icy_veins").value;if(isNaN(num)||num<0||num>1)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.2;break;}if(sustained_dmg)var perc=document.forms[0].assumption_s_icy_veins_perc.value/100;for(i=0;i<spell_list.length;i++){if(spell_list[i][1].casting_time_base>0&&num==1){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){tmp_current_casting_time=skill[j].casting_time_base-(skill[j].casting_time_modified*10);tmp_perc_value_off=tmp_current_casting_time*talent_value/10;if(!sustained_dmg){skill[j].casting_time_modified+=tmp_perc_value_off;}else{skill[j].casting_time_modified+=tmp_perc_value_off*perc;}}else{break;}}}}}function TalentArcticReach(num){if(isNaN(num)||num<0||num>2)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="frostbolt_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].range=skill[j].range_base+(skill[j].range_base*talent_value);document.getElementById(skill[j].id_name+"_range").innerHTML=CalculateRange(skill[j]);}else{break;}}}}}function TalentFrostChanneling(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.05;break;case 2:talent_value=.1;break;case 3:talent_value=.15;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].cost_modified+=talent_value;}else{break;}}}}}function TalentShatter(){var num=document.getElementById("talent_shatter").value;if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_frozen.checked==false)return false;var sustained_dmg=false;}else{if(document.forms[0].assumption_s_frozen.checked==false)return false;if(document.forms[0].assumption_s_frozen_perc.value=="0")return false;var sustained_dmg=true;}if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.1;break;case 2:talent_value=.2;break;case 3:talent_value=.3;break;case 4:talent_value=.4;break;case 5:talent_value=.5;break;}if(sustained_dmg){talent_value*=document.forms[0].assumption_s_frozen_perc.value/100;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id>0){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentImprovedConeOfCold(num){if(isNaN(num)||num<0||num>3)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.15;break;case 2:talent_value=.25;break;case 3:talent_value=.35;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="cone_of_cold_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}}else{break;}}}}}function TalentWintersChill(){if(document.forms[0].show_damage_type[2].checked==false){if(document.forms[0].assumption_winters_chill.checked==false)return false;var num=document.forms[0].assumption_winters_chill_stacks.value;}else{if(document.forms[0].assumption_s_winters_chill.checked==false)return false;var num=document.forms[0].assumption_s_winters_chill_stacks.value;}if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.02;break;case 2:talent_value=.04;break;case 3:talent_value=.06;break;case 4:talent_value=.08;break;case 5:talent_value=.1;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].crit_chance_modified+=talent_value;}else{break;}}}}}function TalentArcticWinds(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;break;case 1:talent_value=.01;break;case 2:talent_value=.02;break;case 3:talent_value=.03;break;case 4:talent_value=.04;break;case 5:talent_value=.05;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){if(skill[j].damage_lower_base){skill[j].damage_lower_modified+=talent_value;}if(skill[j].damage_upper_base){skill[j].damage_upper_modified+=talent_value;}if(skill[j].dot_base){skill[j].dot_modified+=talent_value;}}else{break;}}}}}function TalentEmpoweredFrostbolt(num){if(isNaN(num)||num<0||num>5)num=0;num=num-0;switch(num){case 0:talent_value=0;talent_value2=0;break;case 1:talent_value=.02;talent_value2=.01;break;case 2:talent_value=.04;talent_value2=.02;break;case 3:talent_value=.06;talent_value2=.03;break;case 4:talent_value=.08;talent_value2=.04;break;case 5:talent_value=.1;talent_value2=.05;break;}for(i=0;i<spell_list.length;i++){if(spell_list[i][1].category_id==3&&spell_list[i][1].id_name=="frostbolt_1"){skill=spell_list[i];for(j=skill[1].max_rank;j>0;j--){if(skill[j].visible==1){skill[j].coefficient_bonus_modified+=talent_value;skill[j].crit_chance_modified+=talent_value2;}else{break;}}}}}function showAssumptions(){if(document.forms[0].show_damage_type[2].checked==true){hideItem("assumptions_content");showItem("assumptions_content_sustained");}else{hideItem("assumptions_content_sustained");showItem("assumptions_content");}if(document.forms[0].show_damage_type[2].checked==true&&document.forms[0].show_damage_type_previous.value!="2"){document.forms[0].assumption_s_mind_mastery_intelligence.value=document.forms[0].assumption_mind_mastery_intelligence.value;document.forms[0].assumption_s_mind_mastery_effect.checked=(document.forms[0].assumption_mind_mastery_effect.checked)?true:false;}else if(document.forms[0].show_damage_type[2].checked!=true&&document.forms[0].show_damage_type_previous.value=="2"){document.forms[0].assumption_mind_mastery_intelligence.value=document.forms[0].assumption_s_mind_mastery_intelligence.value;document.forms[0].assumption_mind_mastery_effect.checked=(document.forms[0].assumption_s_mind_mastery_effect.checked)?true:false;}if(document.forms[0].show_damage_type[0].checked==true)document.forms[0].show_damage_type_previous.value="0";if(document.forms[0].show_damage_type[1].checked==true)document.forms[0].show_damage_type_previous.value="1";if(document.forms[0].show_damage_type[2].checked==true)document.forms[0].show_damage_type_previous.value="2";}