User:Ale jrb/Scripts/SkillCheck/skillcheck.js
From Guild Wars Wiki
< User:Ale jrb | Scripts | SkillCheck
Jump to navigationJump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* =========================================================== *\ ** SkillCheck JavaScript skill checking program. ** ** Copyright (c) Alex Barley <ale_jrb> 2007 - 2009. ** ** =========================================================== ** ** =========================================================== ** ** SkillCheck - start main code. Do not edit below this line. ** \* =========================================================== */ /* =========================================================== *\ ** Full skill array ** \* =========================================================== */ var skillArray = new Array( /* Warrior skills */ '%22Charge%21%22', '%22Coward%21%22', '%22Fear_Me%21%22', '%22For_Great_Justice%21%22', '%22I_Meant_to_Do_That%21%22', '%22I_Will_Avenge_You%21%22', '%22I_Will_Survive%21%22', '%22Let%27s_Get_%27Em%21%22', '%22None_Shall_Pass%21%22', '%22On_Your_Knees%21%22', '%22Retreat%21%22', '%22Save_Yourselves%21%22', '%22Shields_Up%21%22', '%22To_the_Limit%21%22', '%22Victory_is_Mine%21%22', '%22Watch_Yourself%21%22', '%22You%27re_All_Alone%21%22', '%22You_Will_Die%21%22', 'Agonizing_Chop', 'Auspicious_Blow', 'Auspicious_Parry', 'Axe_Rake', 'Axe_Twist', 'Backbreaker', 'Balanced_Stance', 'Barbarous_Slice', 'Battle_Rage', 'Belly_Smash', 'Berserker_Stance', 'Body_Blow', 'Bonetti%27s_Defense', 'Bull%27s_Charge', 'Bull%27s_Strike', 'Burst_of_Aggression', 'Charging_Strike', 'Cleave', 'Counter_Blow', 'Counterattack', 'Crippling_Slash', 'Critical_Chop', 'Crude_Swing', 'Crushing_Blow', 'Cyclone_Axe', 'Deadly_Riposte', 'Decapitate', 'Defensive_Stance', 'Deflect_Arrows', 'Defy_Pain', 'Desperation_Blow', 'Devastating_Hammer', 'Disarm', 'Disciplined_Stance', 'Dismember', 'Disrupting_Chop', 'Distracting_Blow', 'Distracting_Strike', 'Dolyak_Signet', 'Dragon_Slash', 'Dragon_Slash', 'Drunken_Blow', 'Dwarven_Battle_Stance', 'Earth_Shaker', 'Endure_Pain', 'Enraged_Smash', 'Enraging_Charge', 'Eviscerate', 'Executioner%27s_Strike', 'Fierce_Blow', 'Final_Thrust', 'Flail', 'Flourish', 'Flurry', 'Forceful_Blow', 'Frenzied_Defense', 'Frenzy', 'Furious_Axe', 'Galrath_Slash', 'Gash', 'Gladiator%27s_Defense', 'Grapple', 'Griffon%27s_Sweep', 'Hammer_Bash', 'Hamstring', 'Headbutt', 'Healing_Signet', 'Heavy_Blow', 'Hundred_Blades', 'Irresistible_Blow', 'Jaizhenju_Strike', 'Keen_Chop', 'Knee_Cutter', 'Lacerating_Chop', 'Leviathan%27s_Sweep', 'Lion%27s_Comfort', 'Magehunter%27s_Smash', 'Magehunter_Strike', 'Mighty_Blow', 'Mokele_Smash', 'Overbearing_Smash', 'Penetrating_Blow', 'Penetrating_Chop', 'Power_Attack', 'Primal_Rage', 'Protector%27s_Defense', 'Protector%27s_Strike', 'Pulverizing_Smash', 'Pure_Strike', 'Quivering_Blade', 'Rage_of_the_Ntouka', 'Renewing_Smash', 'Riposte', 'Rush', 'Savage_Slash', 'Seeking_Blade', 'Sever_Artery', 'Shield_Bash', 'Shield_Stance', 'Shove', 'Signet_of_Stamina', 'Signet_of_Strength', 'Silverwing_Slash', 'Skull_Crack', 'Soldier%27s_Defense', 'Soldier%27s_Speed', 'Soldier%27s_Stance', 'Soldier%27s_Strike', 'Sprint', 'Staggering_Blow', 'Standing_Slash', 'Steady_Stance', 'Steelfang_Slash', 'Storm_of_Swords', 'Sun_and_Moon_Slash', 'Swift_Chop', 'Symbolic_Strike', 'Thrill_of_Victory', 'Tiger_Stance', 'Triple_Chop', 'Warrior%27s_Cunning', 'Warrior%27s_Endurance', 'Wary_Stance', 'Whirling_Axe', 'Whirlwind_Attack', 'Wild_Blow', 'Yeti_Smash', /* Ranger skills */ 'Antidote_Signet', 'Apply_Poison', 'Archer%27s_Signet', 'Arcing_Shot', 'Barbed_Arrows', 'Barbed_Trap', 'Barrage', 'Bestial_Fury', 'Bestial_Mauling', 'Bestial_Pounce', 'Body_Shot', 'Brambles', 'Broad_Head_Arrow', 'Brutal_Strike', 'Burning_Arrow', 'Call_of_Haste', 'Call_of_Protection', 'Called_Shot', 'Celestial_Stance', 'Charm_Animal', 'Charm_Animal', 'Charm_Animal_%28Codex%29', 'Choking_Gas', 'Comfort_Animal', 'Companionship', 'Concussion_Shot', 'Conflagration', 'Crippling_Shot', 'Crossfire', 'Debilitating_Shot', 'Determined_Shot', 'Disrupting_Accuracy', 'Disrupting_Lunge', 'Disrupting_Shot', 'Distracting_Shot', 'Dodge', 'Dryder%27s_Defenses', 'Dual_Shot', 'Dust_Trap', 'Edge_of_Extinction', 'Energizing_Wind', 'Enraged_Lunge', 'Equinox', 'Escape', 'Expert%27s_Dexterity', 'Expert_Focus', 'Famine', 'Favorable_Winds', 'Feral_Aggression', 'Feral_Lunge', 'Ferocious_Strike', 'Fertile_Season', 'Flame_Trap', 'Flurry_of_Ice', 'Focused_Shot', 'Forked_Arrow', 'Frozen_Soil', 'Glass_Arrows', 'Greater_Conflagration', 'Heal_as_One', 'Healing_Spring', 'Heket%27s_Rampage', 'Hunter%27s_Shot', 'Ignite_Arrows', 'Incendiary_Arrows', 'Infuriating_Heat', 'Keen_Arrow', 'Kindle_Arrows', 'Lacerate', 'Lightning_Reflexes', 'Magebane_Shot', 'Maiming_Strike', 'Marauder%27s_Shot', 'Marksman%27s_Wager', 'Melandru%27s_Arrows', 'Melandru%27s_Assault', 'Melandru%27s_Resilience', 'Melandru%27s_Shot', 'Muddy_Terrain', 'Natural_Stride', 'Nature%27s_Renewal', 'Needling_Shot', 'Never_Rampage_Alone', 'Oath_Shot', 'Otyugh%27s_Cry', 'Penetrating_Attack', 'Pestilence', 'Piercing_Trap', 'Pin_Down', 'Point_Blank_Shot', 'Poison_Arrow', 'Poison_Tip_Signet', 'Poisonous_Bite', 'Pounce', 'Power_Shot', 'Practiced_Stance', 'Precision_Shot', 'Predator%27s_Pounce', 'Predatory_Bond', 'Predatory_Season', 'Prepared_Shot', 'Primal_Echoes', 'Punishing_Shot', 'Quick_Shot', 'Quickening_Zephyr', 'Quicksand', 'Rampage_as_One', 'Rapid_Fire', 'Read_the_Wind', 'Revive_Animal', 'Roaring_Winds', 'Run_as_One', 'Savage_Pounce', 'Savage_Shot', 'Scavenger%27s_Focus', 'Scavenger_Strike', 'Screaming_Shot', 'Seeking_Arrows', 'Serpent%27s_Quickness', 'Sloth_Hunter%27s_Shot', 'Smoke_Trap', 'Snare', 'Spike_Trap', 'Splinter_Shot', 'Storm%27s_Embrace', 'Storm_Chaser', 'Strike_as_One', 'Sundering_Attack', 'Symbiosis', 'Symbiotic_Bond', 'Throw_Dirt', 'Tiger%27s_Fury', 'Toxicity', 'Tranquility', 'Trapper%27s_Focus', 'Trapper%27s_Speed', 'Triple_Shot', 'Tripwire', 'Troll_Unguent', 'Viper%27s_Nest', 'Volley', 'Whirling_Defense', 'Winnowing', 'Winter', 'Zojun%27s_Haste', 'Zojun%27s_Shot', /* Monk skills */ 'Aegis', 'Air_of_Enchantment', 'Amity', 'Aura_of_Faith', 'Aura_of_Stability', 'Balthazar%27s_Aura', 'Balthazar%27s_Pendulum', 'Balthazar%27s_Spirit', 'Bane_Signet', 'Banish', 'Blessed_Aura', 'Blessed_Light', 'Blessed_Signet', 'Boon_Signet', 'Castigation_Signet', 'Castigation_Signet', 'Contemplation_of_Purity', 'Convert_Hexes', 'Cure_Hex', 'Defender%27s_Zeal', 'Deny_Hexes', 'Dismiss_Condition', 'Divert_Hexes', 'Divine_Boon', 'Divine_Healing', 'Divine_Intervention', 'Divine_Spirit', 'Draw_Conditions', 'Dwayna%27s_Kiss', 'Dwayna%27s_Sorrow', 'Empathic_Removal', 'Essence_Bond', 'Ethereal_Light', 'Extinguish', 'Gift_of_Health', 'Glimmer_of_Light', 'Guardian', 'Heal_Area', 'Heal_Other', 'Heal_Party', 'Healer%27s_Boon', 'Healer%27s_Covenant', 'Healing_Breeze', 'Healing_Burst', 'Healing_Hands', 'Healing_Light', 'Healing_Ribbon', 'Healing_Ring', 'Healing_Seed', 'Healing_Touch', 'Healing_Whisper', 'Heaven%27s_Delight', 'Holy_Haste', 'Holy_Strike', 'Holy_Veil', 'Holy_Wrath', 'Ice_Breaker', 'Infuse_Health', 'Jamei%27s_Gaze', 'Judge%27s_Insight', 'Judge%27s_Intervention', 'Karei%27s_Healing_Circle', 'Kirin%27s_Wrath', 'Life_Attunement', 'Life_Barrier', 'Life_Bond', 'Life_Sheath', 'Light_of_Deliverance', 'Light_of_Dwayna', 'Live_Vicariously', 'Mark_of_Protection', 'Martyr', 'Mend_Ailment', 'Mend_Condition', 'Mending', 'Mending_Touch', 'Orison_of_Healing', 'Pacifism', 'Patient_Spirit', 'Peace_and_Harmony', 'Pensive_Guardian', 'Protective_Bond', 'Protective_Spirit', 'Purge_Conditions', 'Purge_Signet', 'Purifying_Veil', 'Ray_of_Judgment', 'Rebirth', 'Release_Enchantments', 'Remove_Hex', 'Renew_Life', 'Restful_Breeze', 'Restore_Condition', 'Restore_Life', 'Resurrect', 'Resurrection_Chant', 'Retribution', 'Reversal_of_Damage', 'Reversal_of_Fortune', 'Reverse_Hex', 'Scourge_Enchantment', 'Scourge_Healing', 'Scourge_Sacrifice', 'Scribe%27s_Insight', 'Seed_of_Life', 'Selfless_Spirit', 'Shield_Guardian', 'Shield_of_Absorption', 'Shield_of_Deflection', 'Shield_of_Judgment', 'Shield_of_Regeneration', 'Shielding_Hands', 'Signet_of_Devotion', 'Signet_of_Judgment', 'Signet_of_Mystic_Wrath', 'Signet_of_Rage', 'Signet_of_Rejuvenation', 'Signet_of_Removal', 'Smite', 'Smite_Condition', 'Smite_Hex', 'Smiter%27s_Boon', 'Spear_of_Light', 'Spell_Breaker', 'Spell_Shield', 'Spirit_Bond', 'Spotless_Mind', 'Spotless_Soul', 'Star_Shine', 'Stonesoul_Strike', 'Strength_of_Honor', 'Succor', 'Supportive_Spirit', 'Symbol_of_Wrath', 'Unyielding_Aura', 'Vengeance', 'Vigorous_Spirit', 'Vital_Blessing', 'Watchful_Healing', 'Watchful_Spirit', 'Withdraw_Hexes', 'Word_of_Censure', 'Word_of_Healing', 'Words_of_Comfort', 'Zealot%27s_Fire', 'Zealous_Benediction', /* Necromancer skills */ 'Angorodon%27s_Gaze', 'Animate_Bone_Fiend', 'Animate_Bone_Horror', 'Animate_Bone_Minions', 'Animate_Flesh_Golem', 'Animate_Shambling_Horror', 'Animate_Vampiric_Horror', 'Atrophy', 'Aura_of_the_Lich', 'Awaken_the_Blood', 'Barbed_Signet', 'Barbs', 'Bitter_Chill', 'Blood_Bond', 'Blood_Drinker', 'Blood_Renewal', 'Blood_Ritual', 'Blood_is_Power', 'Blood_of_the_Aggressor', 'Blood_of_the_Master', 'Cacophony', 'Chilblains', 'Consume_Corpse', 'Contagion', 'Corrupt_Enchantment', 'Cultist%27s_Fervor', 'Dark_Aura', 'Dark_Bond', 'Dark_Fury', 'Dark_Pact', 'Death_Nova', 'Deathly_Chill', 'Deathly_Swarm', 'Defile_Defenses', 'Defile_Enchantments', 'Defile_Flesh', 'Demonic_Flesh', 'Depravity', 'Desecrate_Enchantments', 'Discord', 'Enfeeble', 'Enfeebling_Blood', 'Enfeebling_Touch', 'Envenom_Enchantments', 'Faintheartedness', 'Feast_for_the_Dead', 'Feast_of_Corruption', 'Fetid_Ground', 'Foul_Feast', 'Gaze_of_Contempt', 'Grenth%27s_Balance', 'Hexer%27s_Vigor', 'Holiday_Blues', 'Icy_Veins', 'Infuse_Condition', 'Insidious_Parasite', 'Jagged_Bones', 'Jaundiced_Gaze', 'Life_Siphon', 'Life_Transfer', 'Lifebane_Strike', 'Lingering_Curse', 'Malaise', 'Malign_Intervention', 'Mark_of_Fury', 'Mark_of_Pain', 'Mark_of_Subversion', 'Masochism', 'Meekness', 'Necrosis', 'Necrotic_Traversal', 'Offering_of_Blood', 'Oppressive_Gaze', 'Order_of_Apostasy', 'Order_of_Pain', 'Order_of_Undeath', 'Order_of_the_Vampire', 'Pain_of_Disenchantment', 'Parasitic_Bond', 'Plague_Sending', 'Plague_Signet', 'Plague_Touch', 'Poisoned_Heart', 'Price_of_Failure', 'Putrid_Bile', 'Putrid_Explosion', 'Putrid_Flesh', 'Ravenous_Gaze', 'Reaper%27s_Mark', 'Reckless_Haste', 'Rend_Enchantments', 'Rigor_Mortis', 'Rip_Enchantment', 'Rising_Bile', 'Rotting_Flesh', 'Shadow_Strike', 'Shadow_of_Fear', 'Shivers_of_Dread', 'Signet_of_Agony', 'Signet_of_Corruption', 'Signet_of_Lost_Souls', 'Signet_of_Sorrow', 'Signet_of_Suffering', 'Soul_Barbs', 'Soul_Bind', 'Soul_Feast', 'Soul_Leech', 'Spinal_Shivers', 'Spiteful_Spirit', 'Spoil_Victor', 'Star_Servant', 'Strip_Enchantment', 'Suffering', 'Tainted_Flesh', 'Taste_of_Death', 'Taste_of_Pain', 'Touch_of_Agony', 'Toxic_Chill', 'Ulcerous_Lungs', 'Unholy_Feast', 'Vampiric_Bite', 'Vampiric_Gaze', 'Vampiric_Spirit', 'Vampiric_Swarm', 'Vampiric_Touch', 'Verata%27s_Aura', 'Verata%27s_Gaze', 'Verata%27s_Sacrifice', 'Vile_Miasma', 'Vile_Touch', 'Virulence', 'Vocal_Minority', 'Wail_of_Doom', 'Wallow%27s_Bite', 'Weaken_Armor', 'Weaken_Knees', 'Well_of_Blood', 'Well_of_Darkness', 'Well_of_Power', 'Well_of_Ruin', 'Well_of_Silence', 'Well_of_Suffering', 'Well_of_Weariness', 'Well_of_the_Profane', 'Wither', 'Withering_Aura', /* Mesmer skills */ 'Accumulated_Pain', 'Air_of_Disenchantment', 'Ancestor%27s_Visage', 'Aneurysm', 'Arcane_Conundrum', 'Arcane_Echo', 'Arcane_Languor', 'Arcane_Larceny', 'Arcane_Mimicry', 'Arcane_Thievery', 'Auspicious_Incantation', 'Backfire', 'Blackout', 'Blinding_Snow', 'Calculated_Risk', 'Celestial_Haste', 'Channeling', 'Chaos_Storm', 'Clumsiness', 'Complicate', 'Confusing_Images', 'Conjure_Nightmare', 'Conjure_Phantasm', 'Crippling_Anguish', 'Cry_of_Frustration', 'Cry_of_Pain', 'Discharge_Enchantment', 'Distortion', 'Distortion', 'Diversion', 'Drain_Delusions', 'Drain_Enchantment', 'Echo', 'Elemental_Resistance', 'Empathy', 'Enchanter%27s_Conundrum', 'Energy_Burn', 'Energy_Drain', 'Energy_Surge', 'Energy_Tap', 'Epidemic', 'Ether_Feast', 'Ether_Lord', 'Ether_Nightmare', 'Ether_Phantom', 'Ether_Signet', 'Ethereal_Burden', 'Expel_Hexes', 'Extend_Conditions', 'Feedback', 'Fevered_Dreams', 'Fragility', 'Frustration', 'Guilt', 'Hex_Breaker', 'Hex_Eater_Signet', 'Hex_Eater_Vortex', 'Hypochondria', 'Ignorance', 'Illusion_of_Haste', 'Illusion_of_Pain', 'Illusion_of_Weakness', 'Illusionary_Weaponry', 'Images_of_Remorse', 'Imagined_Burden', 'Ineptitude', 'Inspired_Enchantment', 'Inspired_Hex', 'Keystone_Signet', 'Kitah%27s_Burden', 'Leech_Signet', 'Lyssa%27s_Aura', 'Lyssa%27s_Balance', 'Mantra_of_Concentration', 'Mantra_of_Earth', 'Mantra_of_Flame', 'Mantra_of_Frost', 'Mantra_of_Inscriptions', 'Mantra_of_Lightning', 'Mantra_of_Persistence', 'Mantra_of_Recall', 'Mantra_of_Recovery', 'Mantra_of_Resolve', 'Mantra_of_Signets', 'Migraine', 'Mind_Wrack', 'Mirror_of_Disenchantment', 'Mistrust', 'Overload', 'Panic', 'Persistence_of_Memory', 'Phantom_Pain', 'Physical_Resistance', 'Power_Block', 'Power_Drain', 'Power_Flux', 'Power_Leak', 'Power_Leech', 'Power_Lock', 'Power_Return', 'Power_Spike', 'Price_of_Pride', 'Psychic_Distraction', 'Psychic_Instability', 'Recurring_Insecurity', 'Revealed_Enchantment', 'Revealed_Hex', 'Shame', 'Shared_Burden', 'Shared_Burden', 'Shatter_Delusions', 'Shatter_Enchantment', 'Shatter_Hex', 'Shatter_Storm', 'Shrinking_Armor', 'Signet_of_Clumsiness', 'Signet_of_Disenchantment', 'Signet_of_Disruption', 'Signet_of_Distraction', 'Signet_of_Humility', 'Signet_of_Illusions', 'Signet_of_Midnight', 'Signet_of_Recall', 'Signet_of_Weariness', 'Simple_Thievery', 'Soothing_Images', 'Spirit_Shackles', 'Spirit_of_Failure', 'Spiritual_Pain', 'Stolen_Speed', 'Sum_of_All_Fears', 'Sum_of_All_Fears', 'Symbolic_Celerity', 'Symbolic_Posture', 'Symbols_of_Inspiration', 'Sympathetic_Visage', 'Tease', 'Unnatural_Signet', 'Unnatural_Signet', 'Visions_of_Regret', 'Wandering_Eye', 'Waste_Not%2C_Want_Not', 'Wastrel%27s_Demise', 'Wastrel%27s_Worry', 'Web_of_Disruption', /* Elementalist skills */ 'Aftershock', 'Air_Attunement', 'Arc_Lightning', 'Armor_of_Earth', 'Armor_of_Frost', 'Armor_of_Mist', 'Ash_Blast', 'Aura_of_Restoration', 'Bed_of_Coals', 'Blinding_Flash', 'Blinding_Surge', 'Blurred_Vision', 'Breath_of_Fire', 'Burning_Speed', 'Celestial_Storm', 'Chain_Lightning', 'Chilling_Winds', 'Churning_Earth', 'Conjure_Flame', 'Conjure_Frost', 'Conjure_Lightning', 'Crystal_Wave', 'Deep_Freeze', 'Double_Dragon', 'Dragon%27s_Stomp', 'Earth_Attunement', 'Earthen_Shackles', 'Earthquake', 'Ebon_Hawk', 'Elemental_Attunement', 'Elemental_Flame', 'Elemental_Lord', 'Energy_Blast', 'Energy_Boon', 'Enervating_Charge', 'Eruption', 'Ether_Prism', 'Ether_Prodigy', 'Ether_Renewal', 'Fire_Attunement', 'Fire_Storm', 'Fireball', 'Flame_Burst', 'Flame_Djinn%27s_Haste', 'Flare', 'Freezing_Gust', 'Frigid_Armor', 'Frozen_Burst', 'Gale', 'Glimmering_Mark', 'Glowing_Gaze', 'Glowing_Ice', 'Glowstone', 'Glyph_of_Concentration', 'Glyph_of_Elemental_Power', 'Glyph_of_Energy', 'Glyph_of_Essence', 'Glyph_of_Immolation', 'Glyph_of_Lesser_Energy', 'Glyph_of_Renewal', 'Glyph_of_Restoration', 'Glyph_of_Sacrifice', 'Glyph_of_Swiftness', 'Grasping_Earth', 'Gust', 'Ice_Prison', 'Ice_Spear', 'Ice_Spikes', 'Icicles', 'Icy_Prism', 'Icy_Shackles', 'Immolate', 'Incendiary_Bonds', 'Inferno', 'Intensity', 'Invoke_Lightning', 'Iron_Mist', 'Kinetic_Armor', 'Lava_Arrows', 'Lava_Font', 'Lightning_Bolt', 'Lightning_Hammer', 'Lightning_Javelin', 'Lightning_Orb', 'Lightning_Strike', 'Lightning_Surge', 'Lightning_Touch', 'Liquid_Flame', 'Maelstrom', 'Magnetic_Aura', 'Magnetic_Surge', 'Mark_of_Rodgort', 'Master_of_Magic', 'Meteor', 'Meteor_Shower', 'Mind_Blast', 'Mind_Burn', 'Mind_Freeze', 'Mind_Shock', 'Mirror_of_Ice', 'Mist_Form', 'Obsidian_Flame', 'Obsidian_Flesh', 'Phoenix', 'Ride_the_Lightning', 'Rodgort%27s_Invocation', 'Rust', 'Sandstorm', 'Savannah_Heat', 'Searing_Flames', 'Searing_Heat', 'Second_Wind', 'Shard_Storm', 'Shatterstone', 'Shell_Shock', 'Shock', 'Shock_Arrow', 'Shockwave', 'Slippery_Ground', 'Sliver_Armor', 'Smoldering_Embers', 'Star_Burst', 'Steam', 'Stone_Daggers', 'Stone_Sheath', 'Stone_Striker', 'Stoneflesh_Aura', 'Stoning', 'Storm_Djinn%27s_Haste', 'Swirling_Aura', 'Teinai%27s_Crystals', 'Teinai%27s_Heat', 'Teinai%27s_Prison', 'Teinai%27s_Wind', 'Thunderclap', 'Unsteady_Ground', 'Vapor_Blade', 'Ward_Against_Elements', 'Ward_Against_Foes', 'Ward_Against_Harm', 'Ward_Against_Melee', 'Ward_of_Stability', 'Ward_of_Weakness', 'Water_Attunement', 'Water_Trident', 'Whirlwind', 'Windborne_Speed', 'Winter%27s_Embrace', /* Assassin skills */ 'Assassin%27s_Promise', 'Assassin%27s_Remedy', 'Assault_Enchantments', 'Augury_of_Death', 'Aura_of_Displacement', 'Beguiling_Haze', 'Black_Lotus_Strike', 'Black_Mantis_Thrust', 'Black_Spider_Strike', 'Blades_of_Steel', 'Blinding_Powder', 'Caltrops', 'Crippling_Dagger', 'Critical_Agility', 'Critical_Defenses', 'Critical_Eye', 'Critical_Strike', 'Dancing_Daggers', 'Dark_Apostasy', 'Dark_Escape', 'Dark_Prison', 'Dash', 'Deadly_Haste', 'Deadly_Paradox', 'Death%27s_Charge', 'Death%27s_Retreat', 'Death_Blossom', 'Desperate_Strike', 'Disrupting_Dagger', 'Disrupting_Stab', 'Enduring_Toxin', 'Entangling_Asp', 'Exhausting_Assault', 'Expose_Defenses', 'Expunge_Enchantments', 'Falling_Lotus_Strike', 'Falling_Spider', 'Feigned_Neutrality', 'Flashing_Blades', 'Fox%27s_Promise', 'Fox_Fangs', 'Golden_Fang_Strike', 'Golden_Fox_Strike', 'Golden_Lotus_Strike', 'Golden_Phoenix_Strike', 'Golden_Skull_Strike', 'Heart_of_Shadow', 'Hidden_Caltrops', 'Horns_of_the_Ox', 'Impale', 'Iron_Palm', 'Jagged_Strike', 'Jungle_Strike', 'Leaping_Mantis_Sting', 'Lift_Enchantment', 'Locust%27s_Fury', 'Lotus_Strike', 'Malicious_Strike', 'Mantis_Touch', 'Mark_of_Death', 'Mark_of_Insecurity', 'Mark_of_Instability', 'Mirrored_Stance', 'Moebius_Strike', 'Nine_Tail_Strike', 'Palm_Strike', 'Recall', 'Repeating_Strike', 'Return', 'Sadist%27s_Signet', 'Scorpion_Wire', 'Seeping_Wound', 'Shadow_Fang', 'Shadow_Form', 'Shadow_Meld', 'Shadow_Prison', 'Shadow_Refuge', 'Shadow_Sanctuary', 'Shadow_Shroud', 'Shadow_Walk', 'Shadow_of_Haste', 'Shadowy_Burden', 'Shameful_Fear', 'Sharpen_Daggers', 'Shattering_Assault', 'Shroud_of_Distress', 'Shroud_of_Silence', 'Side_Step', 'Signet_of_Deadly_Corruption', 'Signet_of_Malice', 'Signet_of_Shadows', 'Signet_of_Toxic_Shock', 'Signet_of_Twilight', 'Siphon_Speed', 'Siphon_Strength', 'Smoke_Powder_Defense', 'Spirit_Walk', 'Star_Strike', 'Swap', 'Temple_Strike', 'Trampling_Ox', 'Twisting_Fangs', 'Unseen_Fury', 'Unsuspecting_Strike', 'Vampiric_Assault', 'Viper%27s_Defense', 'Wastrel%27s_Collapse', 'Way_of_Perfection', 'Way_of_the_Assassin', 'Way_of_the_Empty_Palm', 'Way_of_the_Fox', 'Way_of_the_Lotus', 'Way_of_the_Master', 'Wild_Strike', /* Ritualist skills */ 'Agony', 'Ancestors%27_Rage', 'Anguish', 'Anguished_Was_Lingwah', 'Armor_of_Unfeeling', 'Attuned_Was_Songkai', 'Binding_Chains', 'Blind_Was_Mingson', 'Bloodsong', 'Boon_of_Creation', 'Brutal_Weapon', 'Caretaker%27s_Charge', 'Celestial_Summoning', 'Channeled_Strike', 'Clamor_of_Souls', 'Consume_Soul', 'Cruel_Was_Daoshen', 'Death_Pact_Signet', 'Defiant_Was_Xinrae', 'Destruction', 'Destructive_Was_Glaive', 'Destructive_Was_Glaive', 'Disenchantment', 'Disenchantment', 'Displacement', 'Dissonance', 'Doom', 'Draw_Spirit', 'Dulled_Weapon', 'Earthbind', 'Empowerment', 'Energetic_Was_Lee_Sa', 'Essence_Strike', 'Explosive_Growth', 'Feast_of_Souls', 'Flesh_of_My_Flesh', 'Gaze_from_Beyond', 'Gaze_of_Fury', 'Generous_Was_Tsungrai', 'Ghostly_Haste', 'Ghostly_Weapon', 'Ghostmirror_Light', 'Grasping_Was_Kuurong', 'Guided_Weapon', 'Jack_Frost', 'Lamentation', 'Life', 'Lively_Was_Naomei', 'Mend_Body_and_Soul', 'Mending_Grip', 'Mighty_Was_Vorizun', 'Nightmare_Weapon', 'Offering_of_Spirit', 'Pain', 'Painful_Bond', 'Preservation', 'Protective_Was_Kaolai', 'Pure_Was_Li_Ming', 'Reclaim_Essence', 'Recovery', 'Recuperation', 'Rejuvenation', 'Renewing_Memories', 'Renewing_Surge', 'Resilient_Was_Xiko', 'Resilient_Weapon', 'Restoration', 'Ritual_Lord', 'Rupture_Soul', 'Shadowsong', 'Shadowsong', 'Shelter', 'Sight_Beyond_Sight', 'Signet_of_Binding', 'Signet_of_Creation', 'Signet_of_Ghostly_Might', 'Signet_of_Spirits', 'Soothing', 'Soothing_Memories', 'Soul_Twisting', 'Spirit%27s_Gift', 'Spirit%27s_Strength', 'Spirit_Boon_Strike', 'Spirit_Burn', 'Spirit_Channeling', 'Spirit_Light', 'Spirit_Light_Weapon', 'Spirit_Rift', 'Spirit_Siphon', 'Spirit_Siphon', 'Spirit_Transfer', 'Spirit_to_Flesh', 'Spiritleech_Aura', 'Splinter_Weapon', 'Summon_Spirits', 'Sundering_Weapon', 'Tranquil_Was_Tanasen', 'Union', 'Vampirism', 'Vengeful_Was_Khanhei', 'Vengeful_Weapon', 'Vital_Weapon', 'Vocal_Was_Sogolon', 'Wailing_Weapon', 'Wanderlust', 'Warmonger%27s_Weapon', 'Weapon_of_Aggression', 'Weapon_of_Fury', 'Weapon_of_Quickening', 'Weapon_of_Remedy', 'Weapon_of_Renewal', 'Weapon_of_Shadow', 'Weapon_of_Warding', 'Wielder%27s_Boon', 'Wielder%27s_Remedy', 'Wielder%27s_Strike', 'Wielder%27s_Zeal', 'Xinrae%27s_Weapon', /* Paragon skills */ '%22Brace_Yourself%21%22', '%22Can%27t_Touch_This%21%22', '%22Fall_Back%21%22', '%22Find_Their_Weakness%21%22', '%22Go_for_the_Eyes%21%22', '%22Help_Me%21%22', '%22Incoming%21%22', '%22It%27s_Just_a_Flesh_Wound.%22', '%22Lead_the_Way%21%22', '%22Make_Haste%21%22', '%22Make_Your_Time%21%22', '%22Never_Give_Up%21%22', '%22Never_Surrender%21%22', '%22Stand_Your_Ground%21%22', '%22The_Power_Is_Yours%21%22', '%22There%27s_Nothing_to_Fear%21%22', '%22They%27re_on_Fire%21%22', '%22We_Shall_Return%21%22', 'Aggressive_Refrain', 'Angelic_Bond', 'Angelic_Protection', 'Anthem_of_Disruption', 'Anthem_of_Envy', 'Anthem_of_Flame', 'Anthem_of_Fury', 'Anthem_of_Guidance', 'Anthem_of_Weariness', 'Aria_of_Restoration', 'Aria_of_Zeal', 'Awe', 'Ballad_of_Restoration', 'Barbed_Spear', 'Bladeturn_Refrain', 'Blazing_Finale', 'Blazing_Spear', 'Burning_Refrain', 'Burning_Shield', 'Cautery_Signet', 'Celestial_Summoning', 'Chest_Thumper', 'Chorus_of_Restoration', 'Crippling_Anthem', 'Cruel_Spear', 'Defensive_Anthem', 'Disrupting_Throw', 'Enduring_Harmony', 'Energizing_Chorus', 'Energizing_Finale', 'Finale_of_Restoration', 'Focused_Anger', 'Glowing_Signet', 'Godspeed', 'Harrier%27s_Toss', 'Hasty_Refrain', 'Hexbreaker_Aria', 'Holy_Spear', 'Inspirational_Speech', 'Leader%27s_Comfort', 'Leader%27s_Zeal', 'Lyric_of_Purification', 'Lyric_of_Zeal', 'Maiming_Spear', 'Mending_Refrain', 'Merciless_Spear', 'Mighty_Throw', 'Natural_Temper', 'Purifying_Finale', 'Remedy_Signet', 'Signet_of_Aggression', 'Signet_of_Return', 'Signet_of_Synergy', 'Slayer%27s_Spear', 'Soldier%27s_Fury', 'Song_of_Concentration', 'Song_of_Power', 'Song_of_Purification', 'Song_of_Restoration', 'Spear_Swipe', 'Spear_of_Fury', 'Spear_of_Lightning', 'Spear_of_Redemption', 'Steady_Aim', 'Stunning_Strike', 'Swift_Javelin', 'Unblockable_Throw', 'Vicious_Attack', 'Wearying_Spear', 'Wild_Throw', 'Zealous_Anthem', /* Dervish skills */ 'Arcane_Zeal', 'Armor_of_Sanctity', 'Attacker%27s_Insight', 'Aura_Slicer', 'Aura_of_Holy_Might', 'Aura_of_Thorns', 'Avatar_of_Balthazar', 'Avatar_of_Dwayna', 'Avatar_of_Dwayna', 'Avatar_of_Grenth', 'Avatar_of_Grenth', 'Avatar_of_Lyssa', 'Avatar_of_Melandru', 'Balthazar%27s_Rage', 'Banishing_Strike', 'Celestial_Summoning', 'Chilling_Victory', 'Conviction', 'Crippling_Sweep', 'Crippling_Victory', 'Dust_Cloak', 'Dwayna%27s_Touch', 'Ebon_Dust_Aura', 'Enchanted_Haste', 'Eremite%27s_Attack', 'Eremite%27s_Zeal', 'Eternal_Aura', 'Extend_Enchantments', 'Faithful_Intervention', 'Farmer%27s_Scythe', 'Featherfoot_Grace', 'Fleeting_Stability', 'Grenth%27s_Aura', 'Grenth%27s_Fingers', 'Grenth%27s_Grasp', 'Guiding_Hands', 'Harrier%27s_Grasp', 'Harrier%27s_Haste', 'Heart_of_Fury', 'Heart_of_Holy_Flame', 'Imbue_Health', 'Intimidating_Aura', 'Irresistible_Sweep', 'Lyssa%27s_Assault', 'Lyssa%27s_Haste', 'Meditation', 'Mirage_Cloak', 'Mystic_Corruption', 'Mystic_Healing', 'Mystic_Regeneration', 'Mystic_Sandstorm', 'Mystic_Sweep', 'Mystic_Twister', 'Mystic_Vigor', 'Natural_Healing', 'Onslaught', 'Pious_Assault', 'Pious_Concentration', 'Pious_Fury', 'Pious_Haste', 'Pious_Renewal', 'Pious_Restoration', 'Radiant_Scythe', 'Reap_Impurities', 'Reaper%27s_Sweep', 'Rending_Aura', 'Rending_Sweep', 'Rending_Touch', 'Sand_Shards', 'Shield_of_Force', 'Signet_of_Mystic_Speed', 'Signet_of_Pious_Light', 'Signet_of_Pious_Restraint', 'Staggering_Force', 'Test_of_Faith', 'Twin_Moon_Sweep', 'Veil_of_Thorns', 'Victorious_Sweep', 'Vital_Boon', 'Vow_of_Piety', 'Vow_of_Silence', 'Vow_of_Strength', 'Watchful_Intervention', 'Wearying_Strike', 'Whirling_Charge', 'Winds_of_Disenchantment', 'Wounding_Strike', 'Zealous_Renewal', 'Zealous_Sweep', 'Zealous_Vow', /* Common skills */ 'Resurrection_Signet', 'Signet_of_Capture', 'Blinding_Breath', 'Burning_Breath', 'Choking_Breath', 'Junundu_Bite', 'Junundu_Feast', 'Junundu_Siege', 'Junundu_Smash', 'Junundu_Strike', 'Junundu_Tunnel', 'Junundu_Wail', 'Leave_Junundu', 'Unknown_Junundu_Ability', 'Lightbringer%27s_Gaze', 'Lightbringer_Signet', 'Sunspear_Rebirth_Signet', 'Disarm_Trap', 'Vial_of_Purified_Water', 'Air_of_Superiority', 'Asuran_Scan', 'Mental_Block', 'Mindbender', 'Pain_Inverter', 'Radiation_Field', 'Smooth_Criminal', 'Summon_Ice_Imp', 'Summon_Mursaat', 'Summon_Naga_Shaman', 'Summon_Ruby_Djinn', 'Technobabble', '%22By_Ural%27s_Hammer%21%22', '%22Don%27t_Trip%21%22', 'Alkar%27s_Alchemical_Acid', 'Black_Powder_Mine', 'Brawling_Headbutt', 'Breath_of_the_Great_Dwarf', 'Drunken_Master', 'Dwarven_Stability', 'Ear_Bite', 'Great_Dwarf_Armor', 'Great_Dwarf_Weapon', 'Light_of_Deldrimor', 'Low_Blow', 'Snow_Storm', 'Deft_Strike', 'Ebon_Battle_Standard_of_Courage', 'Ebon_Battle_Standard_of_Honor', 'Ebon_Battle_Standard_of_Wisdom', 'Ebon_Escape', 'Ebon_Vanguard_Assassin_Support', 'Ebon_Vanguard_Sniper_Support', 'Signet_of_Infection', 'Sneak_Attack', 'Tryptophan_Signet', 'Weakness_Trap', 'Winds', '%22Dodge_This%21%22', '%22Finish_Him%21%22', '%22I_Am_Unstoppable%21%22', '%22I_Am_the_Strongest%21%22', '%22You_Are_All_Weaklings%21%22', '%22You_Move_Like_a_Dwarf%21%22', 'A_Touch_of_Guile', 'Club_of_a_Thousand_Bears', 'Feel_No_Pain', 'Raven_Blessing', 'Raven_Flight', 'Raven_Shriek', 'Raven_Swoop', 'Raven_Talons', 'Totem_of_Man', 'Ursan_Blessing', 'Ursan_Force', 'Ursan_Rage', 'Ursan_Roar', 'Ursan_Strike', 'Volfen_Agility', 'Volfen_Blessing', 'Volfen_Bloodlust', 'Volfen_Claw', 'Volfen_Pounce', 'Devourer_Bite', 'Devourer_Siege', 'Dismount_Siege_Devourer', 'HYAHHHHH%21', 'Siege_Devourer_Feast', 'Siege_Devourer_Swipe' ); var enabled = 3; /* =========================================================== *\ ** Start basic function definitions. ** \* =========================================================== */ function launch() { popup = new skillCheck; document.onmousemove = popup.doMove; fixer = new pageManager; fixer.fixLinks(); } function ds(skill) { if (enabled > 0) { popup = new skillCheck; popup.create(skill); } } function de() { popup = new skillCheck; popup.destroy(); } function ajaxGet(page, caller) { page_request = false; var root = 'http://wiki.guildwars.com/api.php?action=query&prop=revisions&format=txtfm&redirects&rvprop=content&titles='; if (window.XMLHttpRequest) page_request = new XMLHttpRequest(); else if (window.ActiveXObject){ try { page_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){} } } else { return false; } var url = root + page; page_request.onreadystatechange = function() { if (page_request.readyState == 4) { if ((page_request.status) && (page_request.status == 200)) { var pageContents = page_request.responseText; caller.contents = pageContents; caller.skillUpdate(page); } else { if (enabled == 1) { alert("SkillCheck Error: \n\nSkillCheck has been unable to communicate with the server over the last several attempts and has been disabled for this page. \n\nIf you have solved the problem, simply refresh the page to reactivate it."); enabled = 0; } else { /*alert("SkillCheck Error: \n\nThe page request failed because an invalid response code was received from the browser (code: " + page_request.status + ").\n\nThis is usually caused by a problem with your internet connection or firewall, but may also be caused by an issue with the GWW servers. If you repeatedly get this error, contact User:Ale_jrb.");*/ enabled = enabled - 1; } return false; } } } //page_request.overrideMimeType('text/xml'); page_request.open('GET', url, true); page_request.send(null); } function ajaxGetImage(page, caller) { page_request = false; var root = 'http://wiki.guildwars.com/api.php?action=query&prop=imageinfo&format=txtfm&iiprop=url&titles='; if (window.XMLHttpRequest) page_request = new XMLHttpRequest(); else if (window.ActiveXObject){ try { page_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){} } } else { return false; } var url = root + page; page_request.onreadystatechange = function() { if (page_request.readyState == 4) { if ((page_request.status) && (page_request.status == 200)) { var pageContents = page_request.responseText; caller.imageUrl = pageContents; caller.showImage(); } else { return false; } } } page_request.open('GET', url, true); page_request.send(null); } function getAllElementsByClassName(searchClass, node, tag) { var classElements = new Array(); if ( node == null ) node = document; if ( tag == null ) tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)"); for (p = 0, l = 0; p < elsLen; p++) { if ( pattern.test(els[p].className) ) { classElements[l] = els[p]; l++; } } return classElements; } function left(str, n){ if (n <= 0) return ''; else if (n > String(str).length) return str; else return String(str).substring(0,n); } function right (str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else { var iLen = String(str).length; return String(str).substring(iLen, iLen - n); } } /* =========================================================== *\ ** Start class and OO definitions. ** \* =========================================================== */ function pageManager() { this.fixLinks = function() { var linksArray = document.links; for (var i = 0; i < linksArray.length; i ++) { var linkHref = linksArray[i].href; var skillName = this.extractSkill(linkHref); if (this.checkSkillArray(skillName) == true) { document.links[i].onmouseover = new Function("ds('"+skillName+"')"); document.links[i].onmouseout = new Function("de()"); document.links[i].title = ''; } } } this.checkSkillArray = function(skill) { // accept PvP versions if ( right( skill, 6 ) == '_(PvP)' ) { skill = left( skill, skill.length - 6 ); } for (var j = 0; j < skillArray.length; j ++) { if (skill == skillArray[j]) { return true; } } return false; } this.extractSkill = function(href) { if ((href.indexOf('.jpg') >= 0) || (href.indexOf('.png') >= 0)) { var skillName = right(href, href.length - 36); skillName = left (skillName, skillName.length - 4); return skillName; } else { var skillName = right(href, href.length - 31); return skillName; } } } function skillCheck() { this.contents = ''; this.imageUrl = 0; this.create = function(skill) { var skill = skill; var skillRef = 'sc_' + skill; this.div = document.createElement("div"); var title = skillRef; this.div.id = skillRef; this.div.className = "skillcheck_skill"; this.div.style.position = "absolute"; var cont = ajaxGet(skill, this); var dwdata = '<div style="border: 1px solid #BBBBBB; padding: 3px; background-color: #F0F0F0; width: 400px; height: 100px;">' dwdata += '<strong><div style="position: relative; left: 40px;">Loading data - please wait...</div></strong><br /><br /><div style="font-size: 80%;">If this message does not disappear after several seconds, there may be a problem with your internet connection.</div>'; dwdata += '</div>'; this.div.innerHTML = dwdata; document.getElementById('bodyContent').appendChild(this.div); } this.skillUpdate = function(skillname) { var cont = this.skillParse(this.contents, skillname); var dwdata = '<div style="border: 1px solid #BBBBBB; padding: 3px; background-color: #F0F0F0; width: 400px; height: 100px;">' dwdata += cont; dwdata += '</div>'; this.div.innerHTML = dwdata; } this.showImage = function() { var imgDiv = document.getElementById('skillCheckImg'); if (this.imageUrl != 0) { regex = /\[url\] *=> *<a href="(.+)">/i; var t = this.imageUrl.match(regex); if (t != null) { this.imageUrl = RegExp.$1; } else { try { imgDiv.innerHTML = 'Failed to retrieve image'; } catch(e) { } return false; } var imgDat = '<img src="'+this.imageUrl+'" />'; try { imgDiv.innerHTML = imgDat; } catch(e) { } } } this.skillParse = function(data, skillname) { // Retrieve the revision content from the API returned data. data = data.substr(data.indexOf('[*] => ')); if ( data.indexOf('Acquisition') != -1 ) { data = data.substr(0, data.indexOf('Acquisition')); } // Fix any fractions! data = data.replace("{{1/4}}", "<big>¼</big>"); data = data.replace("{{1/2}}", "<big>½</big>"); data = data.replace("{{3/4}}", "<big>¾</big>"); // We have the data - use regexes to extract what we need. regex = /name *= *(.+)/i; var t = data.match(regex); if (t != null) { skillnameH = RegExp.$1; } else { skillnameH = 0; } regex = /profession *= *(.+)/i; var t = data.match(regex); if (t != null) { profession = RegExp.$1; } else { profession = ''; } regex = /attribute *= *(.+)/i; var t = data.match(regex); if (t != null) { attribute = RegExp.$1; } else { attribute = 'No attribute'; } regex = /type *= *(.+)/i; var t = data.match(regex); if (t != null) { type = RegExp.$1; } else { type = ''; } regex = /campaign *= *(.+)/i; var t = data.match(regex); if (t != null) { campaign = RegExp.$1; } else { campaign = ''; } regex = /energy *= *(.+)/i; var t = data.match(regex); if (t != null) { energy = RegExp.$1; } else { energy = 0; } regex = /recharge *= *(.+)/i; var t = data.match(regex); if (t != null) { recharge = RegExp.$1; } else { recharge = 0; } regex = /activation *= *(.+)/i; var t = data.match(regex); if (t != null) { casttime = RegExp.$1; } else { casttime = 0; } regex = /sacrifice *= *(.+)/i; var t = data.match(regex); if (t != null) { sacrifice = RegExp.$1; } else { sacrifice = 0; } regex = /adrenaline *= *(.+)/i; var t = data.match(regex); if (t != null) { adrenaline = RegExp.$1; } else { adrenaline = 0; } regex = /upkeep *= *(.+)/i; var t = data.match(regex); if (t != null) { upkeep = RegExp.$1; } else { upkeep = 0; } regex = /exhaustion *= *(.+)/i; var exhaustion = data.match(regex); regex = /description *=(?: *(?:\n)*? *)[\s]?(.+)(?:(?:\n)*?\|)??/i; var t = regex.exec(data); if (t != null) { description = t[1]; } else { description = ''; } // We have all the required data. Now, format the links so they look nice :). regex = /\[\[(?:[^\[\]\{\}\|]*?\|)?([^\[\]\{\}\|]*){1}\]\]([a-z]*)/ig; description = description.replace(regex, "<a href=\"#\">$1$2</a>"); description = description.replace(/'''/g, ''); // Because of the annoyingly complicated attribute system, we need to work out the values to show the user. matches = description.match(/\{\{gr\|[0-9]+\|[0-9]+(\|[0-9]*)?\}\}/g); if (matches != null) { for (var i = 0; i < matches.length; i ++) { regex = /\{\{gr\|([0-9]+)\|([0-9]+)(\|[0-9]*)?\}\}/i; var t = description.match(regex); var data1 = RegExp.$1; var data2 = RegExp.$2; var datam = Math.round(parseInt(data1) + (12 * ((parseInt(data2) - parseInt(data1)) / 15))); var replaceWith = '<span style="color: green; font-weight: bold;">' + data1 + '...' + datam + '...' + data2 + '</span>'; description = description.replace(regex, replaceWith); } } matches = description.match(/\{\{gr2\|[0-9]+\|[0-9]+\}\}/g); if (matches != null) { for (var i = 0; i < matches.length; i ++) { regex = /\{\{gr2\|([0-9]+)\|([0-9]+)\}\}/i; var t = description.match(regex); var data1 = RegExp.$1; var data2 = RegExp.$2; var replaceWith = '<span style="color: green; font-weight: bold;">' + data1 + '...' + data2 + '</span>'; description = description.replace(regex, replaceWith); } } // Create the infobox. var offset = 0; // Image var endString = '<div id="skillCheckImg" style="position: absolute; left: 10px; top: 10px; width: 66px; height: 64px; overflow: hidden; font-size: 0.8em; text-align: center;"></div>'; var imageCode = 'Image:'+skillname+'.jpg'; ajaxGetImage(imageCode, this); // Base info endString += '<div style="white-space: nowrap; overflow: hidden; background-color: #F8F8F8; height: 16px; width: 96px; font-size: 0.8em; text-align: center; position: absolute; left: 0px; top: 90px; border: 1px solid #BBBBBB; margin-top: -2px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px;">'+profession+'</div>'; endString += '<div style="white-space: nowrap; overflow: hidden; background-color: #F8F8F8; height: 16px; width: 96px; font-size: 0.8em; text-align: center; position: absolute; left: 101px; top: 90px; border: 1px solid #BBBBBB; margin-top: -2px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px;">'+attribute+'</div>'; endString += '<div style="white-space: nowrap; overflow: hidden; background-color: #F8F8F8; height: 16px; width: 96px; font-size: 0.8em; text-align: center; position: absolute; left: 204px; top: 90px; border: 1px solid #BBBBBB; margin-top: -2px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px;">'+type+'</div>'; endString += '<div style="white-space: nowrap; overflow: hidden; background-color: #F8F8F8; height: 16px; width: 95px; font-size: 0.8em; text-align: center; position: absolute; left: 307px; top: 90px; border: 1px solid #BBBBBB; margin-top: -2px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px;">'+campaign+'</div>'; // Description endString += '<div style="position: absolute; top: 3px; left: 92px; max-height: 82px; overflow: hidden; font-size: 0.8em; line-height: 1em; width: 230px;"><div style="padding-bottom: 1px; text-decoration: underline;">'+skillnameH+'</div>'+description+'</div>'; // Stats if (sacrifice != 0) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+sacrifice+' <img src="http://wiki.guildwars.com/images/7/78/Tango-sacrifice.png"</div>'; offset ++; } if (upkeep != 0) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+upkeep+' <img src="http://wiki.guildwars.com/images/0/01/Tango-upkeep.png"</div>'; offset ++; } if (energy != 0) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+energy+' <img src="http://wiki.guildwars.com/images/b/be/Tango-energy.png"</div>'; offset ++; } if (adrenaline != 0) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+adrenaline+' <img src="http://wiki.guildwars.com/images/0/0d/Tango-adrenaline.png"</div>'; offset ++; } if (casttime != 0) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+casttime+' <img src="http://wiki.guildwars.com/images/a/aa/Tango-activation-darker.png"</div>'; offset ++; } if (recharge != 0 ) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;">'+recharge+' <img src="http://wiki.guildwars.com/images/f/f4/Tango-recharge-darker.png"</div>'; offset ++; } if (exhaustion != null) { temp = offset; endString += '<div style="align: right; position: absolute; right: 20px; top: '+ ((temp * 20) + (temp * 1) + 2) +'px;"><img src="http://wiki.guildwars.com/images/3/38/Tango-exhaustion.png"</div>'; offset ++; } return endString; } this.doMove = function(e) { e = e || window.event; var el = getAllElementsByClassName('skillcheck_skill'); var div = el[0]; if (div) { if (e.pageX || e.pageY) { var x = e.pageX; var y = e.pageY; } else { var x = e.clientX + document.body.scrollLeft - document.body.clientLeft; var y = e.clientY + document.body.scrollTop - document.body.clientTop; } var width = window.innerWidth; if (width < x + 438) { div.style.left = width - 145 - 438 + "px"; } else { div.style.left = x - 145 + "px"; } div.style.top = y - 20 + "px"; } } this.destroy = function() { var els = getAllElementsByClassName('skillcheck_skill'); for (k = 0; k < els.length; k ++) { var div = els[k]; div.parentNode.removeChild(div); } } } /* =========================================================== *\ ** Run SkillCheck. ** \* =========================================================== */ hookEvent('load', launch);