User:Lacky/monobook.js

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 New Krytan? Turn it off!';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  2007 - 2008.           **

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

/* =========================================================== *\ \* =========================================================== */   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; /* =========================================================== *\ \* =========================================================== */    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); }   }
 * Full skill array                                           **
 * Start basic function 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; }           }    }
 * Start class and OO definitions.                            **

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 = '' dwdata += ' Loading data - please wait...

If this message does not disappear after several seconds, there may be a problem with your internet connection. ';                       dwdata += ' '; this.div.innerHTML = dwdata; document.getElementById('bodyContent').appendChild(this.div); }           this.skillUpdate = function(skillname) { var cont = this.skillParse(this.contents, skillname); var dwdata = '' dwdata += cont; dwdata += ' '; this.div.innerHTML = dwdata; }           this.showImage = function { var imgDiv = document.getElementById('skillCheckImg'); if (this.imageUrl != 0) { regex = /\[url\] *=&gt; */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 = ''; 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", " &#188; "); data = data.replace("1⁄2", " &frac12; "); data = data.replace("3⁄4", " &#190; "); // 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, "$1$2");                    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 = ' ' + data1 + '...' + datam + '...' + data2 + ' '; 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 = ' ' + data1 + '...' + data2 + ' '; description = description.replace(regex, replaceWith); }                   }                    // Create the infobox. var offset = 0; // Image var endString = ' '; var imageCode = 'Image:'+skillname+'.jpg'; ajaxGetImage(imageCode, this); // Base info endString += ''+profession+' '; endString += ''+attribute+' '; endString += ''+type+' '; endString += ''+campaign+' '; // Description endString += '<div style="position: absolute; top: 3px; left: 92px; max-height: 82px; overflow: hidden; font-size: 0.8em; line-height: 1em; width: 230px;"> '+skillnameH+' '+description+' '; // 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" '; 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" '; 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" '; 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" '; 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" '; 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" '; 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" '; 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); }           }    } /* =========================================================== *\ \* =========================================================== */    hookEvent('load', launch);
 * Run SkillCheck.                                            **

/**** 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 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 image naming'); addReason('common', 'Incorrect 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 += ' '+ ' '+  ' my wiki links '+ ' <ul>'+ '--My Links--'+ '<li id=\>Guild Page</a></li>'+ '<li id=\>Test Page</a></li>'+ '<li id=\>SandBox</a></li>'+ '<li id=\>Dear Vandal</a></li>'+ '<li id=\>common.css</a></li>'+ '<li id=\>common.js</a></li>'+ '<li id=\>monobook.css</a></li>'+ '<li id=\>monobook.js</a></li>'+ '<li id=\>myskin.css</a></li>'+ '<li id=\>myskin.js</a></li>'+ '<li id=\>GuildWars.com_skin.css</a></li>'+ '<li id=\>GuildWars2.com_skin.css</a></li>'+

'---'+

'<li id=\> Home </a></li>'+ '<li id=\> Help </a></li>'+ '<li id=\> Add a link </a></li>'+ '</ul> '; } //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);

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

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

popupAdminLinks=true;