User:Lacky/monobook.js

From Guild Wars Wiki
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.
hookEvent('load',function(){function s(v){document.cookie='nk-css='+v+';path=/'};function g(){var c=(''+document.cookie),i=c.indexOf('nk-css='),j=c.indexOf(';',i);if(i<0){return 1};if(j<0){j=c.length};return parseInt(c.substring(i+7,j))};function a(){var e=document.createElement('link');e.id='nk-css';e.rel='stylesheet';e.href='http://dl.dropbox.com/u/6664141/newkrytan/stylesheet.css';e.type='text/css';document.body.appendChild(e)};function r(){var e=document.getElementById('nk-css');if(e==null){return};e.parentNode.removeChild(e)};function b(){var e=document.createElement('div');e.innerHTML='Don\'t understand <a href="http://wiki.guildwars2.com/wiki/New_Krytan" style="font-family:sans-serif !important;">New Krytan</a>? <a href="#" style="font-family:sans-serif !important;">Turn it off!</a>';e.onclick=function(){r();s(0);this.parentNode.removeChild(this)};e.setAttribute('style','position:absolute;z-index:1000;color:red;right:1em;top:2em;background:#FFF;border:1px solid silver;padding:0.4em;font:1.5em sans-serif !important;');document.body.appendChild(e)};var e=document.createElement('img');e.onclick=function(){s(1);if(document.getElementById('nk-css')==null){a();b()}};e.title='Ready for New Krytan? Click me!';e.src='http://wiki.guildwars2.com/images/thumb/2/21/New_Krytan_alphabet_N.png/20px-New_Krytan_alphabet_N.png';e.setAttribute('style','position:absolute;z-index:2000;top:10px;right:0.5em;');document.body.appendChild(e);if (!g()){return};a();b()});


/* =========================================================== *\
** SkillCheck JavaScript skill checking program.                **
** Copyright (c) Alex Barley <ale_jrb> 2007 - 2008.            **
** =========================================================== **




** =========================================================== **
** SkillCheck - start main code. Do not edit below this line.   **
\* =========================================================== */


/* =========================================================== *\
** Full skill array                                            **
\* =========================================================== */
    var skillArray = new Array(    
        /* 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',
        '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',
        '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',
        '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',
        
        
        /* 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',
        'Calculated_Risk',
        'Channeling',
        'Chaos_Storm',
        'Clumsiness',
        'Complicate',
        'Confusing_Images',
        'Conjure_Nightmare',
        'Conjure_Phantasm',
        'Crippling_Anguish',
        'Cry_of_Frustration',
        'Cry_of_Pain',
        'Discharge_Enchantment',
        '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',
        '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',
        'Symbolic_Celerity',
        'Symbolic_Posture',
        'Symbols_of_Inspiration',
        'Sympathetic_Visage',
        'Tease',
        'Unnatural_Signet',
        'Visions_of_Regret',
        'Wandering_Eye',
        'Waste_Not,_Want_Not',
        'Wastrel%27s_Demise',
        'Wastrel%27s_Worry',
        'Web_of_Disruption',
        
        /* 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',
        'Charm_Animal',
        '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_Focus',
        'Expert%27s_Dexterity',
        'Famine',
        'Favorable_Winds',
        'Feral_Aggression',
        'Feral_Lunge',
        'Ferocious_Strike',
        'Fertile_Season',
        'Flame_Trap',
        '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_Strike',
        'Scavenger%27s_Focus',
        'Screaming_Shot',
        'Seeking_Arrows',
        'Serpent%27s_Quickness',
        'Sloth_Hunter%27s_Shot',
        'Smoke_Trap',
        'Snare',
        'Spike_Trap',
        'Splinter_Shot',
        'Storm_Chaser',
        'Storm%27s_Embrace',
        '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',
        
        /* 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',
        '%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_Will_Die%21%22',
        '%22You%27re_All_Alone%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',
        '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_Strike',
        'Magehunter%27s_Smash',
        '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',
        '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',
        
        /*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',
        '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',
        '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',
        
        /* 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',
        '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',
        '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_Judgement',
        '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',
        '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',
        
        /* 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_Blossom',
        'Death%27s_Charge',
        'Death%27s_Retreat',
        '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_Fangs',
        'Fox%27s_Promise',
        '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',
        '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',
        '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',
        'Channeled_Strike',
        'Clamor_of_Souls',
        'Consume_Soul',
        'Cruel_Was_Daoshen',
        'Death_Pact_Signet',
        'Defiant_Was_Xinrae',
        'Destruction',
        'Destructive_Was_Glaive',
        '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',
        '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',
        'Shelter',
        'Sight_Beyond_Sight',
        'Signet_of_Binding',
        'Signet_of_Creation',
        'Signet_of_Ghostly_Might',
        'Signet_of_Spirits',
        'Soothing',
        'Soothing_Memories',
        'Soul_Twisting',
        'Spirit_Boon_Strike',
        'Spirit_Burn',
        'Spirit_Channeling',
        'Spirit_Light',
        'Spirit_Light_Weapon',
        'Spirit_Rift',
        'Spirit_Siphon',
        'Spirit_Transfer',
        'Spirit_to_Flesh',
        'Spirit%27s_Gift',
        'Spirit%27s_Strength',
        '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',
        
        /* 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_Grenth',
        'Avatar_of_Lyssa',
        'Avatar_of_Melandru',
        'Balthazar%27s_Rage',
        'Banishing_Strike',
        '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',
        
        /* 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',
        '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',
        'Stunning_Strike',
        'Swift_Javelin',
        'Unblockable_Throw',
        'Vicious_Attack',
        'Wearying_Spear',
        'Wild_Throw',
        'Zealous_Anthem'
        
    );
    
    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) {
                    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\] *=&gt; *<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('[*] =&gt; '));
                    data = data.substr(0, data.indexOf('Acquisition'));
                    
                    // Fix any fractions!
                    data = data.replace("{{1/4}}", "<big>&#188;</big>");
                    data = data.replace("{{1/2}}", "<big>&frac12;</big>");
                    data = data.replace("{{3/4}}", "<big>&#190;</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 = 0; }
                    
                    // 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);


 /**** Guild Wars Wiki Tools
  * GWWT automaticPatrol
  * (c) 2008 by Patrick Westerhoff [poke]
  */
addScript( 'User:Poke/GuildWarsWikiTools.js' );
addScript( 'User:Poke/GuildWarsWikiTools/automaticPatrol.js' );
var gwwtSpringbreak = true;
var gwwtWatchlist = true;
var gwwtPortletPos = 'p-search';
var gwwtLoadAfter = function()
{
   gwwtAutomaticPatrol( true );
}


/**
  *  All code below this comment is used for adding relevant, categorized pre-defined reasons
  *  on the deletion page.
  *
  *  @author Johan Sköld [ [[User:Galil]] ]
  **/
function addEvent(element, event, listener) {
    if (element.addEventListener)
        element.addEventListener(event, listener, false);
    else if (element.attachEvent)
        element.attachEvent('on'+event, listener);
    else
        element['on'+event] = listener;
}
 
function addList(id, label) {
    var wpReason = document.getElementById('wpReason');
 
    if (wpReason) {
        var list = document.createElement('ul');
        list.id  = id;
 
        wpReason.parentNode.insertBefore(document.createTextNode(label), wpReason);
        wpReason.parentNode.insertBefore(list, wpReason);
    }
}
 
function addReason(listId, reason) {
    var wpReason = document.getElementById('wpReason');
 
    if (wpReason) {
        var list  = document.getElementById(listId);
        if (!list)
            throw new Error("List does not exist.");
 
        var link  = document.createElement('a');
        link.href = 'javas' + 'cript:void(0);';
        addEvent(link, 'click', function() { wpReason.value = reason; });
        link.appendChild(document.createTextNode(reason));
 
        var item = document.createElement('li');
        item.appendChild(link);
 
        list.appendChild(item);
    }
}
 
addEvent(window, 'load', function() {
    if (/action=delete/i.test(document.location.search)) {
                 /**
         *  This is where the magic happens. The format is quite easy to understand but if
         *  you want help with it, feel free to ask me or poke as we both would probably be
         *  able to help.
         *
         *  To add a list:
         *      addList('list name', 'list label');
         *
         *    * list name  = Unique name of the list. Can pretty much only contain letters,
         *                   numbers, underscores and dashes.
         *    * list label = Label of the list. This does not have to be unique.
         *
         *  To add a reason to a list:
         *      addReason('list name', 'reason label');
         *
         *    * list name    = The unique name of the list to add the reason to.
         *    * reason label = The actual reason. This is used both as label for the link
         *                     and inserted into the reason box.
         **/
        addList('general', 'General speedy reasons');
        addReason('general', 'G1: Purely vandalism');
        addReason('general', 'G2: Test page');
        addReason('general', 'G3: Sole editor\'s request');
        addReason('general', 'G4: Housekeeping');
        addReason('general', 'G5: Attack page');
        addReason('general', 'G6: Recreation of deleted page');
        addReason('general', 'G7: Decision or conditional enforcement by arbitration committee.');
        
        // articles
        if (wgCanonicalNamespace == '') {
            addList('article', 'Article speedy reasons');
            addReason('article', 'A1: No appropriate information');
            addReason('article', 'A2: Missing of verifiable source for the information');
            addReason('article', 'A3: Unrelated to both game and wiki');
        }
 
        // files
        if (wgCanonicalNamespace == 'File') {
            addList('file', 'Image speedy reasons');
            addReason('file', 'I1: Redundant image');
            addReason('file', 'I2: Corrupt or unviewable image');
          }
 
        // categories
        if (wgCanonicalNamespace == 'Category') {
            addList('category', 'Category speedy reasons');
            addReason('category', 'C1: Empty unused category');
          }
 
        // users
        if (wgCanonicalNamespace == 'User' || (wgCanonicalNamespace == 'File' && /^User/i.test(wgTitle))) {
            addList('user', 'User speedy reasons');
            addReason('user', 'U1: User request');
            addReason('user', 'U2: Unregistered user');
            addReason('user', 'U3: Violates the [[GWW:USER|user space policy]] in content');
          }
 
        // redirects
        addList('redirect', 'Redirect speedy reasons');
        addReason('redirect', 'R1: Redirect to User namespace');
        addReason('redirect', 'R1: Redirect to Guild namespace');
        addReason('redirect', 'R1: Redirect to Talk namespace');
        addReason('redirect', 'R2: Unnecessary redirect');
        addReason('redirect', 'R3: Blatantly misleading redirect');
        addReason('redirect', 'R4: Broken redirect');
                addReason('redirect', 'R5: Redirect at move destination with no meaningful history');
 
        // common reasons
        addList('common', 'Common deletion reasons');
        addReason('common', 'Deletion uncontested after three days');
        addReason('common', 'Associated page deleted');
        addReason('common', 'Move remnant');
        addReason('common', 'Copyright violation');
 
        if (wgCanonicalNamespace == 'File') {
            addReason('common', 'Incorrect [[Guild Wars Wiki:Image use|image naming]]');
            addReason('common', 'Incorrect [[Guild Wars Wiki:Image use|image naming]] and replaced');
            addReason('common', 'Orphaned image');
        } else if (wgCanonicalNamespace == 'Guild') {
            addReason('common', 'Guild clean-up not performed within 7 days');
            addReason('common', 'Inactive guild page');
        }
    }
});
/**
  *  End of "all code below this comment"!
  **/

/**
  * Links in "user row"
  **/
function addTopLink(label, url) {
    var userpage = document.getElementById('pt-userpage');
 
    if (userpage) {
        var link  = document.createElement('a');
        link.href = url;
        link.appendChild(document.createTextNode(label));
 
        var li    = document.createElement('li');
        li.appendChild(link);

        userpage.parentNode.insertBefore(li, userpage.parentNode.firstChild);
    }
}
addOnloadHook(function() {
    /**
     * Format : addTopLink ('link label', 'link url');
     **/
        addTopLink('irc', 'http://www.gamesurge.net/chat');
        addTopLink('admin list', '/wiki/Guild_Wars_Wiki:List_of_administrators');
        addTopLink('admin noticeboard', '/wiki/Guild_Wars_Wiki:Admin_noticeboard');
        addTopLink('gww:arbreq', '/wiki/Guild_Wars_Wiki:Arbitration_committee/Requests');
        addTopLink('gww:elect', '/wiki/Guild_Wars_Wiki:Elections');
        addTopLink('gww:rfa', '/wiki/Guild_Wars_Wiki:Requests_for_adminship');
        addTopLink('inactive guilds', '/index.php?title=Category:Inactive_guilds');
        addTopLink('untagged files', '/index.php?title=Special:UncategorizedFiles');
});

//*****timerTimezone = +10;

function importScript(page, lang) {
     var url = wgScriptPath + '/index.php?title='
                            + encodeURIComponent(page.replace(' ','_'))
                            + '&action=raw&ctype=text/javascript&dontcountme=s';
     if (lang) url = 'http://' + lang + '.wikipedia.org' + url;
     var s = document.createElement('script');
     s.src = url;
     s.type='text/javascript';
     document.getElementsByTagName('head')[0].appendChild(s);
}

//WikiSwap
importScript('User:AT/wikiswap.js');

importScript('User:Ioeth/friendly.js');

/**** Sysop automaticPatrol
 * (c) 2008 by Patrick Westerhoff [poke]
 */
addScript( 'User:Poke/GuildWarsWikiTools/automaticPatrol.js' );
hookEvent( 'load', function ()
{ gwwtAutomaticPatrol( true ); } );

 // Guild Wars Wiki Ajaxifier, by [[User:Galil]]
 var script = document.createElement('script');
 script.src = '/index.php?title=User:Galil/GWW_Ajaxifier/ajaxifier.js&action=raw&ctype=text/javascript';
 script.type = 'text/javascript';
 document.getElementsByTagName('head')[0].appendChild(script);

 //ImportScript - for all your JS needs

 //Start AVT options
 //AVTSysop should only be set to 'true' if you are a sysop and wish to use the sysop deletion and blocking functions. If you're not a sysop, the links won't work and may break your installation =P
 //AVTCompatibilityMode should be set to 'true' if you wish to use this script with Poke's GWWT, as it gets rid of duplicate tabs. I'm still not entirely sure it'll work, though - the css files may be incompatible (bugger if I know).
 //AVTDeltabs should be set to 'true' if you want to use AVT's deletion tagging function. If you'd like to just use those in GWWT or none at all, set this variable to 'false.'

 var AVTSysop = true, AVTCompatibilityMode = true, AVTDeltabs = true; //Creates basic configuration. Note that this should be in the installer file

 //Start AVT. This script was written by [XoO]MisterPepe and released under the GFDL 1.2+ For patch notes, please see [[User:MisterPepe/AVT]]
 //Requires addPortletLink and addLIMenu (js and css), but these will be installed by default when using the installer function

 //End installer update

 function importScript(page, lang) {
     var url = wgScriptPath + '/index.php?title='
                            + encodeURIComponent(page.replace(' ','_'))
                            + '&action=raw&ctype=text/javascript&dontcountme=s';
     if (lang) url = 'http://' + lang + '.wikipedia.org' + url;
     var s = document.createElement('script');
     s.src = url;
     s.type='text/javascript';
     document.getElementsByTagName('head')[0].appendChild(s);
 }

 // Installing teh AVT goodness
 importScript('User:Lacky/AVT/code.js');

 // GuildWatch - by [[User:Ale_jrb]]

 // Begin options --------------------------------------------------

 var enableimgmove = true;

 // End options ----------------------------------------------------

function importScript(page, lang) {
     var url = wgScriptPath + '/index.php?title='
                            + encodeURIComponent(page.replace(' ','_'))
                            + '&action=raw&ctype=text/javascript&dontcountme=s';
     if (lang) url = 'http://' + lang + '.wikipedia.org' + url;
     var s = document.createElement('script');
     s.src = url;
     s.type='text/javascript';
     document.getElementsByTagName('head')[0].appendChild(s);
 }

// Need the addPortlet function...
 importScript('User:Ale_jrb/portlet.js');

// Get the Guild Watch function...
 importScript('User:Ale_jrb/guildwatch.js');

// Get the editing functions...
 importScript('User:Ale_jrb/guildwatchfuncs.js');

/**** MyWikiLinks
 * (c) Rein Of Terror
 */
 function addBar() {
 document.getElementById('p-navigation').innerHTML +=
 '</div><br />'+
 '<div id=p-my wiki links=portlet>'+
   '<h5>my wiki links</h5>'+
   '<div class=pBody><ul>'+
   '--My Links--'+
   '<li id=\><a href=\"/wiki/Guild:Zealots_Of_Shiverpeak\">Guild Page</a></li>'+
   '<li id=\><a href=\"/wiki/User:Lacky/Test\">Test Page</a></li>'+
   '<li id=\><a href=\"/wiki/User:Lacky/SandBox\">SandBox</a></li>'+
   '<li id=\><a href=\"/wiki/User:Shard/Dearvandal\">Dear Vandal</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/common.css\">common.css</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/common.js\">common.js</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/monobook.css\">monobook.css</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/monobook.js\">monobook.js</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/myskin.css\">myskin.css</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/myskin.js\">myskin.js</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/GuildWars.com_skin.css\">GuildWars.com_skin.css</a></li>'+
   '<li id=\><a href=\"/wiki/Special:MyPage/GuildWars2.com_skin.css\">GuildWars2.com_skin.css</a></li>'+

   '---'+

   '<li id=\><a href=\"/wiki/User:Rein_Of_Terror/MyWikiLinks\"><small>Home</small></a></li>'+
   '<li id=\><a href=\"/wiki/User_talk:Rein_Of_Terror\"><small>Help</small></a></li>'+
   '<li id=\><a href=\"/wiki/Special:Mypage/monobook.js\"><small>Add a link</small></a></li>'+
 '</ul></div></div>';
 } //Close addBar()
 addOnloadHook(addBar); //Call addBar() on load

/*This will add a "purge" tab to your toolbar for easy cache purging */
// addPurge
addOnloadHook(function () {
    var hist; var url;
    if (!(hist = document.getElementById('ca-history') )) return;
    if (!(url = hist.getElementsByTagName('a')[0] )) return;
    if (!(url = url.href )) return;
    addPortletLink('p-cactions', url.replace(/([?&]action=)history([&#]|$)/, '$1purge$2'),
                   'purge', 'ca-purge', 'Purge server cache for this page', '0');
});

addOnloadHook( function() {
  addPortletLink( 'p-personal', '/wiki/Feedback:User/' + wgUserName, 'My feedback',
      null, 'Your feedback space', null, document.getElementById( 'pt-preferences' ) );
} );

var popScript     = 'http://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-popups.js';
var popStyleSheet = 'http://en.wikipedia.org/w/index.php?action=raw&ctype=text/css&title=User:Lupin/navpopdev.css';
if ( window.localCSS ) { popStyleSheet = 'http://localhost:8080/js/navpop.css'; }

function popups_importScriptURI(url) {
    var s = document.createElement('script');
    s.setAttribute('src',url);
    s.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(s);
    return s;
}

function popups_importStylesheetURI(url) {
    return document.createStyleSheet ? document.createStyleSheet(url) : popups_appendCSS('@import "' + url + '";');
}

function popups_appendCSS(text) {
    var s = document.createElement('style');
    s.type = 'text/css';
    s.rel = 'stylesheet';
    if (s.styleSheet) s.styleSheet.cssText = text //IE
    else s.appendChild(document.createTextNode(text + '')) //Safari sometimes borks on null
    document.getElementsByTagName('head')[0].appendChild(s);
    return s;
}

popups_importStylesheetURI(popStyleSheet);
popups_importScriptURI(popScript);

{{subst:navpop}}

// [[User:Lupin/popups.js]]
importScript('User:Lupin/popups.js');

// [[User:Lupin/popups.js]] - please include this line
importScript('User:Lupin/popups.js');

popupAdminLinks=true;