var Language={"Locale" :  "en","getToken" : function(key) {var localized = this[key];if( localized != null ) {return localized;}return "@(" + key + ")";}, "Information" : "Information",  "Errors" : "Errors",  "InvalidProduct" : "Invalid Product.",  "SamePrincipalAccountError" : "You can't transact products among accounts.",  "FleetToWeakToStartBattleMessage" : "Fleet To Weak To Start Battle.",  "InvalidUnitValue" : "Unit '{0}' has an invalid quantity.",  "InvalidOpponent" : "Opponent is invalid.",  "ChooseAtLeastOneUnit" : "You must choose, at least, one type of unit.",  "MustSelectABattleType" : "You must select a battle type.",  "Maximum8Units" : "You can only choose a maximum of 8 units.",  "FriendlyBattleCreatedWithSuccess" : "Friendly Battle was created with success.",  "Ok" : "Success operation.",  "InvalidItem" : "Invalid item.",  "NoCredits" : "Not enougth orions.",  "GreaterThanBuyout" : "Bid can't be greater than the buyout.",  "LowerBid" : "Invalid bid.",  "AlreadyBuyed" : "Resource already bought.",  "NaN" : "Not a numeric value.",  "MustBePositiveQuantity" : "Please insert a number greater that zero.",  "NoInputProvided" : "Please insert a value.",  "AlreadyAttacked" : "Cannot select the unit because it already attacked.",  "QuantityError" : "Insert a valid quantity.",  "AttackFirstMove" : "Can't attack when you're the first to play.",  "Moves" : "You don't have enough moves.",  "UltimateUnitAttack" : "Ultimate Unit doesn't have enough moves to attack.",  "UnitsNotPositioned" : "You have to deploy all the units",  "MinimumRest" : "You have to leave at least 20% of your units.",  "MinimumMove" : "You have to move at least 20% of your units.",  "NoMovesToSplit" : "You don't have enough moves to split. Split this unit takes",  "NoMovesToSplit2" : "moves.",  "Paralysed" : "you can't move this unit because it's Paralysed.",  "CoolDown" : "You can't attack because this unit is in cooldown from it's latest attack.",  "FleetCantPassWormHole" : "The fleet can't pass in the wormhole because it has trade goods that prevent it.",  "True" : "True",  "False" : "False",  "true" : "True",  "false" : "False",  "Continue" : "Do you really want to proceed?",  "Planets" : "Planets",  "Fleets" : "Fleets",  "WormHole" : "WormHole",  "WormHoles" : "WormHoles",  "Undo" : "Undo",  "EndTurn" : "End Turn",  "GiveUp" : "Give Up",  "DeploySaved" : "Deploy Saved Successfully.",  "DeployLoaded" : "Deploy Loaded Successfully.",  "NoDeploySaved" : "No Deploy has been saved.",  "OnVacations" : "On Vacations",  "NoMessages" : "You don't have any messages!",  "NotAvailableYet" : "Not Available Yet",  "Alliance" : "Alliance",  "Owner" : "Owner",  "Destiny" : "Destiny",  "Destination" : "Destination",  "Coordinate" : "Coordinate",  "BuildFacility" : "Build Facility",  "BuildUnits" : "Build Units",  "UpgradeFacility" : "Upgrade Facility",  "Duration" : "Duration",  "State" : "State",  "Running" : "Running",  "InQueue" : "In Queue",  "InConstruction" : "In Construction",  "ClickHereToBuildOnThisSlot" : "Click to build a facility on this slot. You may build here:",  "ClickHereToUpgradeOnThisSlot" : "Click to upgrade the facility on this slot.",  "Build" : "Build",  "ReallyAbandonPlanet" : "Do you really want to abandon this planet?",  "AreYouSure" : "Are you sure?",  "YouWillLooseResources" : "Are you sure? You loose all the payed resources when you cancel items in production!",  "ReallyDestroyFacility" : "Are you sure that you wnat to destroy this facility?",  "Upgrade" : "Upgrade",  "ProductionQueue" : "Production Queue",  "InProduction" : "In Production",  "Queue" : "Queue",  "Level" : "Level",  "FleetInBattle" : "Cannot move the units because the fleet is in battle.",  "FleetIsMoving" : "Cannot move the units because the fleet is moving.",  "UnloadCargoFleetInBattle" : "Cannot unload fleet cargo because the fleet is in battle.",  "DropCargoFleetInBattle" : "Cannot drop fleet cargo because the fleet is in battle.",  "CannotPassWormHoleMessage" : "The fleet '{0}' cannot pass in the wormhole because it has trade goods that prevent it.",  "PillageCoolDownMessage" : "Cannot pillage planet '{0}' because it is in pillage cooldown.",  "Turn" : "turn",  "Turns" : "turns",  "ETA" : "Arrival in",  "TTM" : "Time to Move",  "Player1" : "Player 1",  "Player2" : "Player 2",  "IsMoving" : "Is Moving",  "youMustSelectAType" : "You must select a battle type",  "AreYouSureYouWantToDeleteFleet" : "Are you sure you want to delete this fleet?",  "IsInBattle" : "Is in Battle",  "None" : "None",  "InvalidCoordinate" : "Inserted coordinate is invalid.",  "NeedToSelectAFleetFirst" : "You need to select a fleet first.",  "NotDiscoveredCoordinate" : "The coordinate inserted was not discovered yet.",  "LightQuantity" : "Light Quantity",  "MediumQuantity" : "Medium Quantity",  "HeavyQuantity" : "Heavy Quantity",  "Income" : "Income",  "DefenseFleet" : "Defense Fleet",  "FacilityLevel" : "Facility Level",  "UltimateWeaponNotReady" : "Ultimate weapon is not ready. Please verify if you have enough resources.",  "DevastationCannotBeUsed" : "Devastation Cannot be used because you don't have enough resources.",  "DevastationUsageConfirmation" : "You cannot undo the usage of the Devastation. Are you sure that you want to use it?",  "MoveUndiscovered" : "By moving to an undiscovered zone, the fleet is going to suffer a move penalty. Do you wish to continue?",  "Cargo" : "Cargo",  "TradeResource" : "Trade Resource",  "Resources" : "Resources",  "Ultimate" : "Ultimate",  "Special" : "Special",  "Units" : "Units",  "Facilities" : "Facilities",  "Intrinsics" : "Intrinsics",  "Attack" : "Attack",  "Defense" : "Defense",  "Range" : "Range",  "UnitValue" : "Unit Value",  "Catapult" : "Catapult",  "BombAttack" : "Bomb Attack",  "RemoveAbilityAttack" : "Remove Ability Attack",  "UnitCategory" : "Category",  "UnitDisplacement" : "Displacement",  "MovementType" : "Movement",  "Diagonal" : "Diagonal",  "All" : "All",  "Normal" : "Normal",  "Front" : "Front",  "Air" : "Air",  "Ground" : "Ground",  "Medium" : "Medium",  "Heavy" : "Heavy",  "Light" : "Light",  "StrikeBack" : "Strike Back",  "Triple" : "Triple Attack",  "Rebound" : "Rebound",  "Replicator" : "Replicator",  "InfestationAttack" : "Infestation Attack",  "ParalyseAttack" : "Paralyse Attack",  "Mechanic" : "Mechanic",  "Organic" : "Organic",  "Flag" : "Flag",  "Maggot" : "Maggot",  "Anubis" : "Anubis",  "Nova" : "Nova",  "Scarab" : "Scarab",  "Spider" : "Spider",  "Taurus" : "Taurus",  "Toxic" : "Toxic",  "Doomer" : "Doomer",  "DarkRain" : "Dark Rain",  "Krill" : "Krill",  "Driller" : "Driller",  "Bozer" : "Bozer",  "Eagle" : "Eagle",  "Kamikaze" : "Kamikaze",  "DarkCrusader" : "Dark Crusader",  "Pretorian" : "Praetorian",  "Kahuna" : "Kahuna",  "BlackWidow" : "Black Widow",  "Raptor" : "Raptor",  "Crusader" : "Crusader",  "Samurai" : "Samurai",  "Vector" : "Vector",  "Panther" : "Panther",  "Fenix" : "Fenix",  "Rain" : "Rain",  "DarkTaurus" : "Dark Taurus",  "Blinker" : "Blinker",  "BattleMoon" : "Battle Moon",  "BattleMoonDescription" : "Dark Human ultimate unit",  "Queen" : "Queen",  "Worm" : "Worm",  "Boozer" : "Boozer",  "BoozerDescription" : "",  "Interceptor" : "Interceptor",  "Seeker" : "Seeker",  "Destroyer" : "Destroyer",  "HeavySeeker" : "Heavy Seeker",  "HiveKing" : "Hive King",  "HiveProtector" : "Hive Protector",  "Stinger" : "Stinger",  "Egg" : "Egg",  "DeepSpaceScanner" : "Deep Space Scanner",  "BlinkerAssembler" : "Blinker Assembler",  "UnitYard" : "Unit Yard",  "Silo" : "Silo",  "Extractor" : "Extractor",  "MithrilExtractor" : "Mithril Extractor",  "SeriumExtractor" : "Serium Extractor",  "BattleMoonAssembler" : "BattleMoon Assembler",  "CommandCenter" : "Command Center",  "SolarPanel" : "Solar Panel",  "DarknessHall" : "Darkness Hall",  "NuclearFacility" : "Uranium Extractor",  "Devastation" : "Devastation",  "TitaniumExtractor" : "Titanium Extractor",  "DevotionSanctuary" : "Devotion Sanctuary",  "QueueSpace" : "Queue Space",  "Astatine" : "Astatine",  "Radon" : "Radon",  "Energy" : "Energy",  "Serium" : "Serium",  "Protol" : "Protol",  "Gold" : "Gold",  "Titanium" : "Titanium",  "ProductionSpace" : "Production Space",  "Uranium" : "Uranium",  "Supplies" : "Supplies",  "Tools" : "Tools",  "Alcohol" : "Alcohol",  "CosmicDust" : "Cosmic Dust",  "Mercury" : "Mercury",  "Diamonds" : "Diamonds",  "Medicine" : "Medicine",  "Animals" : "Animals",  "Argon" : "Argon",  "Cryptium" : "Cryptium",  "Elk" : "Elk",  "Prismal" : "Prismal",  "Mithril" : "Mithril",  "DominationYard" : "Domination Yard",  "SlaveWarehouse" : "Slave Warehouse",  "Nest" : "Nest",  "Incubator" : "Incubator",  "ElkExtractor" : "Elk Extractor",  "ProtolExtractor" : "Protol Extractor",  "QueenHatchery" : "Queen Hatchery",  "WormHoleCreator" : "Worm Hole Creator",  "Terrain" : "Terrain",  "Desert" : "Desert",  "Forest" : "Forest",  "Ice" : "Ice",  "Rock" : "Rock",  "Space" : "Space",  "Terrest" : "Terrest",  "Water" : "Water",  "PageTutorial" : "Page Tutorial",  "Next" : "Next",  "Top" : "Top",  "Previous" : "Previous",  "NoTutorial" : "No Tutorial Yet",  "NoTutorialContent" : "We haven't done a tutorial for this page yet. If you like, you may contact us and share    your dificulties and ideas, that will help us making this page's tutorial.",  "HomeTutorial" : "Your Home Page Tutorial",  "HomeTutorialContent" : "The Home Page is where you are notified of everything on your empire. On this zone you'll get      your empire messages and player interactions.",  "HomeTutorialContent2" : "Here you'll have a preview of what's being traded on the Auction House.",  "HomeTutorialContentCharts" : "Here you'll have some charts that represent your evolution on the game. The charts are updated      from time to time.",  "PlanetsTutorial" : "Planets Tutorial",  "PlanetsTutorialContent" : "This tutorial will present you the planets interface and teach you how to do all the basic       actions.            Your planets will generate resources and allow you to build battle units. They are the finantial core of your      empire.",  "ResourcesPanelContent" : "Up here you have your current resources. Every couple of minutes they're updated based on your planets income.",  "IncomeContent" : "This is the income of the current planet. As you can see, you already have some income that is given by your main facility.      Now you need to build extra facilities to increase this income.",  "MainFacilityContent" : "This is your main facility, the technological heart of your empire. All facilities and combat units depend directly or      indirectly on your main facility's level.",  "BuildFacilityContent" : "This is a build spot, where you can build a facility. You have several empty spots to build on. Click on this build      spot to build a facility...",  "BuildFacilityScreenContent" : "... as you can see, after clicking a build spot (or an already build facility) you come to the build/upgrade      page. On this page you'll be able to select the facility to build on that spot.",  "BuildFacilityActionContent" : "Now lets build a facility. Click on the 'Build' button to get started.",  "LHBuildingInConstructionContent" : "And now you have that facility being built. It will be finished in a couple of minutes.",  "LHGoToFleetsContent" : "You are now able to build (or upgrade, is the same) facilities on your planets. Now lets see      how you can manage Fleets. Please click on the 'Fleets' menu item.",  "OnFleetsScreenContent" : "This is where you can create and manage fleets. You have the planet's defense fleet that's used      for storage and for defense only. You'll also be able to see on this page other fleets in orbit      of this planet.",  "MoveUnitsFromFleetsContent" : "When you have more that two fleets on this page, you'll be able to move combat units from one fleet      to another. To do that, simply click on a unit and drag it to another fleet. After moving      all the units you want, don't forget to save your changes.",  "PrivateZoneTutorial" : "Private Zone Tutorial",  "PrivateZoneTutorialContent" : "This is your private zone on the universe. Only you can access this zone. On your private zone you have    five planets to colonize.",  "HomePlanetContent" : "This is one of them: your Home Planet. This one is already colonized by you. You can access it and manage it       later by clicking on it and selecting 'View Planet', or by selecting 'Planets' no the master menu.",  "YourFirstFleetContent" : "On this position you start with a fleet. You start the game with a scout fleet to explore your Private Zone. Later      you may create additional fleets on your planets.",  "MoveFleetContent" : "You may have several resources lost on the universe. You may move onto them to put them on your fleet's cargo.      To move your fleet, click on it to select it. The click somewhere else on the universe to move it to that location.",  "BattleDeployTutorial" : "Battle Deploy Tutorial",  "BattleDeployContent" : "The first part of a battle is the deploy. It's when you move the combat units on your fleet and      place them on the battle field. You can put them on the first two square lines, and your opponent will do the same.",  "RegicideDeployContent" : "This is a Regicide match! On this game type the objective is to destroy the enemy's Flag.      Be sure to properly protect your flag!      The flag is the following unit: <p/><img src='http://resources.orionsbelt.eu/Images/Common/Units/Flag.png' />",  "BattleDeploySelectContent" : "Lets start by selecting a unit from your fleet. Down here you have all the combat units available for battle.       Please click on one to proceed with the tutorial.",  "BattleDeployDropContent" : "Now click on any square on the two first lines to place the unit.",  "BattleDeployDropNextContent" : "That's it! You need to do that to all the combat units on your fleet, to be able to finish the deploy. Note      that you may select a unit and then change the quantity (on the right). That way you may deploy several      grups of the same unit.",  "BattleDeployFinishContent" : "When you're done, simply click on the 'Deploy' button. After that you'll have to wait for your turn to play. When it's      time, another tutorial will be available.",  "BattleTutorial" : "Battle Tutorial",  "BattleContent" : "It's now your turn to play on this battle. You have your units on the bottom, and you can see your opponent's units on top,      they have a faded red background.",  "BattleSelectContent" : "Please select any unit to continue the tutorial...",  "BattleUnitSelectedContent" : "On this panel you have the selected unit properties. You can see its attack/defense, quantity, movement cost      and attack range.",  "BattleUnitSelectedStrongContent" : "This panel shows witch units on the battle field are especially vulnerable taking damage from the selected unit.       You should use the selected unit to target the opponent's units that are on this list.",  "BattleUnitSelectedWeakContent" : "On the other hand, the selected unit may have to watch out for certain units. You should protect the selected unit      against those on this list.",  "BattleUnitSelectedAttackContent" : "This panel shows a little hint on how to attack. Remeber that each unit has a range. But there are also units with special abilities      that can use catapult attack, triple attack, etc. You should check the manual page for the unit to really understand what's      it capable of.",  "BattleUnitSelectedMovContent" : "And this panel shows how to move the unit. Every unit has a movement type: normal, all, front, diagonal, etc. Note that moving the unit      has a cost, and you have 6 movement points to spend. So you can use them to move several times the same unit on your turn.",  "BattleUnitSelectedMovPointsContent" : "And here are the movement points you have to spend on your turn. As you can see, you have 6 points to spend. Please move the selected      unit to continue the tutorial...",  "BattleUnitSelectedMovPoints2Content" : "... and this value was decremented. The selected unit movement cost was taken. You can move it again if you have the points. Or you      can do several other actions. For example, attacking an enemy unit costs 1 movement point. You can move and attack on the same turn.",  "BattleUnitSplitContent" : "When you move units you can change the quantity to move, and split the group. Note that splitting a group will cost twice as       much as moving it.",  "BattleUnitDirectionContent" : "You can also rotate the unit to a different direction. That will also cost 1 movement point.",  "BattleCalculatorContent" : "Here you have the battle calculator. This utility shows how much damade the selected unit can inflict on every unit      on the board.",  "BattleOptionsContent" : "You now have the knowledge to play your turns. When you are finished, you must click 'End Turn', and then      wait for your opponent's play. On this panel you can also undo a move, or reset all your moves and start again.            Good battles!",  "QuestsTutorial" : "Quests Tutorial",  "QuestsTutorialContent" : "On this page you have several quests to follow, that will help you to grow stronger and faster on the game. At this moment      you only have checkpoint quests, you only need to accomplish the description to deliver them and get the reward!",  "QuestsTaskContent" : "You now have available a new type of quest: the Task. These are different because you need to accept them, then perform      the required actions, and then deliver them and get your reward.",  "TutorialEnd" : "Tutorial Complete",  "TutorialEndContent" : "And that is it! Contact us if you have any dificulties. You can always run this      tutorial by following the Page Tutorial link at the site's footer.",  "RequiredFieldValidator" : "Required Field: {0}",  "RegularExpressionValidator" : "Regex Validation Failed",  "LengthValidator" : "Maximum Chars: {0}",  "UniquenessValidator" : "{0} Already Exists",  "NumericValue" : "Must be a numeric value",  "NotEmpty" : "Field can't be empty",  "CantBeHigherThan" : "This value can't be higher than {0}",  "BuyBidValidator" : "Buyout value must be higher than bid value",  "BidValidator" : "Bid value must be higher than 1",  "AdvertisingValidator" : "You don't have enought Orions to pay this service",  "MinGreaterValidator" : "Minimum value must be less than maximum value",  "InvalidNumber" : "Invalid number",  "ValueBetween" : "Value must be between {0} and {1}",  "FieldValueBetween" : "Value in field {2} must be between {0} and {1}",  "AnyNotEmpty" : "All fields must be not empty",  "SamePlayer3Days" : "You have to be the same player for 3 days, without changing players, to put item in the auction house.", "Generated" : "17-02-2009 16:58:50"};
var MooTools={version:"1.2.0",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype;}C.prototype.constructor=C;if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D);}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N;}if(G){Native.genericize(M,K,B);}F.call(M,K,N);return M;};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N);}for(var M in L){I(this,M,L[M],K);}return this;};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];if(M){I(this,K,M,N);}}else{for(var L in M){this.alias(L,M[L],K);}}return this;};return C;};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D);};}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);};}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F);}};(function(B){for(var A in B){Native.typize(B[A],A);}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true});}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true);}return arguments.callee;})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $empty(){}function $arguments(A){return function(){return arguments[A];};}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;}function $unlink(C){var B;switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);}}return E;}function $pick(){for(var B=0,A=arguments.length;B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $splat(B){var A=$type(B);return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return new Date().getTime();};function $try(){for(var B=0,A=arguments.length;B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";}else{if(A.item){return"collection";}}}}return typeof A;}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;}}return B;},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];}}return B;}});Hash.alias("forEach","each");function $H(A){return new Hash(A);}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925};}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4};}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419};}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18};}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod";}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description;},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)};})();function $exec(B){if(!B){return B;}if(window.execScript){window.execScript(B);}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");A.text=B;document.head.appendChild(A);document.head.removeChild(A);}return B;}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0];}:function(A){return A.uid||(A.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe");}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};}return $extend(A,Window.Prototype);},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A;}});Window.Prototype={$family:{name:"window"}};new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true);});}return $extend(A,Document.Prototype);},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A;}});Document.Prototype={$family:{name:"document"}};new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},clean:function(){return this.filter($defined);},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;}}return -1;},map:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);}return C;},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true;}}return false;},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},link:function(C){var A={};for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break;}}}return A;},contains:function(A,B){return this.indexOf(A,B)!=-1;},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;},include:function(A){if(!this.contains(A)){this.push(A);}return this;},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B]);}return this;},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var D=[];for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue;}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B]);}return D;},hexToRgb:function(B){if(this.length!=3){return null;}var A=this.map(function(C){if(C.length==1){C+=C;}return C.toInt(16);});return(B)?A:"rgb("+A+")";},rgbToHex:function(D){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C);}return(D)?B:"#"+B.join("");}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B];}return this;},create:function(B){var A=this;B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C);}var E=function(){return A.apply(B.bind||null,C);};if(B.delay){return setTimeout(E,B.delay);}if(B.periodical){return setInterval(E,B.periodical);}if(B.attempt){return $try(E);}return E();};},pass:function(A,B){return this.create({arguments:A,bind:B});},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})();},bind:function(B,A){return this.create({bind:B,arguments:A});},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A});},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})();},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})();},run:function(A,B){return this.apply(B,$splat(A));}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this));},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this);}},toFloat:function(){return parseFloat(this);},toInt:function(A){return parseInt(this,A||10);}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)));};}});Number.implement(A);})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this);},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A="";var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C);}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:"";});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null;},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[];Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[];Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H;});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type;var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false;}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey});}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D]);}for(var F in Class.Mutators){if(!this[F]){continue;}Class.Mutators[F](this,this[F]);delete this[F];}this.constructor=A;if(E===$empty){return this;}var C=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this);}return C;};$extend(A,this);A.constructor=Class;A.prototype=B;return A;}});Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this;}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C);});},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];if(current==undefined){self[key]=previous;continue;}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue;}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ");})+")");}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current);}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments);};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1));};}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);return this;},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){if(this.$chain){this.$chain.empty();}return this;}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C);if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B);if(!this.$events||!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue;}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]);}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;}this.addEvent(A,this.options[A]);delete this.options[A];}return this;}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return ;}A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C];}});A="<"+A+">";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A);},getDocument:function(){return this;},getWindow:function(){return this.defaultView||this.parentWindow;},purge:function(){var C=this.getElementsByTagName("*");for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B]);}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A));}Element.Prototype[A]=B;}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);var A=function(){var F=$try(function(){return B.contentWindow.location.host;});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);$extend(H.Element.prototype,Element.Prototype);}D.call(B.contentWindow,B.contentWindow.document);};(!window.frames[C.id])?B.addListener("load",A):A();return B;}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue;}G[D.uid]=true;}E.push(D);}F=E;}return(B.cash)?$extend(F,this):F;}});Elements.implement({filter:function(A,B){if(!A){return this;}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A);}:A,B));}});Elements.multi=function(A){return function(){var B=[];var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element");}}return(F)?new Elements(B):B;};};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B);return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);break;default:E=false;}if(E){F.extend(E);}}return new Elements(F);},getDocument:function(){return this.document;},getWindow:function(){return this;}});$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null;};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;for(var C in B){A[C]=B[C];}}return A;};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C);}return null;};$.textnode=$.whitespace=$.window=$.document=$arguments(0);Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B);},getElements:function(A,D){A=A.split(",");var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D});}});Element.Storage={get:function(A){return(this[A]||(this[A]={}));}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A);}},after:function(B,A){if(!A.parentNode){return ;}var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B);},bottom:function(B,A){A.appendChild(B);},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B);}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();Element.implement("inject"+A,function(D){C(this,$(D,true));return this;});Element.implement("grab"+A,function(D){C($(D,true),this);return this;});});Element.implement({getDocument:function(){return this.ownerDocument;},getWindow:function(){return this.ownerDocument.getWindow();},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null;}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null;}}return $.element(B,C);},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C]);}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B);}return this;},get:function(B){var A=Element.Properties.get(B);return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B);},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);return this;},match:function(A){return(!A||Element.get(this,"tag")==A);},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this;},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A);},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this;},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A);},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);if(A){this.appendChild(A);}},this);return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(D,C){switch($type(this)){case"element":var H={};for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue;}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue;}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K;}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);if(A){J.grab(A);}}}return J;case"textnode":return document.newTextNode(this.nodeValue);}return null;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);return this;},hasClass:function(A){return this.className.contains(A," ");},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean();}return this;},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this;},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A);},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()];}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null;},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A);},this);return this;},destroy:function(){Browser.freeMem(this.empty().dispose());return null;},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected;}));},toQueryString:function(){var A=[];this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return ;}var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value;}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D));}});});return A.join("&");},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null;},getProperties:function(){var A=$A(arguments);return A.map(function(B){return this.getProperty(B);},this).associate(A);},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);if(B&&C.Bools[D]){E=(E||!A)?true:false;}else{if(!A){return this.removeProperty(D);}}(B)?this[B]=E:this.setAttribute(D,E);return this;},setProperties:function(A){for(var B in A){this.setProperty(B,A[B]);}return this;},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break;}}E=E[B];}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H);};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C);},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C);},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C);},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C);},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C);},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C);},getParent:function(B,C){return A(this,"parentNode",null,B,false,C);},getParents:function(B,C){return A(this,"parentNode",null,B,true,C);},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C);},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B));}});})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"");}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("");}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false);}else{this.attachEvent("on"+B,A);}return this;},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false);}else{this.detachEvent("on"+B,A);}return this;},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A;}return $pick(C);},store:function(B,A){var C=Element.Storage.get(this.uid);C[B]=A;return this;},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this;}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});Browser.freeMem=function(A){if(!A){return ;}if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty;}}Element.dispose(A);}if(A.uid&&A.removeEvents){A.removeEvents();}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase();})));B.erase("Camels");})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();if(Browser.Engine.trident){CollectGarbage();}});Element.Properties.events={set:function(A){this.addEvents(A);}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this;}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J);}return false;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F]||0;if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(D,C){var B=this.retrieve("events");if(!B||!B[D]){return this;}var G=B[D].keys.indexOf(C);if(G==-1){return this;}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);if(E){if(E.onRemove){E.onRemove.call(this,C);}D=E.base||D;}return(Element.NativeEvents[D])?this.removeListener(D,F):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this;}if(!B){for(var C in A){this.removeEvents(C);}A=null;}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0]);}A[B]=null;}}return this;},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})();},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E);},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C));};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true);},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat";}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E;}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue;}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px";}if(Browser.Engine.presto&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]);}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I);}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll();}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode;}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H;}}return null;},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I);}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J);}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);H.y+=G(I);}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent;}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates();}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")};},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow();var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x};}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width");}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body;}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F);}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F);}return new Elements(C,{ddup:(H.length>1),cash:!G});}});Element.implement({match:function(B){if(!B){return true;}var D=Selectors.Utils.parseTagAndID(B);var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true;}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F];}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E];}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I);}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B});}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null;}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false];},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length;D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);return":)"+X;}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);continue;}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M);}else{var D={},H=[];for(var S=0,R=K.length;S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D);}K=H;}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V);}}K=E;}}return K;}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F);}}return H;},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B);}}return H;},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);}break;}}return C;},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break;}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);}}}return C;}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A));},byID:function(A,B){return(!B||(A.id&&A.id==B));},byClass:function(B,A){return(B.className&&B.className.contains(A," "));},byPseudo:function(A,D,C,B){return D.call(A,C,B);},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);if(!A){return false;}if(!B||E==undefined){return true;}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-");}return false;}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(A){return !Element.match(this,A);},contains:function(A){return(this.innerText||this.textContent||"").contains(A);},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;}}return true;},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false;}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;}}return true;},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E);}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue;}F++;var A=E.positions[$uid(B)];if(A!=undefined){F=A+F;break;}}E.positions[D]=F;}return(E.positions[D]%C.a==C.b);},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false;}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A);},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this);}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready");};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50);})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();}))?B():arguments.callee.delay(50);})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null";}return null;},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16);},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null;}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path;}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure";}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C);};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments);};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"';}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />';}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2;}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel";}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,B));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(A){return A;},compute:function(C,B,A){return Fx.compute(C,B,A);},check:function(A){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false;},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this;}this.from=B;this.to=A;this.time=0;this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(C,B,A){return(B-C)*A+C;};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];B[0]=D.getStyle(E);}var A=B.map(this.parse);return{from:A[0],to:A[1]};},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return ;}var D=F.parse(C);if($chk(D)){B={value:D,parser:F};}});B=B||{value:C,parser:Fx.CSS.Parsers.String};return B;});},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser});});A.$family={name:"fx:css:value"};return A;},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C);}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B));});return A;},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B));},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A];}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;if(C&&C.contains("://")&&!C.contains(document.domain)){return ;}var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return ;}var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase();}):null;if(!H||!H.test("^"+A+"$")){return ;}Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return ;}K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K;});});});return Fx.CSS.Cache[A]=B;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true);}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false;},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A));});},serve:function(A){return A.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(B,A){if(arguments.length==1){A=B;B=this.property||this.options.property;}this.render(this.element,B,A,this.options.unit);return this;},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this;}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to);}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A));},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));}return this.retrieve("tween");}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this;},fade:function(C){var E=this.get("tween"),D="opacity",A;C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments);}if(!A){this.eliminate("fade:flag");}return this;},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));A=(A=="transparent")?"#fff":A;}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));B.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(A){if(typeof A=="string"){A=this.search(A);}for(var B in A){this.render(this.element,B,A[B],this.options.unit);}return this;},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C);}return A;},start:function(B){if(!this.check(arguments.callee,B)){return this;}if(typeof B=="string"){B=this.search(B);}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);E[C]=A.from;D[C]=A.to;}return this.parent(E,D);}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel();}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A));},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A);}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")));}return this.retrieve("morph");}};Element.implement({morph:function(A){this.get("morph").start(A);return this;}});(function(){var A=Fx.prototype.initialize;Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")];}this.options.transition=D;}};})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A);},easeOut:function(C){return 1-B(1-C,A);},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B]);}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6);},Expo:function(A){return Math.pow(2,8*(A-1));},Circ:function(A){return 1-Math.sin(Math.acos(A));},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2);},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A);},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]);});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ;}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300));},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts);},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B);return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false;},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options;I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E);}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C);}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true;}.bind(this))){this.fireEvent("exception",[J,K]);}},this);this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send");if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A));},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options")));}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H);}}return A;})||A.set("html",C);},success:function(D){var C=this.options,B=this.response;B.html=D.stripScripts(function(E){B.javascript=E;});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter);}if(C.update){$(C.update).empty().adopt(B.tree);}if(C.evalScripts){$exec(B.javascript);}this.onSuccess(B.tree,B.elements,B.html,B.javascript);}});Element.Properties.load={set:function(A){var B=this.retrieve("load");if(B){send.cancel();}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A));},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A);}this.store("load",new Request.HTML(this.retrieve("load:options")));}return this.retrieve("load");}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"});},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A);}});Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth;},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);return this;},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);});return B;},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this;}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G;}return this.parent(F[0],F[1]);},slideIn:function(A){return this.start("in",A);},slideOut:function(A){return this.start("out",A);},hide:function(A){this[A||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(A){return this.start("toggle",A);}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B));},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));}return this.retrieve("slide");}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E);}if(!A){this.eliminate("slide:flag");}return this;}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y);}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this;},start:function(C){if(this.options.preventDefault){C.preventDefault();}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt();}else{this.value.now[D]=this.element[this.options.modifiers[D]];}if(this.options.invert){this.value.now[D]*=-1;}this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])();}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop);},check:function(A){if(this.options.preventDefault){A.preventDefault();}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element);}},drag:function(A){if(this.options.preventDefault){A.preventDefault();}this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1;}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0];}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B]);}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit);}else{this.element[this.options.modifiers[B]]=this.value.now[B];}}this.fireEvent("drag",this.element);},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element);}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(A){this.fireEvent("complete",this.element);}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A));}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body);}C=this.element;var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent));}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables();},true);},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt();},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G};}this.parent(B);},checkAgainst:function(B){B=B.getCoordinates();var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top);},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);}if(A){this.overed=A;this.fireEvent("enter",[this.element,A]);}else{this.overed=null;}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables();}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);this.overed=null;return this.parent(A);}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A);}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);this.load();},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false;}if(A=="{}"){this.dispose();}else{this.write(A);}return true;},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);if(this.options.autoSave){this.save();}return D;};});return A;})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3);}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true);}else{if(B.match(/hsb/)){B=B.hsbToRgb();}else{B=B.hexToRgb(true);}}}}C=C||"rgb";switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break;}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();return $extend(B,this);}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A;}));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb");},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb");}function $HEX(A){return new Color(A,"hex");}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6;if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)];},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C];}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D];}}return false;}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null;},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);return(A)?A.hsbToRgb():null;}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false;}else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));},this);return this;},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ;}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A);},this);}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ;}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head);},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete();}}});A.push(E);});return new Elements(A);}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert));}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B);},this);return this;},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren());},this);return this;},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C);},this);return $$(A);},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren());},this);return $$(A);},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body);}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list);}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()));},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list);}return A.erase(this.clone).erase(this.element);},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables();}else{A=this.element.getAllPrevious().contains(B)?"before":"after";}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone]);},start:function(B,A){if(!this.idle){return ;}this.idle=false;this.element=A;this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]);}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(B);},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this));}else{this.reset();}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element);},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id");},this);},this);var A=C.index;if(this.lists.length==1){A=0;}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B;}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible");},onHide:function(A){A.setStyle("visibility","hidden");},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className);}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements);}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B);}D.store("tip:native",D.get("title"));D.erase("title");},this);return this;},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");var B=C.retrieve("tip:native");if(B){C.set("title",B);}});return this;},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D);}var C=A.retrieve("tip:text");if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C);}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);this.position((!this.options.fixed)?B:{page:A.getPosition()});},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);},elementMove:function(A){this.position(A);},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F];}this.tip.setStyle(C[F],G);}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B);},show:function(){this.fireEvent("show",this.tip);},hide:function(){this.fireEvent("hide",this.tip);}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return ;}var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F);}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor;},true);}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;this.toElement(A);C.stop();}.bind(this));}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step);}this.knob.setStyle(this.property,A);},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this));}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";F="offsetWidth";}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full;}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min;}if(!((this.range>0)^(A>this.max))){A=this.max;}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this;},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A);},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop();},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"");}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B;},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset;}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);}},initialize:function(B,A){this.setOptions(A);this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this);},start:function(){this.listener.addEvent("mousemove",this.coord);},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer);},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity;}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B]);}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);}else{for(var F in this.effects){E.setStyle(F,0);}}},this);if($chk(this.options.display)){this.display(this.options.display);}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after");}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container);}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;}C.setStyle("overflow","hidden");if(!F){for(var D in this.effects){C.setStyle(D,0);}}return this;},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);}});(function(){var NAMESPACE="log";var IE6_POSITION_FIXED=true;var bbird;var outputList;var cache=[];var state=getState();var classes={};var profiler={};var IDs={blackbird:"blackbird",checkbox:"bbVis",filters:"bbFilters",controls:"bbControls",size:"bbSize"};var messageTypes={debug:true,info:true,warn:true,error:true,profile:true};function generateMarkup(){var spans=[];for(type in messageTypes){spans.push(['<span class="',type,'" type="',type,'"></span>'].join(""));}var newNode=document.createElement("DIV");newNode.id=IDs.blackbird;newNode.style.display="none";newNode.innerHTML=['<div class="header">','<div class="left">','<div id="',IDs.filters,'" class="filters" title="click to filter by message type">',spans.join(""),"</div>","</div>",'<div class="right">','<div id="',IDs.controls,'" class="controls">','<span id="',IDs.size,'" title="contract" op="resize"></span>','<span class="clear" title="clear" op="clear"></span>','<span class="close" title="close" op="close"></span>',"</div>","</div>","</div>",'<div class="main">','<div class="left"></div><div class="mainBody">',"<ol>",cache.join(""),"</ol>",'</div><div class="right"></div>',"</div>",'<div class="footer">','<div class="left"><label for="',IDs.checkbox,'"><input type="checkbox" id="',IDs.checkbox,'" />Visible on page load</label></div>','<div class="right"></div>',"</div>"].join("");return newNode;}function backgroundImage(){var bodyTag=document.getElementsByTagName("BODY")[0];if(bodyTag.currentStyle&&IE6_POSITION_FIXED){if(bodyTag.currentStyle.backgroundImage=="none"){bodyTag.style.backgroundImage="url(about:blank)";}if(bodyTag.currentStyle.backgroundAttachment=="scroll"){bodyTag.style.backgroundAttachment="fixed";}}}function addMessage(type,content){content=(content.constructor==Array)?content.join(""):content;if(outputList){var newMsg=document.createElement("LI");newMsg.className=type;newMsg.innerHTML=['<span class="icon"></span>',content].join("");outputList.appendChild(newMsg);scrollToBottom();}else{cache.push(['<li class="',type,'"><span class="icon"></span>',content,"</li>"].join(""));}}function clear(){outputList.innerHTML="";}function clickControl(evt){if(!evt){evt=window.event;}var el=(evt.target)?evt.target:evt.srcElement;if(el.tagName=="SPAN"){switch(el.getAttributeNode("op").nodeValue){case"resize":resize();break;case"clear":clear();break;case"close":hide();break;}}}function clickFilter(evt){if(!evt){evt=window.event;}var span=(evt.target)?evt.target:evt.srcElement;if(span&&span.tagName=="SPAN"){var type=span.getAttributeNode("type").nodeValue;if(evt.altKey){var filters=document.getElementById(IDs.filters).getElementsByTagName("SPAN");var active=0;for(entry in messageTypes){if(messageTypes[entry]){active++;}}var oneActiveFilter=(active==1&&messageTypes[type]);for(var i=0;filters[i];i++){var spanType=filters[i].getAttributeNode("type").nodeValue;filters[i].className=(oneActiveFilter||(spanType==type))?spanType:spanType+"Disabled";messageTypes[spanType]=oneActiveFilter||(spanType==type);}}else{messageTypes[type]=!messageTypes[type];span.className=(messageTypes[type])?type:type+"Disabled";}var disabledTypes=[];for(type in messageTypes){if(!messageTypes[type]){disabledTypes.push(type);}}disabledTypes.push("");outputList.className=disabledTypes.join("Hidden ");scrollToBottom();}}function clickVis(evt){if(!evt){evt=window.event;}var el=(evt.target)?evt.target:evt.srcElement;state.load=el.checked;setState();}function scrollToBottom(){if(outputList){outputList.scrollTop=outputList.scrollHeight;}}function isVisible(){return(bbird.style.display=="block");}function hide(){bbird.style.display="none";}function show(){var body=document.getElementsByTagName("BODY")[0];body.removeChild(bbird);body.appendChild(bbird);bbird.style.display="block";}function reposition(position){if(position===undefined||position==null){position=(state&&state.pos===null)?1:(state.pos+1)%4;}switch(position){case 0:classes[0]="bbTopLeft";break;case 1:classes[0]="bbTopRight";break;case 2:classes[0]="bbBottomLeft";break;case 3:classes[0]="bbBottomRight";break;}state.pos=position;setState();}function resize(size){if(size===undefined||size===null){size=(state&&state.size==null)?0:(state.size+1)%2;}classes[1]=(size===0)?"bbSmall":"bbLarge";var span=document.getElementById(IDs.size);if(span!=null){span.title=(size===1)?"small":"large";span.className=span.title;}state.size=size;setState();scrollToBottom();}function setState(){var props=[];for(entry in state){var value=(state[entry]&&state[entry].constructor===String)?'"'+state[entry]+'"':state[entry];props.push(entry+":"+value);}props=props.join(",");var expiration=new Date();expiration.setDate(expiration.getDate()+14);document.cookie=["blackbird={",props,"}; expires=",expiration.toUTCString(),";"].join("");var newClass=[];for(word in classes){newClass.push(classes[word]);}if(bbird){bbird.className=newClass.join(" ");}}function getState(){var re=new RegExp(/blackbird=({[^;]+})(;|\b|$)/);var match=re.exec(document.cookie);return(match&&match[1])?eval("("+match[1]+")"):{pos:null,size:null,load:null};}function readKey(evt){if(!evt){evt=window.event;}var code=113;if(evt&&evt.keyCode==code){var visible=isVisible();if(visible&&evt.shiftKey&&evt.altKey){clear();}else{if(visible&&evt.shiftKey){reposition();}else{if(!evt.shiftKey&&!evt.altKey){(visible)?hide():show();}}}}}function addEvent(obj,type,fn){var obj=(obj.constructor===String)?document.getElementById(obj):obj;if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);};obj.attachEvent("on"+type,obj[type+fn]);}else{obj.addEventListener(type,fn,false);}}function removeEvent(obj,type,fn){var obj=(obj.constructor===String)?document.getElementById(obj):obj;if(obj.detachEvent){obj.detachEvent("on"+type,obj[type+fn]);obj[type+fn]=null;}else{obj.removeEventListener(type,fn,false);}}window[NAMESPACE]={toggle:function(){(isVisible())?hide():show();},resize:function(){resize();},clear:function(){clear();},move:function(){reposition();},debug:function(msg){addMessage("debug",msg);},warn:function(msg){addMessage("warn",msg);},info:function(msg){addMessage("info",msg);},error:function(msg){addMessage("error",msg);},profile:function(label){var currentTime=new Date();if(label==undefined||label==""){addMessage("error","<b>ERROR:</b> Please specify a label for your profile statement");}else{if(profiler[label]){addMessage("profile",[label,": ",currentTime-profiler[label],"ms"].join(""));delete profiler[label];}else{profiler[label]=currentTime;addMessage("profile",label);}}return currentTime;}};addEvent(window,"load",function(){var body=document.getElementsByTagName("BODY")[0];bbird=body.appendChild(generateMarkup());outputList=bbird.getElementsByTagName("OL")[0];backgroundImage();addEvent(IDs.checkbox,"click",clickVis);addEvent(IDs.filters,"click",clickFilter);addEvent(IDs.controls,"click",clickControl);addEvent(document,"keyup",readKey);resize(state.size);reposition(state.pos);if(state.load){show();document.getElementById(IDs.checkbox).checked=true;}scrollToBottom();window[NAMESPACE].init=function(){show();window[NAMESPACE].error(["<b>",NAMESPACE,"</b> can only be initialized once"]);};addEvent(window,"unload",function(){removeEvent(IDs.checkbox,"click",clickVis);removeEvent(IDs.filters,"click",clickFilter);removeEvent(IDs.controls,"click",clickControl);removeEvent(document,"keyup",readKey);});});})();var HistoryManager=(function(){var A=new Class({initialize:function(){this._currentLocation=this._getHash();var C=this;if(window.ie){this.addState=this._addStateIE;this._iframe=new Element("iframe",{src:"javascript:'<html></html>'",styles:{position:"absolute",top:"-1000px"}}).inject(document.body).contentWindow;$justForIE=function(E){C._getHash=function(){return E;};C._monitorDefault.call(C);location.hash=E;};function D(){if(C._iframe&&C._iframe.document&&C._iframe.document.body){if(!C._iframe.document.body.innerHTML){C.addState(C._currentLocation,true);}}else{setTimeout(D,50);}}D();}else{if(window.webkit419){this._form=new Element("form",{method:"get"}).inject(document.body);this._historyCounter=history.length;this._stateHistory=[];this._stateHistory[history.length]=this._getHash();this.addState=this._addStateSafari;this._monitorSafari.periodical(250,this);}else{if(window.opera){this.addState=this._addStateDefault;$justForOpera=function(){C._monitorDefault.call(C);};new Element("img",{src:"javascript:location.href='javascript:$justForOpera();';",style:"position: absolute; top: -1000px;"}).inject(document.body);}else{this.addState=this._addStateDefault;this._monitorDefault.periodical(250,this);}}}},getCurrentLocation:function(){return this._currentLocation;},_getHash:function(){return location.href.split("#")[1]||"";},_addStateIE:function(D,C){if(this._currentLocation==D&&!C){return ;}this._currentLocation=D;this._iframe.document.write("<html><body onload=\"top.$justForIE('",D,"');\">Loaded</body></html>");this._iframe.document.close();},_addStateSafari:function(C){if(this._currentLocation==C){return ;}this._form.setProperty("action","#"+C).submit();this._currentLocation=C;this._stateHistory[history.length]=this._getHash();this._historyCounter=history.length;},_monitorSafari:function(){if(history.length!=this._historyCounter){this._historyCounter=history.length;this._currentLocation=this._stateHistory[history.length];this.fireEvent("onHistoryChange",[this._stateHistory[history.length]]);}},_addStateDefault:function(C){if(this._currentLocation==C){return ;}location.hash="#"+C;this._currentLocation=C;},_monitorDefault:function(){var C=this._getHash();if(C!=this._currentLocation){this._currentLocation=C;this.fireEvent("onHistoryChange",[C]);}}});A.implement(new Events);var B;return function(){return B?B:B=new A();};})();var Site={appPath:$("path").value,start:function(){Site.prepareFriendlies();Site.prepareTickCountdown();Site.prepareHistoryManager();log.resize();},startPlanet:function(){Site.HistoryManager.addEvent("onHistoryChange",Planet.onHistoryChanged);Planet.addTooltips();Planet.start();},prepareHistoryManager:function(){Site.HistoryManager=new HistoryManager();},onHistoryChanged:function(A){alert(A);},tickUpdateTime:1000,decrementTick:function(){var A=$("tickCountdown");var B=A.getAttribute("start");A.innerHTML=Site.parseMillis(B);A.setAttribute("start",B-Site.tickUpdateTime);},parseMillis:function(C){var E=Math.round(C/1000);var B=Math.floor(E/60);if(B>0){E=E-B*60;}if(E<=0&&B<=0){return"00:00";}var D=E;if(E<10){D="0"+E;}var A=B;if(B<10){A="0"+B;}return A+":"+D;},prepareTickCountdown:function(){if($("tickCountdown")){Site.decrementTick.periodical(Site.tickUpdateTime);Site.decrementTick();}},prepareFriendlies:function(){var A=$("searchOpponent");if(A){Site.friendlyStart(A);}},friendlyStart:function(B){var A=$("opponentId").value;var C=$(A).value;if(C!=""){Site.getPrincipalFriendlyList(C);}},logout:function(){var A=Site.appPath+"Ajax/Logout.aspx";var B=new Request.HTML({url:A,method:"get",onComplete:function(C){window.location=Site.appPath+"Login.aspx";}});if(window.ie){B.setHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");}B.send();},getPrincipalFriendlyList:function(B){var A=Site.appPath+"Ajax/SearchPlayer.ashx?type="+$("searchType").value+"&name="+B;Utils.ajaxRequest("get",A,$("results"),Site.searchOpponentCallBack);},searchOpponent:function(){var A=$("opponentId").value;var B=$(A).value;Site.getPrincipalFriendlyList(B);},searchOpponentCallBack:function(){var A=$("opponent");$("opponentUser").value=A.options[A.selectedIndex].value;A.addEvent("change",function(B){Site.opponentChanged();});Custom.initSelect(A);},opponentChanged:function(){var A=$("opponent");$("opponentUser").value=A.options[A.selectedIndex].value;},botOpponentChanged:function(){var A=$("botOpponent");$("opponentUser").value=A.options[A.selectedIndex].value;},selectTab:function(C){var B=$(C);var A=B.getParent();A.getElements("li").each(function(D){if(B==D){D.className="selected";$(D.id+"Content").className="visible";}else{D.className="";$(D.id+"Content").className="";}});},onUltimateChange:function(B){for(var A=0;A<selectedCheckBox.length;++A){var C=selectedCheckBox[A];if(B.id!=C){$(C).checked=false;}}},onBattleTypeChange:function(B){for(var A=0;A<selectedBattleTypeCheckBox.length;++A){var C=selectedBattleTypeCheckBox[A];if(B.id!=C){$(C).checked=false;}}},viewPlayer:function(){var A=$("opponentUser").value;if(A!=""){window.location=Site.appPath+"PlayerInfo.aspx?PlayerStorage="+A;}else{Message.raiseAlert("SelectPlayerFirst");}}};window.addEvent("domready",Site.start);var Tutorial={getPanel:function(){return $("tutorial");},show:function(A){if(window.overrideTutorial!=null){A=window.overrideTutorial;}if(this[A]!=null){Information.leftInfofixed=true;this[A]();}else{this.showNoTutorial();}},hide:function(){this.getPanel().setStyle("display","none");this.autoNext=null;Information.leftInfofixed=false;},start:function(){if(window.autoStartTutorial!=null){Tutorial.show(window.autoStartTutorial);}},advance:function(){var A=this.autoNext;this.autoNext=null;if(A!=null){window.tutorialEnabled=true;this[A]();}},CheckpointQuest:function(){this.showPanel({titleToken:"QuestsTutorial",contentToken:"QuestsTutorialContent",refElemId:$("quests"),offsetX:250,offsetY:-150,width:500,next:"End"});},TaskQuest:function(){this.showPanel({titleToken:"QuestsTutorial",contentToken:"QuestsTaskContent",refElemId:$("quests"),offsetX:250,offsetY:-150,width:500,next:"End"});},Home:function(){this.showPanel({titleToken:"HomeTutorial",contentToken:"HomeTutorialContent",refElemId:$("genericMessages"),offsetX:80,offsetY:0,width:500,arrow:"top",next:"HomeAH"});},HomeAH:function(){this.showPanel({titleToken:"HomeTutorial",contentToken:"HomeTutorialContent2",refElemId:$("ahAd"),offsetX:-300,offsetY:-90,width:250,arrow:"right",previous:"Home",next:"HomeCharts"});},HomeCharts:function(){this.showPanel({titleToken:"HomeTutorial",contentToken:"HomeTutorialContentCharts",refElemId:$("charts"),offsetX:-300,offsetY:-90,width:250,arrow:"right",previous:"HomeAH",next:"End"});},Battle:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleContent",refElemId:$("battleField"),offsetX:40,offsetY:25,width:400,next:"BattleSelect"});},BattleSelect:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleSelectContent",refElemId:$("battleField"),offsetX:40,offsetY:150,width:400,follow:false,arrow:"bottom"});this.autoNext="BattleUnitSelected";},BattleUnitSelected:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedContent",refElemId:$("battleField"),offsetX:-10,offsetY:-90,width:400,arrow:"left",next:"BattleUnitSelectedStrong"});},BattleUnitSelectedStrong:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedStrongContent",refElemId:$("battleField"),offsetX:-10,offsetY:40,width:400,follow:false,arrow:"left",previous:"BattleUnitSelected",next:"BattleUnitSelectedWeak"});},BattleUnitSelectedWeak:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedWeakContent",refElemId:$("battleField"),offsetX:-10,offsetY:155,width:400,follow:false,arrow:"left",previous:"BattleUnitSelectedStrong",next:"BattleUnitSelectedAttack"});},BattleUnitSelectedAttack:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedAttackContent",refElemId:$("battleField"),offsetX:-10,offsetY:250,width:400,arrow:"left",previous:"BattleUnitSelectedWeak",next:"BattleUnitSelectedMov"});},BattleUnitSelectedMov:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedMovContent",refElemId:$("battleField"),offsetX:-10,offsetY:375,width:400,arrow:"left",previous:"BattleUnitSelectedAttack",next:"BattleUnitSelectedMovPoints"});},BattleUnitSelectedMovPoints:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedMovPointsContent",refElemId:$("battleField"),offsetX:50,offsetY:15,width:400,arrow:"right"});this.autoNext="BattleUnitSelectedMovPoints2";},BattleUnitSelectedMovPoints2:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSelectedMovPoints2Content",refElemId:$("battleField"),offsetX:50,offsetY:15,width:400,arrow:"right",next:"BattleUnitSplit"});},BattleUnitSplit:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitSplitContent",refElemId:$("battleField"),offsetX:50,offsetY:75,width:400,arrow:"right",previous:"BattleUnitSelectedMovPoints2",next:"BattleUnitDirection"});},BattleUnitDirection:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleUnitDirectionContent",refElemId:$("battleField"),offsetX:50,offsetY:280,width:400,arrow:"right",previous:"BattleUnitSplit",next:"BattleCalculator"});},BattleCalculator:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleCalculatorContent",refElemId:$("battleField"),offsetX:40,offsetY:250,width:400,arrow:"bottom",previous:"BattleUnitDirection",next:"BattleOptions"});},BattleOptions:function(){this.showPanel({titleToken:"BattleTutorial",contentToken:"BattleOptionsContent",refElemId:$("battleField"),offsetX:40,offsetY:-85,width:400,arrow:"right",previous:"BattleCalculator",next:"End"});},RegicideDeploy:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"RegicideDeployContent",refElemId:$("battleField"),offsetX:40,offsetY:-90,width:400,next:"BattleDeploy"});},BattleDeploy:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"BattleDeployContent",refElemId:$("battleField"),offsetX:40,offsetY:-90,width:400,next:"BattleDeploySelect"});},BattleDeploySelect:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"BattleDeploySelectContent",refElemId:$("initialContainers"),offsetX:40,offsetY:-180,width:400,arrow:"bottom"});this.autoNext="BattleDeployDrop";},BattleDeployDrop:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"BattleDeployDropContent",refElemId:$("battleField"),offsetX:40,offsetY:150,width:400,arrow:"bottom"});this.autoNext="BattleDeployDropNext";},BattleDeployDropNext:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"BattleDeployDropNextContent",refElemId:$("battleField"),offsetX:40,offsetY:80,width:400,arrow:"right",next:"BattleDeployFinish"});},BattleDeployFinish:function(){this.showPanel({titleToken:"BattleDeployTutorial",contentToken:"BattleDeployFinishContent",refElemId:$("battleField"),offsetX:40,offsetY:-50,width:400,arrow:"right",next:"End"});},PrivateZone:function(){this.showPanel({titleToken:"PrivateZoneTutorial",contentToken:"PrivateZoneTutorialContent",refElemId:$("universe"),offsetX:180,offsetY:0,width:400,next:"HomePlanet"});},HomePlanet:function(){this.showPanel({titleToken:"PrivateZoneTutorial",contentToken:"HomePlanetContent",refElemId:$("universe"),offsetX:225,offsetY:-55,arrow:"left",width:300,previous:"PrivateZone",next:"YourFirstFleet"});},YourFirstFleet:function(){this.showPanel({titleToken:"PrivateZoneTutorial",contentToken:"YourFirstFleetContent",refElemId:$("universe"),offsetX:80,offsetY:-60,arrow:"top",width:300,previous:"HomePlanet",next:"MoveFleet"});},MoveFleet:function(){this.showPanel({titleToken:"PrivateZoneTutorial",contentToken:"MoveFleetContent",refElemId:$("universe"),offsetX:280,offsetY:0,width:300,previous:"YourFirstFleet",next:"End"});},BugsPlanets:function(){this.LightHumansPlanets();this["LHMainFacilityPanelX"]=0;this["LHBuildPanelX"]=185;this["LHBuildPanelY"]=220;this["LHBuildingInConstructionX"]=150;},DarkHumansPlanets:function(){this.LightHumansPlanets();this["LHMainFacilityPanelX"]=0;this["LHBuildPanelX"]=135;this["LHBuildPanelY"]=270;this["LHBuildingInConstructionX"]=150;},LightHumansPlanets:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"PlanetsTutorialContent",refElemId:$("tutRef"),offsetX:135,offsetY:0,width:400,next:"LHResourcesPanel"});},LHResourcesPanel:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"ResourcesPanelContent",refElemId:$("playerResources"),offsetX:296,offsetY:-80,arrow:"top",width:400,previous:"LightHumansPlanets",next:"LHIncomePanel"});},LHIncomePanel:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"IncomeContent",refElemId:$("tutRef"),offsetX:225,offsetY:115,arrow:"right",width:400,previous:"LHResourcesPanel",next:"LHMainFacilityPanel"});},LHMainFacilityPanel:function(){var A=this["LHMainFacilityPanelX"]!=null?this["LHMainFacilityPanelX"]:-74;this.showPanel({titleToken:"PlanetsTutorial",contentToken:"MainFacilityContent",refElemId:$("tutRef"),offsetX:A,offsetY:0,arrow:"right",width:200,previous:"LHIncomePanel",next:"LHBuildPanel"});},LHBuildPanel:function(){var A=this["LHBuildPanelX"]!=null?this["LHBuildPanelX"]:15;var B=this["LHBuildPanelY"]!=null?this["LHBuildPanelY"]:200;this.showPanel({titleToken:"PlanetsTutorial",contentToken:"BuildFacilityContent",refElemId:$("tutRef"),offsetX:A,offsetY:B,arrow:"right",follow:false,width:200});this.autoNext="LHBuildUpgradeScreen";},LHBuildUpgradeScreen:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"BuildFacilityScreenContent",refElemId:$("tutRef"),offsetX:138,offsetY:0,width:400,next:"LHBuildUpgradeAction"});},LHBuildUpgradeAction:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"BuildFacilityActionContent",refElemId:$("tutRef"),offsetX:215,offsetY:75,arrow:"right",follow:false,width:200});this.autoNext="LHBuildingInConstruction";},LHBuildingInConstruction:function(){var A=this["LHBuildingInConstructionX"]!=null?this["LHBuildingInConstructionX"]:15;this.showPanel({titleToken:"PlanetsTutorial",contentToken:"LHBuildingInConstructionContent",refElemId:$("tutRef"),offsetX:A,offsetY:200,width:200,next:"LHGoToFleets"});},LHGoToFleets:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"LHGoToFleetsContent",refElemId:$("tutRef"),arrow:"left",offsetX:530,offsetY:-125,width:200});this.autoNext="OnFleetsScreen";},OnFleetsScreen:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"OnFleetsScreenContent",refElemId:$("tutRef"),offsetX:138,offsetY:0,width:400,next:"MoveUnitsFromFleets"});},MoveUnitsFromFleets:function(){this.showPanel({titleToken:"PlanetsTutorial",contentToken:"MoveUnitsFromFleetsContent",refElemId:$("tutRef"),offsetX:138,offsetY:0,width:400,next:"End"});},End:function(){this.showPanel({titleToken:"TutorialEnd",contentToken:"TutorialEndContent",refElemId:$("siteFooter"),offsetX:600,offsetY:-170});Information.leftInfofixed=false;},showNoTutorial:function(){this.showPanel({titleToken:"NoTutorial",contentToken:"NoTutorialContent",refElemId:$("siteFooter"),offsetX:600,offsetY:-170,follow:false});},showPanel:function(I){if(window.tutorialEnabled!=null&&!window.tutorialEnabled){return ;}var B=this.getPanel();var H=$("tutorialContent");var N=$("middlet");var J="followtutorial_"+I.contentToken;var E=B.getFirst();E.id=J;E.name=J;H.innerHTML=Language.getToken(I.contentToken);$("tutorialTitle").innerHTML=Language.getToken(I.titleToken);$("left").setStyle("display","none");$("right").setStyle("display","none");$("top").setStyle("display","none");$("bottom").setStyle("display","none");if(I.arrow!=null){$(I.arrow).setStyle("display","block");}var G=$(I.refElemId);var K=G.getPosition();var F=I.offsetX?I.offsetX:0;var D=I.offsetY?I.offsetY:0;var C=I.width?I.width:300;var M=C+66;var L=I.height?I.height:"auto";B.setStyles({display:"block",top:K.y+D,left:K.x+F,width:M,height:L});N.setStyles({width:C,height:L});if(I.next!=null||I.previous!=null){var A="<div class='nav'>";if(I.previous!=null){A+="<a class='nav' href='javascript:Tutorial."+I.previous+"();'>"+Language.getToken("Previous")+"</a>";}if(I.next!=null){A+="<a class='nav' href='javascript:Tutorial."+I.next+"();'>"+Language.getToken("Next")+"</a>";}A+="</div>";H.innerHTML+=A;}if((I.follow!=null&&I.follow)||I.follow==null){window.location.hash="#"+J;}}};window.addEvent("domready",Tutorial.start);var AttackUtils={attack:function(){if(globalCounter==1){RaiseError.attackFirstMove();return ;}var A=lastSelection.isUltimateUnit();if(A&&!movesObj.hasValidMoves(6)){RaiseError.ultimateUnitAttack();Information.fixed=false;return ;}if(!lastSelection.hasAttacked){lastSelection.hasAttacked=true;Utils.registerAttack(lastSelection,currentEnemy);$("enemy").className="invisible";movesObj.decrementMoves(lastSelection.unit().attackCost);lastSelection.setClass("");lastSelection=null;Information.eraseAttackInfo();Information.fixed=false;}},canAttack:function(F){if(lastSelection!=null&&!lastSelection.hasAttacked){var C=lastSelection.unit();if(!C.canAttack){return false;}var D=lastSelection.id.split("_");var B=C.range;var E=new Attack(D,F,B,C);var A=E[lastSelection.getPosition()]();if(A){Information.fillAttackInfo(D,F);}return A;}return false;},calculatePenalty:function(A,C,E){var D=AttackUtils.penalty(C,E);if(D<4){return A;}var B=(7-D)*0.25;return Math.round((B*A)+0.5);},calculatePenaltyByDistance:function(A,C){if(C<4){return A;}var B=(7-C)*0.25;return Math.round((B*A)+0.5);},penalty:function(D,F){var B=Number(D[0]);var A=Number(D[1]);var E=Number(F[0]);var C=Number(F[1]);if(B==9){return Math.abs(B-E);}if(A==C){return Math.abs(B-E);}return Math.abs(A-C);},addBonusAttack:function(A,D,C,B){D+=AttackUtils.addUp(A.attackTargets,C.name);D+=AttackUtils.addUp(A.attackTargets,C.category);D+=AttackUtils.addUp(A.attackTargets,B);D+=AttackUtils.addUp(A.attackTargets,C.level);D+=AttackUtils.addUp(A.attackTargets,C.type);return D;},addBonusDefense:function(A,B,D,C){B+=AttackUtils.addUp(A.defenseTargets,D.name);B+=AttackUtils.addUp(A.defenseTargets,D.category);B+=AttackUtils.addUp(A.defenseTargets,C);B+=AttackUtils.addUp(A.defenseTargets,D.level);B+=AttackUtils.addUp(A.defenseTargets,D.type);return B;},addBonusRange:function(B,A,D,C){A+=AttackUtils.addUp(B.rangeTargets,D.name);A+=AttackUtils.addUp(B.rangeTargets,D.category);A+=AttackUtils.addUp(B.rangeTargets,C);A+=AttackUtils.addUp(B.rangeTargets,D.level);A+=AttackUtils.addUp(B.rangeTargets,D.type);return A;},getAttack:function(B,A){return AttackUtils.addBonusAttack(this,this.baseAttack,B,A);},getDefense:function(B,A){return AttackUtils.addBonusDefense(this,this.baseDefense,B,A);},getRange:function(B,A){return AttackUtils.addBonusRange(this,this.range,B,A);},addUp:function(C,B){if(C==null){return 0;}var A=C[B];if(A==null){return 0;}return A;},ultimateUnitAttackCoord:function(){if(Utils.numberOfPlayers()==2){return 9;}return 13;}};var Information={fixed:false,leftInfofixed:false,fillAll:function(D){if(!this.fillEnabled()||Information.leftInfofixed){return ;}var A=D.unitName();var B=D.unit();var C=D.getQuantity();Information.fill("shipType",B.name);Information.fill("baseAttack",B.baseAttack);Information.fill("baseDefense",B.baseDefense);Information.fill("movementCost",B.movementCost);Information.fill("range",B.range);Information.fillRemainDefense(D,B);if(B.category=="Ultimate"){Information.fill("unitQuant",1);}else{Information.fill("unitQuant",C);}if(Utils.numberOfPlayers()==2){Information.fillSpecials(D,B);Information.fillStrongAgainst(B);Information.fillWeakerAgainst(B);HowTo.resolveHowToMove(B);HowTo.resolveHowToAttack(B);}if($("battleCalculator")&&!Information.fixed){Information.fillCalculator(B,C,B.range);}},fillRemainDefense:function(C,B){var A=BattleElements[C.id];if(A!=null){Information.fill("hitPoints",A.remainingDefense);}else{Information.fill("hitPoints",B.baseDefense);}},fillByElement:function(A){if(!this.fillEnabled()){return ;}if(Utils.hasChilds(A)){Information.fillAll(Utils.getItem(A));}},fill:function(C,B){var A=$(C);if(A!=null){if(A.hasChildNodes()){A.empty();}A.appendText(B);}},fillEnabled:function(){return $("leftBattleMenu")!=null;},fillSpecials:function(C,B){var A=$("specials");if(A!=null&&A.hasChildNodes()){A.empty();}if(C.hasAttacked){Information.insertIcon(A,"cantAttack");}else{Information.insertIcon(A,"attack");}Information.fillAbilities(A,B);},fillAbilities:function(B,A){if(A.strikeBack){Information.insertIcon(B,"strikeBack");}if(A.catapult){Information.insertIcon(B,"catapult");}if(A.triple){Information.insertIcon(B,"triple");}if(A.replicator){Information.insertIcon(B,"replicator");}if(A.rebound){Information.insertIcon(B,"rebound");}if(A.removeAbility){Information.insertIcon(B,"removeAbility");}if(A.bomb){Information.insertIcon(B,"bomb");}},fillAttackInfo:function(J,D){var E=$(J[0]+"_"+J[1]).firstChild;var A=lastSelection.unit();var B=boardInformation.terrain;var G=Number(lastSelection.getQuantity());var H=Utils.getItem($(D[0]+"_"+D[1]));var C=H.unit();var K=H.getQuantity();var F=G*A.getAttack(C,B);F=AttackUtils.calculatePenalty(Math.round(F),J,D);var I=F/C.getDefense(A,B)-0.5;Information.fill("damage",Math.round(I));},eraseAttackInfo:function(){Information.fill("damage","");},insertIcon:function(D,B){if(D==null){return ;}var C=$("imagePath").value+"/Icons/"+B+".gif";var A=new Element("img",{src:C,alt:"",title:""});D.appendChild(A);},fillStrongAgainst:function(B){var C=Information.getStrongElements(B);var A=Information.findWeakerUnits(C);Information.renderImages(A,"strongAgainst");},fillWeakerAgainst:function(B){var C=[B.level,B.type,B.category];var A=Information.findStrongerUnits(C);Information.renderImages(A,"weakerAgainst");},findWeakerUnits:function(C){var B=[];var A=["level","type","category"];boardInformation.enemyUnits.each(function(D,E){A.each(function(H,F){var G=Unit[D][H];if(C.contains(G)){B.include(D);}});});return B;},findStrongerUnits:function(A){var B=[];boardInformation.enemyUnits.each(function(C,D){for(var E in Unit[C].attackTargets){if(A.contains(E)){B.include(C);break;}}});return B;},getStrongElements:function(A){var C=[];for(var B in A.attackTargets){C.include(B);}return C;},renderImages:function(C,B){var A=$(B);A.empty();C.each(function(E,D){Information.renderUnitImage(E,A);});},renderUnitImage:function(H,B){var A=Unit[H].name;var E=$("imagePath").value;var F=E+"/Units/"+A.toLowerCase()+".png";var G=new Element("img",{src:F,title:name,alt:name,"class":"unitSmall"});var D="../Manual.aspx?path=Unit/"+A+".aspx";var C=new Element("a",{href:D});C.adopt(G);B.adopt(C);},renderUnitImageForManual:function(H,B){var A=Unit[H].name;var E=$("imagePath").value;var F=E+"/Units/"+A.toLowerCase()+".png";var G=new Element("img",{src:F,title:name,alt:name,"class":"unitSmall"});var D="../Manual.aspx?path=Unit/"+A+".aspx";var C=new Element("a",{href:D});C.adopt(G);B.adopt(C);},renderImage:function(B,A,F,G){var C=$("imagePath").value;if(G.length==0){G="/";}else{G="/"+G+"/";}var D=C+G+B.toLowerCase()+"."+F;var E=new Element("img",{src:D,title:B,"class":"unitSmall"});A.adopt(E);},fillCalculator:function(C,D,A){if(A<0||A>C.range){A=C.range;}var B=$("elementSelectedImg");B.empty();Information.renderImage(C.name,B,"png","Units");$("elementSelectedQuantInput").value=D;$("elementSelectedRangeInput").value=A;$("enemyElements").getElements("div").each(function(F){var E=F.childNodes;if(E.length==2){Information.fillElementDestroyed(E,F,C,D,A);}});},fillElementDestroyed:function(B,K,J,D,F){var H=B[0].getAttribute("type");var G=Unit[H];var C=J.getAttack(G,boardInformation.terrain)*D;var E=G.getDefense(J,boardInformation.terrain);C=AttackUtils.calculatePenaltyByDistance(Math.round(C),F);var I=Math.round((C/E)-0.5);var A=B[1];A.empty();if(I>10000){A.appendText("9999+");}else{A.appendText(I);}},getCalculatorSelectElementUnit:function(){var A=$("elementSelectedImg").getFirst().getAttribute("title").toLowerCase();return Unit[A];},fillCalculatorEvent:function(B,E){E.stop();var F=parseInt(B.value);var A=$("elementSelectedRangeInput").value;var D=B.value.length;if(isNaN(F)||D>4){Information.eraseLastChar(B,D);}else{if(D!=0){var C=Information.getCalculatorSelectElementUnit();Information.fillCalculator(C,F,A);}}},fillCalculatorRangeEvent:function(B,E){E.stop();var F=$("elementSelectedQuantInput").value;var A=parseInt(B.value);var D=B.value.length;if(isNaN(A)||D>1){Information.eraseLastChar(B,D);}else{if(D!=0){var C=Information.getCalculatorSelectElementUnit();Information.fillCalculator(C,F,A);}}},eraseLastChar:function(A,B){if(B!=0){A.value=A.value.substring(0,B-1);}}};var HowTo={moveImg:"arrow",attackImg:"enemy",dummyUnit:"rain",renderCenter:function(A,C){var B=$(C);B.empty();Information.renderUnitImage(A,B,"Units");},renderGifImage:function(A,B){Information.renderImage(A,$(B),"gif","Battle");},front:function(A){HowTo.renderGifImage(HowTo.moveImg,A+"b");},clearAll:function(A){$(A+"a").empty();$(A+"b").empty();$(A+"c").empty();$(A+"d").empty();$(A+"e").empty();$(A+"f").empty();$(A+"g").empty();$(A+"h").empty();},none:function(A){},drop:function(A){},all:function(A){HowTo.renderGifImage(HowTo.moveImg,A+"a");HowTo.renderGifImage(HowTo.moveImg,A+"b");HowTo.renderGifImage(HowTo.moveImg,A+"c");HowTo.renderGifImage(HowTo.moveImg,A+"d");HowTo.renderGifImage(HowTo.moveImg,A+"e");HowTo.renderGifImage(HowTo.moveImg,A+"f");HowTo.renderGifImage(HowTo.moveImg,A+"g");HowTo.renderGifImage(HowTo.moveImg,A+"h");},diagonal:function(A){HowTo.renderGifImage(HowTo.moveImg,A+"a");HowTo.renderGifImage(HowTo.moveImg,A+"c");HowTo.renderGifImage(HowTo.moveImg,A+"f");HowTo.renderGifImage(HowTo.moveImg,A+"h");},normal:function(A){HowTo.renderGifImage(HowTo.moveImg,A+"b");HowTo.renderGifImage(HowTo.moveImg,A+"d");HowTo.renderGifImage(HowTo.moveImg,A+"e");HowTo.renderGifImage(HowTo.moveImg,A+"g");},resolveHowToMove:function(A){HowTo.clearAll("hm");HowTo.renderCenter(A.name.toLowerCase(),"hmcenter");HowTo[A.movementType]("hm");},resolveHowToAttack:function(A){HowTo.clearAll("ha");HowTo.renderCenter(A.name.toLowerCase(),"hag");if(A.canAttack){if(A.range==1){$("hacenter").empty();HowTo.renderGifImage(HowTo.attackImg,"hacenter");}else{HowTo.renderGifImage(HowTo.attackImg,"hab");HowTo.renderDummyUnit(A.catapult);}}},renderDummyUnit:function(A){if(A){HowTo.renderCenter(HowTo.dummyUnit,"hacenter");}else{$("hacenter").empty();}}};if(window.AttackUtils==null){window.AttackUtils={getAttack:null,getDefense:null};}var Unit={egg:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Egg",code:"eg",category:"Light",baseAttack:0,attackCost:1,baseDefense:1,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:0,movementCost:0,movementType:"none",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},eg:function(){return Unit.egg;},flag:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Flag",code:"fg",category:"Special",baseAttack:1,attackCost:1,baseDefense:10000,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},fg:function(){return Unit.flag;},kahuna:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Kahuna",code:"kh",category:"Medium",baseAttack:1000,attackCost:1,baseDefense:1300,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:2,movementCost:2,movementType:"all",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{Terrest:400,Air:400},rangeTargets:{}},kh:function(){return Unit.kahuna;},interceptor:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Interceptor",code:"it",category:"Light",baseAttack:100,attackCost:1,baseDefense:100,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:true,bomb:false,range:1,movementCost:1,movementType:"diagonal",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},it:function(){return Unit.interceptor;},spider:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Spider",code:"sp",category:"Medium",baseAttack:1800,attackCost:1,baseDefense:2200,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:true,bomb:false,range:3,movementCost:2,movementType:"all",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},sp:function(){return Unit.spider;},heavyseeker:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"HeavySeeker",code:"hr",category:"Heavy",baseAttack:2500,attackCost:1,baseDefense:2200,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:5,movementCost:4,movementType:"diagonal",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},hr:function(){return Unit.heavyseeker;},hiveprotector:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"HiveProtector",code:"hp",category:"Medium",baseAttack:1000,attackCost:1,baseDefense:4500,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:3,movementCost:2,movementType:"normal",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},hp:function(){return Unit.hiveprotector;},darktaurus:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"DarkTaurus",code:"dt",category:"Heavy",baseAttack:6800,attackCost:1,baseDefense:3500,strikeBack:false,catapult:false,triple:true,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:3,movementCost:4,movementType:"front",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},dt:function(){return Unit.darktaurus;},toxic:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Toxic",code:"tx",category:"Light",baseAttack:450,attackCost:1,baseDefense:600,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:2,movementCost:1,movementType:"normal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Organic:1000},defenseTargets:{},rangeTargets:{}},tx:function(){return Unit.toxic;},darkrain:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"DarkRain",code:"dr",category:"Light",baseAttack:190,attackCost:1,baseDefense:20,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Heavy:600},defenseTargets:{},rangeTargets:{}},dr:function(){return Unit.darkrain;},stinger:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Stinger",code:"sg",category:"Medium",baseAttack:500,attackCost:1,baseDefense:1000,strikeBack:false,catapult:false,triple:false,replicator:true,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:2,movementCost:2,movementType:"all",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{Light:1000},defenseTargets:{},rangeTargets:{}},sg:function(){return Unit.stinger;},raptor:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Raptor",code:"rp",category:"Light",baseAttack:280,attackCost:1,baseDefense:400,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:2,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Light:1000},defenseTargets:{},rangeTargets:{}},rp:function(){return Unit.raptor;},bozer:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Bozer",code:"bz",category:"Heavy",baseAttack:3200,attackCost:1,baseDefense:2800,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:5,movementCost:4,movementType:"front",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Air:4000},defenseTargets:{},rangeTargets:{}},bz:function(){return Unit.bozer;},blinker:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Blinker",code:"bk",category:"Ultimate",baseAttack:1000000,attackCost:6,baseDefense:1000000,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:4,movementCost:6,movementType:"none",level:"Air",type:"Mechanic",canAttack:false,coolDown:"9",attackTargets:{},defenseTargets:{},rangeTargets:{}},bk:function(){return Unit.blinker;},panther:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Panther",code:"p",category:"Light",baseAttack:300,attackCost:1,baseDefense:300,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},p:function(){return Unit.panther;},queen:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Queen",code:"q",category:"Ultimate",baseAttack:1000000,attackCost:6,baseDefense:1000000,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:4,movementCost:6,movementType:"drop",level:"Air",type:"Organic",canAttack:false,coolDown:"9",attackTargets:{},defenseTargets:{},rangeTargets:{}},q:function(){return Unit.queen;},rain:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Rain",code:"r",category:"Light",baseAttack:120,attackCost:1,baseDefense:70,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Heavy:1200},defenseTargets:{},rangeTargets:{}},r:function(){return Unit.rain;},samurai:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Samurai",code:"s",category:"Light",baseAttack:150,attackCost:1,baseDefense:450,strikeBack:false,catapult:true,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:2,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},s:function(){return Unit.samurai;},taurus:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Taurus",code:"t",category:"Heavy",baseAttack:5000,attackCost:1,baseDefense:6800,strikeBack:false,catapult:false,triple:true,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:3,movementCost:4,movementType:"front",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},t:function(){return Unit.taurus;},seeker:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Seeker",code:"sk",category:"Light",baseAttack:100,attackCost:1,baseDefense:40,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{Medium:500},defenseTargets:{},rangeTargets:{}},sk:function(){return Unit.seeker;},vector:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Vector",code:"v",category:"Medium",baseAttack:2000,attackCost:1,baseDefense:1200,strikeBack:false,catapult:true,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:4,movementCost:3,movementType:"normal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},v:function(){return Unit.vector;},worm:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Worm",code:"w",category:"Medium",baseAttack:1200,attackCost:1,baseDefense:1200,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:3,movementCost:2,movementType:"all",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},w:function(){return Unit.worm;},pretorian:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Pretorian",code:"h",category:"Medium",baseAttack:450,attackCost:1,baseDefense:5550,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:3,movementCost:2,movementType:"diagonal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},h:function(){return Unit.pretorian;},darkcrusader:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"DarkCrusader",code:"dc",category:"Heavy",baseAttack:2800,attackCost:1,baseDefense:2000,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:6,movementCost:4,movementType:"front",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},dc:function(){return Unit.darkcrusader;},kamikaze:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Kamikaze",code:"k",category:"Medium",baseAttack:4000,attackCost:1,baseDefense:1,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},k:function(){return Unit.kamikaze;},maggot:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Maggot",code:"m",category:"Light",baseAttack:500,attackCost:1,baseDefense:1000,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:true,range:1,movementCost:1,movementType:"all",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},m:function(){return Unit.maggot;},nova:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Nova",code:"n",category:"Heavy",baseAttack:2700,attackCost:1,baseDefense:1900,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:5,movementCost:4,movementType:"normal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Organic:4000},defenseTargets:{},rangeTargets:{}},n:function(){return Unit.nova;},anubis:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Anubis",code:"a",category:"Light",baseAttack:200,attackCost:1,baseDefense:500,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:1,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{Heavy:1600},rangeTargets:{}},a:function(){return Unit.anubis;},blackwidow:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"BlackWidow",code:"b",category:"Heavy",baseAttack:2500,attackCost:1,baseDefense:2100,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:true,paralyse:true,bomb:false,range:4,movementCost:3,movementType:"all",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},b:function(){return Unit.blackwidow;},crusader:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Crusader",code:"c",category:"Heavy",baseAttack:2400,attackCost:1,baseDefense:2200,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:6,movementCost:4,movementType:"front",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},c:function(){return Unit.crusader;},driller:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Driller",code:"d",category:"Medium",baseAttack:1500,attackCost:1,baseDefense:1500,strikeBack:false,catapult:false,triple:true,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:1,movementCost:2,movementType:"all",level:"Ground",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},d:function(){return Unit.driller;},eagle:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Eagle",code:"e",category:"Medium",baseAttack:1100,attackCost:1,baseDefense:1200,strikeBack:false,catapult:true,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:3,movementCost:2,movementType:"diagonal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{Medium:400},defenseTargets:{Heavy:400},rangeTargets:{}},e:function(){return Unit.eagle;},fenix:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Fenix",code:"f",category:"Heavy",baseAttack:2500,attackCost:1,baseDefense:2950,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:4,movementCost:3,movementType:"normal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},f:function(){return Unit.fenix;},scarab:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Scarab",code:"sc",category:"Medium",baseAttack:1900,attackCost:1,baseDefense:2300,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:2,movementCost:1,movementType:"front",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},sc:function(){return Unit.scarab;},doomer:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Doomer",code:"doo",category:"Heavy",baseAttack:6000,attackCost:1,baseDefense:500,strikeBack:false,catapult:true,triple:false,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:3,movementCost:3,movementType:"diagonal",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},doo:function(){return Unit.doomer;},destroyer:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Destroyer",code:"dy",category:"Medium",baseAttack:1100,attackCost:1,baseDefense:500,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:true,range:1,movementCost:2,movementType:"all",level:"Air",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},dy:function(){return Unit.destroyer;},battlemoon:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"BattleMoon",code:"bm",category:"Ultimate",baseAttack:1000000,attackCost:6,baseDefense:1000000,strikeBack:false,catapult:true,triple:false,replicator:false,removeAbility:false,rebound:true,infestation:false,paralyse:false,bomb:false,range:4,movementCost:5,movementType:"none",level:"Air",type:"Mechanic",canAttack:true,coolDown:"9",attackTargets:{},defenseTargets:{},rangeTargets:{}},bm:function(){return Unit.battlemoon;},hiveking:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"HiveKing",code:"hk",category:"Heavy",baseAttack:4000,attackCost:1,baseDefense:3200,strikeBack:false,catapult:false,triple:false,replicator:false,removeAbility:true,rebound:false,infestation:true,paralyse:false,bomb:false,range:4,movementCost:3,movementType:"normal",level:"Ground",type:"Organic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},hk:function(){return Unit.hiveking;},krill:{getAttack:AttackUtils.getAttack,getDefense:AttackUtils.getDefense,name:"Krill",code:"kr",category:"Medium",baseAttack:1500,attackCost:1,baseDefense:1000,strikeBack:true,catapult:false,triple:false,replicator:false,removeAbility:false,rebound:false,infestation:false,paralyse:false,bomb:false,range:3,movementCost:2,movementType:"all",level:"Air",type:"Mechanic",canAttack:true,coolDown:"0",attackTargets:{},defenseTargets:{},rangeTargets:{}},kr:function(){return Unit.krill;},dummy:function(){}};String.prototype.replaceAll=function(D,A){var B=this;var C=B.indexOf(D);while(C>-1){B=B.replace(D,A);C=B.indexOf(D);}return(B);};var mouseOverElement;var currentEnemy;var Utils={numberOfPlayers:function(){return $("numberOfPlayers").value;},getTdElements:function(){if(Utils.numberOfPlayers()==2){return $("board2").getElements("td");}return $("board4").getElements("td");},getBattleDiv:function(){if(Utils.numberOfPlayers()==2){return $("battle");}return $("battle4");},hasMoves:function(){return $("moves").getText()==0;},getQuantityElement:function(){return $("quantity");},getQuantity:function(){return Number($("quantity").value);},isSrcShip:function(A){if(A.hasChildNodes()){if(A.id.indexOf("_")==-1){return true;}}return false;},canMoveOverPositioning:function(D,B){Utils.hideImage("cannotMove");if(lastSelection!=null){if(lastSelection.id==D){return false;}mouseOverElement=Utils.getItem($(D));if(!Utils.coordinateValid(D)){return false;}if(mouseOverElement.isSource()){if(lastSelection.getImageName()==mouseOverElement.id){return true;}}else{var A=D.split("_");var C;if(Utils.numberOfPlayers()==2){C=A[0]==7||A[0]==8;}else{C=A[0]==11||A[0]==12;}if(C){if(mouseOverElement.hasChildNodes()){if(!lastSelection.equals(mouseOverElement)){mouseOverElement.setClass("cannotMoveAbove");return false;}mouseOverElement.setClass("canMoveAbove");}else{mouseOverElement.setClass("canMove");}return true;}}}return false;},coordinateValid:function(A){if(A=="1_1"||A=="1_2"||A=="1_11"||A=="1_12"||A=="2_1"||A=="2_2"||A=="2_11"||A=="2_12"||A=="11_1"||A=="11_2"||A=="11_11"||A=="11_12"||A=="12_1"||A=="12_2"||A=="12_11"||A=="12_12"){return false;}return true;},systemCoordinateValid:function(A){return A!=NaN&&A>=1&&A<=37;},sectorCoordinateXValid:function(A){return A!=NaN&&A>=1&&A<=7;},sectorCoordinateYValid:function(A){return A!=NaN&&A>=1&&A<=10;},canMoveOver:function(E,C){Utils.hideImage("enemy");Utils.hideImage("cannotMove");Information.eraseAttackInfo();Information.fillByElement(E.node);if(lastSelection!=null){if(lastSelection.id==E.id){return false;}mouseOverElement=E;var A=E.id.split("_");var D=mouseOverElement.isEnemyUnit();if(D&&AttackUtils.canAttack(A)){currentEnemy=mouseOverElement;Utils.showImage(mouseOverElement,"enemy",C);return false;}if(Utils.invalidBlink(E)){return false;}if(Utils.canBlink(A)||Utils.canMove(A)||lastSelection.isQueen()){var B=mouseOverElement.isFriendlyUnit();if(D||B){Utils.showImage(mouseOverElement,"cannotMove",C);return false;}if(mouseOverElement.hasChildNodes()&&!lastSelection.equals(mouseOverElement)){Utils.showImage(mouseOverElement,"cannotMove",C);return false;}if(lastSelection.isQueen()){if(E.canDeployEgg()){mouseOverElement.setClass("canMove");return true;}Utils.showImage(mouseOverElement,"cannotMove",C);return false;}mouseOverElement.setClass("canMove");return true;}}return false;},canMoveOut:function(){if(mouseOverElement!=null){if(Utils.numberOfPlayers()==2||(Utils.numberOfPlayers()==4&&Utils.coordinateValid(mouseOverElement.id))){if(!mouseOverElement.isEnemyUnit()&&!mouseOverElement.isFriendlyUnit()&&!Utils.overCurrentElement()){mouseOverElement.setClass("");}mouseOverElement=null;}}},overCurrentElement:function(){if(lastSelection!=null&&lastSelection.id==mouseOverElement.id){return true;}if(blinkSelection!=null&&blinkSelection.id==mouseOverElement.id){return true;}return false;},canMove:function(D){if(blinkSelection!=null){return false;}var B=lastSelection.unit().movementType;if(B==""){return false;}var C=lastSelection.id.split("_");var A=movesObj[B](C,D);if(Utils.numberOfPlayers()==4){return A&&Utils.coordinateValid(mouseOverElement.id);}return A;},canBlink:function(B){var A=lastSelection.id.split("_");return blinkSelection!=null&&movesObj.blink(A,B);},invalidBlink:function(A){return blinkSelection!=null&&Utils.numberOfPlayers()==2&&A.id=="9_9";},registerMove:function(C,D,B,A){$("movesMade").value+="m:"+C.id+"-"+D.id+"-"+B+"-"+A+";";},registerBlink:function(C,D,B,A){$("movesMade").value+="bk:"+C.id+"-"+D.id+"-"+B+"-"+A+";";},registerEgg:function(A){$("movesMade").value+="e:"+A.id+";";},registerAttack:function(A,B){$("movesMade").value+="b:"+A.id+"-"+B.id+";";},registerRotation:function(C,B,A){$("movesMade").value+="r:"+C.id+"-"+B+"-"+A+";";},createSpecialMoveImage:function(E,B,D){var C=E.node.getFirst().title;var A=new Element("img",{id:B,src:D,title:C});A.inject($("battle"));Utils.showImage(E,B);return A;},initSpecialMoveImages:function(C){if($("battle").hasClass("preview")){return ;}for(var A in BattleElements){var B=Utils.getItem($(A));var D=BattleElements[A];if(D.paralysed!=null){Utils.createParalyseImage(A,B,C);}if(D.infestated==true){Utils.createInfestationImage(A,B);}}},createParalyseImage:function(B,D,C){var A=Utils.createSpecialMoveImage(D,B+"paralysed",Utils.resolveBattleImage("Paralyse"));if(!Battle.isSpectator()){A.addEvent("click",function(E){if(lastSelection!=null){Battle.selected($(this.parentId),E);return ;}if(C){RaiseError.paralysed();}});}},createInfestationImage:function(B,C){var A=Utils.createSpecialMoveImage(C,B+"infestated",Utils.resolveBattleImage("Infestation"));if(!Battle.isSpectator()){A.parentId=B;A.addEvent("click",function(D){Battle.selected($(this.parentId),D);});}},updateSpecialEffectsImages:function(A,C){var B=BattleElements[C.id];if(B.infestated==true){$(A.id+"infestated").dispose();Utils.createInfestationImage(C.id,C);}},getAbsX:function(A){return parseInt(A.x)?A.x:Utils.getAbsPos(A,"Left");},getAbsY:function(A){return parseInt(A.y)?A.y:Utils.getAbsPos(A,"Top");},getAbsPos:function(A,B){iPos=0;while(A!=null){iPos+=A["offset"+B];A=A.offsetParent;}return iPos;},hideImage:function(A){$(A).className="invisible";},showImage:function(D,C,B){var E=D.node;var A=$(C);x=Utils.getAbsX(E);y=Utils.getAbsY(E);A.style.left=x+2+"px";A.style.top=y+2+"px";A.className="visible";if(B!=null){B.cancelBubble=true;}},getItem:function(A){var B=A.item;if(B==null){B=new Item(A);A.item=B;}return B;},hasChilds:function(A){return A.hasChildNodes()&&A.getFirst().get("tag")!="span";},queryString:function(B){B=B.toLowerCase();var A=window.location.search.substring(1).toLowerCase();var E=A.split("&");for(var D=0;D<E.length;++D){var C=E[D].split("=");if(C[0]==B){return C[1];}}},resetSelection:function(A){if(A!=null){A.setClass("");}if(lastSelection!=null){lastSelection.setClass("");lastSelection=null;}},ajaxRequest:function(E,A,B,D){log.profile("ajaxRequest");if(B){Utils.setLoadingElement(B);}var C=new Request.HTML({url:A,method:E,update:B,onComplete:D,cache:false});if(Browser.Engine.trident){C.setHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");}C.send();},setLoadingElement:function(B){var A=B.offsetWidth;var C=B.offsetHeight;var D=B.getCoordinates();var E=new Element("div",{id:"loading",styles:{width:A,height:C,left:D.left,top:D.top}});E.inject(B);E.innerHTML="<div></div>";},insertTip:function(B,D,C){var A=new Tips(B,{initialize:function(){},onShow:function(E){Utils.hideAllTips();E.set({styles:{opacity:1}});},onHide:function(E){E.set({styles:{opacity:0}});}});B.store(D,C);B.store("tip:title",D);B.store("tip:text",C);B.tip=A;},updateTip:function(A,B){A.store("tip:text",B);},insertFixedTip:function(B,D,C){var A=new Tips(B);B.store(D,C);B.store("tip:title",D);B.store("tip:text",C);},hideAllTips:function(){$$(".tip-top").each(function(A){A.getParent().set({styles:{opacity:0}});});},getForm:function(){var A=$(document.forms[0]);if(A==null){throw ("No Form Found!");}return A;},doAction:function(B,E,D,A){var C=Utils.getForm();if(true==A&&!Message.raiseConfirm("AreYouSure")){return ;}C.doAction_type.value=B;C.doAction_action.value=E;C.doAction_data.value=D;C.submit();},checkAndNotifyStringNotEmpty:function(A){if(A==null||A==""){Message.raiseAlert("NoInputProvided");return false;}return true;},resolveUnitImage:function(A){return $("imagePath").value+"/Units/"+A+".png";},resolveBattleImage:function(A){return $("imagePath").value+"/Battle/"+A+".png";},resolveResourceImage:function(A){return $("imagePath").value+"/Resources/"+A+"Small.png";},resolveFacilitiesImage:function(B,A){return $("imagePath").value+"/Planets/"+B+"/"+A+"R.png";},resolveImage:function(A){var B=Unit[A.toLowerCase()];if(B!=null){return Utils.resolveUnitImage(A);}return Utils.resolveResourceImage(A);},deleteAllMessages:function(){if(!Message.raiseConfirm("AreYouSure")){return ;}var C="Ajax/Utils/Messages.ashx?Action=DeleteAll";var G=$("deleteAllMessages");G.oldColor=G.getStyle("color");G.oldHref=G.href;G.setStyle("color","#ADADAD");G.href="#";Utils.ajaxRequest("get",C,null,Utils.afterDeleteAllMessages);var H=$(document.body).getElements(".message");var F=null;for(var D=0;D<H.length;++D){F=H[D].getParent();H[D].dispose();}if(F==null){return ;}var A=new Element("tr",{styles:{opacity:0}});var B=new Element("td",{html:Language.getToken("NoMessages")});A.inject(F);B.inject(A);var E=new Fx.Tween(A,{property:"opacity",duration:1000});E.start(1);},afterDeleteAllMessages:function(){var A=$("deleteAllMessages");A.setStyle("color",A.oldColor);A.href=A.oldHref;},redirectToPlayerPage:function(A){window.location=$("path").value+"PlayerInfo.aspx?PlayerStorage="+A;},createFrame:function(E,G,B,F,I){var A=new Element("div",{id:E});A.addClass("iframeWindow");var D=new Fx.Tween(A,{property:"opacity",duration:1000});var K=window.getSize();var C=(K.x-900)/2;var J=(K.y-500)/2;A.setStyles({left:C,top:J,opacity:0,width:B});A.callback=I;var H="<div class='iframeHeader'>";H+="<div class='iframeButton' onclick='Utils.closeFrame(\""+E+"\");'></div>";H+="<div class='iframeTitle'>"+Language.getToken(G);+"</div>";H+="</div>";A.innerHTML=H;F.inject(A);A.inject($(document.body));D.start(1);return A;},closeFrame:function(A){var B=$(A);if(B.callback!=null){B.callback();}B.dispose();},createIFrame:function(B,C,E,D,G,F){var A=new Element("iframe",{src:C,frameborder:0,marginheight:0,marginwidth:0,width:D,height:G});Utils.createFrame(B,E,D,A,F);},changeOrionsPlan:function(D,B){var C=D.options[D.selectedIndex];var F=C.value;var A=$("scale");if(A!=null){A.value=F;}if(window.shopItemsScale!=null){var E=window.shopItemsScale[B];if(F==1){E=Math.ceil(E/3+E/10);E=Math.round(E/10)*10;}$(B+"Cost").innerHTML=E;}},getTimeFromTicks:function(E){var C=$("millisPerTick").value*E;var B=new Date(C);var H=B.getDay();var G=C/86400000;var A=B.getHours();var D=B.getMinutes();var F="";if(G>1){F+=Math.floor(G)+"d ";}if(A>0){F+=A+"h ";}if(D>0){F+=D+" m";}return F;},showAddUserMedals:function(){var A=$("userMedals");A.getElements("dd").each(function(B){B.setStyle("display","block");});},searchPlayer:function(A){var C="/";var B=$("path");if(B!=null){C=B.value;}window.location=C+"SearchPlayers.aspx?Name="+escape(A);}};if($("imagePath")){var unitPath=$("imagePath").value+"/Units/";}function Item(A){this.id=A.id;this.node=A;this.hasAttacked=false;this.space="span";this.x=function(){return this.id.split("_")[0];};this.y=function(){return this.id.split("_")[1];};this.isSpace=function(){return this.node.firstChild.nodeName.toLowerCase()==this.space;};this.insertSpace=function(){var B=document.createElement(this.space);this.node.appendChild(B);};this.getChildId=function(){return this.node.firstChild.id;};this.getQuantity=function(){return Number(this.node.firstChild.title);};this.setQuantity=function(B){this.node.firstChild.title=B;};this.unitName=function(){return this.node.firstChild.alt;};this.unit=function(){return Unit[this.unitName()];};this.movementCost=function(){return Unit[this.node.firstChild.alt].movementCost;};this.insert=function(C,F,E){this.setClass("");if(!this.hasChildNodes()){this.node.empty();var B=C.getImageElement();var D=document.createElement("img");D.src=C.getImage();D.id=C.getChildId();D.title=F;D.alt=C.unitName();this.resolveEnemy(D,B);this.resolveFriendly(D,B);this.resolveInfestation(D,B);this.node.appendChild(D);}else{this.setQuantity(Number(this.getQuantity())+Number(F));}};this.insertSpecific=function(C,F,E){this.setClass("");if(!this.hasChildNodes()){this.node.empty();var B=C.name.toLowerCase();var D=new Element("img");D.src=Utils.resolveUnitImage(B);D.title=F;D.alt=B;this.node.appendChild(D);}};this.resolveEnemy=function(C,D){var B=D.getAttribute("isEnemy");if(B!=null){C.setAttribute("isEnemy",B);if(B=="true"){this.node.addClass("enemyBorder");}}};this.resolveFriendly=function(C,D){var B=D.getAttribute("isFriendly");if(B!=null){C.setAttribute("isFriendly",B);}};this.resolveInfestation=function(C,D){var B=D.getAttribute("isInfestated");if(B!=null){C.setAttribute("isInfestated",B);}};this.setClass=function(B){this.node.className=B;};this.getClass=function(){return this.node.className;};this.removeAll=function(){this.node.empty();this.setClass("");this.insertSpace();};this.hasChildNodes=function(){return this.node.hasChildNodes()&&!this.isSpace();};this.getImage=function(){return this.getImageElement().src;};this.getImageElement=function(){return this.node.firstChild;};this.getImageName=function(){var B=this.getImage();var D=B.split("/");var C=D[D.length-1].split(".");return C[0];};this.getCleanImageName=function(){var B=this.getImageName();var C=B.split("_");return C[0].toLowerCase();};this.getPosition=function(){var B=this.getImageName();var C=B.split("_");return C[1];};this.setPosition=function(C){var D=this.getCleanImageName();var B=unitPath+D+"_"+C+".png";this.node.firstChild.src=B;};this.equals=function(B){return B.unitName()==this.unitName();};this.isUltimateUnit=function(){var B=A.getFirst().getAttribute("isUltimate");return B=="true";};this.isSource=function(){return this.id.split("_").length==1;};this.parseBollAttr=function(B){if(this.hasChildNodes()){var C=this.node.firstChild;return C.getAttribute(B)=="true";}return false;};this.isEnemyUnit=function(){return this.parseBollAttr("isEnemy");};this.isFriendlyUnit=function(){return this.parseBollAttr("isFriendly");};this.isInfestated=function(){return this.parseBollAttr("isinfestated");};this.checkEffects=function(){var B=BattleElements[this.id];if(B){if(B.paralysed){RaiseError.paralysed();return true;}}return false;};this.isBlinker=function(){return this.unitName()=="blinker";};this.isQueen=function(){return this.unitName()=="queen";};this.canDeployEgg=function(){var B=this.id.split("_");return B[0]==7||B[0]==8;};}var Message={raiseAlert:function(B){var A=Language.getToken(B);var C=A;alert(C);},raiseConfirm:function(B){var A=Language.getToken(B);return confirm(A);},messageCallBack:function(C,A,D,B){if(D!=""){Message.raiseAlert(D);}}};var RaiseError={alreadyAttacked:function(){Message.raiseAlert("AlreadyAttacked");},invalidQuantity:function(){Message.raiseAlert("QuantityError");},attackFirstMove:function(){Message.raiseAlert("AttackFirstMove");},moves:function(){Message.raiseAlert("Moves");},ultimateUnitAttack:function(){Message.raiseAlert("UltimateUnitAttack");},unitsNotPositioned:function(A){Message.raiseAlert("UnitsNotPositioned");},minimumMove:function(B,A,C){Message.raiseAlert("MinimumMove");},minimumRest:function(C,A,B){Message.raiseAlert("MinimumRest");},noMovesToSplit:function(C){var B=Language.getToken("NoMovesToSplit");var A=Language.getToken("NoMovesToSplit2");alert(B+" "+C+" "+A);},paralysed:function(){Message.raiseAlert("Paralysed");},coolDown:function(){Message.raiseAlert("CoolDown");},fleetInBattle:function(){Message.raiseAlert("FleetInBattle");},cantPassWormHoles:function(){Message.raiseAlert("FleetCantPassWormHole");},deploySaved:function(){Message.raiseAlert("DeploySaved");},deployLoaded:function(){Message.raiseAlert("DeployLoaded");},noDeploySaved:function(){Message.raiseAlert("NoDeploySaved");},unloadCargoFleetInBattle:function(){Message.raiseAlert("UnloadCargoFleetInBattle");},dropCargoFleetInBattle:function(){Message.raiseAlert("DropCargoFleetInBattle");},invalidCoordinate:function(){Message.raiseAlert("InvalidCoordinate");},needToSelectAFleetFirst:function(){Message.raiseAlert("NeedToSelectAFleetFirst");},notDiscoveredCoordinate:function(){Message.raiseAlert("NotDiscoveredCoordinate");},fleetIsMoving:function(){Message.raiseAlert("FleetIsMoving");}};var undo=new Undo();function Undo(){this.undo=function(){var B=$("movesMade");if($("movesMade").value==""){return ;}var A=B.value.split(";");B.value="";for(var C=0;C<A.length-2;++C){B.value+=A[C]+";";}this.parseMove(A[A.length-2]);};this.reset=function(){var B=$("movesMade");if(B.value==""){return ;}var A=B.value.split(";");B.value="";for(var C=A.length-2;C>=0;--C){this.parseMove(A[C]);}};this.parseMove=function(B){var A=B.split(":");params=A[1].split("-");undo[A[0]](params);};this.m=function(E){var D=Utils.getItem($(E[0]));var H=Utils.getItem($(E[1]));var C=Number(E[2]);var A=E[3];var B=Number(H.getQuantity());var G=1;if(D.hasChildNodes()){D.setQuantity(D.getQuantity()+C);G=2;}else{D.removeAll();D.insert(H,C);}D.setPosition(A);var F=D.unit().movementCost*G;movesObj.incrementMoves(F);D.hasAttacked=H.hasAttacked;BattleElements[D.id]=BattleElements[H.id];Utils.updateSpecialEffectsImages(H,D);if(lastSelection!=null){lastSelection.setClass("");lastSelection=null;}if(B>C){H.setQuantity(B-C);}else{if(B==C||B<C){H.removeAll();H.insertSpace();H.node.item=null;delete BattleElements[H.id];}}};this.bk=function(E){var D=Utils.getItem($(E[0]));var F=Utils.getItem($(E[1]));var C=Number(E[2]);var A=E[3];var B=Number(F.getQuantity());if(D.hasChildNodes()){D.setQuantity(D.getQuantity()+C);}else{D.removeAll();D.insert(F,C);}D.setPosition(A);movesObj.incrementMoves(6);D.hasAttacked=F.hasAttacked;if(lastSelection!=null){lastSelection.setClass("");lastSelection=null;}BattleElements[D.id]=BattleElements[F.id];if(B>C){F.setQuantity(B-C);}else{if(B==C||B<C){F.removeAll();F.insertSpace();F.node.item=null;delete BattleElements[F.id];}}};this.e=function(A){var B=Utils.getItem($(A[0]));B.removeAll();movesObj.incrementMoves(6);};this.r=function(D){var C=Utils.getItem($(D[0]));var A=D[1];var B=D[2];C.setPosition(A);movesObj.incrementMoves(1);};this.b=function(B){var A=Utils.getItem($(B[0]));A.hasAttacked=false;movesObj.incrementMoves(A.unit().attackCost);};}var PositioningReset={reset:function(){if($("numberOfPlayers").value=="2"){PositioningReset.reset2();}else{PositioningReset.reset4();}},reset2:function(){Positioning.cleanSelected();for(var A=1;A<9;++A){PositioningReset.resetSector("7_"+A);PositioningReset.resetSector("8_"+A);}},reset4:function(){Positioning.cleanSelected();for(var A=3;A<11;++A){PositioningReset.resetSector("11_"+A);PositioningReset.resetSector("12_"+A);}},resetSector:function(D){var C=$(D);if(Utils.hasChilds(C)){var B=Utils.getItem(C);var A=new Item($(B.getImageName()));A.insert(B,B.getQuantity(),null);B.removeAll();B.node.item=null;}}};var Planet={start:function(){try{if(window.location.href.indexOf("#")>=0){Planet.onHistoryChanged(window.location.hash);}}catch(A){log.error(A);}},sendRequest:function(B){var A="../Ajax/Planets/Renderer.ashx?t="+new Date().getTime().toString();var D="/";for(var C in B){if(C!="CallBack"){A+="&"+C+"="+B[C];D+=C+"_"+B[C]+"/";}}if(B.CallBack==null){B.CallBack=Planet.planetInfoUpdater;}Site.HistoryManager.addState(D);Utils.ajaxRequest("get",A,$("planetContent"),B.CallBack);log.info(B.Panel);},onHistoryChanged:function(D){if($("planetContent")==null){return ;}if(D.indexOf("tutorial")>=0||D.indexOf("topView")>=0){return ;}D=D.replace("#","");log.debug("Hash: "+D);if(D==""||D=="/"){if(window.redirectToPlanet&&window.redirectToPlanet!=null){window.location="Default.aspx?Id="+window.redirectToPlanet;}else{window.location="Default.aspx?Id="+window.planetInfo.PlanetId;}return ;}var F=D.split("/");var C={};for(var B=0;B<F.length;++B){var E=F[B];if(E==""){continue;}var A=E.split("_");if(A[0]!="Action"){C[A[0]]=A[1];}}Planet.sendRequest(C);},destroyFacility:function(B,A){if(Message.raiseConfirm("ReallyDestroyFacility")){Planet.sendRequest({Planet:B,Panel:"Facilities",SlotName:A,Action:"Destroy"});}},upgradeFacility:function(B,A){Planet.sendRequest({Planet:B,Panel:"Facilities",SlotName:A,Action:"Upgrade"});},startBuildUnit:function(C,A){var B=$(A+"_Quantity").value;var D=parseInt(B);if(isNaN(D)){Message.raiseAlert("NaN");return ;}if(D<=0){Message.raiseAlert("MustBePositiveQuantity");return ;}Planet.sendRequest({Planet:C,Panel:"Units",Resource:A,Quantity:D,Action:"Build"});},startBuildFacility:function(C,A,B){Planet.sendRequest({Planet:C,Panel:"Facilities",SlotName:A,Resource:B,Action:"Build"});},createFleet:function(A){Fleet.sendRequest({Type:"change",Changes:Fleet.changeLog,CallBack:Planet.createFleetCallBack});},createFleetCallBack:function(){var A=$("fleetName").value;Planet.sendRequest({Planet:window.planetInfo.PlanetId,Panel:"Fleets",FleetName:A,CallBack:Planet.fleetCallBack,Action:"CreateFleet"});},cancelFacilityQueue:function(A,B){Planet.sendRequest({Planet:A,Panel:"Facilities",ResourceId:B,Action:"RemoveQueue"});},cancelUnitQueue:function(A,B){Planet.sendRequest({Planet:A,Panel:"Units",ResourceId:B,Action:"RemoveQueue"});},cancelFacilityProduction:function(A,B){if(!Message.raiseConfirm("YouWillLooseResources")){return ;}Planet.sendRequest({Planet:A,Panel:"Facilities",ResourceId:B,Action:"RemoveProduction"});},cancelUnitProduction:function(A,B){if(!Message.raiseConfirm("YouWillLooseResources")){return ;}Planet.sendRequest({Planet:A,Panel:"Units",ResourceId:B,Action:"RemoveProduction"});},changeName:function(B){var A=$("newPlanetName").value;log.debug("New Name:"+A);if(Utils.checkAndNotifyStringNotEmpty(A)){Planet.sendRequest({Planet:B,Panel:"Manage",Action:"ChangeName",NewName:A});}},abandonPlanet:function(A){if(Message.raiseConfirm("ReallyAbandonPlanet")){Planet.sendRequest({Planet:A,Panel:"Manage",Action:"AbandonPlanet"});}},getQueue:function(A){Planet.sendRequest({Planet:A,Panel:"Queue"});},toHome:function(A){Planet.sendRequest({Planet:A,Panel:"Facilities"});},toUnits:function(A){Planet.sendRequest({Planet:A,Panel:"Units"});},toPanel:function(A,B){if(B=="Fleets"){Planet.toFleets(A);return ;}Planet.sendRequest({Planet:A,Panel:B});},toFleets:function(A){Planet.sendRequest({Planet:A,Panel:"Fleets",CallBack:Planet.fleetCallBack});},fleetCallBack:function(){Fleet.load();Planet.planetInfoUpdater();},planetInfoUpdater:function(){if(window.redirectToPlanet&&window.redirectToPlanet!=null){window.location="Default.aspx?Id="+window.redirectToPlanet;return ;}Planet.updatePlayerResources();var A=$("planetHeader");if(A!=null){A.innerHTML=window.planetInfo.PlanetName+" - "+window.planetInfo.PlanetLocation;A.href="javascript:Planet.toHome("+window.planetInfo.PlanetId+");";}var B=$("planetName"+window.planetInfo.PlanetId);if(B!=null){B.innerHTML=window.planetInfo.PlanetName;}UniverseUtils.removeAllToolTips();Planet.addTooltips();Tutorial.advance();pageTracker._trackPageview(window.location);log.profile("ajaxRequest");},updatePlayerResources:function(){var C=window.resourceList;if(C!=null){for(var B in C){var A=$(B);if(A!=null){A.innerHTML=window.resourceList[B];Planet.showHideElem(A,B,window.resourceList[B]);}}}},modRegex:/\w+Mod$/,showHideElem:function(A,B,C){if(!Planet.modRegex.test(B)){return ;}if(window.resourceList[B]==0){A.getParent().setStyles({display:"none"});}else{A.getParent().setStyles({display:"block"});}},build:function(B,A){Planet.sendRequest({Planet:B,Panel:"BuildFacility",SlotName:A});},upgrade:function(A,B){Planet.sendRequest({Planet:A,Panel:"UpgradeFacility",ResourceId:B});},unloadCargo:function(B,A,C){Planet.sendRequest({Planet:B,FleetId:A,Panel:"Fleets",Action:"UnloadFleet",CallBack:Fleet.load});},addTooltips:function(){var B=window.slotTips;if(B){for(var F in B){var D=$(F);var E=B[F];if(D!=null){if(E.b.l){var C="<ul>";C+="<li>"+Language.getToken("Level")+" "+E.b.l+"</li>";C+="<li>"+Language.getToken("State")+": "+Language.getToken(E.b.s)+"</li>";C+="</ul>";if(E.b.m!=""){C+="<p style='margin-top:10px;'>"+Language.getToken(E.b.m)+"</p>";}Utils.insertTip(D,Language.getToken(E.t),C);}else{var A=E.b;log.debug(E.l);if(E.l!=false){A=Language.getToken(E.b);}Utils.insertTip(D,Language.getToken(E.t),A);}}}}}};window.addEvent("domready",Site.startPlanet);function Attack(D,B,A,C){this.r=A;this.s_x=Number(D[0]);this.s_y=Number(D[1]);this.d_x=Number(B[0]);this.d_y=Number(B[1]);this.unit=C;this.checkPathVert=function(G,I,K){var F=BattleElements[this.s_x+"_"+this.s_y].hasAbility;var J=AttackUtils.ultimateUnitAttackCoord();if(G==J){G=J-1;}for(var E=I;E<K;++E){var H=Utils.getItem($(E+"_"+G));if(H.hasChildNodes()&&!(C.catapult&&F)){return false;}}return true;};this.checkPathHoriz=function(G,I,J){var F=BattleElements[this.s_x+"_"+this.s_y].hasAbility;for(var E=I;E<J;++E){var H=Utils.getItem($(G+"_"+E));if(H.hasChildNodes()&&!(C.catapult&&F)){return false;}}return true;};this.n=function(){var E=this.s_x-this.r;if(E<=0&&this.d_x==0&&this.d_y==0){return this.checkPathVert(this.s_y,this.d_x+1,this.s_x);}if(this.checkPathVert(this.s_y,this.d_x+1,this.s_x)){var F=this.d_x<this.s_x&&this.d_x>=E;if(this.s_y==AttackUtils.ultimateUnitAttackCoord()){return F;}return F&&this.s_y==this.d_y;}return false;};this.s=function(){var E=this.s_x+this.r;if(this.checkPathVert(this.s_y,this.s_x+1,this.d_x)){return this.d_x>this.s_x&&this.d_x<=E&&this.s_y==this.d_y;}return false;};this.w=function(){var E=this.s_y-this.r;if(this.checkPathHoriz(this.s_x,this.d_y+1,this.s_y)){return this.d_y<this.s_y&&this.d_y>=E&&this.s_x==this.d_x;}return false;};this.e=function(){var E=this.s_y+this.r;if(this.checkPathHoriz(this.s_x,this.s_y+1,this.d_y)){return this.d_y>this.s_y&&this.d_y<=E&&this.s_x==this.d_x;}return false;};}var Replay={currentTurn:0,currentMove:-1,space:"span",isTheEnd:function(){return movesList.length==Replay.currentTurn;},isTheBeginning:function(){return Replay.currentTurn<=0&&Replay.currentMove<0;},incrementTurn:function(){if(Replay.currentTurn<movesList.length){++Replay.currentTurn;}var A=$("turn");if(A!=null){A.innerHTML=Replay.currentTurn;}},decrementTurn:function(){if(Replay.currentTurn>0){--Replay.currentTurn;}$("turn").innerHTML=Replay.currentTurn;},forward:function(){Utils.hideImage("enemy");if(Replay.isTheEnd()){return ;}var A=movesList[Replay.currentTurn];if(A==""){Replay.incrementTurn();return ;}Replay.resolveForwarReplay(A);},resolveForwarReplay:function(C){var A=C.split(";");if(Replay.currentMove>=A.length-1){Replay.nextTurn();}else{var B=A[++Replay.currentMove];if(B!=""){Replay.parseMoveForward(B);}else{Replay.nextTurn();}}},backward:function(){Utils.hideImage("enemy");if(Replay.isTheBeginning()){return ;}if(Replay.currentMove<0){if(Replay.currentTurn>-1){Replay.previousTurn();return ;}}var B=movesList[Replay.currentTurn];if(B==""){Replay.decrementTurn();return ;}var A=B.split(";");Replay.parseMoveBackward(A[Replay.currentMove]);--Replay.currentMove;},nextTurn:function(){Replay.incrementTurn();Replay.currentMove=-1;Replay.loadCurrentTurn(0);},previousTurn:function(){Replay.loadCurrentTurn(1);Replay.decrementTurn();var D=movesList[Replay.currentTurn];if(D!=""){var A=D.split(";");for(var C=0;C<A.length;++C){var B=A[C];if(B!=""){Utils.hideImage("enemy");Replay.parseMoveForward(B);}}Replay.currentMove=A.length-2;}else{Replay.currentMove=-1;}},loadLastTurn:function(){Replay.currentTurn=movesList.length;Replay.currentMove=-1;Replay.loadCurrentTurn(0);},loadFirstTurn:function(){Replay.currentTurn=0;Replay.currentMove=-1;Replay.loadCurrentTurn(1);},loadCurrentTurn:function(H){Utils.hideImage("enemy");Replay.cleanBoard();var F=Replay.currentTurn-H;if(F<0){F=0;}var D=$("turn");if(D!=null){D.innerHTML=F;}var B=finalState[F];var C=$("playerId").value;var A=B.split(";");for(var E=0;E<A.length;++E){var G=A[E];if(G!=""){Replay.insertElement(G,C);}}},cleanBoard:function(){var B;if(Utils.numberOfPlayers()==2){B=$("board2").getElements("td");}else{B=$("board4").getElements("td");}var A=Utils.numberOfPlayers()==4;B.each(function(D){if(!(A&&!Utils.coordinateValid(D.id))){D.empty();var C=document.createElement(Replay.space);D.appendChild(C);D.className="";}});},insertElement:function(A,C){var G=A.split(":");var E=G[1].split("-");var H=Unit[E[0]]();var B=$(E[1]);var D=E[2];var F=E[3].toLowerCase();var I=document.createElement("img");I.src=unitPath+H.name+"_"+F+".png";I.title=D;I.alt=H.name.toLowerCase();B.empty();B.appendChild(I);if(G[0]!=C){if(Utils.numberOfPlayers()==2){B.className="enemyBorder";}else{B.className="enemyBorder"+G[0];}}},parseMoveForward:function(B){var A=B.split(":");params=A[1].split("-");Replay[A[0]](params);},parseMoveBackward:function(B){var A=B.split(":");params=A[1].split("-");Replay[A[0]+"b"](params);},m:function(F){var E=Utils.getItem($(F[0]));var H=Utils.getItem($(F[1]));var D=Number(F[2]);var A=Number(H.getQuantity());var C=Number(E.getQuantity());var G=1;if(H.hasChildNodes()){H.setQuantity(A+D);var B=C-D;if(B==0){Replay.clearItem(E);}else{E.setQuantity(B);}}else{if(C==D){H.removeAll();H.insert(E,D);H.setClass(E.getClass());Replay.clearItem(E);}else{H.insert(E,D);H.setClass(E.getClass());E.setQuantity(C-D);G=2;}}},bk:function(A){m(A);},r:function(C){var B=Utils.getItem($(C[0]));var A=C[2];B.setPosition(A);},b:function(B){var A=Utils.getItem($(B[0]));var C=Utils.getItem($(B[1]));A.hasAttacked=true;Utils.showImage(C,"enemy",null);},mb:function(F){var E=Utils.getItem($(F[0]));var H=Utils.getItem($(F[1]));var D=Number(F[2]);var C=Number(E.getQuantity());var A=Number(H.getQuantity());var G=1;if(E.hasChildNodes()){E.setQuantity(C+D);var B=A-D;if(B==0){Replay.clearItem(H);}else{H.setQuantity(B);}G=2;}else{if(A==D){E.removeAll();E.insert(H,D);E.setClass(H.getClass());Replay.clearItem(H);}else{E.insert(H,D);E.setClass(H.getClass());H.setQuantity(A-D);}}},rb:function(C){var B=Utils.getItem($(C[0]));var A=C[1];B.setPosition(A);},bb:function(B){var A=Utils.getItem($(B[0]));A.hasAttacked=false;var C=Utils.getItem($(B[1]));Utils.showImage(C,"enemy",null);},clearItem:function(A){A.removeAll();A.setClass("");A.insertSpace();A.node.item=null;}};function Moves(){this.moveElement=$("moves");this.none=function(A,B){return false;};this.all=function(D,F){var B=Number(D[0]);var A=Number(D[1]);var E=Number(F[0]);var C=Number(F[1]);if(E<=B+1&&E>=B-1){if(C<=A+1&&C>=A-1){return true;}}return false;};this.normal=function(D,F){var B=Number(D[0]);var A=Number(D[1]);var E=Number(F[0]);var C=Number(F[1]);if(E<=B+1&&E>=B-1&&A==C){return true;}if(C<=A+1&&C>=A-1&&B==E){return true;}return false;};this.front=function(A,B){return this[lastSelection.getPosition()](A,B);};this.blink=function(A,C){var B=Number(C[0]);return B>4;};this.diagonal=function(D,F){var B=Number(D[0]);var A=Number(D[1]);var E=Number(F[0]);var C=Number(F[1]);return E==B+1&&C==A+1||E==B-1&&C==A-1||E==B+1&&C==A-1||E==B-1&&C==A+1;};this.drop=function(A,B){};this.n=function(D,F){var B=Number(D[0]);var E=Number(F[0]);var A=Number(D[1]);var C=Number(F[1]);return E==B-1&&A==C;};this.s=function(D,F){var B=Number(D[0]);var E=Number(F[0]);var A=Number(D[1]);var C=Number(F[1]);return E==B+1&&A==C;};this.w=function(D,F){var A=Number(D[1]);var C=Number(F[1]);var B=Number(D[0]);var E=Number(F[0]);return C==A-1&&B==E;};this.e=function(D,F){var A=Number(D[1]);var C=Number(F[1]);var B=Number(D[0]);var E=Number(F[0]);return C==A+1&&B==E;};this.incrementMoves=function(B){var A=Number(this.moveElement.innerHTML);this.moveElement.innerHTML=A+B;};this.decrementMoves=function(B){var A=Number(this.moveElement.innerHTML);this.moveElement.innerHTML=A-B;};this.hasMoves=function(B){var A=Number(this.moveElement.innerHTML);if(A<B){RaiseError.moves();return false;}return true;};this.silentHasMoves=function(B){var A=Number(this.moveElement.innerHTML);if(A<B){return false;}return true;};this.hasValidMoves=function(B){var A=Number(this.moveElement.innerHTML);if(A<B){return false;}return true;};this.decrementMoves=function(B){var A=Number(this.moveElement.innerHTML);this.moveElement.innerHTML=A-B;};}var movesObj=new Moves();var lastSelection;var blinkSelection;var Battle={isSpectator:function(){var A=$("isSpectator");if(A==null){return true;}return A.value!=0;},start:function(){if(!Battle.isSpectator()){Battle.initTDElements();}Utils.initSpecialMoveImages(true);},initTDElements:function(){Utils.getTdElements().each(function(B){Battle.initTd(B);});Battle.initUltimateUnits();var A=$("reset");if(A){A.addEvent("click",function(B){undo.reset();});$("undo").addEvent("click",function(B){undo.undo();});$("submit").addEvent("click",function(B){Battle.submit();});}A=$("giveUp");if(A){A.addEvent("click",function(B){Battle.giveUp();});}if($("battleCalculator")){$("elementSelectedQuantInput").addEvent("keyup",function(B){Information.fillCalculatorEvent(this,B);});$("elementSelectedRangeInput").addEvent("keyup",function(B){Information.fillCalculatorRangeEvent(this,B);});}$("b").addEvent("click",function(B){Battle.setPosition("n");});$("d").addEvent("click",function(B){Battle.setPosition("w");});$("e").addEvent("click",function(B){Battle.setPosition("e");});$("g").addEvent("click",function(B){Battle.setPosition("s");});},initTd:function(A){A.addEvent("click",function(B){Battle.selected(this,B);});A.addEvent("mouseout",function(B){Utils.canMoveOut();});A.addEvent("mouseover",function(C){var B=Utils.getItem(this);Utils.canMoveOver(B,C);});},initUltimateUnits:function(){if(Utils.numberOfPlayers()==2){var A=$("0_0");if(A){Battle.initTd(A);}A=$("9_9");if(A){Battle.initTd(A);}}},initialChecksOk:function(A){if(A.isEnemyUnit()||A.isFriendlyUnit()){return false;}if(A.checkEffects()){return false;}if($("moves").innerHTML==0){if(lastSelection!=null){Utils.resetSelection(null);}return false;}if(A.hasAttacked){RaiseError.alreadyAttacked();return false;}return true;},selected:function(A,B){var C=Utils.getItem(A);if(!Battle.isBlinkerSelected()&&!Battle.initialChecksOk(C)){return ;}if(lastSelection==null){Battle.noneSelected(C);}else{if(Battle.sameSector(C)){Battle.clearSelected();Information.fixed=false;return ;}Battle.oneSelected(C,B);}},isBlinkerSelected:function(){return blinkSelection!=null||(lastSelection!=null&&lastSelection.isBlinker());},blinkerInRange:function(A){if(Battle.isBlinkerSelected()){return A.x()>4;}return true;},noneSelected:function(C){if(!C.hasChildNodes()){return ;}if(Battle.hasCoolDown(C)||!Battle.blinkerInRange(C)){return ;}C.setClass("selectedSector");var B=C.getQuantity();var A=$("quantity");A.value=B;A.focus();min=Math.round(0.5+(Number(B)*0.2));Information.fill("minquantity",min);Information.fill("maxquantity",B-min);Information.fillAll(C);lastSelection=C;Information.fixed=true;Tutorial.advance();},hasCoolDown:function(B){if(BattleElements){var A=BattleElements[B.id];if(A!=null&&A.coolDown>0){RaiseError.coolDown();return true;}}return false;},setPosition:function(B){if(lastSelection!=null&&lastSelection.getPosition()!=B&&movesObj.hasMoves(1)){var A=lastSelection.getPosition();lastSelection.setPosition(B);Utils.registerRotation(lastSelection,A,B);movesObj.decrementMoves(1);if(!movesObj.silentHasMoves(1)){Utils.resetSelection(null);}}},oneSelected:function(B,A){Information.fixed=false;var C=Battle.getCost();if(movesObj.hasMoves(C)){if(lastSelection.isQueen()){Battle.insertEgg(B,C,A);return ;}if(blinkSelection!=null||lastSelection.isBlinker()){Battle.blinkSelected(B,C,A);}else{if(Utils.canMoveOver(B,A)){Battle.moveUnit(B,C,A);}}}},blinkSelected:function(B,C,A){if(blinkSelection==null){blinkSelection=lastSelection;lastSelection=null;Battle.noneSelected(B);}else{if(B.id!=blinkSelection.id&&Battle.blinkerInRange(B)){Battle.moveUnit(B,C,A);Battle.clearBlinkSelected();}}},insertEgg:function(B,A){B.insertSpecific(Unit.egg,1);B.node.item=B;if(!B.hasChildNodes()){B.removeAll();}movesObj.decrementMoves(6);Utils.registerEgg(B);lastSelection.setClass("");lastSelection=null;},getCost:function(){if(blinkSelection!=null){return blinkSelection.movementCost();}return lastSelection.movementCost();},moveUnit:function(F,G,D){var E=lastSelection.getQuantity();var A=lastSelection.getPosition();var C=Utils.getQuantity();if(C<=E&&C>0){var B=E-C;if(B>0){G*=2;if(!movesObj.hasMoves(G)){RaiseError.noMovesToSplit(G);return ;}}if(!Battle.quantityValueCheck(B,E,C)){return ;}if(!F.hasChildNodes()){F.removeAll();}F.insert(lastSelection,C,D);F.node.item=F;BattleElements[F.id]=BattleElements[lastSelection.id];Utils.updateSpecialEffectsImages(lastSelection,F);if(B>0){lastSelection.setQuantity(B);}else{lastSelection.removeAll();lastSelection.node.item=null;delete BattleElements[lastSelection.id];}movesObj.decrementMoves(G);Battle.registerMovement(lastSelection,F,C,A);if(lastSelection.isSource()&&B==0){lastSelection.setClass("unitOpacity");}else{lastSelection.setClass("");}lastSelection=null;Tutorial.advance();}else{RaiseError.invalidQuantity();}},registerMovement:function(B,D,C,A){if(blinkSelection!=null){Utils.registerBlink(B,D,C,A);}else{Utils.registerMove(B,D,C,A);}},quantityValueCheck:function(B,D,A){var C=Math.round(0.5+(D*0.2));if(A<C){RaiseError.minimumMove(A,lastSelection.unitName(),C);return false;}if(B<C&&B!=0){RaiseError.minimumRest(B,lastSelection.unitName(),C);return false;}return true;},submit:function(){var D=Message.raiseConfirm("EndTurn");if(D){var A=$("movesMade");$("submit").disabled=true;var C=Utils.queryString("id");var B="../Ajax/Battle/Battle.ashx?type=battle&id="+C+"&moves="+A.value;Utils.ajaxRequest("get",B,Utils.getBattleDiv(),Battle.submitCallBack);}},submitCallBack:function(){$("movesMade").value="";FillInformation.start();},giveUp:function(){var C=Message.raiseConfirm("GiveUp");if(C){$("giveUp").disabled=true;$("submit").disabled=true;var B=Utils.queryString("id");var A="../Ajax/Battle/Battle.ashx?type=giveUp&id="+B;Utils.ajaxRequest("get",A,Utils.getBattleDiv(),Battle.giveUpCallBack);}},giveUpCallBack:function(){},getAllMessages:function(){var B=Utils.queryString("id");var A="../Ajax/Battle/BattleMessages.ashx?id="+B;Utils.ajaxRequest("get",A,$("messages"),Battle.getAllMessagesCallBack);},getAllMessagesCallBack:function(){},sameSector:function(A){return lastSelection!=null&&lastSelection.id==A.id;},clearSelected:function(){if(lastSelection!=null){var A="";lastSelection.setClass("");lastSelection=null;Utils.getQuantityElement().value=A;Information.fill("minquantity",A);Information.fill("maxquantity",A);Battle.clearBlinkSelected();}},clearBlinkSelected:function(){if(blinkSelection!=null){blinkSelection.setClass("");blinkSelection=null;}},canMove:function canMove(D){var B=lastSelection.id.split("_");var C=lastSelection.getChildId().toLowerCase().split("_");var A=Unit[C[0]].movementType;if(A==""){return false;}return movesObj[A](B,D);}};var lastSelection;var Positioning={start:function(){if($("isSpectator").value==0){Positioning.initTDElements();Positioning.initBottomElements();$("reset").addEvent("click",function(A){PositioningReset.reset(this);});$("submit").addEvent("click",function(A){Positioning.submit();});}},initTDElements:function(){Utils.getTdElements().each(function(A){A.addEvent("click",function(B){Positioning.selected(this,B);});A.addEvent("mouseout",function(B){Utils.canMoveOut();});A.addEvent("mouseover",function(B){Utils.canMoveOverPositioning(this.id,B);});});},initBottomElements:function(){Positioning.getBottomElements().each(function(A){if(!A.hasClass("initialBottomIgnore")){A.addEvent("click",function(B){Positioning.selected(this);});A.addEvent("mouseout",function(B){if(lastSelection!=null&&this.getFirst().get("tag")=="span"){if(lastSelection.getImageName()==A.id){this.className="unitOpacity";}}});A.addEvent("mouseover",function(B){if(lastSelection!=null&&this.getFirst().get("tag")=="span"){if(lastSelection.getImageName()==A.id){this.className="unitOpacityOver";}}});A.setStyle("background-image","url("+$("imagePath").value+"/Units/"+A.id+".png)");A.setStyle("background-repeat","no-repeat");}});},submit:function(){if(Positioning.hasPositioned()){var A=$("movesMade");$("submit").disabled=true;Positioning.gatherUnits(A);var C=Utils.queryString("id");var B="../Ajax/Battle/Battle.ashx?type=deploy&id="+C+"&moves="+A.value;Utils.ajaxRequest("get",B,Utils.getBattleDiv(),Positioning.submitCallBack);}},gatherUnits:function(A){if(Utils.numberOfPlayers()==2){Positioning.setUnits2(A);}else{Positioning.setUnits4(A);}},setUnits2:function(A){for(var B=1;B<9;++B){Positioning.addMove(A,"7_"+B);Positioning.addMove(A,"8_"+B);}},setUnits4:function(A){for(var B=3;B<11;++B){Positioning.addMove(A,"11_"+B);Positioning.addMove(A,"12_"+B);}},submitCallBack:function(){window.location=window.location;},addMove:function(A,E){var C=Utils.getItem($(E));if(C.hasChildNodes()){var B=Unit[C.unitName().toLowerCase()];var D=C.getQuantity();A.value+="p:"+B.code+"-"+E+"-"+D+";";}},hasPositioned:function(){var B=false;var A="";Positioning.getBottomElements().each(function(E){if(Utils.hasChilds(E)){if(E.className!="initialBottomIgnore"){var D=Utils.getItem(E);var C=D.unitName();A+=C+" "+D.getQuantity()+"\n";B=true;}}});if(B){RaiseError.unitsNotPositioned(A);}return !B;},selected:function(A,B){if(Utils.numberOfPlayers()!=2&&!Utils.coordinateValid(A.id)){return ;}var C=Utils.getItem(A);if(lastSelection==null){Positioning.noneSelected(C);}else{if(Positioning.sameSector(C)){Positioning.cleanSelected();return ;}Positioning.oneSelected(C,B);}},noneSelected:function(C){if(!C.hasChildNodes()){return ;}C.setClass("selectedSector");var B=C.getQuantity();var A=$("quantity");A.value=B;A.focus();min=Math.round(0.5+(Number(B)*0.2));Information.fill("minquantity",min);Information.fill("maxquantity",B-min);Information.fillAll(C);lastSelection=C;Tutorial.advance();},oneSelected:function(E,C){if(Utils.canMoveOverPositioning(E.id,C)){var D=lastSelection.getQuantity();var B=Utils.getQuantity();if(B<=D&&B>0){var A=D-B;if(!E.hasChildNodes()){E.removeAll();}E.insert(lastSelection,B,C);E.node.item=E;if(A>0){lastSelection.setQuantity(A);}else{lastSelection.removeAll();lastSelection.node.item=null;}if(lastSelection.isSource()&&A==0){lastSelection.setClass("unitOpacity");}else{lastSelection.setClass("");}lastSelection=null;Tutorial.advance();}else{RaiseError.invalidQuantity();}}},sameSector:function(A){return lastSelection.id==A.id;},cleanSelected:function(){if(lastSelection!=null){var A="";lastSelection.setClass(A);lastSelection=null;Utils.getQuantityElement().value=A;Information.fill("minquantity",A);Information.fill("maxquantity",A);}},getBottomElements:function(){if(Utils.numberOfPlayers()==2){return $("initialBottom").getElements("td");}return $("initialBottom4").getElements("td");},saveDeploy:function(){if(Positioning.hasPositioned()){var B=$("tournamentId").value+$("currentUser").value;var A=$("movesMade");Positioning.gatherUnits(A);Cookie.dispose(B);Cookie.write(B,encodeURI(A.value));A.value="";RaiseError.deploySaved();}},loadDeploy:function(){var D=$("tournamentId").value+$("currentUser").value;var C=decodeURI(Cookie.read(D));if(C!="null"&&C!=""){Positioning.cleanBottom();Positioning.clearBoard();var E=C.split(";");for(var G=0;G<E.length;++G){var F=E[G];if(F!=""){var B=F.split(":")[1].split("-");var H=$(B[1]);var A=Positioning.createUnitImage(B[0],B[2]);H.empty();A.inject(H);}}RaiseError.deployLoaded();}else{RaiseError.noDeploySaved();}},emptyField:function(A){A.empty();A.appendChild(new Element("span"));},createUnitImage:function(B,D){var C=Unit[B]();var A=new Element("img");A.src=$("imagePath").value+"/Units/"+C.name+".png";A.title=D;A.alt=C.name.toLowerCase();return A;},cleanBottom:function(){$("initialBottom").getElements("td").each(function(A){if(!A.hasClass("initialBottomIgnore")){Positioning.emptyField(A);A.className="unitOpacity";}});},clearBoard:function(){for(var A=1;A<=8;++A){Positioning.emptyField($("7_"+A));Positioning.emptyField($("8_"+A));}}};var lastSelection;var FillInformation={start:function(){Utils.initSpecialMoveImages(false);FillInformation.initTDElements();FillInformation.initOtherElements("initialTop");FillInformation.initOtherElements("initialRight");FillInformation.initOtherElements("initialLeft");var A=$("giveUp");if(A){A.addEvent("click",function(B){FillInformation.giveUp();});}if($("battleCalculator")){$("elementSelectedQuantInput").addEvent("keyup",function(B){Information.fillCalculatorEvent(this,B);});$("elementSelectedRangeInput").addEvent("keyup",function(B){Information.fillCalculatorRangeEvent(this,B);});}},initTDElements:function(){Utils.getTdElements().each(function(A){A.addEvent("mouseover",function(B){FillInformation.fillElement(this);});});FillInformation.initUltimateElements("9_9");FillInformation.initUltimateElements("0_0");},initUltimateElements:function(A){var C=Utils.numberOfPlayers();var B=$(A);if(B&&C==2){B.addEvent("mouseover",function(D){FillInformation.fillElement(this);});}},initOtherElements:function(A){var C=$(A);if(C!=null){var B=C.getElements("td");B.each(function(D){D.addEvent("mouseover",function(E){FillInformation.fillElement(this);});});}},fillElement:function(A){if(Utils.hasChilds(A)){var B=Utils.getItem(A);if(B!=null){Information.fillAll(B);}}},giveUp:function(){var C=Message.raiseConfirm("GiveUp");if(C){$("giveUp").disabled=true;var B=Utils.queryString("id");var A="../Ajax/Battle/Battle.ashx?type=giveUp&id="+B;Utils.ajaxRequest("get",A,Utils.getBattleDiv(),Battle.giveUpCallBack);}},giveUpCallBack:function(){}};function Handler(){this.positioning=function(){Positioning.start();};this.battle=function(){Battle.start();};this.fill=function(){FillInformation.start();};}var handler=new Handler();var handlerKey;window.addEvent("domready",function(){if(handlerKey){handler[handlerKey]();}});var fleetMovements=[];var UniverseUtils={sendUniverseRequest:function(B,C,A){for(var D in A){if(D!="CallBack"){B+="&"+D+"="+A[D];}}if(A.CallBack==null){A.CallBack=UniverseUtils.genericCallBack;}Utils.ajaxRequest("get",B,C,A.CallBack);},sendRequest:function(B){var A=Site.appPath+"Ajax/Universe/Universe.ashx?1=1";UniverseUtils.sendUniverseRequest(A,$("universe"),B);},sendMoveRequest:function(B){var A=Site.appPath+"Ajax/Universe/FleetMove.ashx?"+UniverseUtils.getFullCoordinateQueryString();UniverseUtils.sendUniverseRequest(A,null,B);},sendSimpleMoveRequest:function(B){var A=Site.appPath+"Ajax/Universe/FleetMove.ashx?1=1";UniverseUtils.sendUniverseRequest(A,null,B);},getFullCoordinateQueryString:function(){var C=UniverseUtils.getSourceSystem();var A=UniverseUtils.getSourceSector();var D=UniverseUtils.getDestinySystem();var B=UniverseUtils.getDestinySector();return"systemSrc="+C+"&sectorSrc="+A+"&systemDst="+D+"&sectorDst="+B;},getSourceSystem:function(){return UniverseUtils.sourceSelected.getAttribute("system");},getSourceSector:function(){return UniverseUtils.sourceSelected.getAttribute("sector");},getSourceCoordinate:function(){return UniverseUtils.getSourceSystem()+"_"+UniverseUtils.getSourceSector();},getDestinySystem:function(){return UniverseUtils.destinySelected.getAttribute("system");},getDestinySector:function(){return UniverseUtils.destinySelected.getAttribute("sector");},getDestinyCoordinate:function(){return UniverseUtils.getDestinySystem()+"_"+UniverseUtils.getDestinySector();},sourceTypeKey:function(){return UniverseUtils.sourceSelected.getAttribute("type")+"Source";},destinyTypeKey:function(){return UniverseUtils.destinySelected.getAttribute("type")+"Destiny";},isPrivateSector:function(){return $("isPrivateSector").value=="1";},load:function(){var A=$("universe").getElements("td");A.addEvent("click",function(B){UniverseUtils.selected(this,B);});UniverseUtils.removeAllToolTips();UniverseUtils.addToolTips();UniverseDirection.load();UniverseUtils.resetSelected();},addToolTips:function(){UniverseUtils.addFleetsToolTip();UniverseUtils.addPlanetToolTip();UniverseUtils.addArenaToolTip();UniverseUtils.addMarketToolTip();UniverseUtils.addWormHoleToolTip();UniverseUtils.addBattleToolTip();UniverseUtils.addBeaconToolTip();UniverseUtils.addAcademyToolTip();UniverseUtils.addPirateBayToolTip();},addLine:function(B,C){var A=Language.getToken(B);A+=": "+C+"<br/>";return A;},getAlliance:function(A){return"<span class='"+A.s+"'>"+A.a+"</span>";},getTTM:function(A){return A.ttm!=null?A.ttm:1;},getTTTM:function(A){return A.tttm!=null?A.tttm:1;},getETA:function(I){var L=I.c.split(":");var F=I.d.split(":");var A=[Number(L[0]),Number(L[1]),Number(L[2]),Number(L[3])];var G=[Number(F[0]),Number(F[1]),Number(F[2]),Number(F[3])];var B=[Number(A[0]),Number(G[1]),Number(A[2]),Number(G[3])];var D=Math.abs((((A[0]-B[0])+(A[1]-B[1]))*10)+((A[2]-B[2])+(A[3]-B[3])));var C=Math.abs((((G[0]-B[0])+(G[1]-B[1]))*7)+((G[2]-B[2])+(G[3]-B[3])));var K=D>C?D:C;var J=UniverseUtils.getTTM(I);var E=UniverseUtils.getTTTM(I);var H=(K*E)-(E-J);return Utils.getTimeFromTicks(H);},getFleetToolTipBody:function(B){var A=UniverseUtils.addLine("Owner",B.o);A+=UniverseUtils.addLine("IsMoving",Language.getToken(B.m));if(B.m){A+=UniverseUtils.addLine("Destination",B.d);A+=UniverseUtils.addLine("ETA",UniverseUtils.getETA(B));A+=UniverseUtils.addLine("TTM",Utils.getTimeFromTicks(UniverseUtils.getTTM(B)));B.ttm=1;}if(B.a!=""){A+=UniverseUtils.addLine("Alliance",UniverseUtils.getAlliance(B));}else{A+=UniverseUtils.addLine("Alliance",Language.getToken("None"));}A+=UniverseUtils.getFleetBeaconInformation(B);A+=UniverseUtils.getToolTipResources(B,"Cargo");A+=UniverseUtils.getFleetToolTipUnits(B,"Units");return A;},getFleetBeaconInformation:function(B){var A="";if(B.lq!=null){A+=UniverseUtils.addLine("LightQuantity",B.lq);}if(B.mq!=null){A+=UniverseUtils.addLine("MediumQuantity",B.mq);}if(B.hq!=null){A+=UniverseUtils.addLine("HeavyQuantity",B.hq);}return A;},getFleetToolTipUnits:function(C,E){var A="";if(C.u!=null){if(C.u.length>1){var A=UniverseUtils.addLine(E,"");A+="<div class='popupFleetUnits'>";for(var B=0;B<C.u.length;++B){var D=C.u[B];if(D.n!="ignore"){A+="<div><img src='"+Utils.resolveUnitImage(D.n)+"' alt='' title=''/><br/>"+D.q+"</div>";}}A+="</div>";}else{var A=UniverseUtils.addLine(E,Language.getToken("None"));}}return A;},getToolTipResources:function(D,C){var A="";if(D.i!=null){if(D.i.length>1){var A=UniverseUtils.addLine(C,"");A+="<div class='popupPlanetIncome'>";for(var B=0;B<D.i.length;++B){var E=D.i[B];if(E.n!="ignore"){A+="<div><img src='"+Utils.resolveResourceImage(E.n)+"' alt='' title=''/><br/>"+E.q+"</div>";}}A+="</div>";}else{var A=UniverseUtils.addLine(C,Language.getToken("None"));}}return A;},getPlanetToolTipFacilities:function(A){if(A.f!=null){return UniverseUtils.addLine("FacilityLevel",A.f);}return"";},getBattleToolTipBody:function(B){var A=UniverseUtils.addLine("Player1",B.p1);if(B.a1!=""){A+=UniverseUtils.addLine("Alliance","<span class='"+B.s1+"'>"+B.a1+"</span>");}else{A+=UniverseUtils.addLine("Alliance",Language.getToken("None"));}A+=UniverseUtils.addLine("Player2",B.p2);if(B.a2!=""){A+=UniverseUtils.addLine("Alliance","<span class='"+B.s2+"'>"+B.a2+"</span>");}else{A+=UniverseUtils.addLine("Alliance",Language.getToken("None"));}return A;},addFleetsToolTip:function(){if(fleets){for(var D in fleets){var B=fleets[D];var C=$(D);if(C!=null){var A=UniverseUtils.getFleetToolTipBody(B);Utils.insertTip(C,B.n,A);}}}},getbeaconInformation:function(B){var A=UniverseUtils.getPlanetToolTipFacilities(B);A+=UniverseUtils.getToolTipResources(B,"Income");A+=UniverseUtils.getFleetToolTipUnits(B,"DefenseFleet");return A;},addPlanetToolTip:function(){if(planets){for(var D in planets){var B=planets[D];var C=$(D);if(C){var A="";if(B.o!=""){A+=UniverseUtils.addLine("Owner",B.o);}A+=UniverseUtils.addLine("Level",B.l);A+=UniverseUtils.addLine("Terrain",Language.getToken(B.pt));A+=UniverseUtils.addLine("Coordinate",B.c);if(B.a!=""){A+=UniverseUtils.addLine("Alliance",UniverseUtils.getAlliance(B));}else{A+=UniverseUtils.addLine("Alliance",Language.getToken("None"));}A+=UniverseUtils.getbeaconInformation(B);Utils.insertTip(C,B.n,A);}}}},addArenaToolTip:function(){if(arenas){for(var D in arenas){var B=arenas[D];var C=$(D);if(C){var A=UniverseUtils.addLine("Owner",B.o);A+=UniverseUtils.addLine("IsInBattle",B.b);A+=UniverseUtils.addLine("Coordinate",B.c);Utils.insertTip(C,B.n,A);}}}},addMarketToolTip:function(){if(markets){for(var D in markets){var C=markets[D];var B=$(D);if(B){var A=UniverseUtils.addLine("Coordinate",C.c);A+=UniverseUtils.addLine("Level",C.l);A+=UniverseUtils.addLine("TradeResource",Language.getToken(C.r));Utils.insertTip(B,C.n,A);}}}},addWormHoleToolTip:function(){if(wormHoles){for(var D in wormHoles){var B=wormHoles[D];var C=$(D);if(C){var A=UniverseUtils.addLine("Coordinate",B.c);if(B.o!=null){A+=UniverseUtils.addLine("Owner",B.o);A+=UniverseUtils.addLine("Alliance",UniverseUtils.getAlliance(B));}Utils.insertTip(C,B.n,A);}}}},addBeaconToolTip:function(){if(beacons){for(var D in beacons){var B=beacons[D];var C=$(D);if(C){var A=UniverseUtils.addLine("Coordinate",B.c);A+=UniverseUtils.addLine("Owner",B.o);A+=UniverseUtils.addLine("Alliance",UniverseUtils.getAlliance(B));Utils.insertTip(C,B.n,A);}}}},addBattleToolTip:function(){if(battles){for(var D in battles){var C=battles[D];var B=$(D);if(B!=null){var A=UniverseUtils.getBattleToolTipBody(C);Utils.insertTip(B,C.n,A);}}}},addAcademyToolTip:function(){if(academies){for(var D in academies){var C=academies[D];var B=$(D);if(B){var A=UniverseUtils.addLine("Coordinate",C.c);Utils.insertTip(B,C.n,A);}}}},addPirateBayToolTip:function(){if(piratebays){for(var D in piratebays){var C=piratebays[D];var B=$(D);if(B){var A=UniverseUtils.addLine("Coordinate",C.c);Utils.insertTip(B,C.n,A);}}}},removeAllToolTips:function(){$$(".tip-top").each(function(A){var B=A.getParent();B.dispose();if(A.tip!=null){A.tip.dispose();}});},toggleMoveTo:function(B){var A=$("moveToButton");if(A!=null){A.disabled=B;}},selected:function(B,A){if(UniverseUtils.sourceSelected==null){UniverseUtils.noSelected(B,A);}else{UniverseUtils.oneSelected(B,A);}},noSelected:function(C,B){var A=C.getAttribute("type");if(A=="fleetsector"){UniverseUtils.toggleMoveTo(false);UniverseUtils.renderFleetMenu(C,B);return ;}if(A=="planetsector"){UniverseUtils.renderPlanetMenu(C,B);return ;}if(A=="arenasector"){UniverseUtils.renderArenaMenu(C,B);return ;}if(A=="fleetbattlesector"||A=="planetbattlesector"){UniverseUtils.renderBattleMenu(C,B);}},oneSelected:function(D,C){UniverseUtils.toggleMoveTo(true);var A=D.getAttribute("type");var B=UniverseUtils.sourceSelected.getAttribute("type");if(A=="fleetsector"||B=="fleetsector"){UniverseUtils.hideFleetMenu(D,C);return ;}UniverseUtils.hideMenu(D,C);},resetSourceSelected:function(){if(UniverseUtils.sourceSelected!=null){UniverseUtils.unselectSector(UniverseUtils.sourceSelected);UniverseUtils.sourceSelected=null;}},resetDestinySelected:function(){if(UniverseUtils.destinySelected!=null){UniverseUtils.unselectSector(UniverseUtils.destinySelected);UniverseUtils.destinySelected=null;}},resetSelected:function(){UniverseUtils.resetSourceSelected();UniverseUtils.resetDestinySelected();UniverseUtils.hideAllOptions();},hideAllOptions:function(){var A=$("optionMenuText");if(A!=null){A.getElements("div").each(function(B){B.className="optionHidden";});}},renderFleetMenu:function(C,B){if(fleets){var A=fleets[C.id];if(A==null){return ;}if(A.cm){if(A.m){UniverseUtils.selectSector(C);UniverseUtils.sourceSelected=C;Menu.showUniverseMenu(B);UniverseEvents.fleetsectorSourceOnMove();}else{UniverseUtils.selectSector(C);UniverseUtils.sourceSelected=C;}}}},renderPlanetMenu:function(C,B){if(planets){var A=planets[C.id];if(A!=null){if(A.cw){UniverseUtils.sourceSelected=C;Menu.showUniverseMenu(B);UniverseEvents.planetsectorSource();}}}},renderArenaMenu:function(C,B){if(arenas){var A=arenas[C.id];if(A!=null){UniverseUtils.sourceSelected=C;Menu.showUniverseMenu(B);UniverseEvents.arenasectorSource();}}},renderBattleMenu:function(C,B){if(battles){var A=battles[C.id];if(A!=null){UniverseUtils.sourceSelected=C;Menu.showUniverseMenu(B);UniverseEvents.fleetbattlesectorSource();}}},hideFleetMenu:function(E,C){var D=$("optionMenu");var A=fleets[E.id];if(E.id==UniverseUtils.sourceSelected.id||!D.hasClass("hidden")){D.addClass("hidden");UniverseUtils.resetSelected();}else{Menu.showUniverseMenu(C);UniverseUtils.selectSector(E);UniverseUtils.destinySelected=E;var B=UniverseUtils.sourceTypeKey();UniverseEvents[B]();}},hideMenu:function(B,A){Menu.hideUniverseMenu(A);UniverseUtils.resetSelected();},genericCallBack:function(){},updateDestinyAndMove:function(){UniverseUtils.updateDestinyAndMove2(UniverseUtils.getDestinyCoordinate(),1);},updateDestinyAndMove2:function(E,C){var D=UniverseUtils.getSourceCoordinate();var B=fleets[D];UniverseUtils.updateTTM(B,C);B.m=true;B.d=E.replaceAll("_",":");UniverseUtils.hideMenu();var A=UniverseUtils.getFleetToolTipBody(B);Utils.updateTip($(D),A);},updateTTM:function(A,B){A.ttm=1;A.tttm=B;},cancelDestinyAndMove:function(){var B=UniverseUtils.getSourceCoordinate();var A=fleets[B];A.m=false;A.d="";UniverseUtils.hideMenu();Utils.updateTip($(B),UniverseUtils.getFleetToolTipBody(A));},moveEvent:function(){UniverseUtils.sendMoveRequest({Type:"move"});UniverseUtils.updateDestinyAndMove();},moveUndiscoveredEvent:function(){Menu.hideUniverseMenu();if(Message.raiseConfirm("MoveUndiscovered")){UniverseUtils.sendMoveRequest({Type:"moveundiscovered"});UniverseUtils.updateDestinyAndMove2(UniverseUtils.getDestinyCoordinate(),4);}},moveToValid:function(){var A=Number($("x").value);var D=Number($("y").value);var C=Number($("sx").value);var B=Number($("sy").value);return Utils.systemCoordinateValid(A)&&Utils.systemCoordinateValid(D)&&Utils.sectorCoordinateXValid(C)&&Utils.sectorCoordinateYValid(B);},moveEventWithCoordinates:function(){if(UniverseUtils.sourceSelected==null){RaiseError.needToSelectAFleetFirst();return ;}if(UniverseUtils.moveToValid()){var B=$("x").value+"_"+$("y").value;var A=$("sx").value+"_"+$("sy").value;UniverseUtils.sendSimpleMoveRequest({Type:"coordValid",systemDst:B,sectorDst:A,CallBack:UniverseUtils.moveEventWithCoordinatesCallBack});}else{RaiseError.invalidCoordinate();}},moveEventWithCoordinatesCallBack:function(G,F,H,B){var D=$("x").value+"_"+$("y").value;var C=$("sx").value+"_"+$("sy").value;var I=UniverseUtils.getSourceSystem();var E=UniverseUtils.getSourceSector();var A=1;if(H=="False"){if(Message.raiseConfirm("MoveUndiscovered")){UniverseUtils.sendSimpleMoveRequest({Type:"moveundiscovered",systemSrc:I,sectorSrc:E,systemDst:D,sectorDst:C});UniverseUtils.updateDestinyAndMove2(D+"_"+C,4);}}else{UniverseUtils.sendSimpleMoveRequest({Type:"move",systemSrc:I,sectorSrc:E,systemDst:D,sectorDst:C});UniverseUtils.updateDestinyAndMove2(D+"_"+C,1);}},attackEvent:function(){UniverseUtils.sendMoveRequest({Type:"attack"});UniverseUtils.updateDestinyAndMove();},attackPlanetConquerEvent:function(){UniverseUtils.sendMoveRequest({Type:"attackPlanet"});UniverseUtils.updateDestinyAndMove();},attackPlanetRaidEvent:function(){UniverseUtils.sendMoveRequest({Type:"raidPlanet"});UniverseUtils.updateDestinyAndMove();},pursuitAttackEvent:function(){$("optionMenu").addClass("hidden");var A=fleets[UniverseUtils.destinySelected.id];UniverseUtils.sendMoveRequest({Type:"pursuitandattack",FleetId:A.id});UniverseUtils.updateDestinyAndMove();},cancelEvent:function(){$("optionMenu").addClass("hidden");var A=fleets[UniverseUtils.getSourceCoordinate()];UniverseUtils.sendSimpleMoveRequest({Type:"cancelmove",FleetId:A.id});UniverseUtils.cancelDestinyAndMove();},transportEvent:function(){var A=fleets[UniverseUtils.getSourceCoordinate()];if(A.cpw){var C=UniverseUtils.getDestinySystem();var B=UniverseUtils.getDestinySector();UniverseMap.show(C,B);}else{RaiseError.cantPassWormHoles();}},conquerEvent:function(){UniverseUtils.sendMoveRequest({Type:"conquer"});UniverseUtils.updateDestinyAndMove();},challengeEvent:function(){UniverseUtils.moveEvent();},showMarketEvent:function(){var C=UniverseUtils.getSourceCoordinate();var E=UniverseUtils.getDestinyCoordinate();var A=fleets[C];var D=markets[E];var C=UniverseUtils.getSourceCoordinate();var E=UniverseUtils.getDestinyCoordinate();var A=fleets[C];var D=markets[E];var B=Site.appPath+"SimpleMarket.aspx?Fleet="+A.id+"&Market="+D.id;Utils.createIFrame("simpleMarket",B,"Market",800,800);UniverseUtils.hideMenu();},showArenaEvent:function(){var B=UniverseUtils.getSourceCoordinate();var A=arenas[B];window.location=Site.appPath+"Arenas/ArenaInfo.aspx?ArenaStorage="+A.id;},viewBattleEvent:function(){var B=UniverseUtils.getSourceCoordinate();var A=battles[B];window.location=Site.appPath+"Battle/Battle.aspx?id="+A.bId;},useUltimate:function(){UniverseUtils.sendMoveRequest({Type:"useUltimate",CallBack:Message.messageCallBack});UniverseUtils.updateDestinyAndMove();$("ultimateReady").value=0;},fireDevastation:function(){if(Message.raiseConfirm("DevastationUsageConfirmation")){UniverseUtils.sendMoveRequest({Type:"fireDevastation",CallBack:Message.messageCallBack});UniverseUtils.hideMenu();$("ultimateReady").value=0;}},goToMarketEvent:function(){UniverseUtils.moveEvent();},selectSector:function(A){UniverseSelection.select(A);},unselectSector:function(A){UniverseSelection.unselect(A);},centerInFleet:function(A){UniverseUtils.sendRequest({Type:"centerfleet",Fleet:A,CallBack:UniverseUtils.load});},centerInPlanet:function(A){UniverseUtils.sendRequest({Type:"centerplanet",Planet:A,CallBack:UniverseUtils.load});},centerInCoordinate:function(A){UniverseUtils.sendRequest({Type:"centercoordinate",Coordinate:A,CallBack:UniverseUtils.load});},zoomMore:function(){UniverseUtils.sendRequest({Type:"zoommore",CallBack:UniverseUtils.load});},zoomLess:function(){UniverseUtils.sendRequest({Type:"zoomless",CallBack:UniverseUtils.load});},showPlanetIcons:function(){var A=UniverseUtils.showSmallIcons(planets,"Planets");UniverseUtils.insertIconInfoTip(A,"Planets");},showFleetIcons:function(){var A=UniverseUtils.showSmallIcons(fleets,"Fleets");UniverseUtils.insertIconInfoTip(A,"Fleets");},showWormHoleIcons:function(){var A=UniverseUtils.showSmallIcons(wormHoles,"WormHoles");UniverseUtils.insertGenericIconInfoTip(A);},showArenaIcons:function(){var A=UniverseUtils.showSmallIcons(arenas,"Arenas");UniverseUtils.insertGenericIconInfoTip(A);},showMarketIcons:function(){var A=UniverseUtils.showSmallIcons(markets,"Markets");UniverseUtils.insertGenericIconInfoTip(A);},showSmallIcons:function(A,B){UniverseUtils.removeAllToolTips();UniverseUtils.removeOlderIcons();return UniverseUtils.parseAndShowIcons(A,B);},removeOlderIcons:function(){$("universeItems").getElements("td").each(function(B){if(B.className!=""){var C=B.getPrevious("td");var A=new Element("td",{id:B.id});if(C!=null){B.destroy();A.inject(C,"after");}else{C=B.getNext("td");B.destroy();A.inject(C,"before");}}});},parseAndShowIcons:function(M,B){var C=new Hash();var D=$("playerName").value;for(var K in M){var E=M[K];var H=K.split("_");var J=Number(H[0]);var I=Number(H[1]);for(var F=1;F<zoneMapping.length;++F){if(E.o!=null&&E.o!=D){continue;}var G=zoneMapping[F];if(J>=G[0]&&I>=G[1]&&J<=G[2]&&I<=G[3]){var A="s"+F;UniverseUtils.showSmallIcon($(A),M,K,B);if(!C.has(A)){C.set(A,[]);}var L=C.get(A);L.include(E);break;}}}return C;},showSmallIcon:function(B,A,D,C){if(B!=null&&B.className==""){B.className=A[D].uty;B.addEvent("click",function(E){UniverseUtils.centerInCoordinate(D);});}},insertIconInfoTip:function(A,B){A.each(function(E,D){var F=Language.getToken(B);var C="";E.each(function(G){C+="<span class='tipItem'>"+G.n+"</span>: "+G.c+"<br/>";});Utils.insertTip($(D),F,C);});},insertGenericIconInfoTip:function(A){A.each(function(D,C){var E;var B="<span class='tipItem'>"+Language.getToken("Coordinate")+"</span>: ";D.each(function(F){E=F.n;B+=F.c;});Utils.insertTip($(C),E,B);});}};var UniverseMap={show:function(D,B){$("optionMenu").addClass("hidden");var C=UniverseUtils.destinySelected.getAttribute("isprivate");if(C==null){C=false;}var A="Ajax/Universe/WormHoleMap.ashx?system="+D+"&sector="+B+"&isPrivate="+C;if(!$("wormHoleMap")){UniverseMap.addWormHoleMapControl();}Utils.ajaxRequest("get",A,$("wormHoleMap"),UniverseMap.onShow);},onShow:function(B,C){var A=$("wormHoleMap").getElements("img");A.addEvent("mouseover",function(D){if(this.getAttribute("current")!="true"){this.src=$("imagePath").value+"/Universe/wormHoleSmallestCurrent.png";}});A.addEvent("mouseout",function(D){if(this.getAttribute("current")!="true"){this.src=$("imagePath").value+"/Universe/wormHoleSmallest.png";}});A.addEvent("click",function(E){if(this.getAttribute("current")!="true"){var D=this.getAttribute("system");UniverseMap.onMove(D);}});},onHide:function(){},onMove:function(A){UniverseMap.onHide();UniverseUtils.sendMoveRequest({Type:"transport",wormHoleSectorSrc:A});UniverseUtils.updateDestinyAndMove();Utils.closeFrame("wormHoleMapWindow");},addWormHoleMapControl:function(){var A=new Element("div",{id:"wormHoleMap"});Utils.createFrame("wormHoleMapWindow","WormHole",904,A,UniverseUtils.resetDestinySelected);}};var UniverseEvents={eraseElementClass:function(A){$(A).className="";},showMove:function(){UniverseEvents.eraseElementClass("move");},showUndiscoveredMove:function(){UniverseEvents.eraseElementClass("moveUndiscovered");},showUltimateReady:function(){var A=UniverseUtils.getDestinyCoordinate();if($("ultimateReady").value=="1"&&ultimateInfo.r&&!ultimateInfo.lm&&(ultimateInfo.uc.length==1||ultimateInfo.uc.contains(A))){UniverseEvents.eraseElementClass("useUltimate");}},showUltimateNormalReady:function(){var A=UniverseUtils.getDestinyCoordinate();if($("ultimateReady").value=="1"&&ultimateInfo.r&&(ultimateInfo.uc.length==1||ultimateInfo.uc.contains(A))){UniverseEvents.eraseElementClass("useUltimate");}},showTransport:function(){UniverseEvents.eraseElementClass("transport");},showAttack:function(){UniverseEvents.eraseElementClass("attack");},showPursuitAndAttack:function(){UniverseEvents.eraseElementClass("pursuitAndAttack");},showPlanetConquerAttack:function(){UniverseEvents.eraseElementClass("attackPlanetConquer");},showPlanetRaidAttack:function(){UniverseEvents.eraseElementClass("attackPlanetRaid");},showCancel:function(){UniverseEvents.eraseElementClass("cancel");},showChallenge:function(){UniverseEvents.eraseElementClass("challenge");},showConquer:function(){UniverseEvents.eraseElementClass("conquer");},showViewPlanet:function(){UniverseEvents.eraseElementClass("viewPlanet");},showMarket:function(){UniverseEvents.eraseElementClass("market");},showArena:function(){UniverseEvents.eraseElementClass("arena");},showToMarket:function(){UniverseEvents.eraseElementClass("toMarket");},showBattleLink:function(){UniverseEvents.eraseElementClass("viewBattle");},showNoOption:function(){UniverseEvents.eraseElementClass("noOption");},fleetsectorSourceOnMove:function(){UniverseUtils.hideAllOptions();UniverseEvents.showCancel();},fleetsectorSource:function(){UniverseUtils.hideAllOptions();UniverseEvents[UniverseUtils.destinyTypeKey()]();},planetsectorSource:function(){UniverseUtils.hideAllOptions();var B=UniverseUtils.getSourceCoordinate();var A=planets[B];if(A.id!=0){$("viewPlanet").getFirst().href="Planets/Default.aspx?id="+A.id;UniverseEvents.showViewPlanet();}},fleetbattlesectorSource:function(){UniverseUtils.hideAllOptions();UniverseEvents.showBattleLink();},arenasectorSource:function(){UniverseUtils.hideAllOptions();UniverseEvents.showArena();},marketsectorSource:function(){UniverseUtils.hideAllOptions();UniverseEvents.showMarket();},fleetsectorDestiny:function(){var B=UniverseUtils.getDestinyCoordinate();var A=fleets[B];if(A.ca){if(A.m){UniverseEvents.showPursuitAndAttack();}else{UniverseEvents.showAttack();}UniverseEvents.showUltimateReady();}else{UniverseEvents.showNoOption();}},planetsectorDestiny:function(){var B=UniverseUtils.getDestinyCoordinate();var A=planets[B];if(A.cm){UniverseEvents.showMove();}if(A.ca){UniverseEvents.showPlanetConquerAttack();UniverseEvents.showPlanetRaidAttack();UniverseEvents.showUltimateReady();}if(A.cc){UniverseEvents.showConquer();}if(!A.ca&&!A.cm&&!A.cc){UniverseEvents.showNoOption();}},wormholesectorDestiny:function(){UniverseEvents.showTransport();},privatewormholesectorDestiny:function(){UniverseEvents.showTransport();},normalsectorDestiny:function(){UniverseEvents.showMove();UniverseEvents.showUltimateNormalReady();},undiscoveredsectorDestiny:function(){UniverseEvents.showUndiscoveredMove();},resourcesectorDestiny:function(){UniverseEvents.showMove();},arenasectorDestiny:function(){UniverseEvents.showChallenge();},marketsectorDestiny:function(){var A=UniverseUtils.getSourceCoordinate();var B=UniverseUtils.getDestinyCoordinate();if(markets[B].a.contains(A)){UniverseEvents.showMarket();}else{UniverseEvents.showToMarket();}},bugswormholesectorDestiny:function(){UniverseEvents.showTransport();},fleetbattlesectorDestiny:function(){UniverseEvents.showNoOption();},beaconsectorDestiny:function(){UniverseEvents.showNoOption();},academysectorDestiny:function(){UniverseEvents.showNoOption();},piratebaysectorDestiny:function(){UniverseEvents.showNoOption();}};var UniverseSelection={changeToSelect:function(A){A.className=A.className+"Hover";},changeToUnselect:function(A){A.className=A.className.replace("Hover","");},select:function(B){var A=B.getAttribute("type");UniverseSelection[A+"Select"](B);},unselect:function(B){var A=B.getAttribute("type");UniverseSelection[A+"Unselect"](B);},fleetsectorSelect:function(A){UniverseSelection.changeToSelect(A);},fleetsectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},planetsectorSelect:function(A){},planetsectorUnselect:function(A){},wormholesectorSelect:function(A){UniverseSelection.changeToSelect(A);},wormholesectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},privatewormholesectorSelect:function(A){UniverseSelection.changeToSelect(A);},privatewormholesectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},normalsectorSelect:function(A){},normalsectorUnselect:function(A){},undiscoveredsectorSelect:function(A){},undiscoveredsectorUnselect:function(A){},resourcesectorSelect:function(A){},resourcesectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},arenasectorSelect:function(A){UniverseSelection.changeToSelect(A);},arenasectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},marketsectorSelect:function(A){UniverseSelection.changeToSelect(A);},marketsectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},fleetbattlesectorSelect:function(A){},fleetbattlesectorUnselect:function(A){},bugswormholesectorSelect:function(A){UniverseSelection.changeToSelect(A);},bugswormholesectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},beaconsectorSelect:function(A){UniverseSelection.changeToSelect(A);},beaconsectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},academysectorSelect:function(A){UniverseSelection.changeToSelect(A);},academysectorUnselect:function(A){UniverseSelection.changeToUnselect(A);},piratebaysectorSelect:function(A){UniverseSelection.changeToSelect(A);},piratebaysectorUnselect:function(A){UniverseSelection.changeToUnselect(A);}};var UniverseDirection={b:function(){alert($("arrows").style.top);},addEvents:function(A){A.addEvent("click",function(C){var B=this.getAttribute("code");UniverseDirection.updateUniverse(C,B);});A.addEvent("mouseout",function(B){this.removeClass("selected");});A.addEvent("mouseover",function(B){this.addClass("selected");});},load:function(){var A=$("uab");if(A){UniverseDirection.addEvents($("uab"));UniverseDirection.addEvents($("uad"));UniverseDirection.addEvents($("uae"));UniverseDirection.addEvents($("uag"));}},updateUniverse:function(B,A){UniverseUtils.sendRequest({Type:"movemap",Code:A,CallBack:UniverseUtils.load});},onUpdateUniverseCallBack:function(){UniverseUtils.load();}};window.addEvent("domready",function(){if($("universe")){UniverseUtils.load();}});var Menu={position:function(F,E){var B=window.getSize();var A=window.getScroll();var C={x:"left",y:"top"};var D={x:16,y:16};for(var G in C){var H=E.page[G]+D[G];if((H-A[G])>B[G]){H=E.page[G]-D[G];}F.setStyle(C[G],H);}},positionByElement:function(A,D,B){var K=window.getSize();var I=window.getScroll();var J={x:A.offsetWidth,y:A.offsetHeight};var H=D.getCoordinates();var C={x:H.left,y:H.top};var F={x:"left",y:"top"};for(var E in F){var G=C[E]+B[E];if((G+J[E]-I[E])>K[E]){G=C[E]-B[E]-J[E];}A.setStyle(F[E],G);}},showUniverseMenu:function(A){var B=$("optionMenu");Menu.position(B,A);B.removeClass("hidden");},hideUniverseMenu:function(A){var B=$("optionMenu");B.addClass("hidden");}};var Fleet={fleetLists:null,quantityInput:null,currentClone:null,currentItem:null,changeLog:"",load:function(){Fleet.fleetLists=$$(".fleetUnits, .BattleMoonUnits, .BlinkerUnits, .QueenUnits");if(Fleet.fleetLists.length>0){Fleet.fleetLists.each(function(A){Fleet.setDrag(A);});$("transferQuantity").addEvent("click",Fleet.transferQuantity);$("cancelTransfer").addEvent("click",Fleet.clearTransferInfo);$("saveChanges").addEvent("click",Fleet.saveChanges);$("saveChanges").disabled=true;Fleet.quantityInput=$("quantity");}},sendRequest:function(B){var A="../Ajax/Fleet/Fleet.ashx?1=1";for(var C in B){if(C!="CallBack"){A+="&"+C+"="+B[C];}}if(B.CallBack==null){B.CallBack=Fleet.genericCallBack;}Utils.ajaxRequest("get",A,null,B.CallBack);},setDrag:function(A){A.getElements("div").each(function(B){B.addEvent("mousedown",function(C){if(Fleet.isInBattle(A)){RaiseError.fleetInBattle();return ;}if(Fleet.isMoving(A)){RaiseError.fleetIsMoving();return ;}Fleet.unitClick(this,A,C);});});},isInBattle:function(B){var A=B.getAttribute("isInBattle");return A=="true";},isMoving:function(B){var A=B.getAttribute("isMoving");return A=="true";},unitClick:function(C,B,D){var E=Fleet.getClone(C);var A=E.makeDraggable({droppables:Fleet.fleetLists,onDrop:function(F,H){if(Fleet.isInBattle(H)){RaiseError.fleetInBattle();E.destroy();H.removeClass("fleetUnitsOver");return ;}if(Fleet.isMoving(H)){RaiseError.fleetIsMoving();E.destroy();H.removeClass("fleetUnitsOver");return ;}var G=C.getParent();if(H&&H!=G&&Fleet.isFleetAround(G,H)){Fleet.dropEvent(E,C,H);}else{E.destroy();}},onEnter:function(F,H){var G=C.getParent();if(H!=G&&Fleet.isFleetAround(G,H)){H.addClass("fleetUnitsOver");}},onLeave:function(F,G){if(G!=B){G.removeClass("fleetUnitsOver");}}});A.start(D);},chooseClassToAdd:function(A){if(A.hasClass("BattleMoonUnits")){A.addClass("BattleMoonUnitsOver");return ;}if(A.hasClass("BlinkerUnits")){A.addClass("BlinkerUnitsOver");return ;}if(A.hasClass("QueenUnitsUnits")){A.addClass("QueenUnitsUnitsOver");return ;}A.addClass("fleetUnitsOver");},chooseClassToRemove:function(A){if(A.hasClass("BattleMoonUnitsOver")){A.removeClass("BattleMoonUnitsOver");return ;}if(A.hasClass("BlinkerUnitsOver")){A.removeClass("BlinkerUnitsOver");return ;}if(A.hasClass("QueenUnitsUnitsOver")){A.removeClass("QueenUnitsUnitsOver");return ;}A.removeClass("fleetUnitsOver");},isFleetAround:function(D,A){if(Fleets){var C=Fleets[A.getAttribute("fleetid")];var B=Number(D.getAttribute("fleetid"));if(!C.p.contains(B)){return false;}}return true;},getClone:function(A){var B=A.clone();B.setStyles(A.getCoordinates());B.setStyles({opacity:0.7,position:"absolute"});B.inject(document.body);return B;},dropEvent:function(D,B,A){var C=$("quantitySelector");Menu.positionByElement(C,D,{x:30,y:30});C.removeClass("hidden");Fleet.quantityInput.focus();Fleet.quantityInput.value=D.getFirst().getAttribute("quantity");Fleet.currentClone=D;Fleet.currentItem=B;Fleet.currentDestiny=A;},clearTransferInfo:function(){var A=$("quantitySelector");A.addClass("hidden");Fleet.currentClone.destroy();Fleet.currentDestiny.removeClass("fleetUnitsOver");Fleet.currentClone=null;Fleet.currentItem=null;Fleet.currentDestiny=null;},transferQuantity:function(D){var A=Fleet.currentClone.getAttribute("unitName");var C=Number(Fleet.quantityInput.value);var B=Number(Fleet.currentClone.getFirst().getAttribute("quantity"));if(C>0&&C<=B){Fleet.addQuantity(A,C);if(C==B){Fleet.currentItem.destroy();}else{var E=Number(B)-Number(C);Fleet.changeQuantity(Fleet.currentItem,E);}Fleet.clearTransferInfo();}else{RaiseError.invalidQuantity();}},addQuantity:function(A,C){var B=false;Fleet.currentDestiny.getElements("div").each(function(H){if(B){return ;}var E=H.getAttribute("unitName");if(E==A){Fleet.registerChange(A,C);var G=H.getFirst().getAttribute("quantity");var F=Number(G)+Number(C);Fleet.changeQuantity(H,F);B=true;}});if(!B){var D=Fleet.currentItem.clone();D.addEvent("mousedown",function(E){Fleet.unitClick(this,Fleet.currentDestiny,E);});Fleet.currentDestiny.adopt(D);Fleet.changeQuantity(D,C);Fleet.registerChange(A,C);}},changeQuantity:function(C,D){var A=C.getFirst();A.setAttribute("quantity",D);var B=C.getElement("span");B.empty();B.appendText(D);},registerChange:function(B,D){var C=Fleet.currentItem.getParent().getAttribute("fleetId");var A=Fleet.currentDestiny.getAttribute("fleetId");Fleet.changeLog+=C+"-"+A+"-"+B+"-"+D+";";$("saveChanges").disabled=false;},genericCallBack:function(){Fleet.changeLog="";Fleet.load();},saveChanges:function(){Fleet.sendRequest({Type:"change",Changes:Fleet.changeLog});},deleteFleet:function(E,A,C){if(!Message.raiseConfirm("AreYouSureYouWantToDeleteFleet")){return ;}var B=$("fleet"+A);var D=$("fleet"+C);B.getElements(".fleetListUnit").each(function(I){var F=I.getAttribute("unitName");var H=I.getFirst().getAttribute("quantity");var G=false;D.getElements(".fleetListUnit").each(function(J){var M=J.getAttribute("unitName");if(M==F){var L=J.getFirst().getAttribute("quantity");var K=Number(H)+Number(L);Fleet.changeQuantity(J,K);G=true;}});if(!G){D.adopt(I);}});B.getParent().dispose();Fleet.sendRequest({Type:"delete",PlanetId:E,FleetId:A});},deleteEmptyFleet:function(A){if(!Message.raiseConfirm("AreYouSureYouWantToDeleteFleet")){return ;}var B=$("fleet"+A);B.getParent().dispose();Fleet.sendRequest({Type:"deleteEmpty",FleetId:A});},dropTradeCargo:function(A,B){var C=$(B);C.getElements(".cargoList").each(function(E){var D=E.getAttribute("isTradeResource");if(D=="true"){E.destroy();}});if(C.getElements(".cargoList").length==0){C.destroy();}else{$(B).getElements(".dropTradeFleetCargo").each(function(D){D.destroy();});}Fleet.sendRequest({Type:"dropfleetcargo",FleetId:A});}};window.addEvent("domready",function(){if($("fleetList")){Fleet.load();}});window.addEvent("domready",function(){var A=$("marketTable");if(A!=null){A.getElements("tr>td>input[type=text]").addEvent("keyup",function(B){this.value=ClearAlphas(this.value);this.getNext("div").lastChild.innerHTML=this.value*this.parentNode.previousSibling.previousSibling.innerHTML;});}});function ClearAlphas(C){var D="";for(var A=0;A<C.length;++A){var B=parseFloat(C[A]);if(!isNaN(B)){D+=C[A];}}return D;}function AHFilter(){var A=$("searchChange");A.value=1;}var Ticker={data:[],tickerPanel:null,elements:[],bootstrap:function(A){if($("tickerPlaceHolder")==null){return ;}Ticker.tickerPanel=$("ticker");log.debug("Bootstrap Ticker...");Ticker.sendRequest(true);setInterval("Ticker.fetchData();",750);},fetchData:function(){var D=Ticker.data.pop();log.debug("Fetching data... ");if(D!=null){log.info(D);var A=new Element("li",{html:D,styles:{opacity:0}});A.inject(Ticker.tickerPanel,"top");var C=new Fx.Tween(A,{property:"opacity",duration:500});C.start(1);Ticker.elements.push(A);}if(Ticker.elements.length>25){var B=Ticker.elements.shift();B.dispose();}},updateTicker:function(){log.debug("Got response: "+(window.tickerData.length-1)+" items");for(var A=1;A<window.tickerData.length;++A){Ticker.data.push(window.tickerData[A]);}setTimeout("Ticker.sendRequest(false);",1000*5);},sendRequest:function(B){log.debug("Sending request to Ticker...");var A="Ajax/Utils/Ticker.ashx";if(B){A+="?Bootstrap=1";}Utils.ajaxRequest("get",A,$("tickerPlaceHolder"),Ticker.updateTicker);}};window.addEvent("domready",Ticker.bootstrap);var Advertising={index:0,bootstrap:function(){if(null!=window.Auction&&1<window.Auction.length){for(var A=0;A<5;++A){Advertising.fetchData();}setInterval("Advertising.fetchData();",3000);}},fetchData:function(){if(Advertising.index>=window.Auction.length-1){Advertising.index=0;}var F=window.Auction[++Advertising.index];var E=$("ahAd");var A=new Element("tr",{styles:{opacity:0}});var C=E.getElement("tr").getParent();A.inject(C);var B=new Element("td",{html:F.quant});B.inject(A);B=new Element("td",{html:"<img class='smallShip' src='"+Utils.resolveImage(F.name)+"' alt='obj.name' title='obj.name'/>"});B.inject(A);B=new Element("td",{html:F.bid});B.inject(A);B=new Element("td",{html:F.buy});B.inject(A);var D=new Fx.Tween(A,{property:"opacity",duration:1000});if(C.getChildren().length>6){C.getElements("tr:nth-child(2)").dispose();}D.start(1);}};window.addEvent("domready",Advertising.bootstrap);var checkboxHeight="25";var radioHeight="25";var selectWidth="190";var Custom={init:function(){var B=document.getElementsByTagName("input");var A;var C;var D;for(a=0;a<B.length;a++){Custom.initInput(B[a]);}B=document.getElementsByTagName("select");for(a=0;a<B.length;a++){Custom.initSelect(B[a]);}},initInput:function(A){if((A.type=="checkbox"||A.type=="radio")&&A.className=="styled"){var B=document.createElement("span");B.className=A.type;if(A.checked==true){if(A.type=="checkbox"){position="0 -"+(checkboxHeight*2)+"px";B.style.backgroundPosition=position;}else{position="0 -"+(radioHeight*2)+"px";B.style.backgroundPosition=position;}}A.parentNode.insertBefore(B[a],A);A.onchange=Custom.clear;B.onmousedown=Custom.pushed;B.onmouseup=Custom.check;document.onmouseup=Custom.clear;}},initSelect:function(A){var C;if(A.selectedIndex>=0){C=A.options[A.selectedIndex].innerHTML;}else{C="";}var B=document.createElement("span");B.className="select";B.id="select"+A.name;B.innerHTML=C;A.parentNode.insertBefore(B,A);A.correctOnChange=A.onchange;A.onchange=Custom.choose;Custom.initialChoose(A);if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){B[a].style.margin="0px 0px 0px 250px";}},pushed:function(){element=this.nextSibling;if(element.checked==true&&element.type=="checkbox"){this.style.backgroundPosition="0 -"+checkboxHeight*3+"px";}else{if(element.checked==true&&element.type=="radio"){this.style.backgroundPosition="0 -"+radioHeight*3+"px";}else{if(element.checked!=true&&element.type=="checkbox"){this.style.backgroundPosition="0 -"+checkboxHeight+"px";}else{this.style.backgroundPosition="0 -"+radioHeight+"px";}}}},check:function(){element=this.nextSibling;if(element.checked==true&&element.type=="checkbox"){this.style.backgroundPosition="0 0";element.checked=false;}else{if(element.type=="checkbox"){this.style.backgroundPosition="0 -"+checkboxHeight*2+"px";}else{this.style.backgroundPosition="0 -"+radioHeight*2+"px";group=this.nextSibling.name;inputs=document.getElementsByTagName("input");for(a=0;a<inputs.length;a++){if(inputs[a].name==group&&inputs[a]!=this.nextSibling){inputs[a].previousSibling.style.backgroundPosition="0 0";}}}element.checked=true;}},clear:function(){inputs=document.getElementsByTagName("input");for(var A=0;A<inputs.length;A++){if(inputs[A].type=="checkbox"&&inputs[A].checked==true&&inputs[A].className=="styled"){inputs[A].previousSibling.style.backgroundPosition="0 -"+checkboxHeight*2+"px";}else{if(inputs[A].type=="checkbox"&&inputs[A].className=="styled"){inputs[A].previousSibling.style.backgroundPosition="0 0";}else{if(inputs[A].type=="radio"&&inputs[A].checked==true&&inputs[A].className=="styled"){inputs[A].previousSibling.style.backgroundPosition="0 -"+radioHeight*2+"px";}else{if(inputs[A].type=="radio"&&inputs[A].className=="styled"){inputs[A].previousSibling.style.backgroundPosition="0 0";}}}}}},choose:function(){if(this.correctOnChange!=null){this.correctOnChange();}var A=this.options[this.selectedIndex];document.getElementById("select"+this.name).innerHTML=A.innerHTML;},initialChoose:function(A){if(A.selectedIndex>=0){var B=A.options[A.selectedIndex];document.getElementById("select"+A.name).innerHTML=B.innerHTML;}else{document.getElementById("select"+A.name).innerHTML="";}}};window.addEvent("domready",function(){Custom.init();});var Prices={sendRequest:function(B){var A=Site.appPath+"Ajax/Prices/Prices.ashx?1=1";for(var C in B){if(C!="CallBack"){A+="&"+C+"="+B[C];}}if(B.CallBack==null){B.CallBack=UniverseUtils.genericCallBack;}Utils.ajaxRequest("get",A,$("pricesContent"),B.CallBack);},changes:function(){var B=$("languageChooser").value;var A=Site.appPath+"Ajax/Prices/Prices.ashx?Type=Change&Language="+B;Utils.ajaxRequest("get",A,$("pricesContent"));}};window.addEvent("domready",function(){if($("languageChooser")){$("languageChooser").correctOnChange=Prices.changes;}});
