Frame 2
function message(msg) {
messageBox.messageAge = 0;
messageBox.message = msg.toUpperCase();
}
function formatInt(m) {
m = Math.floor(m) + "";
var f = new Array();
var i = (m.length - 1);
var c = 0;
while (i >= 0) {
if (c == 3) {
f.push(",");
c = 0;
}
f.push(m.charAt(i));
i--;
c++;
}
return(f.reverse().join(""));
}
var server = "";
server = "http://turrettyranny.com/";
var justTryingLogin = "Just trying for now, thanks";
_root.login = justTryingLogin;
_root.password = "";
_root.traceSaveGameXml = false;
_root.buyUrl = "http://turrettyranny.com/buy";
_root.popularWinsThreshold = 100;
_root.inEditMode = false;
_root.inGodMode = false;
_root.paused = true;
_global.depth = 1;
_global.bulletDepth = 1000;
_global.popupDepth = 20000;
_global.okCancelDepth = 30000;
_root.traceLoadedXml = false;
var tileDepth = 10;
var bulletDepth = 2000;
var towerDepth = 3000;
var mapW = 10;
var mapH = 10;
var tileSize = 24;
var mapX = ((tileSize / 2) + 2);
var mapY = (65 + (tileSize / 2));
var messageLife = 250;
_root.showCoverage = false;
_root.muted = false;
_root.allSounds = new Array();
function getSound(soundName) {
var sound = new Sound();
allSounds[soundName] = sound;
sound.loadSound((_root.server + "snd/") + soundName, false);
return(sound);
}
function getMuted() {
return(muted);
}
function setMuted(b) {
muted = b;
var vol = (muted ? 0 : 75);
for (i in allSounds) {
allSounds[i].setVolume(vol);
}
}
function setGodMode(b) {
_root.inGodMode = b;
godModeButton.label = (b ? "TEST MODE" : "GOD MODE");
}
function enterEditMode() {
function seeIfBeaten() {
var wasMapAuthor = false;
var i = 0;
while (i < _root.authors.length) {
if (_root.login == _root.authors[i]) {
wasMapAuthor = true;
break;
}
i++;
}
if (!wasMapAuthor) {
_root.checkBeatenGame(allowIntoEditMode, function () {
_root.okBox("PLEASE BEAT MAP FIRST", "You must first beat this map before you can edit it.");
});
} else {
_root.doNextFrame(allowIntoEditMode);
}
}
var allowIntoEditMode = function () {
_root.closeDlg();
var wasPaused = _root.paused;
_root.setPaused(true);
_root.fastRwdButton._visible = true;
_root.fastFwdButton._visible = true;
_root.prevLevelButton._visible = true;
_root.nextLevelButton._visible = true;
_root.okCancelBoxMultiline("ENTERING EDIT MODE", "In edit mode you can redraw the map and reconfigure the game settings to make a new game. Use the arrow buttons to go to level 0 to define how the game map will appear at the very start of the game. Hold Shift when clicking the arrow buttons to preserve the map tiles state.\n\nWhen you have a map that you like you can publish it to the server by clicking the 'PUBLISH' button. Doing so will allow other people to play your map. \n\nBefore you can publish your map you'll need to play test it to prove that it's winnable. To do that, click the 'PLAY MAP' button and beat your map without entering Edit Mode again. After you've beaten it you'll be able to publish it. At any time in between you can save your game and reload it if you like.\n\nUse the 'EDITOR' button to edit most game settings and the '$ $ $' button to edit your money amount. When you click 'PLAY MAP' again the game will be set to level 0 and whatever state things are in at that point is how the game will be when it's published.", function () {
_root.mapEdited = true;
_root.mapProven = false;
_root.editMapButton.label = "PLAY MAP";
_root.inEditMode = true;
_root.mapButton._visible = true;
_root.fastRwdButton._visible = true;
_root.fastFwdButton._visible = true;
_root.prevLevelButton._visible = true;
_root.nextLevelButton._visible = true;
_root.editNowStateButton._visible = true;
_root.editorButton._visible = true;
_root.editNowStateButton._visible = true;
_root.godModeButton._visible = true;
_root.publishButton._visible = true;
_root.reverseButton._visible = true;
_root.makeSelectorUI();
}, null, function () {
if (!wasPaused) {
_root.setPaused(false);
}
_root.fastRwdButton._visible = false;
_root.fastFwdButton._visible = false;
_root.prevLevelButton._visible = false;
_root.nextLevelButton._visible = false;
});
};
_root.doNextFrame(function () {
if (_root.login == _root.justTryingLogin) {
_root.openLogInDlg(seeIfBeaten);
} else {
_root.doNextFrame(function () {
_root.checkLogin(seeIfBeaten, _root.openLogInDlg);
});
}
});
}
function enterPlayMode() {
_root.editMapButton.label = "EDIT MAP";
_root.inEditMode = false;
mapButton._visible = false;
fastRwdButton._visible = false;
fastFwdButton._visible = false;
prevLevelButton._visible = false;
nextLevelButton._visible = false;
editNowStateButton._visible = false;
editorButton._visible = false;
editNowStateButton._visible = false;
godModeButton._visible = false;
reverseButton._visible = false;
publishButton._visible = _root.mapEdited;
makeSelectorUI();
}
function enterPlayModeToPublish() {
var wasPaused = _root.paused;
_root.setPaused(true);
_root.closeDlg();
_root.okCancelBoxMultiline("ENTERING PLAY MODE", "In play mode you can prove that your edited map is winnable by playing it from start to finish without entering edit mode again. This will allow you to use the 'PUBLISH' button to publish your map to the server so other people can play it.\n\nClick 'OK' to reset the game to level 0 and enter play mode, otherwise click 'Cancel' to remain in edit mode.", function () {
stats.creepsKilled = 0;
stats.creepsExited = 0;
enterPlayMode();
_root.gotoLevel(0, false, true);
_root.setDifficulty(_root.DIFFICULTY_HARD);
if (!wasPaused) {
_root.setPaused(false);
}
}, null, function () {
if (!wasPaused) {
_root.setPaused(false);
}
});
}
_root.mapEdited = false;
_root.mapProven = false;
function TowerUpgrade(price, damage, cooldown, slowAmount, pushbackLimit) {
this.damage = damage;
this.cooldown = cooldown;
this.price = price;
this.slowAmount = slowAmount;
this.pushbackLimit = pushbackLimit;
}
function TowerType(id, title, byline, range, angleOfFireType) {
this.id = id;
this.displayOrder = displayOrderCnt++;
this.isBlock = false;
this.upgrades = new Array();
this.isTileType = false;
this.editModeOnly = false;
this.isSlowing = false;
this.title = title;
this.byline = byline;
this.mapChar = "?";
this.maxQuant = -1;
this.maxQuantHard = -1;
this.maxQuantMed = -1;
this.maxQuantEasy = -1;
this.builtQuant = 0;
this.price = 0;
this.unlockPrice = 0;
this.locked = false;
this.defaultLocked = false;
this.selector = null;
this.setBuiltQuant = function (q) {
this.builtQuant = q;
this.updateSelector();
};
this.updateSelector = function () {
this.selector.updateLocked();
var maxQuant = this.getMaxQuant();
if (maxQuant == undefined) {
maxQuant = -1;
}
if (this.builtQuant == undefined) {
this.builtQuant = 0;
}
if (maxQuant == -1) {
this.selector.setQuant(-1);
} else {
var q = (maxQuant - this.builtQuant);
if (q < 0) {
q = 0;
}
this.selector.setQuant(q);
}
};
this.setLocked = function (l) {
this.locked = l;
this.selector.updateLocked();
};
this.canBuy = function () {
if (_root.inEditMode && (_root.inGodMode)) {
return(true);
}
var cost = (this.isTileType ? (this.price) : (this.upgrades[0].price));
if (_root.money < cost) {
message("Can't afford " + this.title);
return(false);
}
if ((this.getMaxQuant() != -1) && ((this.getMaxQuant() - this.builtQuant) == 0)) {
message("Can't build that, there are none left");
return(false);
}
return(true);
};
this.sell = function () {
};
this.buy = function (dontCharge) {
if ((!this.isTileType) || (!(_root.inEditMode && (_root.inGodMode)))) {
this.decInventory();
}
if (dontCharge || (_root.inEditMode && (_root.inGodMode))) {
return(undefined);
}
var cost = (this.isTileType ? (this.price) : (this.upgrades[0].price));
_root.stats.spend(cost);
_root.message((("Built " + title) + " for $") + _root.formatInt(_root.formatInt(cost)));
};
this.incInventory = function () {
this.setBuiltQuant(this.builtQuant - 1);
};
this.decInventory = function () {
this.setBuiltQuant(this.builtQuant + 1);
};
this.range = range;
this.angleOfFireType = angleOfFireType;
updateAngleOfFire(this);
this.extraSize = 0;
this.shootThrough = false;
this.splashSize = 0;
_root.towerTypes[id] = this;
_root.towerTypesStack.push(this);
this.setSound = function (soundName, loop) {
this.sound = _root.getSound(soundName);
this.loop = loop;
this.soundDepth = 0;
};
this.playSound = function () {
if (this.loop) {
return(undefined);
}
this.sound.start(0, 1);
};
this.startLoopedSound = function () {
if (!this.loop) {
return(undefined);
}
this.soundDepth++;
if (this.soundDepth == 1) {
this.sound.start(0, 1000);
}
};
this.stopLoopedSound = function () {
if (!this.loop) {
return(undefined);
}
this.soundDepth--;
if (this.soundDepth < 0) {
this.soundDepth = 0;
}
if (this.soundDepth == 0) {
this.sound.stop();
}
};
this.getActualSweepAngle = function () {
return(this.angleOfFire * 1.3);
};
this.getMaxQuant = function () {
if (_root.difficulty == _root.DIFFICULTY_EASY) {
return(this.maxQuantEasy);
}
if (_root.difficulty == _root.DIFFICULTY_MEDIUM) {
return(this.maxQuantMed);
}
if (_root.difficulty == _root.DIFFICULTY_HARD) {
return(this.maxQuantHard);
}
return(this.maxQuantEasy);
};
}
function getMinRange(tower) {
if (tower.towerType.splashSize > 0) {
return(tower.effectiveRange * 0.5);
}
return(0);
}
function updateAngleOfFire(towerType) {
if (towerType.isTileType) {
return(undefined);
}
if (towerType.angleOfFireType == _root.FULL_SWEEP) {
towerType.angleOfFire = 360;
} else if (towerType.angleOfFireType == _root.MED_SWEEP) {
towerType.angleOfFire = 90;
} else if (towerType.angleOfFireType == _root.NARROW_SWEEP) {
towerType.angleOfFire = 30;
} else if (towerType.angleOfFireType == _root.THIN_SWEEP) {
towerType.angleOfFire = 15;
} else if (towerType.angleOfFireType == _root.NO_SWEEP) {
towerType.angleOfFire = 0;
}
}
function initTowerTypes() {
function makeUpgrade(towerType, price, damageFactor, cooldown) {
var damage = (((200 * cooldown) * damageFactor) / ((towerType.angleOfFire * towerType.range) * towerType.range));
if (towerType.splashSize > 0) {
damage = damage / ((towerType.splashSize + 0.5) * (towerType.splashSize + 0.5));
}
var upgrade = new TowerUpgrade(price, damage, cooldown, 0, 0);
towerType.upgrades.push(upgrade);
return(upgrade);
}
selectorX = -5;
_root.towerTypes = new Array();
_root.towerTypesStack = new Array();
var vulcan = 1;
var auto = 2;
var rapid = 3;
var semi = 10;
var bolt = 15;
var artillery = 60;
var tower;
var bolter = new TowerType("bolter", "Bolter Sentry", "MODULAR POINT DEFENSE UNIT", 1, _root.FULL_SWEEP);
bolter.setSound("bolter.mp3");
var icer = new TowerType("ice", "Light Duty Icer", "SLOWS CREEPS DOWN A BIT", 1, _root.FULL_SWEEP);
icer.setSound("icer.mp3");
icer.isSlowing = true;
var howizter = new TowerType("howizter", "Howizter", "MED. RANGE ARTILLERY", 7, _root.NARROW_SWEEP);
howizter.setSound("howizter.mp3");
howizter.splashSize = 1;
var fireFlood = new TowerType("fireFlood", "Fire Flood", "FRY EM WITH CLOSE RANGE CARNAGE", 1, _root.FULL_SWEEP);
fireFlood.setSound("fireFlood.mp3");
fireFlood.splashSize = 2;
var gluon = new TowerType("gluon", "Gluon Gun", "MEDIUM RANGE SHOOT THROUGH", 5, _root.NO_SWEEP);
gluon.setSound("gluonPulse.mp3");
gluon.shootThrough = true;
var sixteenIncher = new TowerType("16incher", "16 Incher", "LONG RANGE BATTLESHIP ARTILLERY", 12, _root.THIN_SWEEP);
sixteenIncher.setSound("16incher.mp3");
sixteenIncher.splashSize = 4;
sixteenIncher.extraSize = 2;
var autocannon = new TowerType("autocannon", "Autocannon", "HIGH SPEED SUPPRESSIVE FIRE", 4, _root.MED_SWEEP);
autocannon.setSound("autocannon.mp3");
autocannon.extraSize = 1;
var frostBomb = new TowerType("frostBomb", "Frost Bomb", "MED. RANGE SPLASHING COLD", 1, _root.THIN_SWEEP);
frostBomb.setSound("frostFlood4.mp3");
frostBomb.splashSize = 2;
frostBomb.isSlowing = true;
var railgun = new TowerType("railgun", "Railgun", "BLASTS STRAIGHT THROUGH CREEPS", 31, _root.NO_SWEEP);
railgun.setSound("railgun.mp3");
railgun.shootThrough = true;
var atomicHowizter = new TowerType("atomicHowizter", "Atomic Howizter", "THE BEE'S KNEES, BABY!", 12, _root.NARROW_SWEEP);
atomicHowizter.setSound("atomicHowizter.mp3");
atomicHowizter.splashSize = 8;
atomicHowizter.extraSize = 2;
tower = new TowerType("water", "Water", "BLOCKS CREEPS & CAN'T BE BUILT ON", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Build water to make moats and lengthen the path. Water can not be removed";
tower.editModeOnly = false;
tower.isTileType = true;
tower.mapChar = "~";
tower.price = 100;
tower.isBlock = true;
tower = new TowerType("concrete", "Concrete Block", "BLOCKS CREEPS & CAN BE BUILT ON", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Build guns on concrete to keep creeps from overruning them";
tower.quant = 3;
tower.isTileType = true;
tower.mapChar = "#";
tower.price = 100;
tower.isBlock = true;
tower = new TowerType("raisedConcrete", "Raised Concrete Block", "BLOCKS CREEPS & CAN BE BUILT ON", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Raised concrete lengthens guns' ranges. It must be built on normal concrete";
tower.quant = 3;
tower.isTileType = true;
tower.mapChar = "r";
tower.price = 100;
tower.isBlock = true;
tower = new TowerType("waypoint", "Waypoint", "CREEPS FOLLOW THESE TO THE EXIT", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Creeps pass through each waypoint as they head to the exit";
tower.editModeOnly = true;
tower.isTileType = true;
tower.mapChar = "w";
tower = new TowerType("grass", "Reinforced Ground", "DOESN'T BLOCK & CAN BE BUILT ON", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Guns built here are not protected and may be overrun by creeps";
tower.editModeOnly = true;
tower.isTileType = true;
tower.mapChar = ".";
tower = new TowerType("sand", "Normal Ground", "DOESN'T BLOCK & CAN'T BE BUILT ON", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Creeps can walk here but you can't build here";
tower.editModeOnly = true;
tower.isTileType = true;
tower.mapChar = "_";
tower = new TowerType("wall", "Wall", "BLOCKS TOWER SIGHT", 0, 0, 0, 0, _root.FULL_SWEEP);
tower.desc = "Guns can't see creeps on the other side of walls";
tower.editModeOnly = true;
tower.isTileType = true;
tower.mapChar = "W";
tower.isBlock = true;
bolter.upgrades.push(new TowerUpgrade(100, 16.6666666666667, rapid, 0, 0));
bolter.upgrades.push(new TowerUpgrade(400, 33.3333333333333, rapid, 0, 0));
bolter.maxQuantHard = 3;
howizter.locked = true;
howizter.unlockPrice = 2000;
howizter.upgrades.push(new TowerUpgrade(500, 166.666666666667, bolt, 0, 0));
howizter.upgrades.push(new TowerUpgrade(1100, 350, bolt, 0, 0));
howizter.maxQuantHard = 4;
fireFlood.locked = true;
fireFlood.unlockPrice = 5000;
fireFlood.upgrades.push(new TowerUpgrade(2400, 562.5, bolt, 0, 0));
fireFlood.maxQuantHard = 5;
gluon.locked = true;
gluon.unlockPrice = 15000;
gluon.upgrades.push(new TowerUpgrade(7500, 500, vulcan + 2, 0, 0));
gluon.maxQuantHard = 2;
autocannon.locked = true;
autocannon.unlockPrice = 45000;
autocannon.upgrades.push(new TowerUpgrade(15000, 900, auto, 0, 0));
autocannon.maxQuantHard = 2;
icer.upgrades.push(new TowerUpgrade(150, 0, bolt * 3, 12, 0));
icer.upgrades.push(new TowerUpgrade(150, 0, bolt * 3, 24, 0));
icer.maxQuantHard = 2;
frostBomb.upgrades.push(new TowerUpgrade(150, 0, bolt, 5, 30));
railgun.upgrades.push(new TowerUpgrade(500, 500, bolt, 0, 0));
sixteenIncher.upgrades.push(new TowerUpgrade(500, 300, artillery * 1.5, 0, 0));
atomicHowizter.upgrades.push(new TowerUpgrade(500, 3000, artillery * 3, 0, 0));
makeSelectorUI();
}
function makeSelectorUI() {
_root.towerTypesStack.sortOn("displayOrder", Array.NUMERIC);
var selectorXStart = 18;
var selectorX = selectorXStart;
var selectorY = 423;
while (towerSelectorSetters.length > 0) {
towerSelectorSetters.pop().removeMovieClip();
}
var i = 0;
var x = 0;
while (i < _root.towerTypesStack.length) {
if ((!_root.towerTypesStack[i].editModeOnly) || (_root.inEditMode)) {
var setter = _root.attachMovie("towerSelectorSetter", "ts" + _global.depth, _global.depth++);
towerSelectorSetters.push(setter);
setter.selector.towerType = _root.towerTypesStack[i];
setter._x = selectorX;
setter._y = selectorY;
if (x == 9) {
selectorX = selectorXStart;
selectorY = selectorY + 50;
} else {
selectorX = selectorX + selectorWidth;
}
x++;
}
i++;
}
}
function setTowerType(tower, towerType) {
tower.towerType = towerType;
tower.barrel.towerType = towerType;
tower.barrel.gotoAndStop(towerType.id + "Loading");
tower.barrel.bullet.towerType = towerType;
tower.towerBase.towerType = towerType;
tower.towerBase.gotoAndStop(towerType.id + "0");
tower.getHighRange = function () {
return(towerType.range + Math.ceil(Math.sqrt(towerType.range)));
};
tower.effectiveRange = towerType.range;
tower.showRangeInfo = function () {
this.splashRange._visible = true;
this.rangeAngle.gotoAndStop("show");
};
tower.hideRangeInfo = function () {
this.splashRange._visible = false;
this.rangeAngle.gotoAndStop("hide");
};
tower.hideRangeInfo();
tower.updateRangeInfo = function () {
with (this) {
if (towerType.angleOfFireType == _root.FULL_SWEEP) {
tower.rangeAngle = tower.range;
} else if (towerType.angleOfFireType == _root.MED_SWEEP) {
tower.rangeAngle = ((towerType.splashSize > 0) ? (tower.rangeMedSplash) : (tower.rangeMed));
} else if (towerType.angleOfFireType == _root.NARROW_SWEEP) {
tower.rangeAngle = ((towerType.splashSize > 0) ? (tower.rangeNarrowSplash) : (tower.rangeNarrow));
} else if (towerType.angleOfFireType == _root.THIN_SWEEP) {
tower.rangeAngle = ((towerType.splashSize > 0) ? (tower.rangeThinSplash) : (tower.rangeThin));
} else if (towerType.angleOfFireType == _root.NO_SWEEP) {
tower.rangeAngle = tower.rangeNo;
}
var scale = ((effectiveRange + 0.5) * _root.tileSize);
rangeAngle._xscale = scale;
rangeAngle._yscale = scale;
if (towerType.splashSize != 0) {
tower.splashRange.removeMovieClip();
tower.createEmptyMovieClip("splashRange", _global.depth++);
tower.splashRange._alpha = 32;
tower.splashRange.lineStyle(2, 16751001);
tower.splashRange.beginFill(16776960);
if (towerType.angleOfFire == 360) {
drawCircle(splashRange, effectiveRange * _root.tileSize, 0, (towerType.splashSize + 0.5) * _root.tileSize);
drawCircle(splashRange, 0, 0, ((towerType.splashSize + 0.5) + effectiveRange) * _root.tileSize);
} else {
drawCircle(splashRange, effectiveRange * _root.tileSize, 0, (towerType.splashSize + 0.5) * _root.tileSize);
drawSplashAngleHalf(splashRange, effectiveRange * _root.tileSize, (towerType.splashSize + 0.5) * _root.tileSize, _root.degreesToRadians((towerType.angleOfFire / 2) * 1.3));
}
tower.splashRange.endFill();
}
tower.rangeAngle._rotation = tower.centerAngle;
tower.splashRange._rotation = tower.centerAngle;
}
};
tower.updateRangeInfo();
tower.splashRange._visible = false;
tower.useHighRange = function () {
with (this) {
if (effectiveRange == getHighRange()) {
return(undefined);
}
effectiveRange = getHighRange();
updateRangeInfo();
}
};
tower.useNormalRange = function () {
with (this) {
if (effectiveRange == towerType.range) {
return(undefined);
}
effectiveRange = towerType.range;
updateRangeInfo();
}
};
}
function drawSplashAngleHalf(c, range, splash, angle) {
var cosAngle = Math.cos(angle);
var sinAngle = Math.sin(angle);
var cosHalfAngle = Math.cos(angle * 0.5);
var sinHalfAngle = Math.sin(angle * 0.5);
var theta = (((Math.PI/2) - angle) * 0.5);
var cosTheta = Math.cos(theta);
var sinTheta = Math.sin(theta);
var beta = ((Math.PI/4) + angle);
var cosBeta = Math.cos(beta);
var sinBeta = Math.sin(beta);
var A1 = ((range / 2) - (splash * 1.2));
var A2 = 0;
var B1 = (((range / 2) - (splash * 1.2)) * cosHalfAngle);
var B2 = (((range / 2) + (splash * 1.2)) * sinHalfAngle);
var C1 = (((range / 2) - (splash * 1.2)) * cosAngle);
var C2 = (((range / 2) + (splash * 1.2)) * sinAngle);
var D1 = ((((-splash) * 1.2) * sinBeta) + ((range / 2) * cosAngle));
var D2 = (((splash * 1.2) * cosBeta) + ((range / 2) * sinAngle));
var E1 = (((-splash) * sinTheta) + ((range / 2) * cosAngle));
var E2 = ((splash * cosTheta) + ((range / 2) * sinAngle));
var c1l = (((-splash) * sinAngle) + (range * cosAngle));
var c2l = ((splash * cosAngle) + (range * sinAngle));
var d1c = (((1.2 * splash) * cosBeta) + (range * cosAngle));
var d2c = (((1.2 * splash) * sinBeta) + (range * sinAngle));
var e1a = ((range + splash) * cosAngle);
var e2a = ((range + splash) * sinAngle);
var f1c = ((range + (1.025 * splash)) * cosHalfAngle);
var f2c = ((range + (1.025 * splash)) * sinHalfAngle);
var g1a = (range + splash);
var g2a = 0;
c.moveTo(A1, A2);
c.curveTo(B1, B2, C1, C2);
c.curveTo(D1, D2, E1, E2);
c.lineTo(c1l, c2l);
c.curveTo(d1c, d2c, e1a, e2a);
c.curveTo(f1c, f2c, g1a, g2a);
c.curveTo(f1c, -f2c, e1a, -e2a);
c.curveTo(d1c, -d2c, c1l, -c2l);
c.lineTo(E1, -E2);
c.curveTo(D1, -D2, C1, -C2);
c.curveTo(B1, -B2, A1, -A2);
}
function drawSplashAngleFull(c, range, splash, angle) {
c.moveTo(-splash, 0);
var cosAngle = Math.cos(angle);
var sinAngle = Math.sin(angle);
var cosHalfAngle = Math.cos(angle * 0.5);
var sinHalfAngle = Math.sin(angle * 0.5);
var theta = (((Math.PI/2) - angle) * 0.5);
var cosTheta = Math.cos(theta);
var sinTheta = Math.sin(theta);
var beta = ((Math.PI/4) + angle);
var cosBeta = Math.cos(beta);
var sinBeta = Math.sin(beta);
var a1c = ((-1.2 * splash) * cosTheta);
var a2c = ((-1.2 * splash) * sinTheta);
var b1a = ((-splash) * sinAngle);
var b2a = ((-splash) * cosAngle);
var c1l = (((-splash) * sinAngle) + (range * cosAngle));
var c2l = (((-splash) * cosAngle) - (range * sinAngle));
var d1c = (((1.2 * splash) * cosBeta) + (range * cosAngle));
var d2c = (((-1.2 * splash) * sinBeta) - (range * sinAngle));
var e1a = ((range + splash) * cosAngle);
var e2a = ((-(range + splash)) * sinAngle);
var f1c = ((range + (1.025 * splash)) * cosHalfAngle);
var f2c = ((-(range + (1.025 * splash))) * sinHalfAngle);
var g1a = (range + splash);
var g2a = 0;
c.curveTo(a1c, a2c, b1a, b2a);
c.lineTo(c1l, c2l);
c.curveTo(d1c, d2c, e1a, e2a);
c.curveTo(f1c, f2c, g1a, g2a);
c.curveTo(f1c, -f2c, e1a, -e2a);
c.curveTo(d1c, -d2c, c1l, -c2l);
c.lineTo(b1a, -b2a);
c.curveTo(a1c, -a2c, -splash, 0);
}
function drawCircle(mc, x, y, r) {
mc.moveTo(x + r, y);
mc.curveTo(r + x, (0.414213562373095 * r) + y, (0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((0.414213562373095 * r) + x, r + y, x, r + y);
mc.curveTo((-0.414213562373095 * r) + x, r + y, (-0.707106781186547 * r) + x, (0.707106781186547 * r) + y);
mc.curveTo((-r) + x, (0.414213562373095 * r) + y, (-r) + x, y);
mc.curveTo((-r) + x, (-0.414213562373095 * r) + y, (-0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo((-0.414213562373095 * r) + x, (-r) + y, x, (-r) + y);
mc.curveTo((0.414213562373095 * r) + x, (-r) + y, (0.707106781186547 * r) + x, (-0.707106781186547 * r) + y);
mc.curveTo(r + x, (-0.414213562373095 * r) + y, r + x, y);
}
function doTowerInfo(towerType) {
if (towerType.isTileType) {
doTileInfo(towerType);
return(undefined);
}
infoBox.reset();
infoBox.title = towerType.title;
infoBox.byline = towerType.byline;
infoBox.upgradeDetails._visible = false;
infoBox.upgradeButton._visible = false;
infoBox.upgradeHilight._visible = false;
infoBox.dangerStr = "";
var desc = ((("$" + _root.formatInt(Math.ceil(towerType.upgrades[0].price))) + " COST\n") + getUpgradeDescription(towerType, towerType.upgrades[0]));
if (towerType.isSlowing) {
infoBox.tileDescription = desc;
infoBox.description = "";
} else {
infoBox.description = desc;
}
infoBox.towerPreview._visible = true;
_root.setTowerType(infoBox.towerPreview, towerType);
normalizeTowerSize(infoBox.towerPreview);
if (!towerType.isSlowing) {
if (towerType.shootThrough) {
infoBox.dangerStr = "SHOOT THRU CAN KILL GUNS";
} else if (towerType.splashSize > 0) {
infoBox.dangerStr = towerType.splashSize + " SPLASH RADIUS CAN KILL GUNS";
}
}
infoBox.updateFunction = null;
}
function normalizeTowerSize(tower) {
if (tower.towerType.extraSize > 0) {
var scale = (100 / (1 + tower.towerType.extraSize));
tower._xscale = scale;
tower._yscale = scale;
} else {
tower._xscale = 100;
tower._yscale = 100;
}
}
function setTowerUpgrade(tower, upgrade) {
if (upgrade >= tower.towerType.upgrades.length) {
return(undefined);
}
tower.upgrade = upgrade;
tower.towerBase.gotoAndStop((tower.towerType.id + "") + upgrade);
var scale = ((1 + ((0.3 * tower.upgrade) / (tower.towerType.upgrades.length - 1))) * 100);
tower.towerBase._xscale = scale;
tower.towerBase._yscale = scale;
tower.barrel._xscale = scale;
tower.barrel._yscale = scale;
}
function getTowerUpgrade(tower) {
return(tower.towerType.upgrades[tower.upgrade]);
}
function doTowerInstanceInfo(tower) {
infoBox.reset();
updateTowerInstanceInfo(tower);
if (tower.upgrade < (tower.towerType.upgrades.length - 1)) {
infoBox.upgradeButton._visible = true;
infoBox.upgradeHilight._visible = true;
infoBox.upgradeButton.onRelease = function () {
_root.selectTower(tower);
upgradeTower(tower);
};
infoBox.upgradeButton.onRollOver = function () {
updateUpgradeDetailsPopup(tower);
};
infoBox.upgradeButton.onRollOut = function () {
infoBox.upgradeDetails._visible = false;
};
}
}
function upgradeTower(tower) {
if ((!(_root.inEditMode && (_root.inGodMode))) && (_root.money < tower.towerType.upgrades[tower.upgrade + 1].price)) {
message("Can't afford upgrade");
return(undefined);
}
if (!(_root.inEditMode && (_root.inGodMode))) {
_root.stats.spend(tower.towerType.upgrades[tower.upgrade + 1].price);
}
setTowerUpgrade(tower, tower.upgrade + 1);
updateTowerInstanceInfo(tower);
message("Upgraded tower");
if (tower.upgrade < (tower.towerType.upgrades.length - 1)) {
infoBox.upgradeButton._visible = true;
infoBox.upgradeHilight._visible = true;
infoBox.upgradeDetails._visible = true;
updateUpgradeDetailsPopup(tower);
}
}
function getUpgradeDescription(towerType, upgrade) {
if (towerType.isSlowing) {
var slow = upgrade.slowAmount;
var shotsPerMin = Math.round((20 / upgrade.cooldown) * 60);
var slowPerSec = Math.round((20 / upgrade.cooldown) * slow);
var desc = (((((slow + " SLOW AMNT\n") + shotsPerMin) + " SHOTS/MIN\n") + _root.formatInt(slowPerSec)) + " SLOW/SEC");
if (towerType.splashSize > 0) {
desc = desc + ((newline + towerType.splashSize) + " SPLASH RADIUS");
}
return(desc);
}
var dmg = upgrade.damage;
var shotsPerMin = Math.round((20 / upgrade.cooldown) * 60);
var dmgPerSec = Math.round((20 / upgrade.cooldown) * dmg);
return(((((_root.formatInt(Math.floor(dmg)) + " DAMAGE\n") + Math.floor(shotsPerMin)) + " SHOTS/MIN\n") + _root.formatInt(Math.ceil(dmgPerSec))) + " DMG/SEC");
}
function updateTowerInstanceInfo(tower) {
var towerType = tower.towerType;
doTowerInfo(towerType);
infoBox.towerPreview.towerBase.gotoAndStop((towerType.id + "") + tower.upgrade);
var desc = getUpgradeDescription(towerType, getTowerUpgrade(tower));
if (towerType.isSlowing) {
infoBox.tileDescription = desc;
infoBox.description = "";
} else {
infoBox.description = desc;
}
var worth = Math.floor(getTowerWorth(tower));
if (worth > 99999) {
infoBox.sellStr = "SELL $" + _root.formatInt(worth);
} else {
infoBox.sellStr = "SELL FOR $" + _root.formatInt(worth);
}
infoBox.sellButton._visible = true;
infoBox.sellButton.onRelease = function () {
if (_root.sellTower(tower)) {
infoBox.reset();
}
};
}
function updateUpgradeDetailsPopup(tower) {
var newUpgrade = tower.towerType.upgrades[tower.upgrade + 1];
infoBox.upgradeDetails._visible = true;
infoBox.upgradeDetails.title = "UPGRADE TO LEVEL " + (tower.upgrade + 2);
infoBox.upgradeDetails.description = (("$" + _root.formatInt(newUpgrade.price)) + newline) + getUpgradeDescription(tower.towerType, newUpgrade);
}
function getTowerWorth(tower) {
var worth = 0;
if (tower.towerType == null) {
return(0);
}
if (isNaN(tower.upgrade)) {
tower.upgrade = 0;
}
var i = 0;
while (i <= tower.upgrade) {
worth = worth + tower.towerType.upgrades[i].price;
i++;
}
return(0.75 * worth);
}
function doTileInfo(towerType) {
infoBox.reset();
infoBox.title = towerType.title;
infoBox.byline = towerType.byline;
infoBox.description = "";
infoBox.tilePrice = ("$" + _root.formatInt(towerType.price)) + " COST";
infoBox.tilePreview._visible = true;
infoBox.tilePreview.gotoAndStop(towerType.id);
infoBox.updateFunction = null;
infoBox.upgradeButton._visible = false;
infoBox.upgradeHilight._visible = false;
infoBox.editButton._visible = false;
infoBox.dangerStr = "";
infoBox.tileDescription = towerType.desc.toUpperCase();
}
function sellTower(tower) {
if (tower == null) {
return(false);
}
if (!(_root.inEditMode && (_root.inGodMode))) {
if (tower.levelBuilt == _root.levelNum) {
var msg = "Can't sell tower on the same level you built it, wait till next round".toUpperCase();
message(msg);
infoBox.reset();
infoBox.tileDescription = msg;
return(false);
}
stats.spend(-_root.getTowerWorth(tower));
message((("Sold " + tower.towerType.title) + " for $") + _root.formatInt(_root.getTowerWorth(tower)));
}
tower.towerType.sell();
_root.killTower(tower);
return(true);
}
function killTower(tower, dontExplode) {
if (tower == null) {
return(undefined);
}
if (_root.selectedTower == tower) {
_root.infoBox.reset();
_root.selectedTower = null;
}
if (tower.barrel.targetedCreep != null) {
tower.towerType.stopLoopedSound();
}
if (!dontExplode) {
var explosion = _root.attachMovie("towerExplosion", "te" + _global.depth, _global.depth++);
explosion._x = tower._x;
explosion._y = tower._y;
explosion._rotation = random(360);
explosion.gotoAndPlay("show");
explosion.frames = 0;
explosion.onEnterFrame = function () {
if ((this.frames++) < 5) {
return(undefined);
}
this.removeMovieClip();
};
}
if (tower.towerType.quant >= 0) {
tower.towerType.incInventory();
}
if (tower.towerType.extraSize == 0) {
getTile(tower.tileX, tower.tileY).tower = null;
} else if (tower.towerType.extraSize == 1) {
_root.getTile(tower.tileX, tower.tileY).tower = null;
_root.getTile(tower.tileX + 1, tower.tileY).tower = null;
_root.getTile(tower.tileX, tower.tileY + 1).tower = null;
_root.getTile(tower.tileX + 1, tower.tileY + 1).tower = null;
} else {
findTilesInRadius(tower.tileX, tower.tileY, tower.towerType.extraSize - 1, function (tx, ty) {
getTile(tx, ty).tower = null;
return(true);
}, 0, 360);
}
removeCreepListeners(tower);
removeTowerFromMemory(tower);
}
function removeTowerFromMemory(tower) {
tower.bull.removeMovieClip();
tower.removeMovieClip();
}
function buildTower(tile, towerType, chargePrice, centerAngle) {
if (tile.tower != null) {
killTower(tile.tower, true);
}
var tileOffset = 0;
if (towerType.extraSize == 1) {
tileOffset = 0.5;
}
tileX = tile.tileX;
tileY = tile.tileY;
tower = _root.attachMovie("tower", "t" + _global.depth, _global.depth++);
tower.barrel.bull = _root.attachMovie("bullet", "b" + _global.depth, _global.bulletDepth + (_global.depth++));
tower.barrel.bull.gotoAndPlay("hide");
tower.levelBuilt = _root.levelNum;
tower._x = tile._x + (tileOffset * _root.tileSize);
tower._y = tile._y + (tileOffset * _root.tileSize);
tower.tileX = tile.tileX;
tower.tileY = tile.tileY;
_root.allTowers.push(tower);
tower.centerAngle = centerAngle;
tower.barrel.bull._rotation = centerAngle;
_root.setTowerType(tower, towerType);
if (tile.tileType.id == "raisedConcrete") {
tower.useHighRange();
}
if (_root.showCoverage) {
tower.showRangeInfo();
}
_root.setTowerUpgrade(tower, 0);
tower.barrel.tower = tower;
tower.barrel.tileX = tileX;
tower.barrel.tileY = tileY;
tower.barrel.centerAngle = centerAngle;
if (towerType.extraSize == 0) {
tile.tower = tower;
} else if (towerType.extraSize == 1) {
_root.getTile(tileX, tileY).tower = tower;
_root.getTile(tileX + 1, tileY).tower = tower;
_root.getTile(tileX, tileY + 1).tower = tower;
_root.getTile(tileX + 1, tileY + 1).tower = tower;
} else {
findTilesInRadius(tileX, tileY, towerType.extraSize - 1, function (tx, ty) {
_root.getTile(tx, ty).tower = tower;
return(true);
}, 0, 360);
}
tower.towerBase._rotation = centerAngle;
tower.barrel._rotation = centerAngle;
addCreepListeners(tower);
stats.towerBuilt();
towerType.buy(!chargePrice);
_root.selectTower(tower);
tower.hideRangeInfo();
return(tower);
}
function buildTile(tile, towerType, duplicatedTile) {
if (tile.tileType.id == towerType.id) {
return(undefined);
}
var tileX = tile.tileX;
var tileY = tile.tileY;
if (((towerType.id == "water") || (towerType.id == "concrete")) || (towerType.id == "raisedConcrete")) {
if (towerType.id == "water") {
if ((!_root.inEditMode) && (tile.tileType.id != "grass")) {
message("You can only turn grass into water");
return(false);
}
} else if (towerType.id == "raisedConcrete") {
if ((!_root.inEditMode) && (tile.tileType.id != "concrete")) {
message("You can only build raised concrete on normal concrete");
return(false);
}
if (tile.tower != null) {
message("Can't build raised concrete where there's already a tower, sell it first");
return(false);
}
} else if ((!_root.inEditMode) && (!tile.buildable)) {
message("Can't build on that type of land");
return(false);
}
if (!towerType.canBuy()) {
return(false);
}
}
if (tile.tileType.id == "waypoint") {
if (!_root.inEditMode) {
return(false);
}
if (!deleteWaypoint(tileX, tileY)) {
return(undefined);
}
}
var newTileIsBlock = towerType.isBlock;
var wallInvolved = ((towerType.id == "wall") || (tile.tileType.id == "wall"));
var removingBlock = (mapBlocks[tileY][tileX] == 1);
if (newTileIsBlock) {
if (_root.inEditMode) {
tryToAddPathBlock(tileX, tileY, true);
} else if (!tryToAddPathBlock(tileX, tileY)) {
message("Can't block the path");
return(false);
}
}
if ((!newTileIsBlock) && (removingBlock)) {
_root.clearPathCache();
}
towerType.buy();
if (towerType.id == "concrete") {
setMapTileConcrete(tile);
} else if (towerType.id == "raisedConcrete") {
setMapTileRaisedConcrete(tile);
} else if (towerType.id == "water") {
setMapTileWater(tile);
} else if (towerType.id == "sand") {
setMapTileSand(tile);
} else if (towerType.id == "grass") {
setMapTileGrass(tile);
} else if (towerType.id == "wall") {
setMapTileWall(tile);
} else if (towerType.id == "waypoint") {
var makingNewEndpoint = true;
if (duplicatedTile != null) {
makingNewEndpoint = false;
var oldTileX = duplicatedTile.tileX;
var oldTileY = duplicatedTile.tileY;
if ((_global.spawnPoints[0][0] == oldTileX) && (_global.spawnPoints[0][1] == oldTileY)) {
_root.setMapTileWaypoint(tile);
_global.waypoints.unshift([tile.tileX, tile.tileY]);
_root.clearPathCache();
} else if ((_global.exitPoint[0] == oldTileX) && (_global.exitPoint[1] == oldTileY)) {
makingNewEndpoint = true;
} else {
_root.clearPathCache();
var i = 0;
while (i < _global.waypoints.length) {
if ((_global.waypoints[i][0] == oldTileX) && (_global.waypoints[i][1] == oldTileY)) {
_root.setMapTileWaypoint(tile);
var tail = _global.waypoints.splice(i + 1, _global.waypoints.length - i);
_global.waypoints.push([tile.tileX, tile.tileY]);
_global.waypoints = _global.waypoints.concat(tail);
break;
}
i++;
}
}
}
if (makingNewEndpoint) {
if (_global.waypoints.length > 0) {
_root.setMapTileWaypoint(_root.getTile(exitPoint[0], exitPoint[1]));
}
_root.setMapTileEnd(tile);
exitPoint[0] = tileX;
exitPoint[1] = tileY;
_global.waypoints.push([tile.tileX, tile.tileY]);
}
drawPathDirections();
}
if (wallInvolved) {
refreshListeners(tile);
}
}
function refreshListeners(tile) {
var creepListenersCopy = tile.creepListeners.slice();
var i = 0;
var l = creepListenersCopy.length;
while (i < l) {
removeCreepListeners(creepListenersCopy[i].tower, true);
i++;
}
var i = 0;
var l = creepListenersCopy.length;
while (i < l) {
addCreepListeners(creepListenersCopy[i].tower);
i++;
}
}
function removeCreepListeners(tower, keepIfWall) {
tower.barrel.targetedCreep = null;
tower.barrel.bull.targetedCreep = null;
var towerType = tower.towerType;
var tileOffset = 0;
if (towerType.extraSize == 1) {
tileOffset = 0.5;
}
findTilesInRadius(tower.tileX + tileOffset, tower.tileY + tileOffset, tower.effectiveRange, function (tx, ty, keepIfWall) {
var tile = getTile(tx, ty);
if (keepIfWall && (tile.tileType.id == "wall")) {
return(true);
}
creepListeners = tile.creepListeners;
i = 0;
while (i < creepListeners.length) {
if (creepListeners[i] == tower.barrel) {
creepListeners.splice(i, 1);
break;
}
i++;
}
return(true);
}, tower.centerAngle, towerType.getActualSweepAngle(), keepIfWall, getMinRange(tower));
}
function addCreepListeners(tower) {
var towerType = tower.towerType;
var tileOffset = 0;
if (tower.towerType.extraSize == 1) {
tileOffset = 0.5;
}
var callData = [tower, false, -1, -1];
findTilesInRadius(tower.tileX + tileOffset, tower.tileY + tileOffset, tower.effectiveRange, function (tx, ty, callData) {
var tile = _root.getTile(tx, ty);
var tower = callData[0];
if (_root.callbackLine(tower.tileX, tower.tileY, tx, ty, function (cx, cy, callData) {
var tile = _root.getTile(cx, cy);
var isWall = (tile.tileType.id == "wall");
if (isWall) {
addListenerToWall(tile, callData[0].barrel);
} else {
var prevX = callData[2];
var prevY = callData[3];
if (prevX != -1) {
if (prevX < cx) {
if (prevY < cy) {
var tileA = _root.getTile(prevX + 1, prevY);
var tileB = _root.getTile(prevX, prevY + 1);
if ((tileA.tileType.id == "wall") && (tileB.tileType.id == "wall")) {
addListenerToWall(tileA, callData[0].barrel);
addListenerToWall(tileB, callData[0].barrel);
isWall = true;
}
} else if (prevY > cy) {
var tileA = _root.getTile(prevX, prevY - 1);
var tileB = _root.getTile(prevX + 1, prevY);
if ((tileA.tileType.id == "wall") && (tileB.tileType.id == "wall")) {
addListenerToWall(tileA, callData[0].barrel);
addListenerToWall(tileB, callData[0].barrel);
isWall = true;
}
}
} else if (prevX > cx) {
if (prevY < cy) {
var tileA = _root.getTile(prevX, prevY + 1);
var tileB = _root.getTile(prevX - 1, prevY);
if ((tileA.tileType.id == "wall") && (tileB.tileType.id == "wall")) {
addListenerToWall(tileA, callData[0].barrel);
addListenerToWall(tileB, callData[0].barrel);
isWall = true;
}
} else if (prevY > cy) {
var tileA = _root.getTile(prevX - 1, prevY);
var tileB = _root.getTile(prevX, prevY - 1);
if ((tileA.tileType.id == "wall") && (tileB.tileType.id == "wall")) {
addListenerToWall(tileA, callData[0].barrel);
addListenerToWall(tileB, callData[0].barrel);
isWall = true;
}
}
}
}
}
callData[1] = isWall;
callData[2] = cx;
callData[3] = cy;
return(!isWall);
}, callData)) {
tile.creepListeners.push(tower.barrel);
} else if (tower.towerType.angleOfFire == 0) {
return(false);
}
return(true);
}, tower.centerAngle, towerType.getActualSweepAngle(), callData, getMinRange(tower));
}
function addListenerToWall(tile, barrel) {
var alreadyThere = false;
var i = 0;
var l = tile.creepListeners.length;
while (i < l) {
if (tile.creepListeners[i] == barrel) {
alreadyThere = true;
break;
}
i++;
}
if (!alreadyThere) {
tile.creepListeners.push(barrel);
}
}
_root.FULL_SWEEP = 0;
_root.MED_SWEEP = 1;
_root.NARROW_SWEEP = 2;
_root.NO_SWEEP = 3;
_root.THIN_SWEEP = 4;
var selectorWidth = 42;
var towerSelectorSetters = new Array();
_root.towerTypes = null;
_root.towerTypesStack = null;
var displayOrderCnt = 0;
initTowerTypes();
function traceWaypoints(id) {
var i = 0;
while (i < _global.waypoints.length) {
i++;
}
}
function selectTower(tower) {
unselectTower();
tower.showRangeInfo();
_root.selectedTower = tower;
_root.doTowerInstanceInfo(tower);
}
function unselectTower() {
_root.selectedTower.hideRangeInfo();
_root.selectedTower = null;
}
function onTilePress(tile) {
if (_root.ignoreTileClick) {
return(undefined);
}
if (_root.draggedTower == null) {
if (tile.tower != null) {
_root.selectTower(tile.tower);
} else {
_root.doTileInfo(tile.tileType);
if ((_global.spawnPoints[0][0] == tile.tileX) && (_global.spawnPoints[0][1] == tile.tileY)) {
infoBox.title = "Starting Point";
infoBox.byline = "CREEPS START HERE";
infoBox.tilePreview.visible = true;
infoBox.tilePreview.gotoAndStop("startPoint");
} else if ((_global.exitPoint[0] == tile.tileX) && (_global.exitPoint[1] == tile.tileY)) {
infoBox.title = "Ending Point";
infoBox.byline = "CREEPS TRY TO GET HERE";
infoBox.tilePreview.visible = true;
infoBox.tilePreview.gotoAndStop("endPoint");
}
}
}
if ((_root.draggedTower != null) && (_root.draggedTower.towerType.isTileType)) {
startPaintMode(tile);
} else if (_root.draggedTower != null) {
onTileClick(tile);
if (_root.draggedTower.towerType.angleOfFireType != _root.FULL_SWEEP) {
_root.ignoreTileRelease = true;
}
} else if (((_root.inEditMode && (_root.draggedTower == null)) && (draggedTile == null)) && (tile.tileType.id == "waypoint")) {
if (draggedTile != null) {
draggedTile.removeMovieClip();
}
var movieId = tile.tileType.id;
if ((_global.exitPoint[0] == tile.tileX) && (_global.exitPoint[1] == tile.tileY)) {
movieId = "endPoint";
}
draggedTile = _root.attachMovie(movieId, "t" + _global.depth, _global.depth++);
draggedTile.tileX = tile.tileX;
draggedTile.tileY = tile.tileY;
draggedTile.tileType = tile.tileType;
draggedTile._x = _xmouse;
draggedTile._y = _ymouse;
startDrag (draggedTile);
mouseListener = new Object();
mouseListener.onMouseUp = function () {
Mouse.removeListener(mouseListener);
var tileX = _root.pixelToTileX(_xmouse);
var tileY = _root.pixelToTileY(_ymouse);
var onMap = ((((tileX >= 0) && (tileX < _root.mapW)) && (tileY >= 0)) && (tileY < _root.mapH));
if ((Key.isDown(16) || (Key.isDown(17))) || (Key.isDown(18))) {
if (onMap) {
var tileA = _root.getTile(tileX, tileY);
var tileB = _root.getTile(draggedTile.tileX, draggedTile.tileY);
var tileAType = tileA.tileType;
var tileBType = tileB.tileType;
if ((tileAType.id == "waypoint") || (tileBType.id == "waypoint")) {
if ((tileAType.id == "waypoint") && (tileBType.id == "waypoint")) {
swapWaypoints(tileA, tileB);
} else if (tileAType.id == "waypoint") {
moveWaypoint(tileA, tileB);
} else {
moveWaypoint(tileB, tileA);
}
} else {
buildTile(tileA, tileBType);
buildTile(tileB, tileAType);
}
}
} else if (onMap) {
var newTile = _root.getTile(tileX, tileY);
buildTile(newTile, draggedTile.tileType, draggedTile);
} else if (draggedTile.tileType.id == "waypoint") {
deleteWaypoint(draggedTile.tileX, draggedTile.tileY);
}
draggedTile.removeMovieClip();
draggedTile.stopDrag();
draggedTile = null;
};
Mouse.addListener(mouseListener);
}
}
function onTileRelease(tile) {
}
function startPaintMode(tile) {
onTileClick(tile);
paintMouseListener = new Object();
paintMouseListener.lastTile = null;
paintMouseListener.onMouseUp = function () {
Mouse.removeListener(paintMouseListener);
};
paintMouseListener.onMouseMove = function () {
if (_root.mouseIsOnMap()) {
var tile = _root.getTile(_root.pixelToTileX(_xmouse), _root.pixelToTileY(_ymouse));
if (lastTile != tile) {
onTileClick(tile);
}
lastTile = tile;
}
};
Mouse.addListener(paintMouseListener);
}
function onTileDragOver(tile) {
if ((_root.draggedTower != null) && (_root.draggedTower.towerType.isTileType)) {
onTileClick(tile);
}
}
function onTileClick(tile) {
if (!_root.ignoreTileClick) {
if (clickTile != null) {
return(undefined);
}
clickTile = tile;
doBuildInterval = setInterval(doBuild, 1);
}
_root.ignoreTileClick = false;
}
function doBuild() {
clearInterval(doBuildInterval);
if (_root.draggedTower.towerType.isTileType) {
buildTile(clickTile, _root.draggedTower.towerType);
} else {
buildTowerClick(clickTile, _root.draggedTower.towerType);
}
doBuildInterval = null;
clickTile = null;
}
function doTileCheck(tile) {
if (tile.tower != null) {
message("Can't build where there's already a tower");
return(false);
}
if (!tile.buildable) {
message("Can't build on that type of land");
return(false);
}
if (prevTileCheckTile != null) {
if (prevTileCheckTile.tileType.id != tile.tileType.id) {
message("Can't build on mixed tile types");
return(false);
}
}
prevTileCheckTile = tile;
return(true);
}
function buildTowerClick(tile, towerType) {
prevTileCheckTile = null;
if (towerType.extraSize == 0) {
if (!doTileCheck(tile)) {
return(undefined);
}
} else if (towerType.extraSize == 1) {
if (!doTileCheck(_root.getTile(tile.tileX, tile.tileY))) {
return(undefined);
}
if (!doTileCheck(_root.getTile(tile.tileX + 1, tile.tileY))) {
return(undefined);
}
if (!doTileCheck(_root.getTile(tile.tileX, tile.tileY + 1))) {
return(undefined);
}
if (!doTileCheck(_root.getTile(tile.tileX + 1, tile.tileY + 1))) {
return(undefined);
}
} else {
if (((((tile.tileX - (towerType.extraSize - 1)) < 0) || (((tile.tileX + towerType.extraSize) - 1) >= _root.mapW)) || ((tile.tileY - (towerType.extraSize - 1)) < 0)) || (((tile.tileY + towerType.extraSize) - 1) >= _root.mapH)) {
message("Can't build off the map");
return(false);
}
if (!findTilesInRadius(tile.tileX, tile.tileY, towerType.extraSize - 1, function (tx, ty) {
if (!doTileCheck(getTile(tx, ty))) {
return(false);
}
return(true);
}, 0, 360)) {
return(undefined);
}
}
if (!towerType.canBuy()) {
return(false);
}
if (_root.tutorialDlg != null) {
_root.tutorialDlg.gotoAndStop(3);
}
if (towerType.angleOfFireType == _root.FULL_SWEEP) {
buildTower(tile, towerType, true, 0);
return(undefined);
}
firstClickedTile = tile;
var tileOffset = 0;
if (towerType.extraSize == 1) {
tileOffset = 0.5;
}
_root.draggedTower._x = tile._x + (tileOffset * _root.tileSize);
_root.draggedTower._y = tile._y + (tileOffset * _root.tileSize);
_root.draggedTower.stopDrag();
_root.draggedTower.showRangeInfo();
_root.draggedTower.onEnterFrame = function () {
_root.rotateTowards(_root.draggedTower, _xmouse, _ymouse);
};
_root.ignoreTileClick = true;
mouseListener.onMouseUp = function () {
if (_root.ignoreTileRelease) {
_root.ignoreTileRelease = false;
return(undefined);
}
Mouse.removeListener(mouseListener);
_root.ignoreTileClick = false;
if (!_root.mouseIsOnMap()) {
_root.dropDraggedTower();
return(undefined);
}
_root.draggedTower.centerAngle = _root.getAngleTo(_root.draggedTower, _xmouse, _ymouse);
_root.draggedTower.onEnterFrame = null;
buildTower(firstClickedTile, _root.draggedTower.towerType, true, _root.draggedTower.centerAngle);
_root.selectingCenterAngle = false;
_root.doTowerTypeSelect(_root.draggedTower.towerType);
};
Mouse.addListener(mouseListener);
}
function moveWaypoint(oldTile, newTile) {
if (newTile.tileType.id == "waypoint") {
return(undefined);
}
var tileX = oldTile.tileX;
var tileY = oldTile.tileY;
if ((_global.spawnPoints[0][0] == tileX) && (_global.spawnPoints[0][1] == tileY)) {
_root.setSpawnPoint(newTile);
_root.setMapTileStart(newTile);
} else if ((_global.exitPoint[0] == tileX) && (_global.exitPoint[1] == tileY)) {
var coords = [newTile.tileX, newTile.tileY];
_global.waypoints[_global.waypoints.length - 1] = coords;
_global.exitPoint[0] = coords[0];
_global.exitPoint[1] = coords[1];
_root.setMapTileEnd(newTile);
} else {
var i = 0;
while (i < _global.waypoints.length) {
if ((_global.waypoints[i][0] == tileX) && (_global.waypoints[i][1] == tileY)) {
_root.setMapTileWaypoint(newTile);
_global.waypoints[i] = [newTile.tileX, newTile.tileY];
break;
}
i++;
}
}
_root.setMapTileSand(oldTile);
_root.clearPathCache();
drawPathDirections();
}
function reverseWaypoints() {
var oldSpawn = _global.spawnPoints[0];
var oldEnd = _global.waypoints.pop();
_root.setSpawnPoint(_root.getTile(oldEnd[0], oldEnd[1]));
_root.setMapTileStart(_root.getTile(oldEnd[0], oldEnd[1]));
_global.waypoints.reverse();
_global.waypoints.push(oldSpawn);
_global.exitPoint[0] = oldSpawn[0];
_global.exitPoint[1] = oldSpawn[1];
_root.setMapTileEnd(_root.getTile(oldSpawn[0], oldSpawn[1]));
_root.clearPathCache();
drawPathDirections();
var i = 0;
var l = _root.allCreeps.length;
while (i < l) {
var creep = _root.allCreeps[i];
creep.waypointIdx = (_global.waypoints.length - 1) - creep.waypointIdx;
creepGetPathToWaypoint(creep, creep.waypointIdx, true);
i++;
}
_root.message("Path reversed!");
}
function deleteWaypoint(tileX, tileY) {
if (_global.waypoints.length <= 1) {
message("Can't have fewer than two waypoints");
return(false);
}
if ((_global.spawnPoints[0][0] == tileX) && (_global.spawnPoints[0][1] == tileY)) {
var coords = _global.waypoints.shift();
var newTile = _root.getTile(coords[0], coords[1]);
_root.setSpawnPoint(newTile);
_root.setMapTileStart(newTile);
} else if ((_global.exitPoint[0] == tileX) && (_global.exitPoint[1] == tileY)) {
_global.waypoints.pop();
_global.exitPoint[0] = _global.waypoints[_global.waypoints.length - 1][0];
_global.exitPoint[1] = _global.waypoints[_global.waypoints.length - 1][1];
_root.setMapTileEnd(_root.getTile(_global.exitPoint[0], _global.exitPoint[1]));
} else {
var i = 0;
while (i < _global.waypoints.length) {
if ((_global.waypoints[i][0] == tileX) && (_global.waypoints[i][1] == tileY)) {
_global.waypoints.splice(i, 1);
break;
}
i++;
}
}
_root.clearPathCache();
drawPathDirections();
setMapTileSand(_root.getTile(tileX, tileY));
return(true);
}
function hidePathDirections() {
pathDirectionsClip.removeMovieClip();
pathDirectionsClip = null;
}
function drawPathDirections() {
if (pathDirectionsClip != null) {
hidePathDirections();
}
pathDirectionsClip = _root.createEmptyMovieClip("path", _global.depth++);
pathDirectionsClip.lineStyle(8, 16777215, 20);
pathDirectionsClip.moveTo(_root.tileToPixelX(_global.spawnPoints[0][0]), _root.tileToPixelY(_global.spawnPoints[0][1]));
var i = 0;
while (i < _global.waypoints.length) {
pathDirectionsClip.lineTo(_root.tileToPixelX(_global.waypoints[i][0]), _root.tileToPixelY(_global.waypoints[i][1]));
i++;
}
}
towerDepth = 0;
var doBuildInterval = null;
var clickTile = null;
_root.ignoreTileClick = false;
_root.ignoreTileRelease = false;
var firstClickedTile = null;
var mouseListener = new Object();
var paintMouseListener = new Object();
_root.selectedTower = null;
var selectedTowerMouseListener = new Object();
selectedTowerMouseListener.onMouseDown = function () {
unselectTower();
};
selectedTowerMouseListener.onMouseMove = function () {
if (((_root.draggedTower != null) && (!_root.draggedTower.towerType.isTileType)) && (_root.mouseIsOnMap())) {
var tile = _root.getTile(_root.pixelToTileX(_root.draggedTower._x), _root.pixelToTileY(_root.draggedTower._y));
if (tile.tileType.id == "raisedConcrete") {
_root.draggedTower.useHighRange();
} else {
_root.draggedTower.useNormalRange();
}
}
};
Mouse.addListener(selectedTowerMouseListener);
var draggedTile = null;
var prevTileCheckTile = null;
var pathDirectionsClip = null;
function Level(hp, val, numCrps, cool, gpx, size) {
this.hitpoints = hp;
this.creepValue = val;
this.numCreeps = numCrps;
this.cooldown = cool;
this.nextCooldown = cool;
this.creepGraphic = gpx;
this.frameCnt = 0;
if (size > 2) {
size = 2;
}
this.scale = 100 * size;
}
Level.prototype.notifyFrameEvent = function (x, y) {
function randRange(n) {
return((n / 4) + (Math.random() * ((3 * n) / 4)));
}
if (((_root.spawnFrameCnt++) < this.cooldown) || (this.hasSpawnedAll())) {
return(undefined);
}
var creep = _root.spawnCreep(x, y, false, true);
if (creep == null) {
return(undefined);
}
_root.spawnFrameCnt = 0;
_root.creepsSpawned++;
this.nextCooldown = 0;
creep.maxHealth = this.hitpoints;
creep.health = creep.maxHealth;
creep.money = this.creepValue;
creepSetBaseScale(100);
_root.stats.hpStr = Math.ceil(creep.maxHealth) + " HP";
_root.stats.creepValStr = ("$" + _root.formatInt(creep.money)) + " EA.";
};
Level.prototype.hasSpawnedAll = function () {
return(_root.creepsSpawned >= this.numCreeps);
};
function setDifficulty(d) {
if (d == DIFFICULTY_EASY) {
_root.allowedLost = 19;
_root.extraMoneyFactor = 1.5;
} else if (d == DIFFICULTY_HARD) {
_root.allowedLost = 0;
_root.extraMoneyFactor = 1;
} else {
_root.allowedLost = 9;
_root.extraMoneyFactor = 1.25;
}
_root.difficulty = d;
stats.updateAll();
}
function initGameControl() {
gameOver = false;
levelNum = 0;
_root.message("Starting new game");
_root.levelStartingStates = new Array();
generateLevels();
level = levels[0];
}
function generateLevels() {
var num = 15;
var graphic = "red";
var size = 1.25;
var cool = 1;
levels = new Array();
levels[0] = null;
var lvl = 1;
while (lvl <= numLevels) {
var creepVal = (Math.pow(1.5, lvl) * _root.extraMoneyFactor);
var hp = (creepVal * 5);
levels[lvl] = new Level(hp, creepVal, num, cool, graphic, size);
lvl++;
}
stats.updateAll();
}
function setPaused(p) {
_root.paused = p;
pauseButton.update();
}
function userJumpToLevel(newLevelNum) {
gotoLevel(newLevelNum, false, true, (Key.isDown(16) || (Key.isDown(17))) || (Key.isDown(18)));
}
function gotoLevel(newLevelNum, keepCreeps, readSavedSnapshot, keepTilesSame) {
if ((levelNum == 0) && (_root.inEditMode)) {
_root.initialGameStateXml = _root.gameStateToXml();
}
if (newLevelNum < 0) {
newLevelNum = 0;
}
if (newLevelNum > levels.length) {
newLevelNum = levels.length;
}
var wentBackwards = (newLevelNum < levelNum);
if (wentBackwards) {
gameOver = false;
}
if (((!keepCreeps) || (newLevelNum == 0)) || (newLevelNum <= levelNum)) {
_root.clearCreeps();
}
levelNum = newLevelNum;
_root.creepsSpawned = 0;
_root.spawnFrameCnt = 0;
if (readSavedSnapshot) {
if (levelNum == 0) {
xmlToGameStateJustUpdateTiles(_root.initialGameStateXml, keepTilesSame);
var i = 0;
while (i < _root.towerTypesStack.length) {
_root.towerTypesStack[i].setLocked(_root.towerTypesStack[i].defaultLocked);
i++;
}
levelNum = 0;
} else if (levelStartingStates[levelNum] != null) {
_root.xmlToGameStateJustUpdateTiles(levelStartingStates[levelNum], keepTilesSame);
} else if (wentBackwards) {
clearCreeps();
clearTowers();
}
}
if (levelNum == 0) {
stats.creepsExited = 0;
}
stats.updateAll();
}
function doSpawnpointGameControl() {
if (_root.paused || (gameOver)) {
return(undefined);
}
if ((_root.gameStarted && (!_root.inEditMode)) && (stats.creepsExited > _root.allowedLost)) {
gameOver = true;
openYouLoseDlg();
return(undefined);
}
var level = levels[levelNum];
var isLastLevel = (levelNum == numLevels);
var readyForNextLevel = (isLastLevel ? (stats.creepsOut == 0) : ((stats.creepsOut <= (level.numCreeps / 4)) || ((lvlFrameCnt++) > 400)));
if ((levelNum == 0) || (level.hasSpawnedAll() && (readyForNextLevel))) {
lvlFrameCnt = 0;
if (((_root.gameStarted && (levelNum > 0)) && (isLastLevel)) && (!_root.inEditMode)) {
gameOver = true;
if (_root.mapEdited) {
_root.mapProven = true;
openYouWinPublishDlg();
} else {
openYouWinDlg();
_root.markBeatenGame();
}
} else if (_root.gameStarted) {
gotoLevel(levelNum + 1, true);
_root.mostRecentGameStateXml = _root.gameStateToXml();
_root.levelStartingStates[levelNum] = _root.mostRecentGameStateXml;
} else {
gotoLevel(1, true);
}
}
if (levelNum > 0) {
level.notifyFrameEvent(spawnPoints[0][0], spawnPoints[0][1]);
}
}
function restartLevel() {
gotoLevel(_root.levelNum, false, true);
_root.setPaused(false);
}
function restartGame() {
gotoLevel(0, false, true);
_root.setPaused(false);
}
var mapData = "<map>\t<grid>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . e . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>s . w0. . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . w2. . . . . </row>\t\t<row>. . . . . . . . . . . . w1. . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t\t<row>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . </row>\t</grid></map>";
blah = "\t<map>\t<grid>\t\t<row>_ _ _ _ w4. . . . . w5. # . . . . . . . . . . ~ ~ ~ . . . </row>\t\t<row>_ _ _ _ ~ ~ ~ ~ ~ . . . # . . . . . . . . . . ~ ~ ~ . . . </row>\t\t<row>_ . _ _ ~ ~ ~ ~ ~ . . . # . . _ w6. _ . . . . . ~ . . # . </row>\t\t<row>_ # # # ~ ~ ~ ~ ~ _ _ _ _ _ _ . . _ _ _ . . . ~ . . # . . </row>\t\t<row>_ _ _ _ # # # ~ ~ _ _ . . # # # # # . _ . . ~ . . # . . . </row>\t\t<row># # # w3# # # # _ _ . . . # . . . # . _ _ . ~ . . # . # # </row>\t\t<row>. . . . # # # # . . . . # w7. # . . . . . _ . . . # . . . </row>\t\t<row>. # # # # # # # . . . . # # # # # . . . . . w8. . # # # . </row>\t\t<row>. . . w2. . # . . . . . # . . s # e # # # # . . . # . # . </row>\t\t<row># # # # # . # . . . . . # . . # # # # # # # # ~ ~ # w9# . </row>\t\t<row>. . . w1. . # # # # # # # # . . # . . . . ~ ~ ~ ~ ~ . # . </row>\t\t<row>. # # # # # # . . . # . . . # . # . wb# . # ~ ~ ~ ~ . # . </row>\t\t<row>. . . . . . . . # . w0. # . . . # . . # . . . wa. . . . . </row>\t</grid>\t</map>";
_root.publishName = "";
_root.publishVersion = "";
var money = 1000;
var levelNum = 0;
var gameOver = false;
var numLevels = 10;
var levels;
_root.creepsSpawned = 0;
_root.spawnFrameCnt = 0;
_root.lvlFrameCnt = 0;
var mapDescription = "Default Map";
_root.publishId = "-1";
_root.authors = new Array();
_root.mostRecentGameStateXml = null;
_root.levelStartingStates = new Array();
_root.initialGameStateXml = null;
_root.fullGameXml = null;
_root.DIFFICULTY_EASY = 1;
_root.DIFFICULTY_MEDIUM = 2;
_root.DIFFICULTY_HARD = 3;
_root.difficulty = DIFFICULTY_HARD;
_root.allowedLost = 0;
_root.extraMoneyFactor = 1;
setDifficulty(DIFFICULTY_MEDIUM);
function dropDraggedTower() {
if (_root.draggedTower != null) {
_root.draggedTower.removeMovieClip();
_root.draggedTower = null;
_root.ignoreTileClick = false;
fscommand ("trapallkeys", false);
}
}
function doTowerTypeSelect(towerType) {
if (_root.draggedTower != null) {
_root.draggedTower.removeMovieClip();
_root.draggedTower = null;
}
if (towerType.isTileType) {
_root.draggedTower = _root.attachMovie(towerType.id, "t" + _global.depth, _global.depth++);
_root.draggedTower.towerType = towerType;
} else {
_root.draggedTower = _root.attachMovie("tower", "t" + _global.depth, _global.depth++);
}
_root.draggedTower._x = _xmouse;
_root.draggedTower._y = _ymouse;
if (towerType.extraSize == 1) {
_root.draggedTower._x = _root.draggedTower._x + (_root.tileSize / 2);
_root.draggedTower._y = _root.draggedTower._y + (_root.tileSize / 2);
_root.draggedTower.startDrag(false);
} else {
_root.draggedTower.startDrag(true);
}
if (!towerType.isTileType) {
_root.setTowerType(_root.draggedTower, towerType);
_root.draggedTower.showRangeInfo();
}
}
function addOffMapClickListener() {
if (clickMouseListener != null) {
return(undefined);
}
clickMouseListener = new Object();
clickMouseListener.onMouseDown = function () {
if (!_root.mouseIsOnMap()) {
_root.dropDraggedTower();
}
};
Mouse.addListener(clickMouseListener);
}
_root.draggedTower = null;
var keyListener = new Object();
keyListener.onKeyDown = function () {
if (Key.isDown(27)) {
dropDraggedTower();
}
};
keyListener.onKeyUp = function () {
if (_root.openDlg == null) {
if (_root.selectedTower != null) {
if ((chr(Key.getAscii()) == "s") || (Key.getCode() == 46)) {
_root.sellTower(_root.selectedTower);
}
if (chr(Key.getAscii()) == "u") {
_root.upgradeTower(_root.selectedTower);
}
}
if (chr(Key.getAscii()) == " ") {
_root.setPaused(!_root.paused);
}
}
};
Key.addListener(keyListener);
var clickMouseListener = null;
addOffMapClickListener();
function makeCreep() {
creep = _root.attachMovie("creep", "cr" + _global.depth, _global.depth++);
_root.allCreeps.push(creep);
creep.debug = "";
creep.id = creepIdCnt++;
stats.creepSpawned(creep);
var isGhost = false;
var isBig = true;
creep.destroyed = false;
creep.isBig = isBig;
creep.maxSpd = _root.tileSize;
creep.maxAcc = 0.5;
creep.baseScale = 100;
creep.setCreepType = function (creepType) {
creep.creepType = creepType;
creep.gotoAndPlay(creepType);
};
if (isGhost) {
creep._alpha = 50;
}
if (isBig) {
creep.setCreepType("red");
} else {
creep.setCreepType(6);
}
creep.onEnterFrame = function () {
doMoveCreep(this);
};
creep.onPress = function () {
showCreepInfo(creep);
infoBox.updateFunction = updateCreepInfo;
infoBox.updateObject = this;
infoBox.creepPreview._visible = true;
infoBox.creepPreview.gotoAndStop(this.creepType);
};
creep.acc = creep.maxAcc;
creep.speed = 0;
creep.stunCnt = 0;
creep.destIndex = 0;
creep.destList = null;
creep.waypointIdx = 0;
creep.maxHealth = 10;
creep.health = creep.maxHealth;
creep.money = 3;
creep.idx = creepIdx;
creep.isGhost = isGhost;
creep.occupiedTile = null;
creep.stuckCnt = 0;
creep.moveFunc = null;
return(creep);
}
function spawnCreep(tileX, tileY, isGhost, isBig) {
var tile = _root.getTile(tileX, tileY);
if (!isGhost) {
if (isBig) {
if ((tile.occupiedCreep != null) || (tile.occupyingCreepB != null)) {
return(null);
}
} else if ((tile.occupiedCreep != null) && (tile.occupyingCreepB != null)) {
return(null);
}
}
var creep = makeCreep();
placeCreepOnTile(creep, tileX, tileY);
creepGetPathToWaypoint(creep, 0, true);
return(creep);
}
function moveCreeps() {
var c = null;
var i = 0;
var l = allCreeps.length;
while (i < l) {
c = allCreeps[i];
if (c != null) {
doMoveCreep(c);
}
i++;
}
}
function doMoveCreep(creep) {
if (_root.paused) {
return(undefined);
}
if (creep.destroyed) {
creep.removeMovieClip();
}
moveCreep(creep);
var coords = getCreepTileCoords(creep);
if ((coords[0] == exitPoint[0]) && (coords[1] == exitPoint[1])) {
creepExit(creep);
}
}
function showCreepInfo(creep) {
infoBox.reset();
if (isNaN(creep.health)) {
return(undefined);
}
updateCreepInfo(creep);
}
function updateCreepInfo(creep) {
if (isNaN(creep.health)) {
infoBox.reset();
return(undefined);
}
_root.infoBox.title = (creep.creepType + " CREEP").toUpperCase();
_root.infoBox.description = (((("SPEED: " + Math.ceil(creep.speed)) + newline) + "VALUE: $") + Math.ceil(creep.money)) + newline;
_root.infoBox.dangerStr = (("HEALTH: " + Math.ceil(creep.health)) + "/") + Math.ceil(creep.maxHealth);
}
function placeCreepOnTile(creep, tileX, tileY) {
notifyCreepGone(creep);
var tile = _root.getTile(tileX, tileY);
creep._x = tile._x;
creep._y = tile._y;
creepPlaceOccupiedMark(creep);
notifyCreepAppeared(creep);
}
function getCreepTileCoords(creep) {
return([_root.pixelToTileX(creep._x), _root.pixelToTileY(creep._y)]);
}
function getCreepTile(creep) {
return(_root[(("tile" + _root.pixelToTileX(creep._x)) + "_") + _root.pixelToTileY(creep._y)]);
}
function damageCreep(creep, damage) {
if (isNan(creep.health) || (creep.health <= 0)) {
return(undefined);
}
creep.health = creep.health - damage;
updateCreepSize(creep);
}
function updateCreepSize(creep) {
if (creep.health <= 0) {
creepDeath(creep);
} else {
var dmg = ((creep.maxHealth - creep.health) * 0.85);
var scale = ((1 - ((dmg * dmg) / (creep.maxHealth * creep.maxHealth))) * creep.baseScale);
creep._xscale = scale;
creep._yscale = scale;
}
}
function creepSetBaseScale(creep, scale) {
creep._xscale = scale;
creep._yscale = scale;
creep.baseScale = scale;
}
function creepDeath(creep) {
if (isNan(creep._x)) {
return(undefined);
}
stats.creepKilled(creep);
deleteCreep(creep);
}
function creepExit(creep) {
if (isNan(creep._x)) {
return(undefined);
}
message("A creep made it through!");
stats.creepExited(creep);
deleteCreep(creep);
}
function deleteCreep(creep) {
notifyCreepGone(creep);
creep.removeMovieClip();
}
function notifyCreepAppeared(creep) {
coords = getCreepTileCoords(creep);
creepPlaceOccupiedMark(creep);
creepListeners = _root[(("tile" + coords[0]) + "_") + coords[1]].creepListeners;
var i = 0;
var l = creepListeners.length;
while (i < l) {
creepListeners[i].notifyInRange(creep);
creepListeners[i].notifyOutOfRangeCommit(creep);
i++;
}
}
function notifyCreepGone(creep) {
coords = getCreepTileCoords(creep);
creepRemoveOccupiedMark(creep);
creepListeners = _root[(("tile" + coords[0]) + "_") + coords[1]].creepListeners;
var i = 0;
var l = creepListeners.length;
while (i < l) {
creepListeners[i].notifyOutOfRange(creep);
creepListeners[i].notifyOutOfRangeCommit(creep);
i++;
}
}
var allCreeps = new Array();
_root.creepBeingMoved = null;
var creepIdCnt = 0;
function creepScatter(creep) {
creep.doScatter = false;
var tower = creep.moveData[0];
var blastX = creep.moveData[1];
var blastY = creep.moveData[2];
var towerType = tower.towerType;
blastX = blastX + ((Math.random() - 0.5) * 5);
blastY = blastY + ((Math.random() - 0.5) * 5);
var dx = (creep._x - blastX);
var dy = (creep._y - blastY);
var fact = ((towerType.splashSize / 2) * _root.tileSize);
if ((dx == 0) && (dy == 0)) {
dy = (dx = Math.random());
}
if (dx == 0) {
fact = fact / Math.abs(dy);
} else if (dy == 0) {
fact = fact / Math.abs(dx);
} else {
fact = fact / Math.sqrt((dx * dx) + (dy * dy));
}
dx = dx * fact;
dy = dy * fact;
var x = (creep._x + dx);
var y = (creep._y + dy);
if (x < (getMinMapX() + (_root.tileSize / 2))) {
x = getMinMapX() + (_root.tileSize / 2);
}
if (x >= (getMaxMapX() - (_root.tileSize / 2))) {
x = getMaxMapX() - (_root.tileSize / 2);
}
if (y < (getMinMapY() + (_root.tileSize / 2))) {
y = getMinMapY() + (_root.tileSize / 2);
}
if (y >= (getMaxMapY() - (_root.tileSize / 2))) {
y = getMaxMapY() - (_root.tileSize / 2);
}
creep.destIndex = creep.destIndex + (Math.ceil(towerType.splashSize / 2) - 1);
if (creep.destIndex < creep.destList.length) {
getNewDest(creep);
} else {
creepGetPathToWaypoint(creep, creep.waypointIdx + 1, true);
}
relocateCreep(creep, x, y);
tower.okToTarget = false;
tower.barrel.targetedCreep = null;
tower.barrel.inRangeCreep = null;
tower.barrel.outOfRangeCreep = null;
}
function relocateCreep(creep, newX, newY) {
if ((Math.abs(newX - creep.destX) < 2) && (Math.abs(newX - creep.destY) < 2)) {
creep._x = creep.destX;
creep._y = creep.destY;
}
var creepTileX = _root.pixelToTileX(creep._x);
var creepTileY = _root.pixelToTileY(creep._y);
var newCreepTileX = _root.pixelToTileX(newX);
var newCreepTileY = _root.pixelToTileY(newY);
var isNewTile = ((creepTileX != newCreepTileX) || (creepTileY != newCreepTileY));
var oldTile = getTile(creepTileX, creepTileY);
var newTile = oldTile;
if (isNewTile) {
newTile = getTile(newCreepTileX, newCreepTileY);
}
newTile.occupyingCreep.stunCnt = 0;
newTile.occupyingCreepB.stunCnt = 0;
if (isNewTile && (!creep.isGhost)) {
var stuck = false;
if (creep.isBig) {
if ((newTile.occupyingCreep != null) || (newTile.occupyingCreepB != null)) {
stuck = true;
}
} else if ((newTile.occupyingCreep != null) && (newTile.occupyingCreepB != null)) {
stuck = true;
}
if (stuck) {
var otherCreep = newTile.occupyingCreep;
if (otherCreep == null) {
otherCreep = newTile.occupyingCreepB;
}
if ((creep.stuckCnt++) < 15) {
return(undefined);
}
creepRemoveOccupiedMark(newTile.occupyingCreep);
if (creep.isBig) {
creepRemoveOccupiedMark(newTile.occupyingCreepB);
}
}
}
creep.stuckCnt = 0;
if (isNewTile) {
if (mapBlocks[newCreepTileY][newCreepTileX] == 1) {
creep.speed = 0;
if (creepGetPathToWaypoint(creep, creep.waypointIdx, false)) {
return(undefined);
}
}
}
if (isNewTile) {
creepRemoveOccupiedMark(creep);
}
creep._x = newX;
creep._y = newY;
creepUpdateListeners(creep, oldTile, newTile);
if (isNewTile) {
creepPlaceOccupiedMark(creep);
if (newTile.tower != null) {
message("A CREEP OVERRAN A TOWER!");
killTower(newTile.tower);
}
}
}
function moveCreep(creep) {
_root.creepBeingMoved = creep;
fps.moves++;
if (creep.stunCnt > 0) {
creep.stunCnt--;
return(undefined);
}
if (hasDest(creep)) {
if (reachedDest(creep)) {
getNewDest(creep);
if (!hasDest(creep)) {
creepGetPathToWaypoint(creep, creep.waypointIdx + 1, true);
getNewDest(creep);
}
}
} else {
creepGetPathToWaypoint(creep, creep.waypointIdx + 1, true);
getNewDest(creep);
}
moveTowardDest(creep);
}
function hasDest(creep) {
return((creep.destList != null) && (creep.destIndex < creep.destList.length));
}
function reachedDest(creep) {
return((Math.abs(creep._x - creep.destX) < 2) && (Math.abs(creep._y - creep.destY) < 2));
}
function creepGetPathToWaypoint(creep, inWaypointIdx, guaranteePath) {
creep.waypointIdx = inWaypointIdx;
var creepTileCoords = getCreepTileCoords(creep);
var newPath = getWaypointPath(creepTileCoords[0], creepTileCoords[1], inWaypointIdx);
if (newPath == null) {
if (guaranteePath) {
if (inWaypointIdx >= waypoints.length) {
inWaypointIdx = waypoints.length - 1;
}
newPath = [waypoints[inWaypointIdx]];
} else {
return(false);
}
}
creep.destList = newPath;
creep.destIndex = -1;
getNewDest(creep);
return(true);
}
function getNewDest(creep) {
creep.destIndex++;
if (!hasDest(creep)) {
return(undefined);
}
var tx = creep.destList[creep.destIndex][0];
var ty = creep.destList[creep.destIndex][1];
var tile = _root.getTile(tx, ty);
if (creep.destIndex == 1) {
_root.updateWaypointToDot(creep.waypointIdx);
var dot = _root.waypointToDot[creep.waypointIdx];
if (dot != undefined) {
var slowDown = (1 - ((dot + 1) / 2));
slowDown = slowDown * slowDown;
creep.speed = creep.speed * slowDown;
}
}
creep.destX = tile._x;
creep.destY = tile._y;
}
function moveTowardDest(creep) {
if (creep == null) {
return(undefined);
}
var dx = (creep.destX - creep._x);
var dy = (creep.destY - creep._y);
var toGo = 0;
if ((dx == 0) || (isNaN(dx))) {
toGo = Math.abs(dy);
} else if (dy == 0) {
toGo = Math.abs(dx);
} else {
toGo = Math.sqrt((dx * dx) + (dy * dy));
}
var newX = 0;
var newY = 0;
creep.acc = creep.acc + 0.01;
if (creep.acc > creep.maxAcc) {
creep.acc = creep.maxAcc;
}
creep.speed = creep.speed + creep.acc;
if (creep.speed > creep.maxSpd) {
creep.speed = creep.maxSpd;
}
var speed = creep.speed;
var canGo = speed;
if (toGo <= canGo) {
newX = creep.destX;
newY = creep.destY;
} else {
factor = canGo / toGo;
dx = dx * factor;
dy = dy * factor;
newX = creep._x + dx;
newY = creep._y + dy;
}
relocateCreep(creep, newX, newY);
}
function creepUpdateListeners(creep, oldTile, newTile) {
var lis;
if (oldTile != newTile) {
lis = oldTile.creepListeners;
var i = 0;
var l = lis.length;
while (i < l) {
lis[i].notifyOutOfRange(creep);
i++;
}
}
lis = newTile.creepListeners;
var i = 0;
var l = lis.length;
while (i < l) {
lis[i].notifyInRange(creep);
i++;
}
lis = oldTile.creepListeners;
var i = 0;
var l = lis.length;
while (i < l) {
lis[i].notifyOutOfRangeCommit();
i++;
}
lis = newTile.creepListeners;
var i = 0;
var l = lis.length;
while (i < l) {
lis[i].notifyOutOfRangeCommit();
i++;
}
}
function creepRemoveOccupiedMark(creep) {
if (creep.occupiedTile == null) {
return(undefined);
}
if (creep.isBig) {
creep.occupiedTile.occupyingCreep = null;
creep.occupiedTile.occupyingCreepB = null;
} else if (creep.occupiedTile.occupyingCreep == creep) {
creep.occupiedTile.occupyingCreep = null;
} else if (creep.occupiedTile.occupyingCreepB == creep) {
creep.occupiedTile.occupyingCreepB = null;
}
creep.occupiedTile = null;
}
function creepPlaceOccupiedMark(creep) {
creep.occupiedTile = getCreepTile(creep);
if (creep.isBig) {
creep.occupiedTile.occupyingCreep = creep;
creep.occupiedTile.occupyingCreepB = creep;
} else if (creep.occupiedTile.occupyingCreep == null) {
creep.occupiedTile.occupyingCreep = creep;
} else if (creep.occupiedTile.occupyingCreepB == null) {
creep.occupiedTile.occupyingCreepB = creep;
}
}
function towerHitCreep(creep, tower, blastX, blastY) {
var upgrade = getTowerUpgrade(tower);
if (tower.towerType.isSlowing) {
if (creep.speed > upgrade.pushbackLimit) {
creep.speed = creep.speed - upgrade.slowAmount;
if (creep.speed < upgrade.pushbackLimit) {
creep.speed = upgrade.pushbackLimit;
}
}
if (tower.towerType.splashSize == 0) {
creep.acc = 0;
}
return(undefined);
}
damageCreep(creep, upgrade.damage);
}
function scatter(creep) {
}
function test62(num) {
conv = toBase62(num);
convConv = fromBase62(conv);
}
function toBase62(num) {
if (num == 0) {
return("0");
}
var str = "";
var divisor = 62;
var c = "0";
var negate = false;
if (num < 0) {
negate = true;
num = -num;
}
var extract = 0;
var safe = 0;
while ((num > 0) && (safe < 10000)) {
extract = num % 62;
if (extract <= 9) {
c = 48 + extract;
} else if (extract < 36) {
c = 87 + extract;
} else if (extract <= 62) {
c = 29 + extract;
}
num = num - extract;
num = num / 62;
str = String.fromCharCode(c) + str;
safe++;
}
if (negate) {
str = "-" + str;
}
return(str);
}
function fromBase62(str) {
var num = 0;
var rad = 1;
var c = 0;
var i = (str.length - 1);
while (i >= 0) {
c = str.charCodeAt(i);
if ((c >= 48) && (c <= 58)) {
c = c - 48;
} else if ((c >= 97) && (c <= 123)) {
c = (c - 97) + 10;
} else if ((c >= 65) && (c <= 91)) {
c = (c - 65) + 36;
} else {
if (c == 45) {
num = -num;
}
break;
}
num = num + (c * rad);
rad = rad * 62;
i--;
}
return(num);
}
function parseNum(num, valDefault) {
num = parseFloat(num);
if ((num == undefined) || (isNaN(num))) {
num = valDefault;
if (((num == undefined) || (isNaN(num))) || (num == null)) {
num = 0;
}
}
return(num);
}
function mapTowerTypeCode(code, id) {
towerTypeCodeToId[code] = id;
towerTypeIdToCode[id] = code;
}
function lowerPrecision(n) {
return(Math.round(n * 100) / 100);
}
function saveGameToPreviewXml() {
var e = xml.createElement("preview");
e.appendChild(tilesToXml());
e.appendChild(descriptionToXml());
e.appendChild(waypointsToXml());
return(e);
}
function saveGameToXml() {
var saveGame = xml.createElement("saveGame");
var e = xml.createElement("initialGameState");
saveGame.appendChild(e);
e.appendChild(_root.initialGameStateXml);
if (_root.mapEdited) {
saveGame.appendChild(snapshotsToXml());
}
if (_root.inEditMode) {
e = xml.createElement("mostRecentGameState");
saveGame.appendChild(e);
e.appendChild(gameStateToXml());
} else if (_root.mostRecentGameStateXml != _root.initialGameState) {
e = xml.createElement("mostRecentGameState");
saveGame.appendChild(e);
e.appendChild(_root.mostRecentGameStateXml);
}
saveGame.appendChild(gameTypeToXml());
return(saveGame);
}
function startNewGameUsingXml(saveGame, loadInitialState) {
_root.fullGameXml = saveGame;
_root.clearOldMap();
_root.initMap();
_root.mostRecentGameStateXml = null;
_root.initialGameStateXml = null;
var n = saveGame.firstChild;
while (n != null) {
if (n.nodeName == "initialGameState") {
_root.initialGameStateXml = n.firstChild;
} else if (n.nodeName == "mostRecentGameState") {
_root.mostRecentGameStateXml = n.firstChild;
} else if (n.nodeName == "snapshots") {
xmlToSnapshots(n);
}
n = n.nextSibling;
}
if (_root.mostRecentGameStateXml == null) {
_root.mostRecentGameStateXml = _root.initialGameStateXml;
}
xmlToGameState((loadInitialState ? (_root.initialGameStateXml) : (_root.mostRecentGameStateXml)));
var n = saveGame.firstChild;
while (n != null) {
if (n.nodeName == "gameType") {
xmlToGameType(n);
}
n = n.nextSibling;
}
var i = 0;
while (i < _root.allCreeps.length) {
var creep = _root.allCreeps[i];
if ((creep != null) && (creep._x != undefined)) {
_root.creepGetPathToWaypoint(creep, creep.waypointIdx, true);
}
i++;
}
_root.enterPlayMode();
stats.updateAll();
}
function gameTypeToXml() {
var gameType = xml.createElement("gameType");
gameType.appendChild(waypointsToXml());
gameType.appendChild(towerTypesToXml());
gameType.appendChild(descriptionToXml());
return(gameType);
}
function xmlToGameType(gameType) {
var n = gameType.firstChild;
while (n != null) {
if (n.nodeName == "waypoints") {
xmlToWaypoints(n);
} else if (n.nodeName == "towerTypes") {
xmlToTowerTypes(n);
} else if (n.nodeName == "desc") {
xmlToDescription(n);
}
n = n.nextSibling;
}
}
function tilesToXml() {
var tiles = xml.createElement("tiles");
var y = 0;
var l = Math.max(_root.mapH, 13);
while (y < l) {
var str = "";
var x = 0;
var xl = _root.mapW;
while (x < xl) {
var c = _root.getTile(x, y).tileType.mapChar;
if (c == "w") {
if ((_global.spawnPoints[0][0] == x) && (_global.spawnPoints[0][1] == y)) {
c = "s";
} else if ((_global.exitPoint[0] == x) && (_global.exitPoint[1] == y)) {
c = "e";
}
}
if (c == undefined) {
c = ".";
}
str = str + c;
x++;
}
var row = xml.createElement("r");
tiles.appendChild(row);
var textNode = xml.createTextNode("t");
textNode.nodeValue = str;
row.appendChild(textNode);
y++;
}
return(tiles);
}
function xmlToTiles(element, justConvert) {
if (justConvert) {
mapBlocks = new Array();
_root.clearPathCache();
} else {
_root.clearTiles();
}
var n = element.firstChild;
var y = 0;
while ((n != null) && (y < Math.max(_root.mapH, 13))) {
if (n.nodeName != "r") {
} else {
var myString = n.firstChild.nodeValue;
var blocks = new Array();
mapBlocks.push(blocks);
var x = 0;
var l = myString.length;
for ( ; x < l ; x++) {
var c = myString.charAt(x);
blocks.push(0);
var tile = null;
if (justConvert) {
tile = _root.getTile(x, y);
if ((tile.tileType.id == "waypoint") || (tile.tileType.mapChar == c)) {
mapBlocks[y][x] = (tile.tileType.isBlock ? 1 : 0);
continue;
}
} else {
tile = makeMapTile(x, y);
}
switch (c) {
case "s" :
if (!justConvert) {
setMapTileStart(tile);
}
break;
case "e" :
if (!justConvert) {
setMapTileEnd(tile);
}
break;
case "w" :
wIdxC = myString.charCodeAt(i + 1);
if ((wIdxC >= 48) && (wIdxC <= 58)) {
wIdx = wIdxC - 48;
} else if ((wIdxC >= 97) && (wIdxC <= 123)) {
wIdx = (wIdxC - 97) + 10;
} else if ((wIdxC >= 65) && (wIdxC <= 91)) {
wIdx = (wIdxC - 65) + 36;
}
if (!justConvert) {
setMapTileWaypoint(tile);
}
break;
case "_" :
setMapTileSand(tile);
break;
case "~" :
setMapTileWater(tile);
break;
case "#" :
case "c" :
setMapTileConcrete(tile);
break;
case " " :
case "." :
case "g" :
setMapTileGrass(tile);
break;
case "W" :
setMapTileWall(tile);
break;
case "r" :
setMapTileRaisedConcrete(tile);
}
}
}
(n = n.nextSibling);
y++;
}
if (!justConvert) {
_root.mapH = 13;
_root.mapW = mapBlocks[0].length;
}
}
function xmlToWaypointsPreview(element, clip) {
clip.lineStyle(12, 255, 50);
var points = element.attributes.p.split(" ");
clip.moveTo(points[0] * _root.tileSize, points[1] * _root.tileSize);
var i = 2;
var l = points.length;
while (i < l) {
clip.lineTo(points[i] * _root.tileSize, points[i + 1] * _root.tileSize);
i = i + 2;
}
}
function xmlToPreview(tilesXml, clip) {
var n = tilesXml.firstChild;
var y = 0;
var drawY = 0;
while ((n != null) && (y < Math.max(_root.mapH, 13))) {
if (n.nodeName != "r") {
} else {
var myString = n.firstChild.nodeValue;
var x = 0;
var drawX = 0;
var i = 0;
var l = myString.length;
while (i < l) {
var c = myString.charAt(i);
switch (c) {
case "s" :
movie = clip.attachMovie("startPoint", _root.depth, _root.depth++);
break;
case "e" :
movie = clip.attachMovie("endPoint", _root.depth, _root.depth++);
break;
case "w" :
movie = clip.attachMovie("waypoint", _root.depth, _root.depth++);
break;
case "_" :
movie = clip.attachMovie("sand", _root.depth, _root.depth++);
break;
case "~" :
movie = clip.attachMovie("water", _root.depth, _root.depth++);
break;
case "#" :
case "c" :
movie = clip.attachMovie("concrete", _root.depth, _root.depth++);
break;
case " " :
case "." :
case "g" :
movie = clip.attachMovie("grass", _root.depth, _root.depth++);
break;
case "W" :
movie = clip.attachMovie("wall", _root.depth, _root.depth++);
break;
case "r" :
movie = clip.attachMovie("raisedConcrete", _root.depth, _root.depth++);
}
movie._x = drawX;
movie._y = drawY;
x++;
i++;
(drawX = drawX + _root.tileSize);
}
}
(n = n.nextSibling);
y++;
(drawY = drawY + _root.tileSize);
}
}
function waypointsToXml() {
var wp = xml.createElement("waypoints");
var points = new Array();
points.push(_global.spawnPoints[0][0]);
points.push(_global.spawnPoints[0][1]);
var i = 0;
while (i < _global.waypoints.length) {
points.push(_global.waypoints[i][0]);
points.push(_global.waypoints[i][1]);
i++;
}
wp.attributes.p = points.join(" ");
return(wp);
}
function xmlToWaypoints(element) {
_global.waypoints = new Array();
var points = element.attributes.p.split(" ");
var i = 0;
while (i < points.length) {
_global.waypoints.push([points[i], points[i + 1]]);
i = i + 2;
}
var n = element.firstChild;
var oldSyntax = new Array();
while (n != null) {
if (n.nodeName == "p") {
oldSyntax.push([parseNum(n.attributes.x), parseNum(n.attributes.y)]);
}
n = n.nextSibling;
}
if (oldSyntax.length != 0) {
_global.waypoints = oldSyntax;
}
var p = _global.waypoints.shift();
_global.spawnPoints[0] = new Array();
_global.spawnPoints[0][0] = p[0];
_global.spawnPoints[0][1] = p[1];
p = _global.waypoints[_global.waypoints.length - 1];
_global.exitPoint[0] = p[0];
_global.exitPoint[1] = p[1];
_root.setSpawnPoint(_root.getTile(_global.spawnPoints[0][0], _global.spawnPoints[0][1]));
_root.setMapTileStart(_root.getTile(_global.spawnPoints[0][0], _global.spawnPoints[0][1]));
_root.setMapTileEnd(_root.getTile(_global.exitPoint[0], _global.exitPoint[1]));
_root.clearPathCache();
drawPathDirections();
}
function towerTypesToXml() {
var tts = xml.createElement("towerTypes");
var i = 0;
while (i < _root.towerTypesStack.length) {
if (!_root.towerTypesStack[i].editModeOnly) {
tts.appendChild(towerTypeToXml(_root.towerTypesStack[i]));
}
i++;
}
return(tts);
}
function xmlToTowerTypes(tts) {
var n = tts.firstChild;
while (n != null) {
if (n.nodeName == "t") {
xmlToTowerType(n);
}
n = n.nextSibling;
}
}
function towerTypeToXml(towerType) {
var tt = xml.createElement("t");
if (debugXml) {
tt.attributes.debug = towerType.id;
}
tt.attributes.i = towerTypeIdToCode[towerType.id];
if (!towerType.isTileType) {
tt.attributes.r = towerType.range;
tt.attributes.s = towerType.splashSize;
}
tt.attributes.p = towerType.price;
tt.attributes.u = towerType.unlockPrice;
tt.attributes.l = (towerType.defaultLocked ? "1" : "0");
tt.attributes.q = towerType.maxQuantHard;
tt.attributes.qm = towerType.maxQuantMed;
tt.attributes.qe = towerType.maxQuantEasy;
tt.attributes.o = towerType.displayOrder;
if (!towerType.isTileType) {
var i = 0;
while (i < towerType.upgrades.length) {
tt.appendChild(towerTypeUpgradeToXml(towerType.upgrades[i]));
i++;
}
}
return(tt);
}
function xmlToTowerType(tt) {
var towerType = _root.towerTypes[towerTypeCodeToId[tt.attributes.i]];
if (towerType == null) {
towerType = _root.towerTypes[towerTypeCodeToId[tt.attributes.id]];
}
towerType.range = parseNum(tt.attributes.r);
towerType.splashSize = parseNum(tt.attributes.s);
towerType.price = parseNum(tt.attributes.p);
towerType.unlockPrice = parseNum(tt.attributes.u, towerType.unlockPrice);
towerType.defaultLocked = tt.attributes.l == "1";
if (_root.levelNum == 1) {
towerType.setLocked(towerType.defaultLocked);
}
towerType.maxQuantHard = parseNum(tt.attributes.q, towerType.maxQuantHard);
towerType.maxQuantMed = parseNum(tt.attributes.qm, towerType.maxQuantHard);
towerType.maxQuantEasy = parseNum(tt.attributes.qe, towerType.maxQuantHard);
towerType.displayOrder = parseNum(tt.attributes.o, towerType.displayOrder);
towerType.upgrades = new Array();
var n = tt.firstChild;
while (n != null) {
if (n.nodeName == "u") {
towerType.upgrades.push(xmlToTowerTypeUpgrade(n));
}
n = n.nextSibling;
}
}
function towerTypeUpgradeToXml(upgrade) {
var u = xml.createElement("u");
u.attributes.d = lowerPrecision(upgrade.damage);
u.attributes.c = upgrade.cooldown;
u.attributes.p = upgrade.price;
u.attributes.s = upgrade.slowAmount;
u.attributes.b = upgrade.pushbackLimit;
return(u);
}
function xmlToTowerTypeUpgrade(u) {
return(new TowerUpgrade(parseNum(u.attributes.p), parseNum(u.attributes.d), parseNum(u.attributes.c), parseNum(u.attributes.s), parseNum(u.attributes.b)));
}
function towersToXml() {
var ts = xml.createElement("towers");
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
var tile = _root.getTile(x, y);
if (tile.tower != null) {
ts.appendChild(towerToXml(tile.tower));
}
x++;
}
y++;
}
return(ts);
}
function xmlToTowers(ts) {
_root.clearTowers();
var n = ts.firstChild;
while (n != null) {
if (n.nodeName == "t") {
xmlToTower(n);
}
n = n.nextSibling;
}
}
function towerToXml(tower) {
var n = xml.createElement("t");
if (debugXml) {
n.attributes.debug = tower.towerType.id;
}
n.attributes.i = towerTypeIdToCode[tower.towerType.id];
n.attributes.a = lowerPrecision(tower.centerAngle);
n.attributes.u = tower.upgrade;
n.attributes.x = tower.tileX;
n.attributes.y = tower.tileY;
n.attributes.l = tower.levelBuilt;
n.attributes.f = tower.barrel.frameCnt;
n.attributes.dx = lowerPrecision(tower.barrel.bull.dx);
n.attributes.dy = lowerPrecision(tower.barrel.bull.dy);
n.attributes.tx = lowerPrecision(tower.barrel.bull.tx);
n.attributes.ty = lowerPrecision(tower.barrel.bull.ty);
n.attributes.h = (tower.barrel.bull.hitTarget ? "1" : "0");
n.attributes.t = tower.barrel.bull.timeToLive;
return(n);
}
function xmlToTower(n) {
var id = towerTypeCodeToId[n.attributes.i];
if (id == null) {
id = n.attributes.t;
}
var tower = _root.buildTower(_root.getTile(parseNum(n.attributes.x), parseNum(n.attributes.y)), _root.towerTypes[id], false, parseNum(n.attributes.a));
_root.unselectTower(tower);
setTowerUpgrade(tower, parseNum(n.attributes.u));
tower.levelBuilt = parseNum(n.attributes.l);
tower.barrel.frameCnt = parseNum(n.attributes.f);
tower.barrel.bull.dx = parseNum(n.attributes.dx);
tower.barrel.bull.dy = parseNum(n.attributes.dy);
tower.barrel.bull.tx = parseNum(n.attributes.tx);
tower.barrel.bull.ty = parseNum(n.attributes.ty);
tower.barrel.bull.hitTarget = n.attributes.h == "1";
tower.barrel.bull.timeToLive = parseNum(n.attributes.t);
}
function descriptionToXml() {
var e = xml.createElement("desc");
e.attributes.allowedLost = _root.allowedLost;
e.attributes.m = _root.extraMoneyFactor;
e.attributes.d = _root.difficulty;
e.attributes.authors = _root.authors.join(",");
e.attributes.mapEdited = "" + _root.mapEdited;
e.attributes.mapProven = "" + _root.mapProven;
e.attributes.publishName = _root.publishName;
e.attributes.version = _root.publishVersion;
e.attributes.l = _root.numLevels;
var textNode = xml.createTextNode("t");
textNode.nodeValue = _root.mapDescription;
e.appendChild(textNode);
return(e);
}
function xmlToDescription(e) {
_root.difficulty = parseNum(e.attributes.d, 1);
_root.setDifficulty(_root.difficulty);
_root.allowedLost = parseNum(e.attributes.allowedLost, _root.allowedLost);
_root.extraMoneyFactor = parseNum(e.attributes.m, _root.extraMoneyFactor);
_root.authors = e.attributes.authors.split(",");
_root.mapEdited = e.attributes.mapEdited == "true";
publishButton._visible = _root.mapEdited;
_root.mapProven = e.attributes.mapProven == "true";
_root.publishName = e.attributes.publishName;
_root.publishVersion = e.attributes.version;
_root.numLevels = parseNum(e.attributes.l, 10);
_root.mapDescription = e.firstChild.nodeValue;
_root.generateLevels();
_root.stats.updateAll();
}
function gameStateToXml() {
var e = xml.createElement("state");
e.attributes.k = stats.creepsKilled;
e.attributes.e = stats.creepsExited;
e.attributes.m = lowerPrecision(_root.money);
e.attributes.l = _root.levelNum;
e.attributes.c = _root.creepsSpawned;
e.attributes.f = _root.spawnFrameCnt;
e.attributes.lf = _root.lvlFrameCnt;
var locked = new Array();
var i = 0;
while (i < _root.towerTypesStack.length) {
if (_root.towerTypesStack[i].locked) {
locked.push(towerTypeIdToCode[_root.towerTypesStack[i].id]);
}
i++;
}
e.attributes.s = locked.join(" ");
e.appendChild(creepsToXml());
e.appendChild(towersToXml());
e.appendChild(tilesToXml());
return(e);
}
function setCurrentTilesAsInitialState() {
var n = _root.initialGameStateXml.firstChild;
while (n != null) {
if (n.nodeName == "tiles") {
n.removeNode();
}
n = n.nextSibling;
}
_root.initialGameStateXml.appendChild(tilesToXml());
}
function xmlToGameStateJustUpdateTiles(e, keepTilesSame) {
xmlToGameState(e, true, keepTilesSame);
}
function xmlToGameState(e, justUpdateTiles, keepTilesSame) {
stats.creepsKilled = parseNum(e.attributes.k, stats.creepsKilled);
stats.creepsExited = parseNum(e.attributes.e, stats.creepsExited);
_root.money = parseNum(e.attributes.m, _root.money);
_root.levelNum = parseNum(e.attributes.l, _root.levelNum);
_root.creepsSpawned = parseNum(e.attributes.c);
_root.spawnFrameCnt = parseNum(e.attributes.f);
_root.lvlFrameCnt = parseNum(e.attributes.lf);
var i = 0;
while (i < _root.towerTypesStack.length) {
_root.towerTypesStack[i].setLocked(false);
i++;
}
var locked = e.attributes.s.split(" ");
var i = 0;
while (i < locked.length) {
_root.towerTypes[towerTypeCodeToId[locked[i]]].setLocked(true);
i++;
}
if (!keepTilesSame) {
var n = e.firstChild;
while (n != null) {
if (n.nodeName == "tiles") {
xmlToTiles(n, justUpdateTiles);
}
n = n.nextSibling;
}
}
var n = e.firstChild;
while (n != null) {
if (n.nodeName == "creeps") {
xmlToCreeps(n);
}
n = n.nextSibling;
}
var n = e.firstChild;
while (n != null) {
if (n.nodeName == "towers") {
xmlToTowers(n);
}
n = n.nextSibling;
}
stats.updateAll();
}
function snapshotsToXml() {
var e = xml.createElement("snapshots");
var i = _root.levelNum;
var numPrinted = 0;
while (i > 0) {
if (_root.levelStartingStates[i] != null) {
e.appendChild(_root.levelStartingStates[i]);
if ((numPrinted++) > 5) {
break;
}
}
i--;
}
return(e);
}
function xmlToSnapshots(e) {
_root.levelStartingStates = new Array();
var n = e.firstChild;
while (n != null) {
if (n.nodeName == "state") {
_root.levelStartingStates[parseNum(n.attributes.l)] = n;
}
n = n.nextSibling;
}
}
function creepsToXml() {
var n = xml.createElement("creeps");
var i = 0;
while (i < _root.allCreeps.length) {
var creep = _root.allCreeps[i];
if ((creep != null) && (creep._x != undefined)) {
n.appendChild(creepToXml(creep));
}
i++;
}
return(n);
}
function xmlToCreeps(e) {
_root.clearCreeps();
var n = e.firstChild;
while (n != null) {
if (n.nodeName == "c") {
xmlToCreep(n);
}
n = n.nextSibling;
}
}
function creepToXml(creep) {
var n = xml.createElement("c");
n.attributes.x = lowerPrecision(creep._x);
n.attributes.y = lowerPrecision(creep._y);
n.attributes.s = lowerPrecision(creep.speed);
n.attributes.a = creep.acc;
n.attributes.w = creep.waypointIdx;
n.attributes.mh = lowerPrecision(creep.maxHealth);
n.attributes.h = lowerPrecision(creep.health);
n.attributes.m = lowerPrecision(creep.money);
n.attributes.c = creep.stuckCnt;
return(n);
}
function xmlToCreep(n) {
var creep = _root.makeCreep();
creep.speed = parseNum(n.attributes.s);
creep.acc = parseNum(n.attributes.a);
creep.waypointIdx = parseNum(n.attributes.w);
creep.maxHealth = parseNum(n.attributes.mh);
creep.health = parseNum(n.attributes.h);
creep.money = parseNum(n.attributes.m);
creep.stuckCnt = parseNum(n.attributes.c);
_root.updateCreepSize(creep);
var x = parseNum(n.attributes.x);
var y = parseNum(n.attributes.y);
_root.placeCreepOnTile(creep, _root.pixelToTileX(x), _root.pixelToTileY(y));
creep._x = x;
creep._y = y;
_root.creepGetPathToWaypoint(creep, creep.waypointIdx, true);
}
var debugXml = false;
var xml = new XML();
var towerTypeCodeToId = new Array();
var towerTypeIdToCode = new Array();
mapTowerTypeCode("b", "bolter");
mapTowerTypeCode("i", "ice");
mapTowerTypeCode("h", "howizter");
mapTowerTypeCode("g", "gluon");
mapTowerTypeCode("f", "fireFlood");
mapTowerTypeCode("F", "frostBomb");
mapTowerTypeCode("a", "autocannon");
mapTowerTypeCode("r", "railgun");
mapTowerTypeCode("1", "16incher");
mapTowerTypeCode("A", "atomicHowizter");
mapTowerTypeCode("~", "water");
mapTowerTypeCode("#", "concrete");
mapTowerTypeCode("R", "raisedConcrete");
mapTowerTypeCode("w", "waypoint");
mapTowerTypeCode(".", "grass");
mapTowerTypeCode("_", "sand");
mapTowerTypeCode("W", "wall");
function saveGameAs(gameName, publish, versionName) {
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "saveMyGame";
_root.mostRecentGameStateXml = _root.gameStateToXml();
if ((_root.levelNum == 0) && (_root.inEditMode)) {
_root.initialGameStateXml = _root.gameStateToXml();
}
if (publish) {
_root.publishName = gameName;
_root.publishVersion = versionName;
}
sendVars.version = _root.publishVersion;
sendVars.publishId = _root.publishId;
if (publish) {
if (_root.authors[_root.authors.length - 1].toLowerCase() != _root.login.toLowerCase()) {
_root.authors.push(login);
}
_root.mapEdited = false;
_root.mapProven = false;
}
sendVars.saveGameXml = saveGameToXml().toString();
sendVars.previewXml = saveGameToPreviewXml().toString();
if (publish) {
_root.mapEdited = true;
_root.mapProven = true;
}
if (publish) {
sendVars.publish = 1;
} else {
sendVars.publish = 0;
}
sendVars.name = gameName;
_root.xmlProgressWindow("Saving Game", sendVars, server + ioUrl, function (resultXml) {
if (publish) {
_root.publishId = resultXml.nodeValue;
}
_root.okBox("SUCCESS", "Game saved");
}, function () {
_root.openSaveGameDlg(publish);
});
}
function getSavedGame(gameId, callback) {
var builtIn = _root.builtInGames[gameId][_root.builtInGameSavedGameXmlStringIdx];
if (builtIn != null) {
var dataXml = new XML(builtIn).firstChild;
_root.publishId = dataXml.attributes.i;
callback(dataXml.firstChild);
return(undefined);
}
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "getSavedGame";
sendVars.id = gameId;
_root.xmlProgressWindow("Getting Saved Game", sendVars, server + ioUrl, function (dataXml) {
if (_root.traceSaveGameXml) {
}
_root.publishId = dataXml.attributes.i;
if (_root.traceLoadedXml) {
}
callback(dataXml.firstChild);
}, null);
}
function getGameNamesAndIds(directoryName, callback, failCallback) {
if (directoryName == builtInDir) {
callback(_root.getBuiltInGameNamesAndIds());
} else if (directoryName == mySavedGamesDir) {
getMySavedGameNamesAndIds(false, callback, failCallback);
} else if (directoryName == myPublishedGamesDir) {
getMySavedGameNamesAndIds(true, callback, failCallback);
} else {
getGameNamesAndIdsForDirectory(directoryName, callback, failCallback);
}
}
function getMySavedGameNamesAndIds(publishedOnly, callback, failCallback) {
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "getMySavedGameNamesAndIds";
if (publishedOnly) {
sendVars.publishedOnly = 1;
} else {
sendVars.publishedOnly = 0;
}
_root.xmlProgressWindow("Getting Saved Game Names", sendVars, server + ioUrl, callback, failCallback);
}
function getGameNamesAndIdsForDirectory(directoryName, callback, failCallback) {
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "getDirectory";
sendVars.dir = directoryName;
_root.xmlProgressWindow("Getting Game Names", sendVars, server + ioUrl, callback, failCallback);
}
function deleteSavedGame(idToDelete) {
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "deleteSavedGame";
sendVars.id = idToDelete;
_root.hiddenTransfer("Deleting Saved Game", sendVars, server + ioUrl, null, function (resultXml) {
_root.okBox("CAN'T DO IT", "Unable to delete saved game");
});
}
function getGamePreview(gameId, callback) {
if (gameId == undefined) {
return("");
}
var builtIn = _root.builtInGames[gameId][_root.builtInGamePreviewXmlStringIdx];
if (builtIn != null) {
callback(new XML(builtIn).firstChild);
return(undefined);
}
if (cachedGamePreviews[gameId] != null) {
callback(cachedGamePreviews[gameId]);
return(undefined);
}
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "getGamePreview";
sendVars.id = gameId;
_root.hiddenTransfer("Getting Game Preview", sendVars, server + ioUrl, function (resultXml) {
if (_root.traceSaveGameXml) {
}
cachedGamePreviews[gameId] = resultXml;
callback(resultXml);
}, function (resultXml) {
_root.okBox("CAN'T DO IT", "Unable to get game preview from network");
});
}
function checkLogin(callback, failCallback) {
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "c";
sendVars.id = gameId;
_root.xmlProgressWindow("Checking Login", sendVars, server + ioUrl, callback, failCallback);
}
function checkBeatenGame(callback, failCallback) {
if (cachedBeatenGameIds[_root.gameId] || ((_root.login == "m") && (_root.password == "p"))) {
callback();
return(undefined);
}
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "checkBeatenGame";
sendVars.publishId = _root.publishId;
_root.hiddenTransfer("Seeing If You've Beaten This Map", sendVars, server + ioUrl, function () {
cachedBeatenGameIds[_root.gameId] = true;
callback();
}, failCallback);
}
function markBeatenGame() {
if (_root.mapEdited) {
_root.mapProven = true;
return(undefined);
}
_root.cachedBeatenGameIds[_root.gameId] = true;
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "markBeatenGame";
sendVars.publishId = _root.publishId;
sendVars.saveGameXml = saveGameToXml().toString();
_root.xmlProgressWindow("Giving You Credit For Beating This Game", sendVars, server + ioUrl, null, markBeatenGame);
}
function sendRating(radioGroup) {
if (_root.login == justTryingLogin) {
return(undefined);
}
var i = 0;
while (i < _root.authors.length) {
if (_root.login == _root.authors[i]) {
return(undefined);
}
i++;
}
var sendVars = new LoadVars();
sendVars.login = _root.login;
sendVars.password = _root.password;
sendVars.command = "rate";
sendVars.publishId = _root.publishId;
sendVars.rating = radioGroup.selection.data;
_root.hiddenTransfer("Rating Game", sendVars, server + ioUrl);
}
var serverWarningStr = "";
if (server != "http://turrettyranny.com/") {
serverWarningStr = server;
}
var ioUrl = "io.jsp";
_root.builtInDir = "$builtIn";
_root.mySavedGamesDir = "$mySaved";
_root.myPublishedGamesDir = "$myPublished";
_root.userPublishedGamesDir = "$userPublished";
var mapName = "(not set)";
var cachedGamePreviews = new Array();
_root.cachedBeatenGameIds = new Array();
function initMap() {
depth = 100;
_global.mapBlocks = new Array();
_global.spawnPoints = new Array();
_global.exitPoint = [0, 0];
_global.waypoints = new Array();
_root.mapH = 0;
_root.mapW = 0;
stats.init();
initGameControl();
_root.allCreeps = new Array();
_root.allTowers = new Array();
_root.allBullets = new Array();
}
function clearCreeps() {
stats.creepsOut = 0;
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
getTile(x, y).occupyingCreep = (getTile(x, y).occupyingCreepB = (getTile(x, y).occupyingCreepC = null));
x++;
}
y++;
}
var i = 0;
var l = allCreeps.length;
while (i < l) {
allCreeps[i].destroyed = true;
i++;
}
var i = 0;
var l = allCreeps.length;
while (i < l) {
allCreeps[i].removeMovieClip();
i++;
}
_root.allCreeps = new Array();
}
function clearTowers() {
var i = 0;
var l = allTowers.length;
while (i < l) {
_root.killTower(allTowers[i], true);
i++;
}
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
var tower = getTile(x, y).tower;
if (tower != null) {
_root.killTower(tower, true);
}
x++;
}
y++;
}
var i = 0;
while (i < _root.towerTypesStack.length) {
_root.towerTypesStack[i].setBuiltQuant(0);
i++;
}
allTowers = new Array();
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
getTile(x, y).tower = null;
x++;
}
y++;
}
}
function clearTiles() {
clearTowers();
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
getTile(x, y).removeMovieClip();
x++;
}
y++;
}
_global.mapBlocks = new Array();
_root.clearPathCache();
}
function clearOldMap() {
clearCreeps();
clearTowers();
clearTiles();
}
function getTile(x, y) {
return(_root[(("tile" + x) + "_") + y]);
}
function getMinMapX() {
return(mapX - (tileSize / 2));
}
function getMinMapY() {
return(mapY - (tileSize / 2));
}
function getMaxMapX() {
return((mapX + (tileSize * mapW)) - (tileSize / 2));
}
function getMaxMapY() {
return((mapY + (tileSize * mapH)) - (tileSize / 2));
}
function mouseIsOnMap() {
return((((_xmouse >= getMinMapX()) && (_xmouse <= getMaxMapX())) && (_ymouse >= getMinMapY())) && (_ymouse <= getMaxMapY()));
}
function pixelToTileX(x) {
return(Math.round((x - _root.mapX) / _root.tileSize));
}
function pixelToTileY(y) {
return(Math.round((y - _root.mapY) / _root.tileSize));
}
function tileToPixelX(x) {
return(_root.mapX + (x * _root.tileSize));
}
function tileToPixelY(y) {
return(_root.mapY + (y * _root.tileSize));
}
function makeMapTile(x, y) {
tile = _root.attachMovie("tile", (("tile" + x) + "_") + y, _global.depth++);
tile.debug = 0;
tile.tower = null;
tile.tileX = x;
tile.tileY = y;
tile._x = (x * _root.tileSize) + _root.mapX;
tile._y = (y * _root.tileSize) + _root.mapY;
tile.creepListeners = new Array();
tile.wpSubpoints = new Array();
return(tile);
}
function setSpawnPoint(tile) {
_root.getTile(spawnPoints[0][0], spawnPoints[0][1]).onEnterFrame = null;
spawnPoints[0] = [tile.tileX, tile.tileY];
tile.onEnterFrame = function () {
doSpawnpointGameControl();
};
}
function setMapTileConcrete(tile) {
tile.tileType = _root.towerTypes.concrete;
tile.gotoAndStop("concrete");
tile.buildable = true;
tile.hasConcrete = true;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileGrass(tile) {
tile.tileType = _root.towerTypes.grass;
tile.gotoAndStop("grass");
tile.buildable = true;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileStart(tile) {
tile.tileType = _root.towerTypes.waypoint;
tile.gotoAndStop("startPoint");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileEnd(tile) {
tile.tileType = _root.towerTypes.waypoint;
tile.gotoAndStop("endPoint");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileWaypoint(tile) {
tile.tileType = _root.towerTypes.waypoint;
tile.gotoAndStop("waypoint");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileSand(tile) {
tile.tileType = _root.towerTypes.sand;
tile.gotoAndStop("sand");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileWater(tile) {
tile.tileType = _root.towerTypes.water;
tile.gotoAndStop("water");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileWall(tile) {
tile.tileType = _root.towerTypes.wall;
tile.gotoAndStop("wall");
tile.buildable = false;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function setMapTileRaisedConcrete(tile) {
tile.tileType = _root.towerTypes.raisedConcrete;
tile.gotoAndStop("raisedConcrete");
tile.buildable = true;
tile.onRelease = function () {
_root.onTileRelease(this);
};
tile.onPress = function () {
_root.onTilePress(this);
};
mapBlocks[tile.tileY][tile.tileX] = (tile.tileType.isBlock ? 1 : 0);
}
function swapWaypoints(tileA, tileB) {
var tileC = null;
var x = 0;
while (x < _root.mapW) {
var y = 0;
while (y < _root.mapH) {
if (_root.getTile(x, y).tileType.id != "waypoint") {
tileC = _root.getTile(x, y);
break;
}
y++;
}
x++;
}
if (tileC == null) {
return(undefined);
}
var tileCtileType = tileC.tileType;
var ax = tileA.tileX;
var ay = tileA.tileY;
var bx = tileB.tileX;
var by = tileB.tileY;
var cx = tileC.tileX;
var cy = tileC.tileY;
moveWaypoint(tileA, tileC);
moveWaypoint(getTile(bx, by), getTile(ax, ay));
moveWaypoint(getTile(cx, cy), getTile(bx, by));
buildTile(getTile(cx, cy), tileCtileType);
}
function moveWaypoint(wpTile, tileB) {
var tileBTileType = tileB.tileType;
buildTile(tileB, wpTile.tileType, wpTile);
deleteWaypoint(wpTile);
buildTile(wpTile, tileBTileType);
}
function findTilesInRadius(tileX, tileY, radius, callback, centerAngle, sweepAngle, callData, minRadius) {
if (sweepAngle == 0) {
centerAngle = degreesToRadians(centerAngle);
radius++;
callbackLine(tileX, tileY, tileX + (radius * Math.cos(centerAngle)), tileY + (radius * Math.sin(centerAngle)), callback, callData);
return(undefined);
}
var minRadiusSquared = (minRadius * minRadius);
var radiusSquared = ((radius * radius) + 1);
var constrainAngle = (sweepAngle < 360);
var minAngle = (centerAngle - (sweepAngle / 2));
var maxAngle = (centerAngle + (sweepAngle / 2));
if (maxAngle > 180) {
maxAngle = maxAngle - 360;
}
if (maxAngle < -180) {
maxAngle = maxAngle + 360;
}
if (minAngle < -180) {
minAngle = minAngle + 360;
}
if (minAngle < -180) {
minAngle = minAngle + 360;
}
var y = (-radius);
while (y < (radius + 1)) {
var x = (-radius);
for ( ; x < (radius + 1) ; x++) {
var tx = Math.ceil(tileX + x);
var ty = Math.ceil(tileY + y);
if ((((tx < 0) || (tx >= _root.mapW)) || (ty < 0)) || (ty >= _root.mapH)) {
} else {
var rr = (((tx - tileX) * (tx - tileX)) + ((ty - tileY) * (ty - tileY)));
if (rr > radiusSquared) {
} else if ((minRadiusSquared != undefined) && (rr < minRadiusSquared)) {
} else if (constrainAngle) {
var angle = _root.radiansToDegrees(Math.atan2(y, x));
if (maxAngle < minAngle) {
if ((angle > maxAngle) && (angle < minAngle)) {
continue;
}
// unexpected jump
}
if ((angle > maxAngle) || (angle < minAngle)) {
} else if (!callback(tx, ty, callData)) {
return(false);
}
} else if (!callback(tx, ty, callData)) {
return(false);
}
}
}
y++;
}
return(true);
}
var allCreeps;
_root.allTowers = null;
String.prototype.toNumber = function () {
return(Number(this));
};
function getRawPath(array, startX, startY, endX, endY) {
if (logPathTime) {
var pathTimeStart = getTimer();
}
if (!((((startY >= 0) && (startY < array.length)) && (startX >= 0)) && (startX < array[0].length))) {
return(null);
}
if (!((((endY >= 0) && (endY < array.length)) && (endX >= 0)) && (endX < array[0].length))) {
return(null);
}
if (array[startY][startX] == 1) {
return(null);
}
if (array[endY][endX] == 1) {
return(null);
}
var newpath = new PathFinder(array);
newpath.startPosition = [startY, startX];
newpath.finalPosition = [endY, endX];
initPaths();
newpath.init();
var path = newpath.findPath();
if (logPathTime) {
}
return(path);
}
function clearPathCache() {
cachedPaths = new Array();
waypointCachedPaths = new Array();
waypointToDot = new Array();
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
_root.getTile(x, y).wpSubpoints = new Array();
x++;
}
y++;
}
}
function clearWaypointPathCacheForTile(tile) {
var i = 0;
while (i < tile.wpSubpoints) {
clearWaypointPathCache(tile.wpSubpoints[i]);
i++;
}
}
function clearWaypointPathCache(waypointIdx) {
waypointCachedPaths[waypointIdx] = new Array();
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
var tile = _root[(("tile" + x) + "_") + y];
var list = tile.wpSubpoints;
i = 0;
while (i < list.length) {
if (list[i] == waypointIdx) {
list.splice(i, 1);
i--;
}
i++;
}
x++;
}
y++;
}
}
function getPath(array, startX, startY, endX, endY) {
if ((endX == exitPoint[0]) && (endY == exitPoint[1])) {
i = (startY * _root.mapW) + startX;
if (cachedPaths[i] != null) {
return(cachedPaths[i]);
}
return((cachedPaths[i] = getPathWithoutCache(array, startX, startY, endX, endY)));
}
return(getPathWithoutCache(array, startX, startY, endX, endY));
}
function getWaypointPath(startX, startY, waypointIdx) {
var paths = waypointCachedPaths[waypointIdx];
if (paths == null) {
paths = (waypointCachedPaths[waypointIdx] = new Array());
}
var pathKey = ((startY * _root.mapW) + startX);
if (paths[pathKey] != null) {
return(paths[pathKey]);
}
var path = ((paths[pathKey] = getPathWithoutCache(mapBlocks, startX, startY, waypoints[waypointIdx][0], waypoints[waypointIdx][1], waypointIdx)));
var prevX;
var prevY;
if (waypointIdx == 0) {
prevX = spawnPoints[0][0];
prevY = spawnPoints[0][1];
} else {
prevX = waypoints[waypointIdx - 1][0];
prevY = waypoints[waypointIdx - 1][1];
}
if (((paths[pathKey] != null) && (startX == prevX)) && (startY == prevY)) {
writeWaypointSubpoints(paths[pathKey], waypointIdx);
}
traceSubpoints();
return(paths[pathKey]);
}
function updateWaypointToDot(wpIdx) {
if (wpIdx <= 0) {
return(undefined);
}
var a0;
var a1;
var b0;
var b1;
var c0;
var c1;
if (wpIdx == 1) {
a0 = spawnPoints[0][0];
a1 = spawnPoints[0][1];
} else {
a0 = waypoints[wpIdx - 2][0];
a1 = waypoints[wpIdx - 2][1];
}
b0 = waypoints[wpIdx - 1][0];
b1 = waypoints[wpIdx - 1][1];
c0 = waypoints[wpIdx][0];
c1 = waypoints[wpIdx][1];
a0 = a0 - b0;
a1 = a1 - b1;
c0 = c0 - b0;
c1 = c1 - b1;
var im = 1;
if (a0 == 0) {
im = 1 / Math.abs(a1);
} else if (a1 == 0) {
im = 1 / Math.abs(a0);
} else {
im = 1 / Math.sqrt((a0 * a0) + (a1 * a1));
}
a0 = a0 * im;
a1 = a1 * im;
if (c0 == 0) {
im = 1 / Math.abs(c1);
} else if (c1 == 0) {
im = 1 / Math.abs(c0);
} else {
im = 1 / Math.sqrt((c0 * c0) + (c1 * c1));
}
c0 = c0 * im;
c1 = c1 * im;
waypointToDot[wpIdx] = (a0 * c0) + (a1 * c1);
}
function writeWaypointSubpoints(path, waypointIdx) {
var i = 1;
while (i < path.length) {
writeWaypointSubpointsLine(path[i - 1][0], path[i - 1][1], path[i][0], path[i][1], waypointIdx);
i++;
}
}
function writeWaypointSubpointsLine(a, b, c, d, waypointIdx) {
if ((isNaN(a) || (isNaN(c))) || (isNaN(waypointIdx))) {
return(undefined);
}
if (a == c) {
x = a;
s = Math.min(b, d);
e = Math.max(b, d);
y = s;
while (y < e) {
_root.getTile(x, y).wpSubpoints.push(waypointIdx);
y++;
}
} else {
y = b;
s = Math.min(a, c);
e = Math.max(a, c);
x = s;
while (x <= e) {
_root.getTile(x, y).wpSubpoints.push(waypointIdx);
x++;
}
}
}
function getPathWithoutCache(array, startX, startY, endX, endY, waypointIdx) {
var path = null;
if (startX == endX) {
var s = Math.min(startY, endY);
var e = Math.max(startY, endY);
var isBlocked = false;
var i = s;
while (i <= e) {
if (mapBlocks[i][startX] != 0) {
isBlocked = true;
break;
}
i++;
}
if (!isBlocked) {
path = new Array();
if (startY > endY) {
var i = startY;
while (i >= endY) {
path.push([startX, i]);
i--;
}
} else {
var i = startY;
while (i <= endY) {
path.push([startX, i]);
i++;
}
}
return(path);
}
} else if (startY == endY) {
var s = Math.min(startX, endX);
var e = Math.max(startX, endX);
var isBlocked = false;
var i = s;
while (i <= e) {
if (mapBlocks[startY][i] != 0) {
isBlocked = true;
break;
}
i++;
}
if (!isBlocked) {
path = new Array();
if (startX > endX) {
var i = startX;
while (i >= endX) {
path.push([i, startY]);
i--;
}
} else {
var i = startX;
while (i <= endX) {
path.push([i, startY]);
i++;
}
}
return(path);
}
} else {
if (logPathTime) {
var pathTimeStart = getTimer();
}
var cwPath = false;
var prevX;
var prevY;
if (waypointIdx <= 1) {
prevX = _global.spawnPoints[0][0];
prevY = _global.spawnPoints[0][1];
} else {
prevX = _global.waypoints[waypointIdx - 2][0];
prevY = _global.waypoints[waypointIdx - 2][1];
}
if (prevX < startX) {
if (startY < prevY) {
if (startX < endX) {
if (startY < endY) {
cwPath = true;
}
}
} else if (endX < startX) {
if (startY < endY) {
cwPath = true;
}
}
} else if (startY > prevY) {
if (startX > endX) {
if (startY > endY) {
cwPath = true;
}
}
} else if (endX > startX) {
if (startY > endY) {
cwPath = true;
}
}
var linePoints = new Array();
var callData = [array, linePoints, -1, -1, cwPath];
if (_root.callbackLine(startX, startY, endX, endY, function (x, y, callData) {
var array = callData[0];
if (array[y][x] != 0) {
return(false);
}
var linePoints = callData[1];
var pX = callData[2];
var pY = callData[3];
var cwPath = callData[4];
if (((cwPath && (pX != -1)) && (pX != x)) && (pY != y)) {
if (x > pX) {
if (y > pY) {
if ((array[pY][pX + 1] == 0) && (_root.getTile(pX + 1, pY).wpSubpoints.length == 0)) {
linePoints.push([pX + 1, pY]);
} else if (array[pY + 1][pX] == 0) {
linePoints.push([pX, pY + 1]);
} else if (array[pY][pX + 1] == 0) {
linePoints.push([pX + 1, pY]);
} else {
return(false);
}
} else if ((array[pY - 1][pX] == 0) && (_root.getTile(pX, pY - 1).wpSubpoints.length == 0)) {
linePoints.push([pX, pY - 1]);
} else if (array[pY][pX + 1] == 0) {
linePoints.push([pX + 1, pY]);
} else if (array[pY - 1][pX] == 0) {
linePoints.push([pX, pY - 1]);
} else {
return(false);
}
} else if (y > pY) {
if ((array[pY + 1][pX] == 0) && (_root.getTile(pX, pY + 1).wpSubpoints.length == 0)) {
linePoints.push([pX, pY + 1]);
} else if (array[pY][pX - 1] == 0) {
linePoints.push([pX - 1, pY]);
} else if (array[pY + 1][pX] == 0) {
linePoints.push([pX, pY + 1]);
} else {
return(false);
}
} else if ((array[pY][pX - 1] == 0) && (_root.getTile(pX - 1, pY).wpSubpoints.length == 0)) {
linePoints.push([pX - 1, pY]);
} else if (array[pY - 1][pX] == 0) {
linePoints.push([pX, pY - 1]);
} else if (array[pY][pX - 1] == 0) {
linePoints.push([pX - 1, pY]);
} else {
return(false);
}
} else if (((pX != -1) && (pX != x)) && (pY != y)) {
if (x > pX) {
if (y > pY) {
if ((array[pY + 1][pX] == 0) && (_root.getTile(pX, pY + 1).wpSubpoints.length == 0)) {
linePoints.push([pX, pY + 1]);
} else if (array[pY][pX + 1] == 0) {
linePoints.push([pX + 1, pY]);
} else if (array[pY + 1][pX] == 0) {
linePoints.push([pX, pY + 1]);
} else {
return(false);
}
} else if ((array[pY][pX + 1] == 0) && (_root.getTile(pX + 1, pY).wpSubpoints.length == 0)) {
linePoints.push([pX + 1, pY]);
} else if (array[pY - 1][pX] == 0) {
linePoints.push([pX, pY - 1]);
} else if (array[pY][pX + 1] == 0) {
linePoints.push([pX + 1, pY]);
} else {
return(false);
}
} else if (y > pY) {
if ((array[pY][pX - 1] == 0) && (_root.getTile(pX - 1, pY).wpSubpoints.length == 0)) {
linePoints.push([pX - 1, pY]);
} else if (array[pY + 1][pX] == 0) {
linePoints.push([pX, pY + 1]);
} else if (array[pY][pX - 1] == 0) {
linePoints.push([pX - 1, pY]);
} else {
return(false);
}
} else if ((array[pY - 1][pX] == 0) && (_root.getTile(pX, pY - 1).wpSubpoints.length == 0)) {
linePoints.push([pX, pY - 1]);
} else if (array[pY][pX - 1] == 0) {
linePoints.push([pX - 1, pY]);
} else if (array[pY - 1][pX] == 0) {
linePoints.push([pX, pY - 1]);
} else {
return(false);
}
}
callData[2] = x;
callData[3] = y;
linePoints.push([x, y]);
return(true);
}, callData)) {
if (logPathTime) {
}
return(linePoints);
}
}
path = getRawPath(array, startX, startY, endX, endY);
if (path == null) {
return(null);
}
var copied = new Array();
var lastX = path[path.length - 1].pos[1];
var lastY = path[path.length - 1].pos[0];
var lastY2 = path[path.length - 2].pos[0];
var goingH = (lastY == lastY2);
copied.push([lastX, lastY]);
i = path.length - 1;
while (i >= 0) {
x = path[i].pos[1];
y = path[i].pos[0];
if (goingH) {
if (y != lastY) {
goingH = false;
copied.push([lastX, lastY]);
}
} else if (x != lastX) {
goingH = true;
copied.push([lastX, lastY]);
}
lastX = x;
lastY = y;
i--;
}
copied.push([path[0].pos[1], path[0].pos[0]]);
return(copied);
}
function fullPathExists(inMapArray) {
if (!pathExists(inMapArray, spawnPoints[0][0], spawnPoints[0][1], waypoints[0][0], waypoints[0][1])) {
return(false);
}
var i = 1;
while (i < waypoints.length) {
if (!pathExists(inMapArray, waypoints[i - 1][0], waypoints[i - 1][1], waypoints[i][0], waypoints[i][1])) {
return(false);
}
i++;
}
return(true);
}
function pathExists(array, startX, startY, endX, endY) {
return(getRawPath(array, startX, startY, endX, endY) != null);
}
function tryToAddPathBlock(tileX, tileY, force) {
var tile = _root.getTile(tileX, tileY);
if ((force != true) && (tile.tileType.id == "waypoint")) {
return(false);
}
if (mapBlocks[tileY][tileX] == 0) {
oldBlock = mapBlocks[tileY][tileX];
mapBlocks[tileY][tileX] = 1;
var list = tile.wpSubpoints;
var newPaths = new Array();
var startX = 0;
var startY = 0;
list.sort();
var filteredList = new Array();
var prev = -1;
var i = 0;
while (i < list.length) {
if (list[i] != prev) {
filteredList.push(list[i]);
}
prev = list[i];
i++;
}
tile.wpSubpoints = (list = filteredList);
var li = 0;
while (li < list.length) {
waypointIdx = list[li];
if (waypointIdx == 0) {
startX = spawnPoints[0][0];
startY = spawnPoints[0][1];
} else {
startX = waypoints[waypointIdx - 1][0];
startY = waypoints[waypointIdx - 1][1];
}
newPaths[waypointIdx] = getPathWithoutCache(mapBlocks, startX, startY, waypoints[waypointIdx][0], waypoints[waypointIdx][1], waypointIdx);
if ((force != true) && (newPaths[waypointIdx] == null)) {
mapBlocks[tileY][tileX] = oldBlock;
return(false);
}
li++;
}
var listCopy = list.concat();
var i = 0;
while (i < listCopy.length) {
waypointIdx = listCopy[i];
clearWaypointPathCache(waypointIdx);
writeWaypointSubpoints(newPaths[waypointIdx], waypointIdx);
if (waypointIdx == 0) {
startX = spawnPoints[0][0];
startY = spawnPoints[0][1];
} else {
startX = waypoints[waypointIdx - 1][0];
startY = waypoints[waypointIdx - 1][1];
}
var paths = waypointCachedPaths[waypointIdx];
var pathKey = ((startY * _root.mapW) + startX);
if (paths == null) {
paths = (waypointCachedPaths[waypointIdx] = new Array());
}
paths[pathKey] = newPaths[waypointIdx];
i++;
}
}
traceSubpoints();
return(true);
}
function traceSubpoints() {
var ym = 0;
while (ym < _root.mapH) {
var xm = 0;
while (xm < _root.mapW) {
tile = _root[(("tile" + xm) + "_") + ym];
if (tile.wpSubpoints.length > 0) {
tile.hilight.gotoAndStop("on");
} else {
tile.hilight.gotoAndStop("off");
}
xm++;
}
ym++;
}
}
logPathTime = false;
var cachedPaths = new Array();
var waypointCachedPaths = new Array();
var waypointToDot = new Array();
function PathFinder(ar) {
this.__init__(ar);
}
function structNode(pos, f, g, h, parent) {
this.pos = pos.slice();
this.f = f;
this.g = g;
this.h = h;
this.parent = parent;
this.pos_str = this.pos.toString();
}
PathFinder.prototype.__init__ = function (ar) {
this._array = ar;
this.finalPosition = new Array();
this.startPosition = new Array();
this.openList = new Array();
this.closedList = new Array();
};
PathFinder.prototype.getSuccessors = function (pos) {
var r = Number(pos[0]);
var c = Number(pos[1]);
var ret = new Array();
if (this._array[r - 1][c] == 0) {
ret.push([r - 1, c]);
}
if (this._array[r][c + 1] == 0) {
ret.push([r, c + 1]);
}
if (this._array[r + 1][c] == 0) {
ret.push([r + 1, c]);
}
if (this._array[r][c - 1] == 0) {
ret.push([r, c - 1]);
}
return(ret);
};
PathFinder.prototype.init = function () {
var startingNode = new structNode(this.startPosition, 0, 0, 0);
this.openList.push(startingNode);
};
PathFinder.prototype.getDistance = function (pos1, pos2) {
var a = (pos2[0] - pos1[0]);
var b = (pos2[1] - pos1[1]);
return((a * a) + (b * b));
};
PathFinder.prototype.findPath = function () {
var loop1 = 0;
var loop2 = 0;
var loop3 = 0;
var loop4 = 0;
var loop5 = 0;
var loop6 = 0;
var loop6Lim = 3000;
var loop7 = 0;
var loop8 = 0;
while (this.openList.length > 0) {
var _max = 5000;
var _selected = -1;
var a = 0;
while (a < this.openList.length) {
if (this.openList[a].f < _max) {
_max = this.openList[a].f;
_selected = a;
}
a++;
}
var node = this.openList.splice(_selected, 1);
node = node[0];
if (node.pos_str == this.finalPosition.toString()) {
this.closedList.push(node);
var cur = this.closedList[this.closedList.length - 1];
var ret = new Array();
while (cur.parent != undefined) {
ret.push(cur);
cur = cur.parent;
}
return(ret);
}
var successors = this.getSuccessors(node.pos);
var a = 0;
while (a < successors.length) {
var _skip = false;
var struct = new structNode(successors[a]);
struct.parent = node;
struct.g = node.g + this.getDistance(struct.pos, node.pos);
struct.h = this.getDistance(struct.pos, this.finalPosition);
struct.f = struct.g + struct.h;
for (var b in this.openList) {
if ((this.openList[b].pos_str == struct.pos_str) && (this.openList[b].f < struct.f)) {
_skip = true;
break;
}
}
for (var b in this.closedList) {
if ((loop6++) > loop6Lim) {
message("Slowing down because it can't find a path, add more waypoints in between");
return(null);
}
if ((this.closedList[b].pos_str == struct.pos_str) && (this.closedList[b].f < struct.f)) {
_skip = true;
break;
}
}
if (_skip == false) {
for (var c in this.openList) {
if (this.openList[c].pos_str == struct.pos_str) {
this.openList.splice(c, 1);
}
}
for (var c in this.closedList) {
if (this.closedList[c].pos_str == struct.pos_str) {
this.closedList.splice(c, 1);
}
}
this.openList.push(struct);
}
a++;
}
this.closedList.push(node);
}
};
structNode.prototype.toString = function () {
return((((((("[" + this.pos_str) + "], f=") + this.f) + ", g=") + this.g) + ", h=") + this.h);
};
function callbackLine(x1, y1, x2, y2, callback, callData) {
var deltax = Math.abs(x2 - x1);
var deltay = Math.abs(y2 - y1);
var x = x1;
var y = y1;
var xinc1;
var xinc2;
var yinc1;
var yinc2;
var den;
var numadd;
var numpixels;
var num;
if (x2 >= x1) {
xinc1 = 1;
xinc2 = 1;
} else {
xinc1 = -1;
xinc2 = -1;
}
if (y2 >= y1) {
yinc1 = 1;
yinc2 = 1;
} else {
yinc1 = -1;
yinc2 = -1;
}
if (deltax >= deltay) {
xinc1 = 0;
yinc2 = 0;
den = deltax;
num = deltax / 2;
numadd = deltay;
numpixels = deltax;
} else {
xinc2 = 0;
yinc1 = 0;
den = deltay;
num = deltay / 2;
numadd = deltax;
numpixels = deltay;
}
var curpixel = 0;
var safe = 0;
while ((curpixel <= numpixels) && ((safe++) < 500)) {
if (!callback(x, y, callData)) {
return(false);
}
num = num + numadd;
if (num >= den) {
num = num - den;
x = x + xinc1;
y = y + yinc1;
}
x = x + xinc2;
y = y + yinc2;
curpixel++;
}
return(true);
}
function rotateTowards(clip, targetX, targetY) {
clip._rotation = getAngleTo(clip, targetX, targetY);
}
function getAngleTo(clip, targetX, targetY) {
var clipPoint = {x:clip._x, y:clip._y};
clip._parent.localToGlobal(clipPoint);
var deltaX = (targetX - clipPoint.x);
var deltaY = (targetY - clipPoint.y);
var rotationRadian = Math.atan2(deltaY, deltaX);
return(radiansToDegrees(rotationRadian));
}
function radiansToDegrees(radians) {
return(radians * 57.2957795130823);
}
function degreesToRadians(degrees) {
return(degrees * (Math.PI/180));
}
function doNextFrame(func) {
var m = _root.createEmptyMovieClip("doNext" + _global.depth, _global.depth++);
m.onEnterFrame = function () {
func();
m.removeMovieClip();
};
}
function openTutorial() {
_root.getSavedGame("~demoMap", function (xmlData) {
_root.startNewGameUsingXml(xmlData, true);
});
_root.gameStarted = false;
_root.tutorialDlg = (_root.openDlg = _root.attachMovie("tutorial", "tut", _global.okCancelDepth + (_global.depth++)));
_root.tutorialDlg._x = 233;
_root.tutorialDlg._y = 328;
}
function openRestartDlg() {
function initRestartWindow() {
openDlg.difficultySelect.selectedIndex = _root.difficulty - 1;
openDlg.restartGameButton.onRelease = function () {
_root.restartGame();
_root.setDifficulty(openDlg.difficultySelect.selectedIndex + 1);
_root.setPaused(false);
_root.closeDlg();
};
openDlg.restartLevelButton.onRelease = function () {
_root.restartLevel();
_root.setPaused(false);
_root.closeDlg();
};
}
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("restart window", "rsd", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
doNextFrame(initRestartWindow);
}
function openHelpDlg(firstTime) {
closeDlg();
var p = _root.paused;
if (firstTime) {
_root.gameStarted = false;
} else {
_root.setPaused(true);
}
openDlg = _root.attachMovie("helpDlg", "helpDlg", _global.popupDepth + (_global.depth++));
doNextFrame(function () {
if (!firstTime) {
openDlg.startButton.label = "OK";
}
openDlg.text.text = howToPlayText;
});
openDlg._x = 525;
openDlg._y = 200;
openDlg.startButton.onRelease = function () {
if (firstTime) {
_root.restartGame();
}
_root.setPaused(p);
_root.closeDlg();
};
}
function closeQuitGameDlgAndQuit() {
closeDlg();
openNewGameDlg();
}
function openYouWinDlg() {
closeDlg();
openDlg = _root.attachMovie("youWinDlg", "yw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 375;
var i = 0;
while (i < _root.authors.length) {
if (_root.login == _root.authors[i]) {
openDlg.rateLabel._visible = false;
openDlg.b1._visible = false;
openDlg.b2._visible = false;
openDlg.b3._visible = false;
openDlg.b4._visible = false;
openDlg.b5._visible = false;
break;
}
i++;
}
message("You win!");
}
function openYouWinPublishDlg() {
closeDlg();
openDlg = _root.attachMovie("youWinPublishDlg", "ywp", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 375;
message("You win!");
}
function openYouLoseDlg() {
closeDlg();
openDlg = _root.attachMovie("youLoseDlg", "yl", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 375;
message("You lose!");
}
function openSaveGameDlg(publish) {
closeDlg();
_root.setPaused(true);
if (publish) {
openDlg = _root.attachMovie("publish game window", "pgw", _global.popupDepth + (_global.depth++));
} else {
openDlg = _root.attachMovie("save game window", "sgw", _global.popupDepth + (_global.depth++));
}
if (publish) {
openDlg.headerStr = "(Your game will be published as it was at the start of the game)";
} else if (_root.inEditMode) {
openDlg.headerStr = "(Your game will be saved as it is right now except for creep locations)";
} else {
openDlg.headerStr = "(Your game will be saved as it was at the start of this level)";
}
openDlg._x = 350;
openDlg._y = 250;
var dlg = openDlg;
dlg.inited = false;
dlg.onEnterFrame = function () {
if (dlg.inited) {
return(undefined);
}
dlg.inited = true;
var restrict = " -~^\"";
dlg.gameNameField.restrict = restrict;
dlg.versionField.restrict = restrict;
dlg.gameNameField.maxChars = 40;
dlg.versionField.maxChars = 8;
if (publish) {
dlg.gameNameField.text = _root.publishName;
dlg.versionField.text = _root.publishVersion;
} else {
var date = new Date();
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"];
dlg.gameNameField.text = (((((((_root.publishName + " v. ") + _root.publishVersion) + " ") + monthNames[date.getMonth()]) + "-") + date.getDate()) + "-") + date.getFullYear();
}
var maxSavedGames = 100;
_root.getMySavedGameNamesAndIds(publish, function (dataXml) {
dlg.gameNamesList.removeAll();
var n = dataXml;
while (n != null) {
if (n.nodeName == "i") {
dlg.gameNamesList.addItem(n.attributes.n, n.attributes.i);
}
n = n.nextSibling;
}
if (dlg.gameNamesList.length >= maxSavedGames) {
dlg.saveButton._visible = false;
dlg.gameNameField.editable = false;
dlg.gameNameField.text = "Too many saved games, please delete some first";
dlg.tooMany = true;
}
dlg._visible = true;
});
var listener = new Object();
listener.change = function (eventObj) {
dlg.gameNameField.text = dlg.gameNamesList.getItemAt(dlg.gameNamesList.selectedIndices[0]).label;
if (publish) {
var parts = dlg.gameNameField.text.split(" v. ");
dlg.gameNameField.text = parts[0];
dlg.versionField.text = parts[1];
}
if (dlg.gameNameField.text == null) {
dlg.gameNameField.text = "";
}
if (dlg.versionField.text == null) {
dlg.versionField.text = "";
}
};
dlg.gameNamesList.addEventListener("change", listener);
dlg.deleteButton.onRelease = function () {
okCancelBox("CONFIRM", "Really delete saved game?", function () {
var idsToDelete = new Array();
var selectedI = dlg.gameNamesList.selectedIndices;
if (selectedI.length > 0) {
_root.deleteSavedGame(dlg.gameNamesList.getItemAt(selectedI[0]).data);
dlg.gameNamesList.removeItemAt(selectedI[0]);
}
if (dlg.tooMany && (dlg.gameNamesList.length < maxSavedGames)) {
dlg.saveButton._visible = true;
dlg.gameNameField.editable = true;
dlg.gameNameField.text = "";
dlg.tooMany = false;
}
});
};
dlg.saveButton.onRelease = function () {
function saveGame() {
_root.saveGameAs(dlg.gameNameField.text, publish, dlg.versionField.text);
_root.closeDlg();
}
function isWhitespace(c) {
return((((c == " ") || (c == "\t")) || (c == newline)) || (c == "\r"));
}
var firstChar = dlg.gameNameField.text.charAt(0);
var lastChar = dlg.gameNameField.text.charAt(dlg.gameNameField.text.length - 1);
if (isWhitespace(firstChar)) {
_root.okBox("PLEASE FIX", "Game name can't start with whitespace");
return(undefined);
}
if (isWhitespace(lastChar)) {
_root.okBox("PLEASE FIX", "Game name can't end with whitespace");
return(undefined);
}
var firstChar = dlg.versionField.text.charAt(0);
var lastChar = dlg.versionField.text.charAt(dlg.gameNameField.text.length - 1);
if (isWhitespace(firstChar)) {
_root.okBox("PLEASE FIX", "Version can't start with whitespace");
return(undefined);
}
if (isWhitespace(lastChar)) {
_root.okBox("PLEASE FIX", "Version can't end with whitespace");
return(undefined);
}
if ((dlg.gameNameField.text == null) || (dlg.gameNameField.text == "")) {
_root.okBox("PLEASE FIX", "Please enter a name to save the game as");
return(undefined);
}
if (publish) {
if ((dlg.versionField.text == null) || (dlg.versionField.text == "")) {
_root.okBox("PLEASE FIX", "Please enter a version number");
return(undefined);
}
for (i in _root.builtInGames) {
if (_root.builtInGames[i][_root.builtInGameNameIdx] == dlg.gameNameField.text) {
_root.okBox("PLEASE FIX", "There is already a game published with that name by another user");
return(undefined);
}
}
}
if (publish) {
var i = 0;
while (i < dlg.gameNamesList.length) {
if (dlg.gameNamesList.getItemAt(i).label == ((dlg.gameNameField.text + " v. ") + dlg.versionField.text)) {
_root.okCancelBox("CONFIRM", "Save over existing file?", saveGame, null, null, null);
return(undefined);
}
i++;
}
} else {
var i = 0;
while (i < dlg.gameNamesList.length) {
if (dlg.gameNamesList.getItemAt(i).label == dlg.gameNameField.text) {
_root.okCancelBox("CONFIRM", "Save over existing file?", saveGame, null, null, null);
return(undefined);
}
i++;
}
}
saveGame();
};
};
}
function openEditCreepsDlg() {
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("edit creeps window", "ecrps", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
openDlg.cancelButton.onRelease = function () {
closeDlg();
};
}
function openNowStateDlg() {
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("edit now state window", "egw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
openDlg.onEnterFrame = function () {
openDlg.money.text = Math.floor(_root.money);
openDlg.killed.text = stats.creepsKilled;
openDlg.lost.text = stats.creepsExited;
openDlg.onEnterFrame = null;
};
openDlg.updateButton.onRelease = function () {
_root.money = parseInt(openDlg.money.text);
stats.creepsKilled = parseInt(openDlg.killed.text);
stats.creepsExited = parseInt(openDlg.lost.text);
stats.updateAll();
if (openDlg.removeWaypoints.selected) {
var i = 0;
var l = (_global.waypoints.length - 1);
while (i < l) {
_root.deleteWaypoint(_global.waypoints[0][0], _global.waypoints[0][1]);
i++;
}
}
if (openDlg.removeGuns.selected) {
_root.clearTowers();
}
var grass = _root.towerTypes.grass;
if (openDlg.clearToGrass.selected) {
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
var tile = _root.getTile(x, y);
if (tile.tileType.id != "waypoint") {
_root.buildTile(tile, grass);
}
x++;
}
y++;
}
}
var sand = _root.towerTypes.sand;
if (openDlg.clearToSand.selected) {
var y = 0;
while (y < _root.mapH) {
var x = 0;
while (x < _root.mapW) {
var tile = _root.getTile(x, y);
if (tile.tileType.id != "waypoint") {
_root.buildTile(tile, sand);
}
x++;
}
y++;
}
}
closeDlg();
};
openDlg.cancelButton.onRelease = function () {
closeDlg();
};
}
function openEditDescriptionDlg() {
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("edit description window", "egw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
openDlg.cancelButton.onRelease = function () {
closeDlg();
};
}
function openExpiredLoginWindow(callback) {
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("expiredLoginWindow", "elw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
openDlg.buyButton.onRelease = function () {
getURL (_root.buyUrl, "_blank");
callback();
_root.closeDlg();
};
}
function openMapDlg() {
function initMapDlg() {
var listener = new Object();
openDlg.difficulty.selectedIndex = _root.difficulty - 1;
listener.change = function (eventObj) {
var diff = openDlg.difficulty.getItemAt(openDlg.difficulty.selectedIndices[0]).data;
_root.setDifficulty(parseInt(diff));
var i = 0;
while (i < _root.towerTypesStack.length) {
_root.towerTypesStack[i].updateSelector();
i++;
}
_root.stats.updateAll();
};
openDlg.difficulty.addEventListener("change", listener);
openDlg.tilesSnapshot.onRelease = function () {
_root.setCurrentTilesAsInitialState();
_root.okBox("INITIAL STATE UPDATED", "You have updated the initial tile state");
};
}
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("edit map window", "emd", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
doNextFrame(initMapDlg);
openDlg.closeButton.onRelease = function () {
closeDlg();
};
}
function openLogInDlg(successCallback) {
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("login window", "liw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
openDlg.buyButton.onRelease = function () {
getURL (_root.buyUrl, "_blank");
};
openDlg.loginButton.onRelease = function () {
_root.login = openDlg.login.text;
_root.password = openDlg.password.text;
_root.checkLogin(function (resultXml) {
closeDlg();
_root.okBox("LOGGED IN", "You have successfully logged in", successCallback);
});
};
openDlg.cancelButton.onRelease = function () {
closeDlg();
};
}
function closeDlg(pauseSetting) {
_root.gameStarted = true;
_root.tutorialDlg = null;
if (openDlg == null) {
return(undefined);
}
var a = openDlg;
openDlg = null;
a.removeMovieClip();
}
function okCancelBox(title, message, callbackOk, callbackOkData, callbackCancel, callbackCancelData) {
okCancelBoxGeneral(title, message, callbackOk, callbackOkData, callbackCancel, callbackCancelData, false);
}
function okCancelBoxMultiline(title, message, callbackOk, callbackOkData, callbackCancel, callbackCancelData) {
okCancelBoxGeneral(title, message, callbackOk, callbackOkData, callbackCancel, callbackCancelData, true);
}
function okCancelBoxGeneral(title, message, callbackOk, callbackOkData, callbackCancel, callbackCancelData, multiline) {
closeOkCancel();
okCancel = _root.attachMovie((multiline ? "okCancelWindowMultiline" : "okCancelWindow"), "okc", _global.okCancelDepth + (_global.depth++));
okCancel._x = 350;
okCancel._y = 250;
okCancel.title = title;
okCancel.message = message;
okCancel.okButton.onRelease = function () {
callbackOk(callbackOkData);
closeOkCancel();
};
okCancel.cancelButton.onRelease = function () {
callbackCancel(callbackCancelData);
closeOkCancel();
};
}
function okBox(title, message, callbackOk, callbackOkData) {
okBoxGeneral(title, message, callbackOk, callbackOkData, false);
}
function okBoxMultiline(title, message, callbackOk, callbackOkData) {
okBoxGeneral(title, message, callbackOk, callbackOkData, true);
}
function okBoxGeneral(title, message, callbackOk, callbackOkData, multiline) {
closeOkCancel();
okCancel = _root.attachMovie((multiline ? "okWindowMultiline" : "okWindow"), "okc", _global.okCancelDepth + (_global.depth++));
okCancel._x = 350;
okCancel._y = 250;
okCancel.title = title;
okCancel.message = message;
okCancel.okButton.onRelease = function () {
callbackOk(callbackOkData);
closeOkCancel();
};
}
function closeOkCancel() {
if (okCancel == null) {
return(undefined);
}
var a = okCancel;
okCancel = null;
a.removeMovieClip();
}
var openDlg = null;
var okCancel = null;
var howToPlayText = "The goal is to kill the red dots moving around the map (the \"creeps\") by building gun turrets which shoot the creeps.\n\nTo do that, click on a gun turret box at the bottom of the screen. For instance, click the red and black gun at the lower left part of the screen. A copy of the gun will attach to your mouse which you can then place in the map by clicking on a map tile.\n\nThe yellow area around each gun indicates how far and where it can shoot. Each gun has certain characteristics so you can't use them all the same. The guns can only shoot at creeps inside their fields of attack.\n\nSome turrets do splash damage which can kill your own turrets so placement is very important. Other guns are 'shoot through' guns which fire like a laser all the way through the creeps in a line, doing damage to them all at once. These guns can also kill your own turrets if you're not careful.\n\nFinally, most of the guns can be upgraded and it's not possible to beat the map without doing so. The upgrades cost money but make the guns more effective.\n\nYou can also click on the different map tiles to see how they're different from each other. For instance, black wall tiles block your towers' sight and water tiles can't be build upon. \n\nGame tips: \n\n+ Some points of the game require very precise timing. Use the pause button (or press space) to freeze the action while you re-arrange things. Sometimes when you've saved up for a new level of turret technology the addition of the new gun type will cause you to reconfigure your entire defensive posture and you may have to sell several guns to make room for the new ones. \n\n+ Sometimes you only have two or three seconds of slack to upgrade a tower or build a new one. Look for what is the next cheapest thing you can buy and be ready to build it the instant you can afford it. \n\n+ If you buy the game you can save your maps and it is recommended to do so frequently as you experiment with different gun combinations and strategies. \n\n+ Use the 'Delete' or 's' key to sell towers. Use the 'u' key to upgrade them. \n\n+ Tips using ice towers: Don't pack them too closely together. They're most effective spread out. Be ready to sell and rebuild slowing towers frequently depending on which area of the map you're currently the strongest in. \n\n+ Tips using howizters: Layer them so they fire in succession rather than as a single volley. \n\n+ Don't build towers in the creeps' path or the creeps will run over them and destroy your guns! \n\n+ Once you've beaten a map you can then edit it and draw your own maps and reconfigure the pricing and behavior for the guns. When you have something you like you can publish it to share it with your friends. To do so, first play-test it and beat it on 'Hard' mode. Then when you publish it your map will be on the network for anyone to play.\n\nNote: It is possible to beat this game, click the 'walkthrough' button below to see how it can be done.\n";
function hiddenTransfer(title, sendVars, url, onSuccess, onFail) {
xmlProgressWindow(title, sendVars, url, onSuccess, onFail, true);
}
function xmlProgressWindow(title, sendVars, url, onSuccess, onFail, stayHidden) {
_root.doNextFrame(function () {
doXmlProgressWindow(title, sendVars, url, onSuccess, onFail, stayHidden);
});
}
function doXmlProgressWindow(title, sendVars, url, onSuccess, onFail, stayHidden) {
if (stayHidden) {
closeOkCancel();
}
progressWindow = _root.attachMovie("networkWindow", "netw", _global.okCancelDepth + (_global.depth++));
progressWindow.title = title;
progressWindow.stayHidden = stayHidden;
if (stayHidden) {
progressWindow._visible = false;
} else {
progressWindow._x = 350;
progressWindow._y = 250;
progressWindow.message = "Connecting, please wait...";
}
progressWindow.onSuccess = onSuccess;
progressWindow.onFail = onFail;
progressWindow.loadVarsXml = new XML();
progressWindow.loadVarsXml.onLoad = function (success) {
if (success) {
var myResult = progressWindow.loadVarsXml.firstChild.attributes.r;
progressWindow._visible = false;
var a = progressWindow;
progressWindow = null;
if (myResult == "ok") {
a.onSuccess(a.loadVarsXml.firstChild.firstChild);
a.removeMovieClip();
} else if (myResult == "serverError") {
if (a.stayHidden) {
a.onFail();
} else {
_root.okBoxMultiline("I AM SORRY", (("Was able to connect to server, but the server had an error:\n" + a.loadVarsXml.firstChild.firstChild.nodeValue) + "\n\nTask: ") + title, a.onFail);
}
} else if (myResult == "TD.LOGIN_EXPIRED") {
if (a.stayHidden) {
a.onFail();
} else {
openExpiredLoginWindow(a.onFail);
}
} else {
if (myResult == undefined) {
myResult = "An undefined error occured";
}
if (!a.stayHidden) {
_root.okBoxMultiline("I AM SORRY", (myResult + "\n\nTask: ") + title, a.onFail);
} else {
a.onFail();
}
}
} else if (a.stayHidden) {
a.onFail();
} else {
_root.okBoxMultiline("I AM SORRY", "Can't connect to server, please try later.\n\n\nTask: " + title, a.onFail);
}
a.removeMovieClip();
};
progressWindow.onEnterFrame = function () {
if (progressWindow.stayHidden) {
return(undefined);
}
var loaded = progressWindow.loadVarsXml.getBytesLoaded();
var total = progressWindow.loadVarsXml.getBytesTotal();
if (loaded > 0) {
if ((total == undefined) || (total == 0)) {
progressWindow.message = ("Loaded " + loaded) + " bytes";
} else {
progressWindow.message = ((("Loaded " + loaded) + " of ") + total) + " bytes";
}
} else {
progressWindow.message = "Connecting, please wait...";
}
};
_root.progressWindow.cancelButton.onRelease = function () {
delete progressWindow.loadVarsXml;
progressWindow.loadVarsXml = null;
closeProgressWindow();
this._parent.removeMovieClip();
};
sendVars.sendAndLoad(url, progressWindow.loadVarsXml, "POST");
}
function closeProgressWindow() {
if (progressWindow == null) {
return(undefined);
}
var a = progressWindow;
progressWindow = null;
a.removeMovieClip();
}
var progressWindow = null;
function openEditorDlg() {
function initTowerTypeControls(controls) {
function updateDamageArea(towerType, newRange) {
var towers = new Array();
var useHighRange = new Array();
var i = 0;
var l = _root.allTowers.length;
while (i < l) {
var tower = _root.allTowers[i];
if (tower.towerType.id == towerType.id) {
var tile = _root.getTile(tower.tileX, tower.tileY);
towers.push(tower);
useHighRange.push(tower.effectiveRange == tower.getHighRange());
_root.removeCreepListeners(tower);
}
i++;
}
towerType.range = newRange;
var i = 0;
var l = towers.length;
while (i < l) {
var tower = towers[i];
if (useHighRange[i]) {
tower.useHighRange();
} else {
tower.useNormalRange();
}
_root.addCreepListeners(tower);
i++;
}
}
function calcDps() {
var towerType = controls.towerList.selectedItem.data;
if (towerType.isTileType) {
controls.dpsString = "";
return(undefined);
}
var upgrade = towerType.upgrades[controls.towerUpgrade.value];
if (towerType.isSlowing) {
var slow = upgrade.slowAmount;
var slowPerSec = Math.round((20 / upgrade.cooldown) * slow);
controls.dpsString = slowPerSec + " SLOW/SEC";
} else {
var dmg = upgrade.damage;
var dmgPerSec = Math.round((20 / upgrade.cooldown) * dmg);
controls.dpsString = Math.ceil(dmgPerSec) + " DMG/SEC";
}
}
function updateSelectedTower() {
var towerType = controls.towerList.selectedItem.data;
if (towerType.isTileType) {
controls.tileClip._visible = true;
controls.towerClip._visible = false;
controls.tileClip.gotoAndStop(towerType.id);
} else {
controls.tileClip._visible = false;
controls.towerClip._visible = true;
_root.setTowerType(controls.towerClip, towerType);
}
if (towerType.extraSize > 0) {
var scale = (100 / (1 + (2 * towerType.extraSize)));
controls.towerClip._xscale = scale;
controls.towerClip._yscale = scale;
} else {
controls.towerClip._xscale = 100;
controls.towerClip._yscale = 100;
}
controls.towerLocked.selected = towerType.locked;
controls.towerLockedAtStart.selected = towerType.defaultLocked;
controls.towerUnlockPrice.text = towerType.unlockPrice;
if (towerType.isTileType) {
controls.towerRange.enabled = false;
controls.towerRange.text = "N/A";
} else {
controls.towerRange.enabled = true;
controls.towerRange.text = towerType.range;
}
if ((towerType.splashSize == 0) || (towerType.isTileType)) {
controls.towerSplash.enabled = false;
controls.towerSplash.text = "N/A";
} else {
controls.towerSplash.enabled = true;
controls.towerSplash.text = towerType.splashSize;
}
controls.towerDisplayOrder.value = towerType.displayOrder;
controls.towerQuantEasy.text = towerType.maxQuantEasy;
controls.towerQuantMed.text = towerType.maxQuantMed;
controls.towerQuantHard.text = towerType.maxQuantHard;
if (towerType.isTileType) {
controls.towerUpgrade.enabled = false;
controls.addUpgradeButton.enabled = false;
controls.delUpgradeButton.enabled = false;
} else {
controls.towerUpgrade.enabled = true;
controls.addUpgradeButton.enabled = true;
controls.delUpgradeButton.enabled = true;
controls.towerUpgrade.minimum = 0;
controls.towerUpgrade.maximum = towerType.upgrades.length - 1;
}
controls.towerUpgrade.value = 0;
updateSelectedTowerUpgrade();
}
function updateSelectedTowerUpgrade() {
var towerType = controls.towerList.selectedItem.data;
var towerUpgrade = towerType.upgrades[controls.towerUpgrade.value];
if (towerType.upgrades.length == 1) {
controls.numUpgrades = "1 Upgrade:";
} else {
controls.numUpgrades = towerType.upgrades.length + " Upgrades:";
}
if (towerType.isTileType) {
controls.towerUpgradePrice.text = towerType.price;
} else {
controls.towerUpgradePrice.enabled = true;
controls.towerUpgradePrice.text = towerUpgrade.price;
}
if (towerType.isTileType) {
controls.towerCooldown.enabled = false;
controls.towerCooldown.text = "N/A";
} else {
controls.towerCooldown.enabled = true;
controls.towerCooldown.text = towerUpgrade.cooldown;
}
if (towerType.isSlowing) {
controls.towerSlow.enabled = true;
controls.towerSlow.text = towerUpgrade.slowAmount;
controls.towerPushbackLimit.enabled = true;
controls.towerPushbackLimit.text = towerUpgrade.pushbackLimit;
controls.towerDamage.enabled = false;
controls.towerDamage.text = "N/A";
} else {
if (towerType.isTileType) {
controls.towerDamage.enabled = false;
controls.towerDamage.text = "N/A";
} else {
controls.towerDamage.enabled = true;
controls.towerDamage.text = towerUpgrade.damage;
}
controls.towerSlow.enabled = false;
controls.towerSlow.text = "N/A";
controls.towerPushbackLimit.enabled = false;
controls.towerPushbackLimit.text = "N/A";
}
calcDps();
}
var i = 0;
while (i < _root.towerTypesStack.length) {
var towerType = _root.towerTypesStack[i];
if (!towerType.editModeOnly) {
controls.towerList.addItem(towerType.id, towerType);
}
i++;
}
controls.towerList.selectedIndex = 0;
updateSelectedTower();
var listener;
listener = new Object();
listener.change = function (eventObj) {
updateSelectedTower();
};
controls.towerList.addEventListener("change", listener);
listener = new Object();
listener.click = function (eventObj) {
controls.towerList.selectedItem.data.setLocked(controls.towerLocked.selected);
};
controls.towerLocked.addEventListener("click", listener);
listener = new Object();
listener.click = function (eventObj) {
controls.towerList.selectedItem.data.defaultLocked = controls.towerLockedAtStart.selected;
};
controls.towerLockedAtStart.addEventListener("click", listener);
listener = new Object();
listener.change = function (eventObj) {
controls.towerList.selectedItem.data.unlockPrice = parseFloat(controls.towerUnlockPrice.text);
};
controls.towerUnlockPrice.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var towerType = controls.towerList.selectedItem.data;
var newRange = parseFloat(controls.towerRange.text);
updateDamageArea(towerType, newRange, towerType.splashSize);
};
controls.towerRange.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var towerType = controls.towerList.selectedItem.data;
towerType.splashSize = parseFloat(controls.towerSplash.text);
var i = 0;
var l = _root.allTowers.length;
while (i < l) {
var tower = _root.allTowers[i];
if (tower.towerType.id == towerType.id) {
tower.updateRangeInfo();
}
i++;
}
};
controls.towerSplash.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var towerType = controls.towerList.selectedItem.data;
var newOrder = parseInt(controls.towerDisplayOrder.value);
var oldOrder = towerType.displayOrder;
var i = 0;
while (i < _root.towerTypesStack.length) {
if (_root.towerTypesStack[i].displayOrder == newOrder) {
_root.towerTypesStack[i].displayOrder = oldOrder;
break;
}
i++;
}
towerType.displayOrder = newOrder;
_root.makeSelectorUI();
};
controls.towerDisplayOrder.addEventListener("change", listener);
controls.towerDisplayOrder.maximum = _root.towerTypesStack.length - 1;
listener = new Object();
listener.change = function (eventObj) {
var c = controls.towerQuantEasy;
if (c.text == "") {
c.text = -1;
}
var q = parseInt(c.text);
var towerType = controls.towerList.selectedItem.data;
if (q >= 0) {
if (q < towerType.builtQuant) {
q = towerType.builtQuant;
}
}
towerType.maxQuantEasy = q;
towerType.updateSelector();
};
controls.towerQuantEasy.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var c = controls.towerQuantMed;
if (c.text == "") {
c.text = -1;
}
var q = parseInt(c.text);
var towerType = controls.towerList.selectedItem.data;
if (q >= 0) {
if (q < towerType.builtQuant) {
q = towerType.builtQuant;
}
}
towerType.maxQuantMed = q;
towerType.updateSelector();
};
controls.towerQuantMed.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var c = controls.towerQuantHard;
if (c.text == "") {
c.text = -1;
}
var q = parseInt(c.text);
var towerType = controls.towerList.selectedItem.data;
if (q >= 0) {
if (q < towerType.builtQuant) {
q = towerType.builtQuant;
}
}
towerType.maxQuantHard = q;
towerType.updateSelector();
};
controls.towerQuantHard.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
updateSelectedTowerUpgrade();
};
controls.towerUpgrade.addEventListener("change", listener);
controls.delUpgradeButton.onRelease = function () {
if (controls.towerList.selectedItem.data.upgrades.length <= 1) {
return(undefined);
}
_root.okCancelBox("ARE YOU SURE?", "Really delete this tower upgrade?", function (dlg) {
var towerType = controls.towerList.selectedItem.data;
var towerUpgrade = towerType.upgrades[controls.towerUpgrade.value];
towerType.upgrades.splice(controls.towerUpgrade.value, 1);
controls.towerUpgrade.maximum = towerType.upgrades.length - 1;
if (controls.towerUpgrade.value > controls.towerUpgrade.maximum) {
controls.towerUpgrade.value = controls.towerUpgrade.maximum;
}
updateSelectedTowerUpgrade();
}, dlg);
};
controls.addUpgradeButton.onRelease = function () {
var towerType = controls.towerList.selectedItem.data;
if (towerType.upgrades.length >= 5) {
_root.okBox("TOO MANY UPGRADES", "Each tower type can have at most five upgrade levels");
} else {
var towerUpgrade = towerType.upgrades[controls.towerUpgrade.value];
var upgrade = new TowerUpgrade(towerUpgrade.price, towerUpgrade.damage, towerUpgrade.cooldown, towerUpgrade.slowAmount, towerUpgrade.pushbackLimit);
towerType.upgrades.splice(controls.towerUpgrade.value, 0, upgrade);
controls.towerUpgrade.maximum = towerType.upgrades.length - 1;
controls.towerUpgrade.value++;
updateSelectedTowerUpgrade();
}
};
listener = new Object();
listener.change = function (eventObj) {
var towerType = controls.towerList.selectedItem.data;
if (towerType.isTileType) {
towerType.price = controls.towerUpgradePrice.text;
} else {
controls.towerList.selectedItem.data.upgrades[controls.towerUpgrade.value].price = parseFloat(controls.towerUpgradePrice.text);
}
};
controls.towerUpgradePrice.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
controls.towerList.selectedItem.data.upgrades[controls.towerUpgrade.value].damage = parseFloat(controls.towerDamage.text);
calcDps();
};
controls.towerDamage.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
controls.towerList.selectedItem.data.upgrades[controls.towerUpgrade.value].cooldown = parseFloat(controls.towerCooldown.text);
calcDps();
};
controls.towerCooldown.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
controls.towerList.selectedItem.data.upgrades[controls.towerUpgrade.value].slowAmount = parseFloat(controls.towerSlow.text);
calcDps();
};
controls.towerSlow.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
controls.towerList.selectedItem.data.upgrades[controls.towerUpgrade.value].pushbackLimit = parseFloat(controls.towerPushbackLimit.text);
};
controls.towerPushbackLimit.addEventListener("change", listener);
}
function initMapDataControls(controls) {
var listener;
listener = new Object();
listener.change = function (eventObj) {
_root.numLevels = parseFloat(controls.numLevels.text);
_root.generateLevels();
_root.stats.updateAll();
};
controls.numLevels.addEventListener("change", listener);
controls.numLevels.text = _root.numLevels;
listener = new Object();
listener.change = function (eventObj) {
_root.mapDescription = controls.mapDescription.text;
};
controls.mapDescription.addEventListener("change", listener);
controls.mapDescription.text = _root.mapDescription;
}
_root.closeDlg();
_root.setPaused(true);
var dlg = ((_root.openDlg = _root.attachMovie("editor window", "egw", _global.popupDepth + (_global.depth++))));
dlg._x = 350;
dlg._y = 252.5;
dlg.inited = false;
dlg.onEnterFrame = function () {
if (dlg.inited) {
return(undefined);
}
dlg.inited = true;
var controls = dlg.controlsScroll.content;
initTowerTypeControls(controls);
initMapDataControls(controls);
dlg.closeButton.onRelease = function () {
delete controls.towerList;
delete controls.towerUpgrade;
delete controls.delUpgradeButton;
delete controls.addUpgradeButton;
delete controls.towerLocked;
delete controls.towerLockedAtStart;
delete controls.towerUpgradePrice;
delete controls.towerUnlockPrice;
delete controls.towerDamage;
delete controls.towerSlow;
delete controls.towerRange;
delete controls.towerQuant;
delete controls.towerSplash;
delete controls.towerCooldown;
delete controls.towerPushbackLimit;
delete dlg.controlsScroll;
delete dlg.analysis;
delete dlg.analyzeDropdown;
_root.closeDlg();
};
};
}
function openLoadNewGameDlg() {
function clearPreviewedGame() {
dlg.previewClip.removeMovieClip();
dlg.description.text = "";
}
closeDlg();
_root.setPaused(true);
openDlg = _root.attachMovie("load new game window", "ngw", _global.popupDepth + (_global.depth++));
openDlg._x = 350;
openDlg._y = 250;
var dlg = openDlg;
dlg.inited = false;
dlg.onEnterFrame = function () {
if (dlg.inited) {
return(undefined);
}
dlg.inited = true;
var listener;
dlg.difficulty.selectedIndex = 1;
dlg.cachedNamesAndIds = new Array();
dlg.gameNamesList.iconField = "icon";
dlg.login.text = _root.login;
dlg.password.text = _root.password;
listener = new Object();
listener.change = function (eventObj) {
_root.login = dlg.login.text;
};
dlg.login.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
_root.password = dlg.password.text;
};
dlg.password.addEventListener("change", listener);
listener = new Object();
listener.change = function (eventObj) {
var selectedData = dlg.gameNamesList.getItemAt(dlg.gameNamesList.selectedIndices[0]).data;
if (selectedData == "$..") {
gotoParentDirectory();
} else if (selectedData.charAt(0) == "$") {
gotoSubdirectory(selectedData);
} else {
dlg.selectedGameId = selectedData;
updatePreviewedGame();
}
};
dlg.gameNamesList.addEventListener("change", listener);
openDlg.buyButton.onRelease = function () {
getURL (_root.buyUrl, "_blank");
};
resetLoadGameDlg();
var radioListener = new Object();
radioListener.click = function (eventObj) {
dlg.difficulty.enabled = true;
if ((eventObj.target.selection.data == _root.mySavedGamesDir) || (eventObj.target.selection.data == _root.myPublishedGamesDir)) {
if (dlg.password.text == "") {
dlg.builtInRadioOption.selected = true;
okBoxMultiline("PLEASE LOG IN", "After you've logged in you can load your saved games and play the advanced maps.\n\nClick the 'Register/Buy/Get A Login' button if you need a log in.");
} else if (eventObj.target.selection.data == _root.mySavedGamesDir) {
dlg.difficulty.enabled = false;
}
}
dlg.selectedDirectory = eventObj.target.selection.data;
loadDirectory();
};
dlg.radioBrowse.addEventListener("click", radioListener);
};
dlg.playButton.onRelease = function () {
if (_root.login == _root.justTryingLogin) {
if (dlg.radioBrowse.selection.data != _root.builtInDir) {
_root.okBox("PLEASE LOG IN", "You can only play built-in \"TRIAL\"-marked maps without a login");
return(undefined);
}
}
_root.getSavedGame(dlg.selectedGameId, function (xml) {
_root.mapName = dlg.gameNamesList.getItemAt(dlg.gameNamesList.selectedIndices[0]).label;
var isPublishedGame = (dlg.radioBrowse.selection.data != _root.mySavedGamesDir);
_root.startNewGameUsingXml(xml, isPublishedGame);
if (isPublishedGame) {
var diff = dlg.difficulty.getItemAt(dlg.difficulty.selectedIndices[0]).data;
_root.setDifficulty(parseInt(diff));
}
_root.setPaused(false);
closeDlg();
});
};
dlg.cancelButton.onRelease = function () {
_root.setPaused(false);
closeDlg();
};
}
function gotoParentDirectory() {
var dirs = getSelectedDirectory().split("/");
dirs.splice(1, dirs.length - 1);
openDlg.selectedDirectory = dirs.join("/");
loadDirectory();
}
function gotoSubdirectory(directoryId) {
openDlg.selectedDirectory = openDlg.selectedDirectory + ("/" + directoryId);
loadDirectory();
}
function loadDirectory() {
openDlg.gameNamesList.removeAll();
if (getSelectedDirectory() != _root.builtInDir) {
if (openDlg.cachedNamesAndIds[getSelectedDirectory()] == null) {
_root.getGameNamesAndIds(getSelectedDirectory(), readGameList, resetLoadGameDlg);
} else {
readGameList(openDlg.cachedNamesAndIds[getSelectedDirectory()]);
}
} else {
_root.getGameNamesAndIds(getSelectedDirectory(), readGameList, resetLoadGameDlg);
}
}
function getSelectedDirectory() {
return(openDlg.selectedDirectory);
}
function readGameList(dataXml) {
openDlg.cachedNamesAndIds[getSelectedDirectory()] = dataXml;
var firstFileIndex = -1;
var n = dataXml;
var i = 0;
while (n != null) {
if (n.nodeName == "i") {
var name = n.attributes.n;
if (n.attributes.i == "$..") {
name = "..\\ (Back To Parent Directory)";
} else if (n.attributes.i.charAt(0) == "$") {
name = name + "\\";
}
var iconName = null;
if (n.attributes.r != null) {
var wins = ((n.attributes.w > _root.popularWinsThreshold) ? "Popular" : "");
if (n.attributes.r != null) {
iconName = n.attributes.r + "stars";
}
}
openDlg.gameNamesList.addItem({data:n.attributes.i, label:name, icon:iconName});
if ((firstFileIndex == -1) && (n.attributes.i.charAt(0) != "$")) {
firstFileIndex = i;
}
}
(n = n.nextSibling);
i++;
}
openDlg.browseLabel.text = "Select Game To Play:";
if ((openDlg.radioBrowse.selection.data == _root.mySavedGamesDir) && (openDlg.gameNamesList.length == 0)) {
resetLoadGameDlg();
okBox("NO SAVED GAMES", "You don't have any saved games yet");
} else if (firstFileIndex == -1) {
openDlg.browseLabel.text = "Browse Directories:";
openDlg.gameNamesList.selectedIndex = null;
clearPreviewedGame();
openDlg.selectedGameId = null;
openDlg.playButton.enabled = false;
} else {
openDlg.selectedGameId = openDlg.gameNamesList.getItemAt(firstFileIndex).data;
openDlg.playButton.enabled = true;
openDlg.gameNamesList.selectedIndex = firstFileIndex;
updatePreviewedGame();
}
}
function updatePreviewedGame() {
var showPreview = function (dataXml) {
openDlg.previewClip.removeMovieClip();
openDlg.previewClip = openDlg.mapPreview.createEmptyMovieClip("preview", _global.depth++);
openDlg.previewClip._xscale = 33;
openDlg.previewClip._yscale = 33;
openDlg.previewClip._x = -111;
openDlg.previewClip._y = -47.5;
openDlg.waypointsClip.removeMovieClip();
openDlg.waypointsClip = openDlg.mapPreview.createEmptyMovieClip("wayps", _global.depth++);
openDlg.waypointsClip._xscale = 33;
openDlg.waypointsClip._yscale = 33;
openDlg.waypointsClip._x = -111;
openDlg.waypointsClip._y = -47.5;
var n = dataXml.firstChild;
while (n != null) {
if (n.nodeName == "desc") {
var revAuthors = n.attributes.authors.split(",").reverse().join(", ");
openDlg.description.text = "Recent Authors: " + revAuthors;
if (n.firstChild.nodeValue.length > 0) {
openDlg.description.text = openDlg.description.text + ("\nDescription: " + n.firstChild.nodeValue);
}
} else if (n.nodeName == "tiles") {
_root.xmlToPreview(n, openDlg.previewClip);
} else if (n.nodeName == "waypoints") {
_root.xmlToWaypointsPreview(n, openDlg.waypointsClip);
}
n = n.nextSibling;
}
};
doNextFrame(function () {
_root.getGamePreview(openDlg.selectedGameId, showPreview);
});
}
function resetLoadGameDlg() {
openDlg.selectedDirectory = _root.builtInDir;
openDlg.selectedGameId = _root.mySavedGamesDir;
openDlg.builtInRadioOption.selected = true;
loadDirectory();
}
function loadSounds() {
}
function getBuiltInGameNamesAndIds() {
var joiner = new Array();
var i = 1;
while (i < builtInGameIds.length) {
var id = builtInGameIds[i];
joiner.push(((((("<i n=\"" + builtInGames[id][builtInGameNameIdx]) + " v. ") + builtInGames[id][builtInVersionIdx]) + "\" i=\"") + id) + "\"/>");
i++;
}
return(new XML(joiner.join("")).firstChild);
}
function startTrialMap() {
_root.getSavedGame("~poisonPill", function (xmlData) {
_root.startNewGameUsingXml(xmlData, true);
});
_root.closeDlg();
}
var builtInGames = new Array();
var builtInGameIds = new Array();
var builtInGameNameIdx = 0;
var builtInGamePreviewXmlStringIdx = 1;
var builtInGameSavedGameXmlStringIdx = 2;
var builtInVersionIdx = 3;
builtInGames["~demoMap"] = new Array();
builtInGames["~demoMap"][builtInGameNameIdx] = "Demo Map";
builtInGames["~demoMap"][builtInVersionIdx] = "1.0";
builtInGames["~demoMap"][builtInGameSavedGameXmlStringIdx] = "<publish i=\"~demoMap\"><saveGame><initialGameState><state s=\"i h f g 1 a F r A ~ # R\" lf=\"0\" f=\"0\" c=\"0\" l=\"0\" m=\"28\" e=\"0\" k=\"0\"><creeps /><towers><t t=\"0\" h=\"1\" ty=\"0\" tx=\"0\" dy=\"0\" dx=\"0\" f=\"0\" l=\"0\" y=\"0\" x=\"3\" u=\"0\" a=\"73.79\" i=\"h\" /><t t=\"0\" h=\"1\" ty=\"0\" tx=\"0\" dy=\"0\" dx=\"0\" f=\"0\" l=\"0\" y=\"1\" x=\"7\" u=\"0\" a=\"130.9\" i=\"F\" /><t t=\"0\" h=\"1\" ty=\"0\" tx=\"0\" dy=\"0\" dx=\"0\" f=\"0\" l=\"0\" y=\"2\" x=\"0\" u=\"0\" a=\"25.81\" i=\"h\" /><t t=\"0\" h=\"1\" ty=\"0\" tx=\"0\" dy=\"0\" dx=\"0\" f=\"0\" l=\"0\" y=\"6\" x=\"0\" u=\"0\" a=\"11.44\" i=\"g\" /><t t=\"0\" h=\"1\" ty=\"0\" tx=\"0\" dy=\"0\" dx=\"0\" f=\"0\" l=\"0\" y=\"11\" x=\"0\" u=\"0\" a=\"-44.62\" i=\"r\" /></towers><tiles><r>_____________________________</r><r>.......______________________</r><r>..~~~~~______________________</r><r>..~.w.~______________________</r><r>.~..#..~_____________________</r><r>.~w###w~_____________________</r><r>.~..#..~_____________________</r><r>.~~.w.~~_____________________</r><r>.~..#e.~_____________________</r><r>.~w###s~_____________________</r><r>.~..#..______________________</r><r>..~.w.~______________________</r><r>..~~~~~______________________</r></tiles></state></initialGameState><gameType><waypoints p=\"6 9 4 11 2 9 6 5 4 3 2 5 4 7 5 8\" /><towerTypes><t o=\"0\" qe=\"8\" qm=\"5\" q=\"3\" l=\"0\" u=\"0\" p=\"0\" s=\"0\" r=\"1\" i=\"b\"><u b=\"0\" s=\"0\" p=\"4\" c=\"3\" d=\"6\" /><u b=\"0\" s=\"0\" p=\"23\" c=\"3\" d=\"3.2\" /></t><t o=\"1\" qe=\"3\" qm=\"2\" q=\"2\" l=\"1\" u=\"30\" p=\"0\" s=\"0\" r=\"1\" i=\"i\"><u b=\"0\" s=\"24\" p=\"15\" c=\"15\" d=\"45\" /></t><t o=\"2\" qe=\"9\" qm=\"7\" q=\"5\" l=\"1\" u=\"50\" p=\"0\" s=\"1\" r=\"7\" i=\"h\"><u b=\"0\" s=\"0\" p=\"40\" c=\"15\" d=\"1\" /><u b=\"0\" s=\"0\" p=\"125\" c=\"15\" d=\"22\" /></t><t o=\"3\" qe=\"6\" qm=\"4\" q=\"3\" l=\"1\" u=\"400\" p=\"0\" s=\"2\" r=\"1\" i=\"f\"><u b=\"0\" s=\"0\" p=\"70\" c=\"20\" d=\"22\" /><u b=\"0\" s=\"0\" p=\"500\" c=\"11\" d=\"35\" /></t><t o=\"4\" qe=\"8\" qm=\"6\" q=\"4\" l=\"1\" u=\"1900\" p=\"0\" s=\"0\" r=\"5\" i=\"g\"><u b=\"0\" s=\"0\" p=\"500\" c=\"3\" d=\"0.2\" /><u b=\"0\" s=\"0\" p=\"1000\" c=\"3\" d=\"70\" /></t><t o=\"5\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"5000\" p=\"0\" s=\"5\" r=\"12\" i=\"1\"><u b=\"0\" s=\"0\" p=\"1500\" c=\"90\" d=\"3500\" /><u b=\"0\" s=\"0\" p=\"80000\" c=\"90\" d=\"37000\" /></t><t o=\"6\" qe=\"2\" qm=\"2\" q=\"2\" l=\"1\" u=\"50000\" p=\"0\" s=\"0\" r=\"4\" i=\"a\"><u b=\"0\" s=\"0\" p=\"3000\" c=\"2\" d=\"650\" /><u b=\"0\" s=\"0\" p=\"28000\" c=\"2\" d=\"2900\" /></t><t o=\"7\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"230000\" p=\"0\" s=\"3\" r=\"7\" i=\"F\"><u b=\"0\" s=\"24\" p=\"10000\" c=\"10\" d=\"0\" /></t><t o=\"8\" qe=\"6\" qm=\"5\" q=\"3\" l=\"1\" u=\"400000\" p=\"0\" s=\"0\" r=\"31\" i=\"r\"><u b=\"0\" s=\"0\" p=\"10000\" c=\"15\" d=\"2\" /><u b=\"0\" s=\"0\" p=\"200000\" c=\"6\" d=\"12000\" /></t><t o=\"9\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"2000000\" p=\"0\" s=\"14\" r=\"12\" i=\"A\"><u b=\"0\" s=\"0\" p=\"20000\" c=\"90\" d=\"1000000\" /></t><t o=\"10\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"~\" /><t o=\"11\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"#\" /><t o=\"12\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"R\" /></towerTypes><desc l=\"1\" version=\"1.0\" publishName=\"Poison Pill\" mapProven=\"false\" mapEdited=\"true\" authors=\"mljones\" d=\"1\" m=\"1.5\" allowedLost=\"19\">Trial Map</desc></gameType></saveGame></publish>";
builtInGameIds.push("~demoMap");
builtInGames["~poisonPill"] = new Array();
builtInGames["~poisonPill"][builtInGameNameIdx] = "FREEBIE TRIAL MAP - Poison Pill";
builtInGames["~poisonPill"][builtInVersionIdx] = "1.0";
builtInGames["~poisonPill"][builtInGameSavedGameXmlStringIdx] = "<publish i=\"~poisonPill\"><saveGame><initialGameState><state s=\"i h f g 1 a F r A ~ # R\" lf=\"0\" f=\"0\" c=\"0\" l=\"0\" m=\"28\" e=\"0\" k=\"0\"><creeps /><towers /><tiles><r>~~~__ww__w___w___W....w____w.</r><r>~~__w__ww_W__W_W__WWWwW....#w</r><r>~___wW__W______W____w_wWW..#w</r><r>~_ww__________W____w_____w_w_</r><r>_w_W__W___###W_______ww__W.__</r><r>_w________###W#w_W_wWWWWw_W_W</r><r>w_________###Ww____~~~~~~__._</r><r>_WWWWW__WWW..WeW_w_~#~~#~_w_.</r><r>w##w_wWWw_wW.WsW__~~~rr~~~___</r><r>_w_w#_W__#__W_wWw~~~~rr~~~~w_</r><r>_w___wWw###wW_W_.~~~#~~#~~~._</r><r>w#####W__#__WwW_w_~~~~~~~~_w_</r><r>_w____w_w.w_w_W.__w______w__.</r></tiles></state></initialGameState><gameType><waypoints p=\"14 8 14 9 13 11 12 12 8 12 7 10 8 8 10 8 11 10 10 12 6 12 1 12 0 11 1 10 5 10 5 8 3 8 3 9 1 9 0 8 0 6 1 5 1 4 2 3 3 3 4 2 4 1 5 0 6 0 7 1 8 1 9 0 13 0 20 2 22 2 22 4 24 5 26 7 27 9 27 11 25 12 18 12 16 11 16 9 17 7 19 5 21 4 21 1 22 0 27 0 28 1 28 2 27 3 25 3 19 3 15 5 14 6 14 7\" /><towerTypes><t o=\"0\" qe=\"8\" qm=\"5\" q=\"3\" l=\"0\" u=\"0\" p=\"0\" s=\"0\" r=\"1\" i=\"b\"><u b=\"0\" s=\"0\" p=\"4\" c=\"3\" d=\"2\" /><u b=\"0\" s=\"0\" p=\"23\" c=\"3\" d=\"3.2\" /></t><t o=\"1\" qe=\"3\" qm=\"2\" q=\"2\" l=\"1\" u=\"30\" p=\"0\" s=\"0\" r=\"1\" i=\"i\"><u b=\"0\" s=\"24\" p=\"15\" c=\"15\" d=\"45\" /></t><t o=\"2\" qe=\"9\" qm=\"7\" q=\"5\" l=\"1\" u=\"50\" p=\"0\" s=\"1\" r=\"7\" i=\"h\"><u b=\"0\" s=\"0\" p=\"40\" c=\"15\" d=\"9\" /><u b=\"0\" s=\"0\" p=\"125\" c=\"15\" d=\"22\" /></t><t o=\"3\" qe=\"6\" qm=\"4\" q=\"3\" l=\"1\" u=\"400\" p=\"0\" s=\"2\" r=\"1\" i=\"f\"><u b=\"0\" s=\"0\" p=\"70\" c=\"20\" d=\"22\" /><u b=\"0\" s=\"0\" p=\"500\" c=\"11\" d=\"35\" /></t><t o=\"4\" qe=\"8\" qm=\"6\" q=\"4\" l=\"1\" u=\"1900\" p=\"0\" s=\"0\" r=\"5\" i=\"g\"><u b=\"0\" s=\"0\" p=\"500\" c=\"3\" d=\"25\" /><u b=\"0\" s=\"0\" p=\"1000\" c=\"3\" d=\"70\" /></t><t o=\"5\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"5000\" p=\"0\" s=\"5\" r=\"12\" i=\"1\"><u b=\"0\" s=\"0\" p=\"1500\" c=\"90\" d=\"3500\" /><u b=\"0\" s=\"0\" p=\"80000\" c=\"90\" d=\"37000\" /></t><t o=\"6\" qe=\"2\" qm=\"2\" q=\"2\" l=\"1\" u=\"50000\" p=\"0\" s=\"0\" r=\"4\" i=\"a\"><u b=\"0\" s=\"0\" p=\"3000\" c=\"2\" d=\"650\" /><u b=\"0\" s=\"0\" p=\"28000\" c=\"2\" d=\"2900\" /></t><t o=\"7\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"230000\" p=\"0\" s=\"3\" r=\"7\" i=\"F\"><u b=\"0\" s=\"24\" p=\"10000\" c=\"10\" d=\"0\" /></t><t o=\"8\" qe=\"6\" qm=\"5\" q=\"3\" l=\"1\" u=\"400000\" p=\"0\" s=\"0\" r=\"31\" i=\"r\"><u b=\"0\" s=\"0\" p=\"10000\" c=\"15\" d=\"5000\" /><u b=\"0\" s=\"0\" p=\"200000\" c=\"6\" d=\"12000\" /></t><t o=\"9\" qe=\"1\" qm=\"1\" q=\"1\" l=\"1\" u=\"2000000\" p=\"0\" s=\"14\" r=\"12\" i=\"A\"><u b=\"0\" s=\"0\" p=\"20000\" c=\"90\" d=\"1000000\" /></t><t o=\"10\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"~\" /><t o=\"11\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"#\" /><t o=\"12\" qe=\"0\" qm=\"0\" q=\"0\" l=\"1\" u=\"0\" p=\"0\" i=\"R\" /></towerTypes><desc l=\"31\" version=\"1.0\" publishName=\"Poison Pill\" mapProven=\"false\" mapEdited=\"true\" authors=\"mljones\" d=\"1\" m=\"1.5\" allowedLost=\"19\">Trial Map</desc></gameType></saveGame></publish>";
builtInGames["~poisonPill"][builtInGamePreviewXmlStringIdx] = "<preview><tiles><r>~~~__ww__w___w___W....w____w.</r><r>~~__w__ww_W__W_W__WWWwW....#w</r><r>~___wW__W______W____w_wWW..#w</r><r>~_ww__________W____w_____w_w_</r><r>_w_W__W___###W_______ww__W.__</r><r>_w________###W#w_W_wWWWWw_W_W</r><r>w_________###Ww____~~~~~~__._</r><r>_WWWWW__WWW..WeW_w_~#~~#~_w_.</r><r>w##w_wWWw_wW.WsW__~~~rr~~~___</r><r>_w_w#_W__#__W_wWw~~~~rr~~~~w_</r><r>_w___wWw###wW_W_.~~~#~~#~~~._</r><r>w#####W__#__WwW_w_~~~~~~~~_w_</r><r>_w____w_w.w_w_W.__w______w__.</r></tiles><desc l=\"31\" version=\"1.0\" publishName=\"Poison Pill\" mapProven=\"false\" mapEdited=\"false\" authors=\"mljones,m\" d=\"3\" m=\"1\" allowedLost=\"0\">Trial Map</desc><waypoints p=\"14 8 14 9 13 11 12 12 8 12 7 10 8 8 10 8 11 10 10 12 6 12 1 12 0 11 1 10 5 10 5 8 3 8 3 9 1 9 0 8 0 6 1 5 1 4 2 3 3 3 4 2 4 1 5 0 6 0 7 1 8 1 9 0 13 0 20 2 22 2 22 4 24 5 26 7 27 9 27 11 25 12 18 12 16 11 16 9 17 7 19 5 21 4 21 1 22 0 27 0 28 1 28 2 27 3 25 3 19 3 15 5 14 6 14 7\" /></preview>";
builtInGameIds.push("~poisonPill");
_root.enterPlayMode();
_root.setPaused(false);
_root.setDifficulty(_root.DIFFICULTY_EASY);
openTutorial();
stop();
Instance of Symbol 548 MovieClip [messageBox] "messageBox" in Frame 2
onClipEvent (load) {
messageAge = 0;
}
onClipEvent (enterFrame) {
messageAge++;
if (messageAge > messageLife) {
messageAge = 0;
message = "";
}
}
Instance of Symbol 571 MovieClip "infoBox" in Frame 2
onClipEvent (load) {
function showPreview(clip) {
clip._x = point.x;
clip._y = point.y;
oldClip.removeMovieClip();
oldClip = clip;
}
function reset() {
title = "";
byline = "";
description = "";
dangerStr = "";
tileDescription = "";
sellStr = "";
tilePrice = "";
updateFunction = null;
updateObject = null;
spot._visible = false;
tilePreview._visible = false;
towerPreview._visible = false;
creepPreview._visible = false;
upgradeDetails._visible = false;
upgradeButton._visible = false;
upgradeHilight._visible = false;
sellButton._visible = false;
}
point = {x:0, y:0};
spot.localToGlobal(point);
updateFunction = null;
updateObject = null;
upgradeDetails = _root.attachMovie("upgrade details popup", "ud" + _global.depth, _global.popupDepth + (_global.depth++));
upgradeDetails._x = 610;
upgradeDetails._y = 350;
reset();
}
onClipEvent (enterFrame) {
if (updateFunction != null) {
updateFunction(updateObject);
}
}
Instance of Symbol 580 MovieClip "fpsClip" in Frame 2
onClipEvent (enterFrame) {
var now = getTimer();
if (isNaN(framesCnt)) {
framesCnt = 0;
}
if (isNaN(moves)) {
moves = 0;
}
framesCnt++;
if (framesCnt == 20) {
var secs = ((now - lastTime) / 1000);
_root.fps = Math.round(framesCnt / secs);
fpsStr = _root.fps + " FPS";
framesCnt = 0;
var creeps20fps = Math.round((moves / secs) / 20);
movesStr = ((Math.round(moves / secs) + " MPS (") + creeps20fps) + ")";
moves = 0;
lastTime = now;
}
}
Instance of Symbol 539 MovieClip [editor button] "editorButton" in Frame 2
onClipEvent (load) {
this.label = "EDITOR";
button.onRelease = function () {
_root.openEditorDlg();
};
}
Instance of Symbol 538 MovieClip [godModeButton] "godModeButton" in Frame 2
onClipEvent (load) {
this.label = "GOD MODE";
button.onRelease = function () {
_root.setGodMode(!_root.inGodMode);
};
}
Instance of Symbol 537 MovieClip [fast rwd level button] "fastRwdButton" in Frame 2
onClipEvent (load) {
this.label = "<<";
button.onRelease = function () {
_root.userJumpToLevel(_root.levelNum - 10);
};
}
Instance of Symbol 536 MovieClip [fast fwd level button] "fastFwdButton" in Frame 2
onClipEvent (load) {
this.label = ">>";
button.onRelease = function () {
_root.userJumpToLevel(_root.levelNum + 10);
};
}
Instance of Symbol 535 MovieClip [prev level button] "prevLevelButton" in Frame 2
onClipEvent (load) {
this.label = "<";
button.onRelease = function () {
_root.userJumpToLevel(_root.levelNum - 1);
};
}
Instance of Symbol 534 MovieClip [next level button] "nextLevelButton" in Frame 2
onClipEvent (load) {
this.label = ">";
button.onRelease = function () {
_root.userJumpToLevel(_root.levelNum + 1);
};
}
Instance of Symbol 526 MovieClip [edit now button] "editNowStateButton" in Frame 2
onClipEvent (load) {
this.label = "$ $ $";
button.onRelease = function () {
_root.openNowStateDlg();
};
}
Instance of Symbol 581 MovieClip [map button] "mapButton" in Frame 2
onClipEvent (load) {
this.label = "MAP";
button.onRelease = function () {
_root.openMapDlg();
};
}
Instance of Symbol 582 MovieClip "reverseButton" in Frame 2
onClipEvent (load) {
this.label = "REVERSE";
button.onRelease = function () {
_root.reverseWaypoints();
};
}
Instance of Symbol 583 MovieClip "editMapButton" in Frame 2
onClipEvent (load) {
this.label = "EDIT MAP";
button.onRelease = function () {
if (_root.inEditMode) {
_root.enterPlayModeToPublish();
} else {
_root.enterEditMode();
}
};
}
Instance of Symbol 584 MovieClip "loadButton" in Frame 2
onClipEvent (load) {
this.label = "LOAD NEW";
button.onRelease = function () {
_root.openLoadNewGameDlg();
};
}
Instance of Symbol 585 MovieClip in Frame 2
onClipEvent (load) {
this.label = "RESTART";
this.onRelease = function () {
_root.openRestartDlg();
};
}
Instance of Symbol 586 MovieClip "logInButton" in Frame 2
onClipEvent (load) {
this.label = "LOG IN";
button.onRelease = function () {
_root.openLogInDlg();
};
}
Instance of Symbol 587 MovieClip "saveButton" in Frame 2
onClipEvent (load) {
this.label = "SAVE";
button.onRelease = function () {
if (_root.login == _root.justTryingLogin) {
_root.openLogInDlg(_root.openSaveGameDlg);
} else {
_root.checkLogin(_root.openSaveGameDlg, _root.openLogInDlg);
}
};
}
Instance of Symbol 588 MovieClip "pauseButton" in Frame 2
onClipEvent (load) {
this.update = function () {
if (_root.paused) {
hilight._visible = true;
label = "GO";
} else {
hilight._visible = false;
label = "PAUSE";
}
};
button.onRelease = function () {
_root.setPaused(!_root.paused);
};
this.update();
}
Instance of Symbol 589 MovieClip in Frame 2
onClipEvent (load) {
this.label = "HELP";
button.onRelease = function () {
_root.openHelpDlg();
};
}
Instance of Symbol 590 MovieClip "publishButton" in Frame 2
onClipEvent (load) {
this.label = "PUBLISH";
button.onRelease = function () {
if (_root.mapProven) {
_root.openSaveGameDlg(true);
} else if (_root.inEditMode) {
_root.okBoxMultiline("NOT YET", "Please press the 'PLAY MAP' button and beat the map to prove it's winnable before publishing your map");
} else {
_root.okBoxMultiline("NOT YET", "Please beat the map to prove it's winnable before publishing your map");
}
};
}
Instance of Symbol 518 MovieClip [mute button] in Frame 2
onClipEvent (load) {
this.label = "MUTE";
button.onRelease = function () {
_root.setMuted(!_root.getMuted());
label = (_root.getMuted() ? "UNMUTE" : "MUTE");
};
}
Symbol 16 MovieClip [Defaults] Frame 1
#initclip 50
Object.registerClass("Defaults", mx.skins.halo.Defaults);
#endinitclip
Symbol 17 MovieClip [UIObjectExtensions] Frame 1
#initclip 51
Object.registerClass("UIObjectExtensions", mx.core.ext.UIObjectExtensions);
#endinitclip
Symbol 18 MovieClip [UIObject] Frame 1
#initclip 52
Object.registerClass("UIObject", mx.core.UIObject);
#endinitclip
stop();
Symbol 21 Button
on (keyPress "<Tab>") {
this.tabHandler();
}
Symbol 22 MovieClip Frame 1
#initclip 53
Object.registerClass("FocusManager", mx.managers.FocusManager);
if (_root.focusManager == undefined) {
_root.createClassObject(mx.managers.FocusManager, "focusManager", mx.managers.DepthManager.highestDepth--);
}
#endinitclip
Symbol 25 MovieClip [FocusRect] Frame 1
#initclip 54
Object.registerClass("FocusRect", mx.skins.halo.FocusRect);
#endinitclip
Symbol 26 MovieClip [FocusManager] Frame 1
#initclip 55
Object.registerClass("FocusManager", mx.managers.FocusManager);
#endinitclip
stop();
Symbol 27 MovieClip [UIComponentExtensions] Frame 1
#initclip 56
Object.registerClass("UIComponentExtensions", mx.core.ext.UIComponentExtensions);
#endinitclip
Symbol 28 MovieClip [UIComponent] Frame 1
#initclip 57
Object.registerClass("UIComponent", mx.core.UIComponent);
#endinitclip
stop();
Symbol 29 MovieClip [Label] Frame 1
#initclip 58
Object.registerClass("Label", mx.controls.Label);
#endinitclip
stop();
Symbol 50 MovieClip [Border] Frame 1
#initclip 59
Object.registerClass("Border", mx.skins.Border);
#endinitclip
stop();
Symbol 51 MovieClip [RectBorder] Frame 1
#initclip 60
mx.skins.SkinElement.registerElement(mx.skins.RectBorder.symbolName, Object(mx.skins.RectBorder));
Object.registerClass("RectBorder", mx.skins.halo.RectBorder);
#endinitclip
stop();
Symbol 52 MovieClip [TextInput] Frame 1
#initclip 61
Object.registerClass("TextInput", mx.controls.TextInput);
#endinitclip
stop();
Symbol 58 MovieClip [BrdrShdw] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "shadowColor");
Symbol 60 MovieClip [BrdrFace] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "buttonColor");
Symbol 63 MovieClip [BrdrBlk] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "borderColor");
Symbol 65 MovieClip [BrdrHilght] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "highlightColor");
Symbol 68 MovieClip [SimpleButton] Frame 1
#initclip 62
Object.registerClass("SimpleButton", mx.controls.SimpleButton);
#endinitclip
stop();
Symbol 69 MovieClip [ButtonSkin] Frame 1
#initclip 63
Object.registerClass("ButtonSkin", mx.skins.halo.ButtonSkin);
#endinitclip
Symbol 70 MovieClip [Button] Frame 1
#initclip 64
Object.registerClass("Button", mx.controls.Button);
#endinitclip
stop();
Instance of Symbol 68 MovieClip [SimpleButton] in Symbol 70 MovieClip [Button] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Login:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Password:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "login" in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "password" in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = true;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "loginButton" in Symbol 72 MovieClip [login window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Log In";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 79 MovieClip [creep] Frame 1
stop();
Symbol 79 MovieClip [creep] Frame 2
stop();
Symbol 79 MovieClip [creep] Frame 3
stop();
Symbol 79 MovieClip [creep] Frame 4
stop();
Symbol 79 MovieClip [creep] Frame 5
stop();
Symbol 79 MovieClip [creep] Frame 6
stop();
Symbol 95 MovieClip [splashDamage] Frame 1
stop();
Symbol 95 MovieClip [splashDamage] Frame 3
gotoAndStop ("hide");
Symbol 97 MovieClip Frame 1
stop();
Symbol 97 MovieClip Frame 3
gotoAndStop ("hide");
Symbol 109 MovieClip [bullet] Frame 1
stop();
Symbol 109 MovieClip [bullet] Frame 2
stop();
Symbol 109 MovieClip [bullet] Frame 3
stop();
Symbol 109 MovieClip [bullet] Frame 4
stop();
Symbol 109 MovieClip [bullet] Frame 5
stop();
Symbol 109 MovieClip [bullet] Frame 6
stop();
Symbol 109 MovieClip [bullet] Frame 7
stop();
Symbol 109 MovieClip [bullet] Frame 8
stop();
Symbol 109 MovieClip [bullet] Frame 9
stop();
Symbol 109 MovieClip [bullet] Frame 10
stop();
Symbol 109 MovieClip [bullet] Frame 11
stop();
Symbol 109 MovieClip [bullet] Frame 12
stop();
Symbol 109 MovieClip [bullet] Frame 13
stop();
Symbol 109 MovieClip [bullet] Frame 14
stop();
Symbol 109 MovieClip [bullet] Frame 15
stop();
Symbol 109 MovieClip [bullet] Frame 16
stop();
Symbol 109 MovieClip [bullet] Frame 17
stop();
Symbol 109 MovieClip [bullet] Frame 18
stop();
Symbol 109 MovieClip [bullet] Frame 19
stop();
Symbol 109 MovieClip [bullet] Frame 20
stop();
Symbol 109 MovieClip [bullet] Frame 21
stop();
Symbol 109 MovieClip [bullet] Frame 22
stop();
Symbol 109 MovieClip [bullet] Frame 23
stop();
Symbol 109 MovieClip [bullet] Frame 24
stop();
Symbol 118 MovieClip [tile] Frame 1
stop();
Symbol 118 MovieClip [tile] Frame 2
stop();
Symbol 118 MovieClip [tile] Frame 3
stop();
Symbol 118 MovieClip [tile] Frame 4
stop();
Symbol 118 MovieClip [tile] Frame 5
stop();
Symbol 118 MovieClip [tile] Frame 6
stop();
Symbol 118 MovieClip [tile] Frame 7
stop();
Symbol 118 MovieClip [tile] Frame 8
stop();
Symbol 118 MovieClip [tile] Frame 9
stop();
Symbol 121 MovieClip Frame 1
stop();
Symbol 121 MovieClip Frame 2
stop();
Symbol 121 MovieClip Frame 3
stop();
Symbol 123 MovieClip [rangeMed] Frame 1
stop();
Symbol 123 MovieClip [rangeMed] Frame 2
stop();
Symbol 125 MovieClip [rangeNarrowSplash] Frame 1
stop();
Symbol 125 MovieClip [rangeNarrowSplash] Frame 2
stop();
Symbol 127 MovieClip [rangeNo] Frame 1
stop();
Symbol 127 MovieClip [rangeNo] Frame 2
stop();
Symbol 129 MovieClip [rangeThin] Frame 1
stop();
Symbol 129 MovieClip [rangeThin] Frame 2
stop();
Symbol 131 MovieClip [rangeMedSplash] Frame 1
stop();
Symbol 131 MovieClip [rangeMedSplash] Frame 2
stop();
Symbol 133 MovieClip [rangeNarrow] Frame 1
stop();
Symbol 133 MovieClip [rangeNarrow] Frame 2
stop();
Symbol 135 MovieClip [rangeThinSplash] Frame 1
stop();
Symbol 135 MovieClip [rangeThinSplash] Frame 2
stop();
Symbol 152 MovieClip Frame 1
stop();
Symbol 152 MovieClip Frame 5
stop();
Symbol 152 MovieClip Frame 16
stop();
Symbol 152 MovieClip Frame 22
stop();
Symbol 152 MovieClip Frame 34
stop();
Symbol 152 MovieClip Frame 46
stop();
Symbol 152 MovieClip Frame 60
stop();
Symbol 152 MovieClip Frame 75
stop();
Symbol 152 MovieClip Frame 88
stop();
Symbol 152 MovieClip Frame 100
stop();
Symbol 152 MovieClip Frame 114
stop();
Symbol 152 MovieClip Frame 130
stop();
Symbol 152 MovieClip Frame 141
stop();
Symbol 186 MovieClip [barrel] Frame 1
stop();
Symbol 186 MovieClip [barrel] Frame 5
stop();
Symbol 186 MovieClip [barrel] Frame 6
stop();
Symbol 186 MovieClip [barrel] Frame 9
stop();
Symbol 186 MovieClip [barrel] Frame 10
stop();
Symbol 186 MovieClip [barrel] Frame 13
stop();
Symbol 186 MovieClip [barrel] Frame 17
stop();
Symbol 186 MovieClip [barrel] Frame 21
stop();
Symbol 186 MovieClip [barrel] Frame 25
stop();
Symbol 186 MovieClip [barrel] Frame 29
stop();
Symbol 186 MovieClip [barrel] Frame 33
stop();
Symbol 186 MovieClip [barrel] Frame 37
stop();
Symbol 186 MovieClip [barrel] Frame 41
stop();
Symbol 186 MovieClip [barrel] Frame 45
stop();
Symbol 186 MovieClip [barrel] Frame 49
stop();
Symbol 186 MovieClip [barrel] Frame 53
stop();
Instance of Symbol 121 MovieClip "range" in Symbol 187 MovieClip [tower] Frame 1
onClipEvent (load) {
selector.towerType = "cannon";
}
Instance of Symbol 186 MovieClip [barrel] "barrel" in Symbol 187 MovieClip [tower] Frame 1
onClipEvent (load) {
function notifyOutOfRange(creep) {
outOfRangeCreep = creep;
}
function notifyOutOfRangeCommit() {
var startingTargetedCreep = targetedCreep;
if ((outOfRangeCreep != null) && (inRangeCreep == null)) {
if (outOfRangeCreep == targetedCreep) {
targetedCreep = null;
}
} else if (inRangeCreep != null) {
if (targetedCreep == null) {
targetedCreep = inRangeCreep;
}
}
inRangeCreep = null;
outOfRangeCreep = null;
if (startingTargetedCreep != targetedCreep) {
if (targetedCreep != null) {
this.okToTarget = true;
if ((targetedCreep.speed > 20) && (this.frameCnt >= _root.getTowerUpgrade(this.tower).cooldown)) {
this.fire();
this.frameCnt = 0;
this.rotateCnt = 0;
}
}
}
}
if (frameCnt == undefined) {
frameCnt = 0;
}
bulletSpeed = (towerType.range * _root.tileSize) / Math.min(_root.getTowerUpgrade(tower).cooldown, 3);
rotateCnt = 0;
targetedCreep = null;
inRangeCreep = null;
this.okToTarget = false;
this.sx = tower._x;
this.sy = tower._y;
this.bull.targetedCreep = null;
this.bull.barrel = this;
if (this.bull.dx == undefined) {
this.bull.dx = 0;
this.bull.dy = 0;
this.bull.tx = 0;
this.bull.ty = 0;
this.bull.hitTarget = true;
this.bull.timeToLive = 0;
}
this.bullFrame = 1;
if (towerType.shootThrough) {
this.bull._xscale = tower.effectiveRange * _root.tileSize;
}
if (towerType.splashSize > 0) {
var scale = ((towerType.splashSize + 0.5) * _root.tileSize);
this.splashDamage._xscale = scale;
this.splashDamage._yscale = scale;
this.splashSlow._xscale = scale;
this.splashSlow._yscale = scale;
}
this.bull.onEnterFrame = function () {
this.move();
};
this.bull.move = function () {
if (_root.paused) {
return(undefined);
}
if (this.hitTarget) {
this.gotoAndStop("hide");
return(undefined);
}
if ((--this.timeToLive) <= 0) {
this._x = this.tx;
this._y = this.ty;
this._rotation = random(360);
this.gotoAndStop(towerType.id + "Explode");
this.hitTarget = true;
if (this.barrel.towerType.splashSize > 0) {
_root.findTilesInRadius(Math.round((this._x - _root.mapX) / _root.tileSize), Math.round((this._y - _root.mapY) / _root.tileSize), this.barrel.towerType.splashSize, function (tx, ty, barrel) {
barrel.damageTile(_root.getTile(tx, ty), barrel.bull.tx, barrel.bull.ty);
return(true);
}, 0, 360, this.barrel);
var splashGfx = null;
if (this.barrel.towerType.isSlowing) {
splashGfx = this.splashSlow;
} else {
splashGfx = this.splashDamage;
}
splashGfx.gotoAndPlay("show");
}
} else {
this._x = this._x + this.dx;
this._y = this._y + this.dy;
}
};
this.notifyInRange = function (creep) {
inRangeCreep = creep;
};
this.fire = function () {
towerType.playSound();
if (towerType.shootThrough) {
_root.findTilesInRadius(tileX, tileY, towerType.range, function (tx, ty) {
damageTile(_root.getTile(tx, ty));
return(true);
}, tower.centerAngle, 0);
var b = this.bull;
b._x = this.sx;
b._y = this.sy;
if (_root.getTowerUpgrade(tower).cooldown < 5) {
this.bullFrame++;
if (this.bullFrame > 4) {
this.bullFrame = 1;
}
b.gotoAndStop((towerType.id + "Show") + this.bullFrame);
} else {
b.gotoAndStop(towerType.id + "Show");
}
return(undefined);
}
var b = this.bull;
b.targetedCreep = this.targetedCreep;
b.tx = b.targetedCreep._x;
b.ty = b.targetedCreep._y;
b._x = this.sx;
b._y = this.sy;
b.dx = b.tx - b._x;
b.dy = b.ty - b._y;
var angle = _root.getAngleTo(this, targetedCreep._x, targetedCreep._y);
this._rotation = angle;
if (towerType.angleOfFire == 360) {
this.tower.towerBase._rotation = this._rotation;
}
gotoAndPlay(towerType.id + "Fire");
if (towerType.splashSize == 0) {
_root.towerHitCreep(targetedCreep, tower);
}
b.hitTarget = false;
if (_root.getTowerUpgrade(tower).cooldown <= 2) {
b.timeToLive = 0;
b.move();
return(undefined);
}
var mag = Math.sqrt((b.dx * b.dx) + (b.dy * b.dy));
b.timeToLive = Math.ceil(mag / bulletSpeed);
b.dx = b.dx / b.timeToLive;
b.dy = b.dy / b.timeToLive;
b._x = b._x + b.dx;
b._y = b._y + b.dy;
b.gotoAndStop(towerType.id + "Show");
};
this.damageTile = function (tile, blastX, blastY) {
_root.towerHitCreep(tile.occupyingCreep, tower, blastX, blastY);
_root.towerHitCreep(tile.occupyingCreepB, tower, blastX, blastY);
if (((!this.towerType.isSlowing) && (tile.tower != null)) && (tile.tower.barrel != this)) {
_root.message("YOU SHOT YOUR OWN TOWER!");
_root.killTower(tile.tower);
}
};
}
onClipEvent (enterFrame) {
if (_root.paused) {
return(undefined);
}
frameCnt++;
if (isNaN(this.targetedCreep._x)) {
if (this.targetedCreep != null) {
towerType.stopLoopedSound();
}
this.targetedCreep = null;
}
if ((this.targetedCreep != null) && (this.okToTarget)) {
if (frameCnt >= _root.getTowerUpgrade(tower).cooldown) {
this.fire();
frameCnt = 0;
rotateCnt = 0;
return(undefined);
}
if (towerType.angleOfFire > 0) {
rotateCnt++;
var rotateMin = 5;
if (_root.fps != undefined) {
rotateMin = 18 - _root.fps;
}
if (rotateMin > 5) {
rotateMin = 5;
}
rotateCnt = 0;
this._rotation = _root.getAngleTo(this, targetedCreep._x, targetedCreep._y);
if (towerType.angleOfFire == 360) {
this.tower.towerBase._rotation = this._rotation;
}
}
}
if (frameCnt >= _root.getTowerUpgrade(tower).cooldown) {
gotoAndStop(towerType.id + "Loaded");
} else {
gotoAndStop(towerType.id + "Loading");
}
}
Symbol 191 MovieClip [towerSelectorSetter] Frame 1
gotoAndPlay (1);
Instance of Symbol 190 MovieClip [towerSelector] "selector" in Symbol 191 MovieClip [towerSelectorSetter] Frame 1
onClipEvent (load) {
this.towerType.selector = this;
if (this.towerType.isTileType) {
this.tower._visible = false;
this.tilePreview.gotoAndStop(this.towerType.id);
} else {
this.tilePreview._visible = false;
_root.setTowerType(this.tower, towerType);
_root.normalizeTowerSize(this.tower);
}
this.setQuant = function (q) {
if (q == -1) {
q = "Inf.";
}
this.quant = q;
};
this.updateLocked = function () {
lock._visible = this.towerType.locked;
};
this.towerType.updateSelector();
lock._visible = this.towerType.locked;
this.unlockBox = _root.attachMovie("unlock box", "ulb" + _global.depth, _global.depth++);
this.unlockBox._visible = false;
this.unlockBox.unlockButton.towerType = this.towerType;
}
on (release) {
if (this.towerType.locked && (!(_root.inEditMode && (_root.inGodMode)))) {
this.unlockBox.price = "$" + _root.formatInt(this.towerType.unlockPrice);
this.unlockBox._x = this._parent._x + 3;
this.unlockBox._y = this._parent._y + 10;
this.unlockBox._visible = true;
var mouseListener = new Object();
mouseListener.unlockBox = this.unlockBox;
mouseListener.towerType = this.towerType;
mouseListener.lock = this.lock;
mouseListener.onMouseDown = function () {
if ((((_xmouse >= -36.5) && (_xmouse <= 36.5)) && (_ymouse >= -6)) && (_ymouse <= 6)) {
var god = (_root.inEditMode && (_root.inGodMode));
if (!god) {
if (_root.money < this.towerType.unlockPrice) {
_root.message("Can't afford unlock price");
return(undefined);
}
_root.stats.spend(this.towerType.unlockPrice);
}
_root.message("Unlocked " + this.towerType.title);
this.towerType.locked = false;
this.lock._visible = false;
}
this.unlockBox._visible = false;
Mouse.removeListener(mouseListener);
};
Mouse.addListener(mouseListener);
return(undefined);
}
if (_root.draggedTower.towerType.id == towerType.id) {
_root.dropDraggedTower();
} else if (this.towerType.locked && (!(_root.inEditMode && (_root.inGodMode)))) {
_root.message("You need to unlock the gun first");
} else {
if (_root.tutorialDlg != null) {
_root.tutorialDlg.gotoAndStop(2);
}
_root.doTowerTypeSelect(this.towerType);
fscommand ("trapallkeys", true);
}
}
on (rollOver) {
if (_root.selectedTower == null) {
_root.doTowerInfo(this.towerType);
}
}
on (press) {
_root.doTowerInfo(this.towerType);
}
Symbol 204 Button
on (release) {
_root.restartGame();
_root.closeDlg();
}
Symbol 208 Button
on (release) {
_root.openLoadNewGameDlg();
}
Symbol 218 Button
on (release) {
_root.sendRating(radioGroup);
_root.openLoadNewGameDlg();
}
Symbol 221 Button
on (release) {
_root.sendRating(radioGroup);
_root.gameOver = false;
_root.stats.creepsKilled = 0;
_root.stats.creepsExited = 0;
_root.gotoLevel(1);
_root.stats.updateAll();
_root.enterEditMode();
_root.setPaused(true);
_root.closeDlg(true);
}
Symbol 227 MovieClip [RadioThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 231 MovieClip [RadioThemeColor2] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 237 MovieClip [RadioButtonAssets] Frame 1
#initclip 65
mx.controls.RadioButton.prototype.adjustFocusRect = function () {
var _local4 = this._parent.focus_mc;
var _local2 = this.iconName;
var _local3 = this.getStyle("themeColor");
if (_local3 == undefined) {
_local3 = 8453965 /* 0x80FF4D */;
}
var _local5 = _local2._width + 4;
var _local6 = _local2._height + 4;
_local4.setSize(_local5, _local6, 8, 100, _local3);
var _local8 = _local2._x;
var _local7 = _local2._y;
_local4.move((this.x - 2) + _local8, (this.y + _local7) - 2);
};
#endinitclip
Symbol 238 MovieClip [RadioButton] Frame 1
#initclip 66
Object.registerClass("RadioButton", mx.controls.RadioButton);
#endinitclip
stop();
Instance of Symbol 70 MovieClip [Button] "foo" in Symbol 238 MovieClip [RadioButton] Frame 2
//component parameters
onClipEvent (initialize) {
icon = "";
label = "Button";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 244 Button
on (release) {
_root.restartGame();
_root.closeDlg();
}
Instance of Symbol 238 MovieClip [RadioButton] "b1" in Symbol 245 MovieClip [youWinDlg] Frame 1
//component parameters
onClipEvent (construct) {
data = 1;
groupName = "radioGroup";
label = "1";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 238 MovieClip [RadioButton] "b2" in Symbol 245 MovieClip [youWinDlg] Frame 1
//component parameters
onClipEvent (construct) {
data = 2;
groupName = "radioGroup";
label = "2";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 238 MovieClip [RadioButton] "b3" in Symbol 245 MovieClip [youWinDlg] Frame 1
//component parameters
onClipEvent (construct) {
data = 3;
groupName = "radioGroup";
label = "3";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 238 MovieClip [RadioButton] "b4" in Symbol 245 MovieClip [youWinDlg] Frame 1
//component parameters
onClipEvent (construct) {
data = 4;
groupName = "radioGroup";
label = "4";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 238 MovieClip [RadioButton] "b5" in Symbol 245 MovieClip [youWinDlg] Frame 1
//component parameters
onClipEvent (construct) {
data = 5;
groupName = "radioGroup";
label = "5 (Best)";
labelPlacement = "right";
selected = false;
}
Symbol 246 Button
on (release) {
_root.openLoadNewGameDlg();
}
Symbol 249 Button
on (release) {
_root.openSaveGameDlg(true);
}
Symbol 253 MovieClip [towerExplosion] Frame 2
stop();
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 271 MovieClip [okCancelWindowMultiline] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "okButton" in Symbol 271 MovieClip [okCancelWindowMultiline] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "OK";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 274 MovieClip [okWindowMultiline] Frame 1
onClipvent(load);
Instance of Symbol 70 MovieClip [Button] "okButton" in Symbol 274 MovieClip [okWindowMultiline] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "OK";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 280 MovieClip [networkWindow] Frame 1
onClipvent(load);
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 280 MovieClip [networkWindow] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "okButton" in Symbol 284 MovieClip [okWindow] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "OK";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 287 MovieClip [okCancelWindow] Frame 1
onClipvent(load);
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 287 MovieClip [okCancelWindow] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "okButton" in Symbol 287 MovieClip [okCancelWindow] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "OK";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 294 MovieClip [ComboBase] Frame 1
#initclip 67
mx.controls.listclasses.DataSelector.Initialize(Object(mx.controls.ComboBase).prototype);
Object.registerClass("ComboBase", mx.controls.ComboBase);
#endinitclip
stop();
Instance of Symbol 68 MovieClip [SimpleButton] in Symbol 294 MovieClip [ComboBase] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] in Symbol 294 MovieClip [ComboBase] Frame 2
//component parameters
onClipEvent (initialize) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "null";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 295 MovieClip [DataProvider] Frame 1
#initclip 68
Object.registerClass("DataProvider", mx.controls.listclasses.DataProvider);
#endinitclip
stop();
Symbol 296 MovieClip [DataSelector] Frame 1
#initclip 69
Object.registerClass("DataSelector", mx.controls.listclasses.DataSelector);
#endinitclip
stop();
Symbol 297 MovieClip [SelectableRow] Frame 1
#initclip 70
Object.registerClass("SelectableRow", mx.controls.listclasses.SelectableRow);
#endinitclip
stop();
Symbol 298 MovieClip [CustomBorder] Frame 1
#initclip 71
Object.registerClass("CustomBorder", mx.skins.CustomBorder);
mx.skins.SkinElement.registerElement("CustomBorder", mx.skins.CustomBorder);
#endinitclip
Symbol 310 MovieClip [ScrollThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 312 MovieClip [ScrollThemeColor2] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 323 MovieClip [ThumbThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 325 MovieClip [ThumbThemeColor3] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 332 MovieClip [ThumbThemeColor2] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 353 MovieClip [BtnDownArrow] Frame 1
#initclip 72
Object.registerClass("BtnDownArrow", mx.controls.SimpleButton);
#endinitclip
Symbol 354 MovieClip [BtnUpArrow] Frame 1
#initclip 73
Object.registerClass("BtnUpArrow", mx.controls.SimpleButton);
#endinitclip
Symbol 356 MovieClip [HScrollBar] Frame 1
#initclip 74
Object.registerClass("HScrollBar", mx.controls.HScrollBar);
#endinitclip
stop();
Instance of Symbol 70 MovieClip [Button] in Symbol 356 MovieClip [HScrollBar] Frame 2
//component parameters
onClipEvent (initialize) {
icon = "";
label = "Button";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 68 MovieClip [SimpleButton] in Symbol 356 MovieClip [HScrollBar] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 357 MovieClip [VScrollBar] Frame 1
#initclip 75
Object.registerClass("VScrollBar", mx.controls.VScrollBar);
#endinitclip
stop();
Instance of Symbol 70 MovieClip [Button] in Symbol 357 MovieClip [VScrollBar] Frame 2
//component parameters
onClipEvent (initialize) {
icon = "";
label = "Button";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 68 MovieClip [SimpleButton] in Symbol 357 MovieClip [VScrollBar] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 358 MovieClip [View] Frame 1
#initclip 76
Object.registerClass("View", mx.core.View);
#endinitclip
stop();
Symbol 359 MovieClip [ScrollView] Frame 1
#initclip 77
Object.registerClass("ScrollView", mx.core.ScrollView);
#endinitclip
stop();
Instance of Symbol 356 MovieClip [HScrollBar] in Symbol 359 MovieClip [ScrollView] Frame 2
//component parameters
onClipEvent (initialize) {
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 357 MovieClip [VScrollBar] in Symbol 359 MovieClip [ScrollView] Frame 2
//component parameters
onClipEvent (initialize) {
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 360 MovieClip [ScrollSelectList] Frame 1
#initclip 78
Object.registerClass("ScrollSelectList", mx.controls.listclasses.ScrollSelectList);
#endinitclip
stop();
Symbol 361 MovieClip [List] Frame 1
#initclip 79
Object.registerClass("List", mx.controls.List);
#endinitclip
stop();
Symbol 367 MovieClip [ComboDownArrowDisabled] Frame 1
#initclip 80
Object.registerClass("ComboDownArrowDisabled", mx.controls.SimpleButton);
#endinitclip
Symbol 369 MovieClip [ComboThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 372 MovieClip [ComboAssets] Frame 1
#initclip 81
mx.controls.ComboBox.prototype.downArrowUpName = "ComboDownArrowUp";
mx.controls.ComboBox.prototype.downArrowDownName = "ComboDownArrowDown";
mx.controls.ComboBox.prototype.downArrowOverName = "ComboDownArrowOver";
mx.controls.ComboBox.prototype.downArrowDisabledName = "ComboDownArrowDisabled";
mx.controls.ComboBox.prototype.wrapDownArrowButton = false;
mx.controls.ComboBox.prototype.dropDownBorderStyle = "solid";
mx.controls.ComboBox.prototype.adjustFocusRect = function () {
var _local2 = this.getStyle("themeColor");
if (_local2 == undefined) {
_local2 = 8453965 /* 0x80FF4D */;
}
var _local3 = this._parent.focus_mc;
_local3.setSize(this.width + 4, this.height + 4, {bl:0, tl:0, tr:5, br:5}, 100, _local2);
_local3.move(this.x - 2, this.y - 2);
};
#endinitclip
Symbol 373 MovieClip [ComboBox] Frame 1
#initclip 82
Object.registerClass("ComboBox", mx.controls.ComboBox);
#endinitclip
stop();
Instance of Symbol 361 MovieClip [List] in Symbol 373 MovieClip [ComboBox] Frame 2
//component parameters
onClipEvent (initialize) {
multipleSelection = false;
rowHeight = 20;
}
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 388 MovieClip [restart window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "restartGameButton" in Symbol 388 MovieClip [restart window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Restart Game";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "restartLevelButton" in Symbol 388 MovieClip [restart window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Restart Level";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.restartLevel();
_root.closeDlg();
}
Instance of Symbol 373 MovieClip [ComboBox] "difficultySelect" in Symbol 388 MovieClip [restart window] Frame 1
//component parameters
onClipEvent (construct) {
data = [];
data[0] = 1;
data[1] = 2;
data[2] = 3;
editable = false;
labels = [];
labels[0] = "Easy";
labels[1] = "Medium";
labels[2] = "Hard";
rowCount = 3;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "closeButton" in Symbol 393 MovieClip [edit map window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Close";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 373 MovieClip [ComboBox] "difficulty" in Symbol 393 MovieClip [edit map window] Frame 1
//component parameters
onClipEvent (construct) {
data = [];
data[0] = 1;
data[1] = 2;
data[2] = 3;
editable = false;
labels = [];
labels[0] = "Easy";
labels[1] = "Medium";
labels[2] = "Hard";
rowCount = 3;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 393 MovieClip [edit map window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Difficulty:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "tilesSnapshot" in Symbol 393 MovieClip [edit map window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Use Current Tiles As Starting Map";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 400 MovieClip [CheckThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 411 MovieClip [CheckBoxAssets] Frame 1
#initclip 83
mx.controls.CheckBox.prototype.adjustFocusRect = function () {
var _local4 = this._parent.focus_mc;
var _local2 = this.iconName;
var _local3 = this.getStyle("themeColor");
if (_local3 == undefined) {
_local3 = 8453965 /* 0x80FF4D */;
}
var _local8 = _local2._width + 4;
var _local5 = _local2._height + 4;
_local4.setSize(_local8, _local5, 0, 100, _local3);
var _local7 = _local2._x;
var _local6 = _local2._y;
_local4.move((this.x - 2) + _local7, (this.y + _local6) - 2);
};
#endinitclip
Symbol 412 MovieClip [CheckBox] Frame 1
#initclip 84
Object.registerClass("CheckBox", mx.controls.CheckBox);
#endinitclip
stop();
Instance of Symbol 70 MovieClip [Button] in Symbol 412 MovieClip [CheckBox] Frame 2
//component parameters
onClipEvent (initialize) {
icon = "";
label = "Button";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "updateButton" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Update";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 412 MovieClip [CheckBox] "clearToGrass" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
label = "Clear tiles to grass";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 412 MovieClip [CheckBox] "clearToSand" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
label = "Clear tiles to sand";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 412 MovieClip [CheckBox] "removeGuns" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
label = "Remove all guns";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 412 MovieClip [CheckBox] "removeWaypoints" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
label = "Remove waypoints";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 52 MovieClip [TextInput] "money" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "lost" in Symbol 415 MovieClip [edit now state window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 417 MovieClip [ScrollPane] Frame 1
#initclip 85
Object.registerClass("ScrollPane", mx.containers.ScrollPane);
#endinitclip
stop();
Instance of Symbol 70 MovieClip [Button] "closeButton" in Symbol 421 MovieClip [editor window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Close";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 417 MovieClip [ScrollPane] "controlsScroll" in Symbol 421 MovieClip [editor window] Frame 1
//component parameters
onClipEvent (construct) {
contentPath = "editorControls";
hLineScrollSize = 5;
hPageScrollSize = 20;
hScrollPolicy = "off";
scrollDrag = false;
vLineScrollSize = 5;
vPageScrollSize = 20;
vScrollPolicy = "on";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 427 MovieClip [TextArea] Frame 1
#initclip 86
Object.registerClass("TextArea", mx.controls.TextArea);
#endinitclip
stop();
Instance of Symbol 361 MovieClip [List] "gameNamesList" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
multipleSelection = false;
rowHeight = 20;
}
Instance of Symbol 70 MovieClip [Button] "cancelButton" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "playButton" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Play";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] "browseLabel" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Select Game To Play:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 238 MovieClip [RadioButton] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
data = "$mySaved";
groupName = "radioBrowse";
label = "My Saved Games";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 238 MovieClip [RadioButton] "builtInRadioOption" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
data = "$builtIn";
groupName = "radioBrowse";
label = "Built-In Games";
labelPlacement = "right";
selected = true;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Browse Location:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Map Preview:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Description:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 427 MovieClip [TextArea] "description" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = false;
html = false;
text = "";
wordWrap = true;
maxChars = null;
restrict = "";
enabled = true;
password = false;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Login:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Password:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "login" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "password" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = true;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 238 MovieClip [RadioButton] "userPublishedRadioOption" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
data = "$userPublished";
groupName = "radioBrowse";
label = "User-Published Games";
labelPlacement = "right";
selected = true;
}
Instance of Symbol 238 MovieClip [RadioButton] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
data = "$myPublished";
groupName = "radioBrowse";
label = "My Published Games";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 373 MovieClip [ComboBox] "difficulty" in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
data = [];
data[0] = 1;
data[1] = 2;
data[2] = 3;
editable = false;
labels = [];
labels[0] = "Easy";
labels[1] = "Medium";
labels[2] = "Hard";
rowCount = 3;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 428 MovieClip [load new game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Difficulty (If New Game):";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 361 MovieClip [List] "gameNamesList" in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
multipleSelection = false;
rowHeight = 20;
}
Instance of Symbol 70 MovieClip [Button] in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "saveButton" in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Save";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "deleteButton" in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Delete Selected Game";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "gameNameField" in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Save Game As:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 430 MovieClip [save game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "My Saved Games:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 361 MovieClip [List] "gameNamesList" in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
multipleSelection = false;
rowHeight = 20;
}
Instance of Symbol 70 MovieClip [Button] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Cancel";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] "saveButton" in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Publish";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "deleteButton" in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Delete Selected Game";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "gameNameField" in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Publish Game As: (This is the name other people will see)";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "My Published Games:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "(Your game will be published as it was at the start of level zero)";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "When you press 'Publish' your game will be available on the ";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "network for other players to play.";
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "versionField" in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 29 MovieClip [Label] in Symbol 432 MovieClip [publish game window] Frame 1
//component parameters
onClipEvent (construct) {
autoSize = "none";
html = false;
text = "Version:";
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 441 MovieClip [StepThemeColor1] Frame 1
mx.skins.ColoredSkinElement.setColorStyle(this, "themeColor");
Symbol 453 MovieClip [NumericStepper] Frame 1
#initclip 87
Object.registerClass("NumericStepper", mx.controls.NumericStepper);
#endinitclip
stop();
Instance of Symbol 68 MovieClip [SimpleButton] in Symbol 453 MovieClip [NumericStepper] Frame 2
//component parameters
onClipEvent (initialize) {
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] in Symbol 453 MovieClip [NumericStepper] Frame 2
//component parameters
onClipEvent (initialize) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "null";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "numLevels" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 427 MovieClip [TextArea] "mapDescription" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
html = false;
text = "";
wordWrap = true;
maxChars = null;
restrict = "";
enabled = true;
password = false;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 453 MovieClip [NumericStepper] "towerUpgrade" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
maximum = 99999999 /* 0x5F5E0FF */;
minimum = 0;
stepSize = 1;
value = 0;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 373 MovieClip [ComboBox] "towerList" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = false;
rowCount = 5;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerUpgradePrice" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerDamage" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerRange" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerSplash" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerCooldown" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerSlow" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "delUpgradeButton" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Del";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "addUpgradeButton" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Add";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerPushbackLimit" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 412 MovieClip [CheckBox] "towerLocked" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
label = "Locked";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 52 MovieClip [TextInput] "towerUnlockPrice" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 412 MovieClip [CheckBox] "towerLockedAtStart" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
label = "Locked At Start";
labelPlacement = "right";
selected = false;
}
Instance of Symbol 453 MovieClip [NumericStepper] "towerDisplayOrder" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
maximum = 99999999 /* 0x5F5E0FF */;
minimum = 0;
stepSize = 1;
value = 0;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerQuantEasy" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerQuantMed" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 52 MovieClip [TextInput] "towerQuantHard" in Symbol 476 MovieClip [editorControls] Frame 1
//component parameters
onClipEvent (construct) {
editable = true;
password = false;
text = "";
maxChars = null;
restrict = "";
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "buyButton" in Symbol 479 MovieClip [expiredLoginWindow] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Take Me To The 'Buy' Web Page";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] "startButton" in Symbol 483 MovieClip [helpDlg] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Start New Game On Easy";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
Instance of Symbol 70 MovieClip [Button] in Symbol 483 MovieClip [helpDlg] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "Go To Walkthrough Of 1st Map";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
getURL ("http://turrettyranny.com/walkthrough.jsp", "_blank");
}
Instance of Symbol 427 MovieClip [TextArea] "text" in Symbol 483 MovieClip [helpDlg] Frame 1
//component parameters
onClipEvent (construct) {
editable = false;
html = false;
text = "";
wordWrap = true;
maxChars = null;
restrict = "";
enabled = true;
password = false;
visible = true;
minHeight = 0;
minWidth = 0;
}
Symbol 504 MovieClip [tutorial] Frame 1
stop();
Instance of Symbol 70 MovieClip [Button] "exitButton" in Symbol 504 MovieClip [tutorial] Frame 1
//component parameters
onClipEvent (construct) {
icon = "";
label = "X";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.startTrialMap();
_root.closeDlg();
}
Symbol 504 MovieClip [tutorial] Frame 2
stop();
Instance of Symbol 70 MovieClip [Button] "exitButton" in Symbol 504 MovieClip [tutorial] Frame 2
//component parameters
onClipEvent (construct) {
icon = "";
label = "X";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.startTrialMap();
_root.closeDlg();
}
Symbol 504 MovieClip [tutorial] Frame 3
stop();
Instance of Symbol 70 MovieClip [Button] "startButton" in Symbol 504 MovieClip [tutorial] Frame 3
//component parameters
onClipEvent (construct) {
icon = "";
label = "=== Start New Game On Easy ===";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.startTrialMap();
_root.closeDlg();
}
Instance of Symbol 70 MovieClip [Button] in Symbol 504 MovieClip [tutorial] Frame 3
//component parameters
onClipEvent (construct) {
icon = "";
label = "Go To Walkthrough Of 1st Map";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
getURL ("http://turrettyranny.com/walkthrough.jsp", "_blank");
}
Instance of Symbol 70 MovieClip [Button] in Symbol 504 MovieClip [tutorial] Frame 3
//component parameters
onClipEvent (construct) {
icon = "";
label = "Open Help File";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.openHelpDlg();
}
Instance of Symbol 70 MovieClip [Button] "exitButton" in Symbol 504 MovieClip [tutorial] Frame 3
//component parameters
onClipEvent (construct) {
icon = "";
label = "X";
labelPlacement = "right";
selected = false;
toggle = false;
enabled = true;
visible = true;
minHeight = 0;
minWidth = 0;
}
on (release) {
_root.startTrialMap();
_root.closeDlg();
}
Symbol 508 MovieClip Frame 1
stop();
Symbol 508 MovieClip Frame 2
stop();
Symbol 513 MovieClip Frame 12
gotoAndPlay (1);
Symbol 554 MovieClip Frame 1
_root.stop();
if (_root.getBytesLoaded() != _root.getBytesTotal()) {
var percentLoaded = Math.ceil((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
loadedStr = ((((_root.getBytesLoaded() + "/") + _root.getBytesTotal()) + " BYTES LOADED (") + percentLoaded) + "%)";
} else {
_root.play();
}
Symbol 554 MovieClip Frame 2
gotoAndPlay (1);
Symbol 12 MovieClip [__Packages.mx.core.UIObject] Frame 0
class mx.core.UIObject extends MovieClip
{
var _width, _height, _x, _y, _parent, _minHeight, _minWidth, _visible, dispatchEvent, _xscale, _yscale, methodTable, onEnterFrame, tfList, __width, __height, moveTo, lineTo, createTextField, attachMovie, buildDepthTable, findNextAvailableDepth, idNames, childrenCreated, _name, createAccessibilityImplementation, _endInit, validateNow, hasOwnProperty, initProperties, stylecache, className, ignoreClassStyleDeclaration, _tf, fontFamily, fontSize, color, marginLeft, marginRight, fontStyle, fontWeight, textAlign, textIndent, textDecoration, embedFonts, styleName, enabled;
function UIObject () {
super();
constructObject();
}
function get width() {
return(_width);
}
function get height() {
return(_height);
}
function get left() {
return(_x);
}
function get x() {
return(_x);
}
function get top() {
return(_y);
}
function get y() {
return(_y);
}
function get right() {
return(_parent.width - (_x + width));
}
function get bottom() {
return(_parent.height - (_y + height));
}
function getMinHeight(Void) {
return(_minHeight);
}
function setMinHeight(h) {
_minHeight = h;
}
function get minHeight() {
return(getMinHeight());
}
function set minHeight(h) {
setMinHeight(h);
//return(minHeight);
}
function getMinWidth(Void) {
return(_minWidth);
}
function setMinWidth(w) {
_minWidth = w;
}
function get minWidth() {
return(getMinWidth());
}
function set minWidth(w) {
setMinWidth(w);
//return(minWidth);
}
function setVisible(x, noEvent) {
if (x != _visible) {
_visible = x;
if (noEvent != true) {
dispatchEvent({type:(x ? "reveal" : "hide")});
}
}
}
function get visible() {
return(_visible);
}
function set visible(x) {
setVisible(x, false);
//return(visible);
}
function get scaleX() {
return(_xscale);
}
function set scaleX(x) {
_xscale = x;
//return(scaleX);
}
function get scaleY() {
return(_yscale);
}
function set scaleY(y) {
_yscale = y;
//return(scaleY);
}
function doLater(obj, fn) {
if (methodTable == undefined) {
methodTable = new Array();
}
methodTable.push({obj:obj, fn:fn});
onEnterFrame = doLaterDispatcher;
}
function doLaterDispatcher(Void) {
delete onEnterFrame;
if (invalidateFlag) {
redraw();
}
var _local3 = methodTable;
methodTable = new Array();
if (_local3.length > 0) {
var _local2;
while (_local2 = _local3.shift() , _local2 != undefined) {
_local2.obj[_local2.fn]();
}
}
}
function cancelAllDoLaters(Void) {
delete onEnterFrame;
methodTable = new Array();
}
function invalidate(Void) {
invalidateFlag = true;
onEnterFrame = doLaterDispatcher;
}
function invalidateStyle(Void) {
invalidate();
}
function redraw(bAlways) {
if (invalidateFlag || (bAlways)) {
invalidateFlag = false;
var _local2;
for (_local2 in tfList) {
tfList[_local2].draw();
}
draw();
dispatchEvent({type:"draw"});
}
}
function draw(Void) {
}
function move(x, y, noEvent) {
var _local3 = _x;
var _local2 = _y;
_x = x;
_y = y;
if (noEvent != true) {
dispatchEvent({type:"move", oldX:_local3, oldY:_local2});
}
}
function setSize(w, h, noEvent) {
var _local2 = __width;
var _local3 = __height;
__width = w;
__height = h;
size();
if (noEvent != true) {
dispatchEvent({type:"resize", oldWidth:_local2, oldHeight:_local3});
}
}
function size(Void) {
_width = __width;
_height = __height;
}
function drawRect(x1, y1, x2, y2) {
moveTo(x1, y1);
lineTo(x2, y1);
lineTo(x2, y2);
lineTo(x1, y2);
lineTo(x1, y1);
}
function createLabel(name, depth, text) {
createTextField(name, depth, 0, 0, 0, 0);
var _local2 = this[name];
_local2._color = textColorList;
_local2._visible = false;
_local2.__text = text;
if (tfList == undefined) {
tfList = new Object();
}
tfList[name] = _local2;
_local2.invalidateStyle();
invalidate();
_local2.styleName = this;
return(_local2);
}
function createObject(linkageName, id, depth, initobj) {
return(attachMovie(linkageName, id, depth, initobj));
}
function createClassObject(className, id, depth, initobj) {
var _local3 = className.symbolName == undefined;
if (_local3) {
Object.registerClass(className.symbolOwner.symbolName, className);
}
var _local4 = createObject(className.symbolOwner.symbolName, id, depth, initobj);
if (_local3) {
Object.registerClass(className.symbolOwner.symbolName, className.symbolOwner);
}
return(_local4);
}
function createEmptyObject(id, depth) {
return(createClassObject(mx.core.UIObject, id, depth));
}
function destroyObject(id) {
var _local2 = this[id];
if (_local2.getDepth() < 0) {
var _local4 = buildDepthTable();
var _local5 = findNextAvailableDepth(0, _local4, "up");
var _local3 = _local5;
_local2.swapDepths(_local3);
}
_local2.removeMovieClip();
delete this[id];
}
function getSkinIDName(tag) {
return(idNames[tag]);
}
function setSkin(tag, linkageName, initObj) {
if (_global.skinRegistry[linkageName] == undefined) {
mx.skins.SkinElement.registerElement(linkageName, mx.skins.SkinElement);
}
return(createObject(linkageName, getSkinIDName(tag), tag, initObj));
}
function createSkin(tag) {
var _local2 = getSkinIDName(tag);
createEmptyObject(_local2, tag);
return(this[_local2]);
}
function createChildren(Void) {
}
function _createChildren(Void) {
createChildren();
childrenCreated = true;
}
function constructObject(Void) {
if (_name == undefined) {
return(undefined);
}
init();
_createChildren();
createAccessibilityImplementation();
_endInit();
if (validateNow) {
redraw(true);
} else {
invalidate();
}
}
function initFromClipParameters(Void) {
var _local4 = false;
var _local2;
for (_local2 in clipParameters) {
if (hasOwnProperty(_local2)) {
_local4 = true;
this["def_" + _local2] = this[_local2];
delete this[_local2];
}
}
if (_local4) {
for (_local2 in clipParameters) {
var _local3 = this["def_" + _local2];
if (_local3 != undefined) {
this[_local2] = _local3;
}
}
}
}
function init(Void) {
__width = _width;
__height = _height;
if (initProperties == undefined) {
initFromClipParameters();
} else {
initProperties();
}
if (_global.cascadingStyles == true) {
stylecache = new Object();
}
}
function getClassStyleDeclaration(Void) {
var _local4 = this;
var _local3 = className;
while (_local3 != undefined) {
if (ignoreClassStyleDeclaration[_local3] == undefined) {
if (_global.styles[_local3] != undefined) {
return(_global.styles[_local3]);
}
}
_local4 = _local4.__proto__;
_local3 = _local4.className;
}
}
function setColor(color) {
}
function __getTextFormat(tf, bAll) {
var _local8 = stylecache.tf;
if (_local8 != undefined) {
var _local3;
for (_local3 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local3])) {
if (tf[_local3] == undefined) {
tf[_local3] = _local8[_local3];
}
}
}
return(false);
}
var _local6 = false;
for (var _local3 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local3])) {
if (tf[_local3] == undefined) {
var _local5 = _tf[_local3];
if (_local5 != undefined) {
tf[_local3] = _local5;
} else if ((_local3 == "font") && (fontFamily != undefined)) {
tf[_local3] = fontFamily;
} else if ((_local3 == "size") && (fontSize != undefined)) {
tf[_local3] = fontSize;
} else if ((_local3 == "color") && (color != undefined)) {
tf[_local3] = color;
} else if ((_local3 == "leftMargin") && (marginLeft != undefined)) {
tf[_local3] = marginLeft;
} else if ((_local3 == "rightMargin") && (marginRight != undefined)) {
tf[_local3] = marginRight;
} else if ((_local3 == "italic") && (fontStyle != undefined)) {
tf[_local3] = fontStyle == _local3;
} else if ((_local3 == "bold") && (fontWeight != undefined)) {
tf[_local3] = fontWeight == _local3;
} else if ((_local3 == "align") && (textAlign != undefined)) {
tf[_local3] = textAlign;
} else if ((_local3 == "indent") && (textIndent != undefined)) {
tf[_local3] = textIndent;
} else if ((_local3 == "underline") && (textDecoration != undefined)) {
tf[_local3] = textDecoration == _local3;
} else if ((_local3 == "embedFonts") && (embedFonts != undefined)) {
tf[_local3] = embedFonts;
} else {
_local6 = true;
}
}
}
}
if (_local6) {
var _local9 = styleName;
if (_local9 != undefined) {
if (typeof(_local9) != "string") {
_local6 = _local9.__getTextFormat(tf, true, this);
} else if (_global.styles[_local9] != undefined) {
_local6 = _global.styles[_local9].__getTextFormat(tf, true, this);
}
}
}
if (_local6) {
var _local10 = getClassStyleDeclaration();
if (_local10 != undefined) {
_local6 = _local10.__getTextFormat(tf, true, this);
}
}
if (_local6) {
if (_global.cascadingStyles) {
if (_parent != undefined) {
_local6 = _parent.__getTextFormat(tf, false);
}
}
}
if (_local6) {
_local6 = _global.style.__getTextFormat(tf, true, this);
}
return(_local6);
}
function _getTextFormat(Void) {
var _local2 = stylecache.tf;
if (_local2 != undefined) {
return(_local2);
}
_local2 = new TextFormat();
__getTextFormat(_local2, true);
stylecache.tf = _local2;
if (enabled == false) {
var _local3 = getStyle("disabledColor");
_local2.color = _local3;
}
return(_local2);
}
function getStyleName(Void) {
var _local2 = styleName;
if (_local2 != undefined) {
if (typeof(_local2) != "string") {
return(_local2.getStyleName());
}
return(_local2);
}
if (_parent != undefined) {
return(_parent.getStyleName());
}
return(undefined);
}
function getStyle(styleProp) {
var _local3;
_global.getStyleCounter++;
if (this[styleProp] != undefined) {
return(this[styleProp]);
}
var _local6 = styleName;
if (_local6 != undefined) {
if (typeof(_local6) != "string") {
_local3 = _local6.getStyle(styleProp);
} else {
var _local7 = _global.styles[_local6];
_local3 = _local7.getStyle(styleProp);
}
}
if (_local3 != undefined) {
return(_local3);
}
var _local7 = getClassStyleDeclaration();
if (_local7 != undefined) {
_local3 = _local7[styleProp];
}
if (_local3 != undefined) {
return(_local3);
}
if (_global.cascadingStyles) {
if (mx.styles.StyleManager.isInheritingStyle(styleProp) || (mx.styles.StyleManager.isColorStyle(styleProp))) {
var _local5 = stylecache;
if (_local5 != undefined) {
if (_local5[styleProp] != undefined) {
return(_local5[styleProp]);
}
}
if (_parent != undefined) {
_local3 = _parent.getStyle(styleProp);
} else {
_local3 = _global.style[styleProp];
}
if (_local5 != undefined) {
_local5[styleProp] = _local3;
}
return(_local3);
}
}
if (_local3 == undefined) {
_local3 = _global.style[styleProp];
}
return(_local3);
}
static function mergeClipParameters(o, p) {
for (var _local3 in p) {
o[_local3] = p[_local3];
}
return(true);
}
static var symbolName = "UIObject";
static var symbolOwner = mx.core.UIObject;
static var version = "2.0.1.78";
static var textColorList = {color:1, disabledColor:1};
var invalidateFlag = false;
var lineWidth = 1;
var lineColor = 0;
var tabEnabled = false;
var clipParameters = {visible:1, minHeight:1, minWidth:1, maxHeight:1, maxWidth:1, preferredHeight:1, preferredWidth:1};
}
Symbol 13 MovieClip [__Packages.mx.controls.Label] Frame 0
class mx.controls.Label extends mx.core.UIObject
{
var _xscale, _yscale, labelField, tabEnabled, tabChildren, useHandCursor, _color, initText, __autoSize, _getTextFormat, __width, setSize, _x, __height, getStyle;
function Label () {
super();
}
function init(Void) {
super.init();
_xscale = (_yscale = 100);
labelField.selectable = false;
labelField.styleName = this;
tabEnabled = false;
tabChildren = false;
useHandCursor = false;
_color = mx.core.UIObject.textColorList;
}
function get html() {
return(getHtml());
}
function set html(value) {
setHtml(value);
//return(html);
}
function getHtml() {
return(labelField.html);
}
function setHtml(value) {
if (value != labelField.html) {
labelField.html = value;
}
}
function get text() {
return(getText());
}
function set text(t) {
setText(t);
//return(text);
}
function getText() {
if (initializing) {
return(initText);
}
var _local2 = labelField;
if (_local2.html == true) {
return(_local2.htmlText);
}
return(_local2.text);
}
function setText(t) {
if (initializing) {
initText = t;
} else {
var _local2 = labelField;
if (_local2.html == true) {
_local2.htmlText = t;
} else {
_local2.text = t;
}
adjustForAutoSize();
}
}
function get autoSize() {
return(__autoSize);
}
function set autoSize(v) {
if (_global.isLivePreview == true) {
v = "none";
}
__autoSize = v;
if (!initializing) {
draw();
}
//return(autoSize);
}
function draw(Void) {
var _local2 = labelField;
if (initializing) {
var _local4 = text;
initializing = false;
setText(_local4);
delete initText;
}
if (_local2.html) {
var _local4 = _local2.htmlText;
}
var _local3 = _getTextFormat();
_local2.embedFonts = _local3.embedFonts == true;
if (_local3 != undefined) {
_local2.setTextFormat(_local3);
_local2.setNewTextFormat(_local3);
}
if (_local2.html) {
_local2.htmlText = _local4;
}
adjustForAutoSize();
}
function adjustForAutoSize() {
var _local2 = labelField;
var _local3 = __autoSize;
if ((_local3 != undefined) && (_local3 != "none")) {
_local2._height = _local2.textHeight + 3;
var _local4 = __width;
setSize(_local2.textWidth + 4, _local2._height);
if (_local3 == "right") {
_x = _x + (_local4 - __width);
} else if (_local3 == "center") {
_x = _x + ((_local4 - __width) / 2);
} else if (_local3 == "left") {
_x = _x + 0;
}
} else {
_local2._x = 0;
_local2._width = __width;
_local2._height = __height;
}
}
function size(Void) {
var _local2 = labelField;
_local2._width = __width;
_local2._height = __height;
}
function setEnabled(enable) {
var _local2 = getStyle((enable ? "color" : "disabledColor"));
if (_local2 == undefined) {
_local2 = (enable ? 0 : 8947848);
}
setColor(_local2);
}
function setColor(col) {
labelField.textColor = col;
}
function get styleSheet() {
return(labelField.styleSheet);
}
function set styleSheet(v) {
labelField.styleSheet = v;
//return(styleSheet);
}
static var symbolName = "Label";
static var symbolOwner = Object(mx.controls.Label);
var className = "Label";
static var version = "2.0.1.78";
var initializing = true;
var clipParameters = {text:1, html:1, autoSize:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.Label.prototype.clipParameters, mx.core.UIObject.prototype.clipParameters);
}
Symbol 30 MovieClip [__Packages.mx.skins.SkinElement] Frame 0
class mx.skins.SkinElement extends MovieClip
{
var _visible, _x, _y, _width, _height;
function SkinElement () {
super();
}
static function registerElement(name, className) {
Object.registerClass(name, ((className == undefined) ? (mx.skins.SkinElement) : (className)));
_global.skinRegistry[name] = true;
}
function __set__visible(visible) {
_visible = visible;
}
function move(x, y) {
_x = x;
_y = y;
}
function setSize(w, h) {
_width = w;
_height = h;
}
}
Symbol 31 MovieClip [__Packages.mx.styles.CSSTextStyles] Frame 0
class mx.styles.CSSTextStyles
{
function CSSTextStyles () {
}
static function addTextStyles(o, bColor) {
o.addProperty("textAlign", function () {
return(this._tf.align);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.align = x;
});
o.addProperty("fontWeight", function () {
return(((this._tf.bold != undefined) ? ((this._tf.bold ? "bold" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.bold = x == "bold";
});
if (bColor) {
o.addProperty("color", function () {
return(this._tf.color);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.color = x;
});
}
o.addProperty("fontFamily", function () {
return(this._tf.font);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.font = x;
});
o.addProperty("textIndent", function () {
return(this._tf.indent);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.indent = x;
});
o.addProperty("fontStyle", function () {
return(((this._tf.italic != undefined) ? ((this._tf.italic ? "italic" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.italic = x == "italic";
});
o.addProperty("marginLeft", function () {
return(this._tf.leftMargin);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.leftMargin = x;
});
o.addProperty("marginRight", function () {
return(this._tf.rightMargin);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.rightMargin = x;
});
o.addProperty("fontSize", function () {
return(this._tf.size);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.size = x;
});
o.addProperty("textDecoration", function () {
return(((this._tf.underline != undefined) ? ((this._tf.underline ? "underline" : "none")) : undefined));
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.underline = x == "underline";
});
o.addProperty("embedFonts", function () {
return(this._tf.embedFonts);
}, function (x) {
if (this._tf == undefined) {
this._tf = new TextFormat();
}
this._tf.embedFonts = x;
});
}
}
Symbol 32 MovieClip [__Packages.mx.styles.StyleManager] Frame 0
class mx.styles.StyleManager
{
function StyleManager () {
}
static function registerInheritingStyle(styleName) {
inheritingStyles[styleName] = true;
}
static function isInheritingStyle(styleName) {
return(inheritingStyles[styleName] == true);
}
static function registerColorStyle(styleName) {
colorStyles[styleName] = true;
}
static function isColorStyle(styleName) {
return(colorStyles[styleName] == true);
}
static function registerColorName(colorName, colorValue) {
colorNames[colorName] = colorValue;
}
static function isColorName(colorName) {
return(colorNames[colorName] != undefined);
}
static function getColorName(colorName) {
return(colorNames[colorName]);
}
static var inheritingStyles = {color:true, direction:true, fontFamily:true, fontSize:true, fontStyle:true, fontWeight:true, textAlign:true, textIndent:true};
static var colorStyles = {barColor:true, trackColor:true, borderColor:true, buttonColor:true, color:true, dateHeaderColor:true, dateRollOverColor:true, disabledColor:true, fillColor:true, highlightColor:true, scrollTrackColor:true, selectedDateColor:true, shadowColor:true, strokeColor:true, symbolBackgroundColor:true, symbolBackgroundDisabledColor:true, symbolBackgroundPressedColor:true, symbolColor:true, symbolDisabledColor:true, themeColor:true, todayIndicatorColor:true, shadowCapColor:true, borderCapColor:true, focusColor:true};
static var colorNames = {black:0, white:16777215, red:16711680, green:65280, blue:255, magenta:16711935, yellow:16776960, cyan:65535, haloGreen:8453965, haloBlue:2881013, haloOrange:16761344};
static var TextFormatStyleProps = {font:true, size:true, color:true, leftMargin:false, rightMargin:false, italic:true, bold:true, align:true, indent:true, underline:false, embedFonts:false};
static var TextStyleMap = {textAlign:true, fontWeight:true, color:true, fontFamily:true, textIndent:true, fontStyle:true, lineHeight:true, marginLeft:true, marginRight:true, fontSize:true, textDecoration:true, embedFonts:true};
}
Symbol 33 MovieClip [__Packages.mx.styles.CSSStyleDeclaration] Frame 0
class mx.styles.CSSStyleDeclaration
{
var _tf;
function CSSStyleDeclaration () {
}
function __getTextFormat(tf, bAll) {
var _local5 = false;
if (_tf != undefined) {
var _local2;
for (_local2 in mx.styles.StyleManager.TextFormatStyleProps) {
if (bAll || (mx.styles.StyleManager.TextFormatStyleProps[_local2])) {
if (tf[_local2] == undefined) {
var _local3 = _tf[_local2];
if (_local3 != undefined) {
tf[_local2] = _local3;
} else {
_local5 = true;
}
}
}
}
} else {
_local5 = true;
}
return(_local5);
}
function getStyle(styleProp) {
var _local2 = this[styleProp];
var _local3 = mx.styles.StyleManager.getColorName(_local2);
return(((_local3 == undefined) ? (_local2) : (_local3)));
}
static function classConstruct() {
mx.styles.CSSTextStyles.addTextStyles(mx.styles.CSSStyleDeclaration.prototype, true);
return(true);
}
static var classConstructed = classConstruct();
static var CSSTextStylesDependency = mx.styles.CSSTextStyles;
}
Symbol 34 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1};
}
Symbol 35 MovieClip [__Packages.mx.events.UIEventDispatcher] Frame 0
class mx.events.UIEventDispatcher extends mx.events.EventDispatcher
{
var dispatchQueue, owner, __sentLoadEvent, __origAddEventListener;
function UIEventDispatcher () {
super();
}
static function addKeyEvents(obj) {
if (obj.keyHandler == undefined) {
var _local1 = (obj.keyHandler = new Object());
_local1.owner = obj;
_local1.onKeyDown = _fEventDispatcher.onKeyDown;
_local1.onKeyUp = _fEventDispatcher.onKeyUp;
}
Key.addListener(obj.keyHandler);
}
static function removeKeyEvents(obj) {
Key.removeListener(obj.keyHandler);
}
static function addLoadEvents(obj) {
if (obj.onLoad == undefined) {
obj.onLoad = _fEventDispatcher.onLoad;
obj.onUnload = _fEventDispatcher.onUnload;
if (obj.getBytesTotal() == obj.getBytesLoaded()) {
obj.doLater(obj, "onLoad");
}
}
}
static function removeLoadEvents(obj) {
delete obj.onLoad;
delete obj.onUnload;
}
static function initialize(obj) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.UIEventDispatcher();
}
obj.addEventListener = _fEventDispatcher.__addEventListener;
obj.__origAddEventListener = _fEventDispatcher.addEventListener;
obj.removeEventListener = _fEventDispatcher.removeEventListener;
obj.dispatchEvent = _fEventDispatcher.dispatchEvent;
obj.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(mx.events.EventDispatcher, eventObj);
dispatchQueue(this, eventObj);
}
function onKeyDown(Void) {
owner.dispatchEvent({type:"keyDown", code:Key.getCode(), ascii:Key.getAscii(), shiftKey:Key.isDown(16), ctrlKey:Key.isDown(17)});
}
function onKeyUp(Void) {
owner.dispatchEvent({type:"keyUp", code:Key.getCode(), ascii:Key.getAscii(), shiftKey:Key.isDown(16), ctrlKey:Key.isDown(17)});
}
function onLoad(Void) {
if (__sentLoadEvent != true) {
dispatchEvent({type:"load"});
}
__sentLoadEvent = true;
}
function onUnload(Void) {
dispatchEvent({type:"unload"});
}
function __addEventListener(event, handler) {
__origAddEventListener(event, handler);
var _local3 = lowLevelEvents;
for (var _local5 in _local3) {
if (mx.events.UIEventDispatcher[_local5][event] != undefined) {
var _local2 = _local3[_local5][0];
mx.events.UIEventDispatcher[_local2](this);
}
}
}
function removeEventListener(event, handler) {
var _local6 = "__q_" + event;
mx.events.EventDispatcher._removeEventListener(this[_local6], event, handler);
if (this[_local6].length == 0) {
var _local2 = lowLevelEvents;
for (var _local5 in _local2) {
if (mx.events.UIEventDispatcher[_local5][event] != undefined) {
var _local3 = _local2[_local5][1];
mx.events.UIEventDispatcher[_local2[_local5][1]](this);
}
}
}
}
static var keyEvents = {keyDown:1, keyUp:1};
static var loadEvents = {load:1, unload:1};
static var lowLevelEvents = {keyEvents:["addKeyEvents", "removeKeyEvents"], loadEvents:["addLoadEvents", "removeLoadEvents"]};
static var _fEventDispatcher = undefined;
}
Symbol 36 MovieClip [__Packages.mx.skins.ColoredSkinElement] Frame 0
class mx.skins.ColoredSkinElement
{
var getStyle, _color, onEnterFrame;
function ColoredSkinElement () {
}
function setColor(c) {
if (c != undefined) {
var _local2 = new Color(this);
_local2.setRGB(c);
}
}
function draw(Void) {
setColor(getStyle(_color));
onEnterFrame = undefined;
}
function invalidateStyle(Void) {
onEnterFrame = draw;
}
static function setColorStyle(p, colorStyle) {
if (p._color == undefined) {
p._color = colorStyle;
}
p.setColor = mixins.setColor;
p.invalidateStyle = mixins.invalidateStyle;
p.draw = mixins.draw;
p.setColor(p.getStyle(colorStyle));
}
static var mixins = new mx.skins.ColoredSkinElement();
}
Symbol 37 MovieClip [__Packages.mx.core.ext.UIObjectExtensions] Frame 0
class mx.core.ext.UIObjectExtensions
{
function UIObjectExtensions () {
}
static function addGeometry(tf, ui) {
tf.addProperty("width", ui.__get__width, null);
tf.addProperty("height", ui.__get__height, null);
tf.addProperty("left", ui.__get__left, null);
tf.addProperty("x", ui.__get__x, null);
tf.addProperty("top", ui.__get__top, null);
tf.addProperty("y", ui.__get__y, null);
tf.addProperty("right", ui.__get__right, null);
tf.addProperty("bottom", ui.__get__bottom, null);
tf.addProperty("visible", ui.__get__visible, ui.__set__visible);
}
static function Extensions() {
if (bExtended == true) {
return(true);
}
bExtended = true;
var _local6 = mx.core.UIObject.prototype;
var _local9 = mx.skins.SkinElement.prototype;
addGeometry(_local9, _local6);
mx.events.UIEventDispatcher.initialize(_local6);
var _local13 = mx.skins.ColoredSkinElement;
mx.styles.CSSTextStyles.addTextStyles(_local6);
var _local5 = MovieClip.prototype;
_local5.getTopLevel = _local6.getTopLevel;
_local5.createLabel = _local6.createLabel;
_local5.createObject = _local6.createObject;
_local5.createClassObject = _local6.createClassObject;
_local5.createEmptyObject = _local6.createEmptyObject;
_local5.destroyObject = _local6.destroyObject;
_global.ASSetPropFlags(_local5, "getTopLevel", 1);
_global.ASSetPropFlags(_local5, "createLabel", 1);
_global.ASSetPropFlags(_local5, "createObject", 1);
_global.ASSetPropFlags(_local5, "createClassObject", 1);
_global.ASSetPropFlags(_local5, "createEmptyObject", 1);
_global.ASSetPropFlags(_local5, "destroyObject", 1);
_local5.__getTextFormat = _local6.__getTextFormat;
_local5._getTextFormat = _local6._getTextFormat;
_local5.getStyleName = _local6.getStyleName;
_local5.getStyle = _local6.getStyle;
_global.ASSetPropFlags(_local5, "__getTextFormat", 1);
_global.ASSetPropFlags(_local5, "_getTextFormat", 1);
_global.ASSetPropFlags(_local5, "getStyleName", 1);
_global.ASSetPropFlags(_local5, "getStyle", 1);
var _local7 = TextField.prototype;
addGeometry(_local7, _local6);
_local7.addProperty("enabled", function () {
return(this.__enabled);
}, function (x) {
this.__enabled = x;
this.invalidateStyle();
});
_local7.move = _local9.move;
_local7.setSize = _local9.setSize;
_local7.invalidateStyle = function () {
this.invalidateFlag = true;
};
_local7.draw = function () {
if (this.invalidateFlag) {
this.invalidateFlag = false;
var _local2 = this._getTextFormat();
this.setTextFormat(_local2);
this.setNewTextFormat(_local2);
this.embedFonts = _local2.embedFonts == true;
if (this.__text != undefined) {
if (this.text == "") {
this.text = this.__text;
}
delete this.__text;
}
this._visible = true;
}
};
_local7.setColor = function (color) {
this.textColor = color;
};
_local7.getStyle = _local5.getStyle;
_local7.__getTextFormat = _local6.__getTextFormat;
_local7.setValue = function (v) {
this.text = v;
};
_local7.getValue = function () {
return(this.text);
};
_local7.addProperty("value", function () {
return(this.getValue());
}, function (v) {
this.setValue(v);
});
_local7._getTextFormat = function () {
var _local2 = this.stylecache.tf;
if (_local2 != undefined) {
return(_local2);
}
_local2 = new TextFormat();
this.__getTextFormat(_local2);
this.stylecache.tf = _local2;
if (this.__enabled == false) {
if (this.enabledColor == undefined) {
var _local4 = this.getTextFormat();
this.enabledColor = _local4.color;
}
var _local3 = this.getStyle("disabledColor");
_local2.color = _local3;
} else if (this.enabledColor != undefined) {
if (_local2.color == undefined) {
_local2.color = this.enabledColor;
}
}
return(_local2);
};
_local7.getPreferredWidth = function () {
this.draw();
return(this.textWidth + 4);
};
_local7.getPreferredHeight = function () {
this.draw();
return(this.textHeight + 4);
};
TextFormat.prototype.getTextExtent2 = function (s) {
var _local3 = _root._getTextExtent;
if (_local3 == undefined) {
_root.createTextField("_getTextExtent", -2, 0, 0, 1000, 100);
_local3 = _root._getTextExtent;
_local3._visible = false;
}
_root._getTextExtent.text = s;
var _local4 = this.align;
this.align = "left";
_root._getTextExtent.setTextFormat(this);
this.align = _local4;
return({width:_local3.textWidth, height:_local3.textHeight});
};
if (_global.style == undefined) {
_global.style = new mx.styles.CSSStyleDeclaration();
_global.cascadingStyles = true;
_global.styles = new Object();
_global.skinRegistry = new Object();
if (_global._origWidth == undefined) {
_global.origWidth = Stage.width;
_global.origHeight = Stage.height;
}
}
var _local4 = _root;
while (_local4._parent != undefined) {
_local4 = _local4._parent;
}
_local4.addProperty("width", function () {
return(Stage.width);
}, null);
_local4.addProperty("height", function () {
return(Stage.height);
}, null);
_global.ASSetPropFlags(_local4, "width", 1);
_global.ASSetPropFlags(_local4, "height", 1);
return(true);
}
static var bExtended = false;
static var UIObjectExtended = Extensions();
static var UIObjectDependency = mx.core.UIObject;
static var SkinElementDependency = mx.skins.SkinElement;
static var CSSTextStylesDependency = mx.styles.CSSTextStyles;
static var UIEventDispatcherDependency = mx.events.UIEventDispatcher;
}
Symbol 38 MovieClip [__Packages.mx.core.UIComponent] Frame 0
class mx.core.UIComponent extends mx.core.UIObject
{
var __width, __height, invalidate, stylecache, removeEventListener, dispatchEvent, drawFocus, addEventListener, _xscale, _yscale, _focusrect, watch, enabled;
function UIComponent () {
super();
}
function get width() {
return(__width);
}
function get height() {
return(__height);
}
function setVisible(x, noEvent) {
super.setVisible(x, noEvent);
}
function enabledChanged(id, oldValue, newValue) {
setEnabled(newValue);
invalidate();
delete stylecache.tf;
return(newValue);
}
function setEnabled(enabled) {
invalidate();
}
function getFocus() {
var selFocus = Selection.getFocus();
return(((selFocus === null) ? null : (eval (selFocus))));
}
function setFocus() {
Selection.setFocus(this);
}
function getFocusManager() {
var _local2 = this;
while (_local2 != undefined) {
if (_local2.focusManager != undefined) {
return(_local2.focusManager);
}
_local2 = _local2._parent;
}
return(undefined);
}
function onKillFocus(newFocus) {
removeEventListener("keyDown", this);
removeEventListener("keyUp", this);
dispatchEvent({type:"focusOut"});
drawFocus(false);
}
function onSetFocus(oldFocus) {
addEventListener("keyDown", this);
addEventListener("keyUp", this);
dispatchEvent({type:"focusIn"});
if (getFocusManager().bDrawFocus != false) {
drawFocus(true);
}
}
function findFocusInChildren(o) {
if (o.focusTextField != undefined) {
return(o.focusTextField);
}
if (o.tabEnabled == true) {
return(o);
}
return(undefined);
}
function findFocusFromObject(o) {
if (o.tabEnabled != true) {
if (o._parent == undefined) {
return(undefined);
}
if (o._parent.tabEnabled == true) {
o = o._parent;
} else if (o._parent.tabChildren) {
o = findFocusInChildren(o._parent);
} else {
o = findFocusFromObject(o._parent);
}
}
return(o);
}
function pressFocus() {
var _local3 = findFocusFromObject(this);
var _local2 = getFocus();
if (_local3 != _local2) {
_local2.drawFocus(false);
if (getFocusManager().bDrawFocus != false) {
_local3.drawFocus(true);
}
}
}
function releaseFocus() {
var _local2 = findFocusFromObject(this);
if (_local2 != getFocus()) {
_local2.setFocus();
}
}
function isParent(o) {
while (o != undefined) {
if (o == this) {
return(true);
}
o = o._parent;
}
return(false);
}
function size() {
}
function init() {
super.init();
_xscale = 100;
_yscale = 100;
_focusrect = _global.useFocusRect == false;
watch("enabled", enabledChanged);
if (enabled == false) {
setEnabled(false);
}
}
function dispatchValueChangedEvent(value) {
dispatchEvent({type:"valueChanged", value:value});
}
static var symbolName = "UIComponent";
static var symbolOwner = mx.core.UIComponent;
static var version = "2.0.1.78";
static var kStretch = 5000;
var focusEnabled = true;
var tabEnabled = true;
var origBorderStyles = {themeColor:16711680};
var clipParameters = {};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.core.UIComponent.prototype.clipParameters, mx.core.UIObject.prototype.clipParameters);
}
Symbol 39 MovieClip [__Packages.mx.skins.halo.Defaults] Frame 0
class mx.skins.halo.Defaults
{
var beginGradientFill, beginFill, moveTo, lineTo, curveTo, endFill;
function Defaults () {
}
static function setThemeDefaults() {
var _local2 = _global.style;
_local2.themeColor = 8453965 /* 0x80FF4D */;
_local2.disabledColor = 8684164 /* 0x848284 */;
_local2.modalTransparency = 0;
_local2.filled = true;
_local2.stroked = true;
_local2.strokeWidth = 1;
_local2.strokeColor = 0;
_local2.fillColor = 16777215 /* 0xFFFFFF */;
_local2.repeatInterval = 35;
_local2.repeatDelay = 500;
_local2.fontFamily = "_sans";
_local2.fontSize = 12;
_local2.selectionColor = 13500353 /* 0xCDFFC1 */;
_local2.rollOverColor = 14942166 /* 0xE3FFD6 */;
_local2.useRollOver = true;
_local2.backgroundDisabledColor = 14540253 /* 0xDDDDDD */;
_local2.selectionDisabledColor = 14540253 /* 0xDDDDDD */;
_local2.selectionDuration = 200;
_local2.openDuration = 250;
_local2.borderStyle = "inset";
_local2.color = 734012 /* 0x0B333C */;
_local2.textSelectedColor = 24371;
_local2.textRollOverColor = 2831164 /* 0x2B333C */;
_local2.textDisabledColor = 16777215 /* 0xFFFFFF */;
_local2.vGridLines = true;
_local2.hGridLines = false;
_local2.vGridLineColor = 6710886 /* 0x666666 */;
_local2.hGridLineColor = 6710886 /* 0x666666 */;
_local2.headerColor = 15395562 /* 0xEAEAEA */;
_local2.indentation = 17;
_local2.folderOpenIcon = "TreeFolderOpen";
_local2.folderClosedIcon = "TreeFolderClosed";
_local2.defaultLeafIcon = "TreeNodeIcon";
_local2.disclosureOpenIcon = "TreeDisclosureOpen";
_local2.disclosureClosedIcon = "TreeDisclosureClosed";
_local2.popupDuration = 150;
_local2.todayColor = 6710886 /* 0x666666 */;
_local2 = (_global.styles.ScrollSelectList = new mx.styles.CSSStyleDeclaration());
_local2.backgroundColor = 16777215 /* 0xFFFFFF */;
_local2.borderColor = 13290186 /* 0xCACACA */;
_local2.borderStyle = "inset";
_local2 = (_global.styles.ComboBox = new mx.styles.CSSStyleDeclaration());
_local2.borderStyle = "inset";
_local2 = (_global.styles.NumericStepper = new mx.styles.CSSStyleDeclaration());
_local2.textAlign = "center";
_local2 = (_global.styles.RectBorder = new mx.styles.CSSStyleDeclaration());
_local2.borderColor = 14015965 /* 0xD5DDDD */;
_local2.buttonColor = 7305079 /* 0x6F7777 */;
_local2.shadowColor = 15658734 /* 0xEEEEEE */;
_local2.highlightColor = 12897484 /* 0xC4CCCC */;
_local2.shadowCapColor = 14015965 /* 0xD5DDDD */;
_local2.borderCapColor = 9542041 /* 0x919999 */;
var _local4 = new Object();
_local4.borderColor = 16711680 /* 0xFF0000 */;
_local4.buttonColor = 16711680 /* 0xFF0000 */;
_local4.shadowColor = 16711680 /* 0xFF0000 */;
_local4.highlightColor = 16711680 /* 0xFF0000 */;
_local4.shadowCapColor = 16711680 /* 0xFF0000 */;
_local4.borderCapColor = 16711680 /* 0xFF0000 */;
mx.core.UIComponent.prototype.origBorderStyles = _local4;
var _local3;
_local3 = (_global.styles.TextInput = new mx.styles.CSSStyleDeclaration());
_local3.backgroundColor = 16777215 /* 0xFFFFFF */;
_local3.borderStyle = "inset";
_global.styles.TextArea = _global.styles.TextInput;
_local3 = (_global.styles.Window = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "default";
_local3 = (_global.styles.windowStyles = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3 = (_global.styles.dataGridStyles = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3 = (_global.styles.Alert = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "alert";
_local3 = (_global.styles.ScrollView = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "inset";
_local3 = (_global.styles.View = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "none";
_local3 = (_global.styles.ProgressBar = new mx.styles.CSSStyleDeclaration());
_local3.color = 11187123 /* 0xAAB3B3 */;
_local3.fontWeight = "bold";
_local3 = (_global.styles.AccordionHeader = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3.fontSize = "11";
_local3 = (_global.styles.Accordion = new mx.styles.CSSStyleDeclaration());
_local3.borderStyle = "solid";
_local3.backgroundColor = 16777215 /* 0xFFFFFF */;
_local3.borderColor = 9081738 /* 0x8A938A */;
_local3.headerHeight = 22;
_local3.marginLeft = (_local3.marginRight = (_local3.marginTop = (_local3.marginBottom = -1)));
_local3.verticalGap = -1;
_local3 = (_global.styles.DateChooser = new mx.styles.CSSStyleDeclaration());
_local3.borderColor = 9542041 /* 0x919999 */;
_local3.headerColor = 16777215 /* 0xFFFFFF */;
_local3 = (_global.styles.CalendarLayout = new mx.styles.CSSStyleDeclaration());
_local3.fontSize = 10;
_local3.textAlign = "right";
_local3.color = 2831164 /* 0x2B333C */;
_local3 = (_global.styles.WeekDayStyle = new mx.styles.CSSStyleDeclaration());
_local3.fontWeight = "bold";
_local3.fontSize = 11;
_local3.textAlign = "center";
_local3.color = 2831164 /* 0x2B333C */;
_local3 = (_global.styles.TodayStyle = new mx.styles.CSSStyleDeclaration());
_local3.color = 16777215 /* 0xFFFFFF */;
_local3 = (_global.styles.HeaderDateText = new mx.styles.CSSStyleDeclaration());
_local3.fontSize = 12;
_local3.fontWeight = "bold";
_local3.textAlign = "center";
}
function drawRoundRect(x, y, w, h, r, c, alpha, rot, gradient, ratios) {
if (typeof(r) == "object") {
var _local18 = r.br;
var _local16 = r.bl;
var _local15 = r.tl;
var _local10 = r.tr;
} else {
var _local10 = r;
var _local15 = _local10;
var _local16 = _local15;
var _local18 = _local16;
}
if (typeof(c) == "object") {
if (typeof(alpha) != "object") {
var _local9 = [alpha, alpha];
} else {
var _local9 = alpha;
}
if (ratios == undefined) {
ratios = [0, 255];
}
var _local14 = h * 0.7;
if (typeof(rot) != "object") {
var _local11 = {matrixType:"box", x:-_local14, y:_local14, w:w * 2, h:h * 4, r:rot * 0.0174532925199433 /* Math.PI/180 */};
} else {
var _local11 = rot;
}
if (gradient == "radial") {
beginGradientFill("radial", c, _local9, ratios, _local11);
} else {
beginGradientFill("linear", c, _local9, ratios, _local11);
}
} else if (c != undefined) {
beginFill(c, alpha);
}
r = _local18;
var _local13 = r - (r * 0.707106781186547);
var _local12 = r - (r * 0.414213562373095);
moveTo(x + w, (y + h) - r);
lineTo(x + w, (y + h) - r);
curveTo(x + w, (y + h) - _local12, (x + w) - _local13, (y + h) - _local13);
curveTo((x + w) - _local12, y + h, (x + w) - r, y + h);
r = _local16;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo(x + r, y + h);
curveTo(x + _local12, y + h, x + _local13, (y + h) - _local13);
curveTo(x, (y + h) - _local12, x, (y + h) - r);
r = _local15;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo(x, y + r);
curveTo(x, y + _local12, x + _local13, y + _local13);
curveTo(x + _local12, y, x + r, y);
r = _local10;
_local13 = r - (r * 0.707106781186547);
_local12 = r - (r * 0.414213562373095);
lineTo((x + w) - r, y);
curveTo((x + w) - _local12, y, (x + w) - _local13, y + _local13);
curveTo(x + w, y + _local12, x + w, y + r);
lineTo(x + w, (y + h) - r);
if (c != undefined) {
endFill();
}
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
setThemeDefaults();
mx.core.UIObject.prototype.drawRoundRect = mx.skins.halo.Defaults.prototype.drawRoundRect;
return(true);
}
static var classConstructed = classConstruct();
static var CSSStyleDeclarationDependency = mx.styles.CSSStyleDeclaration;
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
static var UIObjectDependency = mx.core.UIObject;
}
Symbol 40 MovieClip [__Packages.mx.controls.SimpleButton] Frame 0
class mx.controls.SimpleButton extends mx.core.UIComponent
{
static var emphasizedStyleDeclaration;
var preset, boundingBox_mc, useHandCursor, skinName, linkLength, iconName, destroyObject, __width, _width, __height, _height, __emphaticStyleName, styleName, enabled, invalidate, pressFocus, dispatchEvent, autoRepeat, interval, getStyle, releaseFocus, createLabel, invalidateStyle;
function SimpleButton () {
super();
}
function init(Void) {
super.init();
if (preset == undefined) {
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
useHandCursor = false;
}
function createChildren(Void) {
if (preset != undefined) {
var _local2 = this[idNames[preset]];
this[refNames[preset]] = _local2;
skinName = _local2;
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
}
initializing = false;
} else if (__state == true) {
setStateVar(true);
} else {
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
}
}
}
function setIcon(tag, linkageName) {
return(setSkin(tag + 8, linkageName));
}
function changeIcon(tag, linkageName) {
linkLength = linkageName.length;
var _local2 = stateNames[tag] + "Icon";
this[_local2] = linkageName;
this[idNames[tag + 8]] = _local2;
setStateVar(getState());
}
function changeSkin(tag, linkageName) {
var _local2 = stateNames[tag] + "Skin";
this[_local2] = linkageName;
this[idNames[tag]] = _local2;
setStateVar(getState());
}
function viewIcon(varName) {
var _local4 = varName + "Icon";
var _local3 = this[_local4];
if (typeof(_local3) == "string") {
var _local5 = _local3;
if (__emphasized) {
if (this[_local3 + "Emphasized"].length > 0) {
_local3 = _local3 + "Emphasized";
}
}
if (this[_local3].length == 0) {
return(undefined);
}
_local3 = setIcon(tagMap[_local5], this[_local3]);
if ((_local3 == undefined) && (_global.isLivePreview)) {
_local3 = setIcon(0, "ButtonIcon");
}
this[_local4] = _local3;
}
iconName._visible = false;
iconName = _local3;
iconName._visible = true;
}
function removeIcons() {
var _local3 = 0;
while (_local3 < 2) {
var _local2 = 8;
while (_local2 < 16) {
destroyObject(idNames[_local2]);
this[stateNames[_local2 - 8] + "Icon"] = "";
_local2++;
}
_local3++;
}
refresh();
}
function setSkin(tag, linkageName, initobj) {
var _local3 = super.setSkin(tag, linkageName, ((initobj != undefined) ? (initobj) : ({styleName:this})));
calcSize(tag, _local3);
return(_local3);
}
function calcSize(Void) {
__width = _width;
__height = _height;
}
function viewSkin(varName, initObj) {
var _local3 = varName + "Skin";
var _local2 = this[_local3];
if (typeof(_local2) == "string") {
var _local4 = _local2;
if (__emphasized) {
if (this[_local2 + "Emphasized"].length > 0) {
_local2 = _local2 + "Emphasized";
}
}
if (this[_local2].length == 0) {
return(undefined);
}
_local2 = setSkin(tagMap[_local4], this[_local2], ((initObj != undefined) ? (initObj) : ({styleName:this})));
this[_local3] = _local2;
}
skinName._visible = false;
skinName = _local2;
skinName._visible = true;
}
function showEmphasized(e) {
if (e && (!__emphatic)) {
if (emphasizedStyleDeclaration != undefined) {
__emphaticStyleName = styleName;
styleName = emphasizedStyleDeclaration;
}
__emphatic = true;
} else {
if (__emphatic) {
styleName = __emphaticStyleName;
}
__emphatic = false;
}
}
function refresh(Void) {
var _local2 = getState();
if (enabled == false) {
viewIcon("disabled");
viewSkin("disabled");
} else {
viewSkin(phase);
viewIcon(phase);
}
setView(phase == "down");
iconName.enabled = enabled;
}
function setView(offset) {
if (iconName == undefined) {
return(undefined);
}
var _local2 = (offset ? (btnOffset) : 0);
iconName._x = ((__width - iconName._width) / 2) + _local2;
iconName._y = ((__height - iconName._height) / 2) + _local2;
}
function setStateVar(state) {
if (state) {
if (trueOverSkin.length == 0) {
rolloverSkin = tus;
} else {
rolloverSkin = trs;
}
if (trueOverIcon.length == 0) {
rolloverIcon = tui;
} else {
rolloverIcon = tri;
}
upSkin = tus;
downSkin = tds;
disabledSkin = dts;
upIcon = tui;
downIcon = tdi;
disabledIcon = dti;
} else {
if (falseOverSkin.length == 0) {
rolloverSkin = fus;
} else {
rolloverSkin = frs;
}
if (falseOverIcon.length == 0) {
rolloverIcon = fui;
} else {
rolloverIcon = fri;
}
upSkin = fus;
downSkin = fds;
disabledSkin = dfs;
upIcon = fui;
downIcon = fdi;
disabledIcon = dfi;
}
__state = state;
}
function setState(state) {
if (state != __state) {
setStateVar(state);
invalidate();
}
}
function size(Void) {
refresh();
}
function draw(Void) {
if (initializing) {
initializing = false;
skinName.visible = true;
iconName.visible = true;
}
size();
}
function getState(Void) {
return(__state);
}
function setToggle(val) {
__toggle = val;
if (__toggle == false) {
setState(false);
}
}
function getToggle(Void) {
return(__toggle);
}
function set toggle(val) {
setToggle(val);
//return(toggle);
}
function get toggle() {
return(getToggle());
}
function set value(val) {
setSelected(val);
//return(value);
}
function get value() {
return(getSelected());
}
function set selected(val) {
setSelected(val);
//return(selected);
}
function get selected() {
return(getSelected());
}
function setSelected(val) {
if (__toggle) {
setState(val);
} else {
setState((initializing ? (val) : (__state)));
}
}
function getSelected() {
return(__state);
}
function setEnabled(val) {
if (enabled != val) {
super.setEnabled(val);
invalidate();
}
}
function onPress(Void) {
pressFocus();
phase = "down";
refresh();
dispatchEvent({type:"buttonDown"});
if (autoRepeat) {
interval = setInterval(this, "onPressDelay", getStyle("repeatDelay"));
}
}
function onPressDelay(Void) {
dispatchEvent({type:"buttonDown"});
if (autoRepeat) {
clearInterval(interval);
interval = setInterval(this, "onPressRepeat", getStyle("repeatInterval"));
}
}
function onPressRepeat(Void) {
dispatchEvent({type:"buttonDown"});
updateAfterEvent();
}
function onRelease(Void) {
releaseFocus();
phase = "rollover";
if (interval != undefined) {
clearInterval(interval);
delete interval;
}
if (getToggle()) {
setState(!getState());
} else {
refresh();
}
dispatchEvent({type:"click"});
}
function onDragOut(Void) {
phase = "up";
refresh();
dispatchEvent({type:"buttonDragOut"});
}
function onDragOver(Void) {
if (phase != "up") {
onPress();
return(undefined);
}
phase = "down";
refresh();
}
function onReleaseOutside(Void) {
releaseFocus();
phase = "up";
if (interval != undefined) {
clearInterval(interval);
delete interval;
}
}
function onRollOver(Void) {
phase = "rollover";
refresh();
}
function onRollOut(Void) {
phase = "up";
refresh();
}
function getLabel(Void) {
return(fui.text);
}
function setLabel(val) {
if (typeof(fui) == "string") {
createLabel("fui", 8, val);
fui.styleName = this;
} else {
fui.text = val;
}
var _local4 = fui._getTextFormat();
var _local2 = _local4.getTextExtent2(val);
fui._width = _local2.width + 5;
fui._height = _local2.height + 5;
iconName = fui;
setView(__state);
}
function get emphasized() {
return(__emphasized);
}
function set emphasized(val) {
__emphasized = val;
var _local2 = 0;
while (_local2 < 8) {
this[idNames[_local2]] = stateNames[_local2] + "Skin";
if (typeof(this[idNames[_local2 + 8]]) == "movieclip") {
this[idNames[_local2 + 8]] = stateNames[_local2] + "Icon";
}
_local2++;
}
showEmphasized(__emphasized);
setStateVar(__state);
invalidateStyle();
//return(emphasized);
}
function keyDown(e) {
if (e.code == 32) {
onPress();
}
}
function keyUp(e) {
if (e.code == 32) {
onRelease();
}
}
function onKillFocus(newFocus) {
super.onKillFocus();
if (phase != "up") {
phase = "up";
refresh();
}
}
static var symbolName = "SimpleButton";
static var symbolOwner = mx.controls.SimpleButton;
static var version = "2.0.1.78";
var className = "SimpleButton";
var style3dInset = 4;
var btnOffset = 1;
var __toggle = false;
var __state = false;
var __emphasized = false;
var __emphatic = false;
static var falseUp = 0;
static var falseDown = 1;
static var falseOver = 2;
static var falseDisabled = 3;
static var trueUp = 4;
static var trueDown = 5;
static var trueOver = 6;
static var trueDisabled = 7;
var falseUpSkin = "SimpleButtonUp";
var falseDownSkin = "SimpleButtonIn";
var falseOverSkin = "";
var falseDisabledSkin = "SimpleButtonUp";
var trueUpSkin = "SimpleButtonIn";
var trueDownSkin = "";
var trueOverSkin = "";
var trueDisabledSkin = "SimpleButtonIn";
var falseUpIcon = "";
var falseDownIcon = "";
var falseOverIcon = "";
var falseDisabledIcon = "";
var trueUpIcon = "";
var trueDownIcon = "";
var trueOverIcon = "";
var trueDisabledIcon = "";
var phase = "up";
var fui = "falseUpIcon";
var fus = "falseUpSkin";
var fdi = "falseDownIcon";
var fds = "falseDownSkin";
var frs = "falseOverSkin";
var fri = "falseOverIcon";
var dfi = "falseDisabledIcon";
var dfs = "falseDisabledSkin";
var tui = "trueUpIcon";
var tus = "trueUpSkin";
var tdi = "trueDownIcon";
var tds = "trueDownSkin";
var trs = "trueOverSkin";
var tri = "trueOverIcon";
var dts = "trueDisabledSkin";
var dti = "trueDisabledIcon";
var rolloverSkin = mx.controls.SimpleButton.prototype.frs;
var rolloverIcon = mx.controls.SimpleButton.prototype.fri;
var upSkin = mx.controls.SimpleButton.prototype.fus;
var downSkin = mx.controls.SimpleButton.prototype.fds;
var disabledSkin = mx.controls.SimpleButton.prototype.dfs;
var upIcon = mx.controls.SimpleButton.prototype.fui;
var downIcon = mx.controls.SimpleButton.prototype.fdi;
var disabledIcon = mx.controls.SimpleButton.prototype.dfi;
var initializing = true;
var idNames = ["fus", "fds", "frs", "dfs", "tus", "tds", "trs", "dts", "fui", "fdi", "fri", "dfi", "tui", "tdi", "tri", "dti"];
var stateNames = ["falseUp", "falseDown", "falseOver", "falseDisabled", "trueUp", "trueDown", "trueOver", "trueDisabled"];
var refNames = ["upSkin", "downSkin", "rolloverSkin", "disabledSkin"];
var tagMap = {falseUpSkin:0, falseDownSkin:1, falseOverSkin:2, falseDisabledSkin:3, trueUpSkin:4, trueDownSkin:5, trueOverSkin:6, trueDisabledSkin:7, falseUpIcon:0, falseDownIcon:1, falseOverIcon:2, falseDisabledIcon:3, trueUpIcon:4, trueDownIcon:5, trueOverIcon:6, trueDisabledIcon:7};
}
Symbol 41 MovieClip [__Packages.mx.managers.DepthManager] Frame 0
class mx.managers.DepthManager
{
var _childCounter, createClassObject, createObject, _parent, swapDepths, _topmost, getDepth;
function DepthManager () {
MovieClip.prototype.createClassChildAtDepth = createClassChildAtDepth;
MovieClip.prototype.createChildAtDepth = createChildAtDepth;
MovieClip.prototype.setDepthTo = setDepthTo;
MovieClip.prototype.setDepthAbove = setDepthAbove;
MovieClip.prototype.setDepthBelow = setDepthBelow;
MovieClip.prototype.findNextAvailableDepth = findNextAvailableDepth;
MovieClip.prototype.shuffleDepths = shuffleDepths;
MovieClip.prototype.getDepthByFlag = getDepthByFlag;
MovieClip.prototype.buildDepthTable = buildDepthTable;
_global.ASSetPropFlags(MovieClip.prototype, "createClassChildAtDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "createChildAtDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthTo", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthAbove", 1);
_global.ASSetPropFlags(MovieClip.prototype, "setDepthBelow", 1);
_global.ASSetPropFlags(MovieClip.prototype, "findNextAvailableDepth", 1);
_global.ASSetPropFlags(MovieClip.prototype, "shuffleDepths", 1);
_global.ASSetPropFlags(MovieClip.prototype, "getDepthByFlag", 1);
_global.ASSetPropFlags(MovieClip.prototype, "buildDepthTable", 1);
}
static function sortFunction(a, b) {
if (a.getDepth() > b.getDepth()) {
return(1);
}
return(-1);
}
static function test(depth) {
if (depth == reservedDepth) {
return(false);
}
return(true);
}
static function createClassObjectAtDepth(className, depthSpace, initObj) {
var _local1;
switch (depthSpace) {
case kCursor :
_local1 = holder.createClassChildAtDepth(className, kTopmost, initObj);
break;
case kTooltip :
_local1 = holder.createClassChildAtDepth(className, kTop, initObj);
break;
}
return(_local1);
}
static function createObjectAtDepth(linkageName, depthSpace, initObj) {
var _local1;
switch (depthSpace) {
case kCursor :
_local1 = holder.createChildAtDepth(linkageName, kTopmost, initObj);
break;
case kTooltip :
_local1 = holder.createChildAtDepth(linkageName, kTop, initObj);
break;
}
return(_local1);
}
function createClassChildAtDepth(className, depthFlag, initObj) {
if (_childCounter == undefined) {
_childCounter = 0;
}
var _local3 = buildDepthTable();
var _local2 = getDepthByFlag(depthFlag, _local3);
var _local6 = "down";
if (depthFlag == kBottom) {
_local6 = "up";
}
var _local5;
if (_local3[_local2] != undefined) {
_local5 = _local2;
_local2 = findNextAvailableDepth(_local2, _local3, _local6);
}
var _local4 = createClassObject(className, "depthChild" + (_childCounter++), _local2, initObj);
if (_local5 != undefined) {
_local3[_local2] = _local4;
shuffleDepths(_local4, _local5, _local3, _local6);
}
if (depthFlag == kTopmost) {
_local4._topmost = true;
}
return(_local4);
}
function createChildAtDepth(linkageName, depthFlag, initObj) {
if (_childCounter == undefined) {
_childCounter = 0;
}
var _local3 = buildDepthTable();
var _local2 = getDepthByFlag(depthFlag, _local3);
var _local6 = "down";
if (depthFlag == kBottom) {
_local6 = "up";
}
var _local5;
if (_local3[_local2] != undefined) {
_local5 = _local2;
_local2 = findNextAvailableDepth(_local2, _local3, _local6);
}
var _local4 = createObject(linkageName, "depthChild" + (_childCounter++), _local2, initObj);
if (_local5 != undefined) {
_local3[_local2] = _local4;
shuffleDepths(_local4, _local5, _local3, _local6);
}
if (depthFlag == kTopmost) {
_local4._topmost = true;
}
return(_local4);
}
function setDepthTo(depthFlag) {
var _local2 = _parent.buildDepthTable();
var _local3 = _parent.getDepthByFlag(depthFlag, _local2);
if (_local2[_local3] != undefined) {
shuffleDepths(this, _local3, _local2, undefined);
} else {
swapDepths(_local3);
}
if (depthFlag == kTopmost) {
_topmost = true;
} else {
delete _topmost;
}
}
function setDepthAbove(targetInstance) {
if (targetInstance._parent != _parent) {
return(undefined);
}
var _local2 = targetInstance.getDepth() + 1;
var _local3 = _parent.buildDepthTable();
if ((_local3[_local2] != undefined) && (getDepth() < _local2)) {
_local2 = _local2 - 1;
}
if (_local2 > highestDepth) {
_local2 = highestDepth;
}
if (_local2 == highestDepth) {
_parent.shuffleDepths(this, _local2, _local3, "down");
} else if (_local3[_local2] != undefined) {
_parent.shuffleDepths(this, _local2, _local3, undefined);
} else {
swapDepths(_local2);
}
}
function setDepthBelow(targetInstance) {
if (targetInstance._parent != _parent) {
return(undefined);
}
var _local6 = targetInstance.getDepth() - 1;
var _local3 = _parent.buildDepthTable();
if ((_local3[_local6] != undefined) && (getDepth() > _local6)) {
_local6 = _local6 + 1;
}
var _local4 = lowestDepth + numberOfAuthortimeLayers;
var _local5;
for (_local5 in _local3) {
var _local2 = _local3[_local5];
if (_local2._parent != undefined) {
_local4 = Math.min(_local4, _local2.getDepth());
}
}
if (_local6 < _local4) {
_local6 = _local4;
}
if (_local6 == _local4) {
_parent.shuffleDepths(this, _local6, _local3, "up");
} else if (_local3[_local6] != undefined) {
_parent.shuffleDepths(this, _local6, _local3, undefined);
} else {
swapDepths(_local6);
}
}
function findNextAvailableDepth(targetDepth, depthTable, direction) {
var _local5 = lowestDepth + numberOfAuthortimeLayers;
if (targetDepth < _local5) {
targetDepth = _local5;
}
if (depthTable[targetDepth] == undefined) {
return(targetDepth);
}
var _local2 = targetDepth;
var _local1 = targetDepth;
if (direction == "down") {
while (depthTable[_local1] != undefined) {
_local1--;
}
return(_local1);
}
while (depthTable[_local2] != undefined) {
_local2++;
}
return(_local2);
}
function shuffleDepths(subject, targetDepth, depthTable, direction) {
var _local9 = lowestDepth + numberOfAuthortimeLayers;
var _local8 = _local9;
var _local5;
for (_local5 in depthTable) {
var _local7 = depthTable[_local5];
if (_local7._parent != undefined) {
_local9 = Math.min(_local9, _local7.getDepth());
}
}
if (direction == undefined) {
if (subject.getDepth() > targetDepth) {
direction = "up";
} else {
direction = "down";
}
}
var _local1 = new Array();
for (_local5 in depthTable) {
var _local7 = depthTable[_local5];
if (_local7._parent != undefined) {
_local1.push(_local7);
}
}
_local1.sort(sortFunction);
if (direction == "up") {
var _local3;
var _local11;
do {
if (_local1.length <= 0) {
break;
}
_local3 = _local1.pop();
} while (_local3 != subject);
do {
if (_local1.length <= 0) {
break;
}
_local11 = subject.getDepth();
_local3 = _local1.pop();
var _local4 = _local3.getDepth();
if (_local11 > (_local4 + 1)) {
if (_local4 >= 0) {
subject.swapDepths(_local4 + 1);
} else if ((_local11 > _local8) && (_local4 < _local8)) {
subject.swapDepths(_local8);
}
}
subject.swapDepths(_local3);
} while (_local4 != targetDepth);
} else if (direction == "down") {
var _local3;
do {
if (_local1.length <= 0) {
break;
}
_local3 = _local1.shift();
} while (_local3 != subject);
do {
if (_local1.length <= 0) {
break;
}
var _local11 = _local3.getDepth();
_local3 = _local1.shift();
var _local4 = _local3.getDepth();
if ((_local11 < (_local4 - 1)) && (_local4 > 0)) {
subject.swapDepths(_local4 - 1);
}
subject.swapDepths(_local3);
} while (_local4 != targetDepth);
}
}
function getDepthByFlag(depthFlag, depthTable) {
var _local2 = 0;
if ((depthFlag == kTop) || (depthFlag == kNotopmost)) {
var _local5 = 0;
var _local7 = false;
var _local8;
for (_local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
if (!_local9._topmost) {
_local2 = Math.max(_local2, _local9.getDepth());
} else if (!_local7) {
_local5 = _local9.getDepth();
_local7 = true;
} else {
_local5 = Math.min(_local5, _local9.getDepth());
}
}
}
}
_local2 = _local2 + 20;
if (_local7) {
if (_local2 >= _local5) {
_local2 = _local5 - 1;
}
}
} else if (depthFlag == kBottom) {
for (var _local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
_local2 = Math.min(_local2, _local9.getDepth());
}
}
}
_local2 = _local2 - 20;
} else if (depthFlag == kTopmost) {
for (var _local8 in depthTable) {
var _local9 = depthTable[_local8];
var _local3 = typeof(_local9);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local9.__getTextFormat != undefined))) {
if (_local9.getDepth() <= highestDepth) {
_local2 = Math.max(_local2, _local9.getDepth());
}
}
}
_local2 = _local2 + 100;
}
if (_local2 >= highestDepth) {
_local2 = highestDepth;
}
var _local6 = lowestDepth + numberOfAuthortimeLayers;
for (var _local9 in depthTable) {
var _local4 = depthTable[_local9];
if (_local4._parent != undefined) {
_local6 = Math.min(_local6, _local4.getDepth());
}
}
if (_local2 <= _local6) {
_local2 = _local6;
}
return(_local2);
}
function buildDepthTable(Void) {
var _local5 = new Array();
var _local4;
for (_local4 in this) {
var _local2 = this[_local4];
var _local3 = typeof(_local2);
if ((_local3 == "movieclip") || ((_local3 == "object") && (_local2.__getTextFormat != undefined))) {
if (_local2._parent == this) {
_local5[_local2.getDepth()] = _local2;
}
}
}
return(_local5);
}
static var reservedDepth = 1048575;
static var highestDepth = 1048574;
static var lowestDepth = -16383;
static var numberOfAuthortimeLayers = 383;
static var kCursor = 101;
static var kTooltip = 102;
static var kTop = 201;
static var kBottom = 202;
static var kTopmost = 203;
static var kNotopmost = 204;
static var holder = _root.createEmptyMovieClip("reserved", reservedDepth);
static var __depthManager = new mx.managers.DepthManager();
}
Symbol 42 MovieClip [__Packages.mx.managers.SystemManager] Frame 0
class mx.managers.SystemManager
{
static var _xAddEventListener, addEventListener, __addEventListener, _xRemoveEventListener, removeEventListener, __removeEventListener, form, __screen, dispatchEvent;
function SystemManager () {
}
static function init(Void) {
if (_initialized == false) {
_initialized = true;
mx.events.EventDispatcher.initialize(mx.managers.SystemManager);
Mouse.addListener(mx.managers.SystemManager);
Stage.addListener(mx.managers.SystemManager);
_xAddEventListener = addEventListener;
addEventListener = __addEventListener;
_xRemoveEventListener = removeEventListener;
removeEventListener = __removeEventListener;
}
}
static function addFocusManager(f) {
form = f;
f.focusManager.activate();
}
static function removeFocusManager(f) {
}
static function onMouseDown(Void) {
var _local1 = form;
_local1.focusManager._onMouseDown();
}
static function onResize(Void) {
var _local7 = Stage.width;
var _local6 = Stage.height;
var _local9 = _global.origWidth;
var _local8 = _global.origHeight;
var _local3 = Stage.align;
var _local5 = (_local9 - _local7) / 2;
var _local4 = (_local8 - _local6) / 2;
if (_local3 == "T") {
_local4 = 0;
} else if (_local3 == "B") {
_local4 = _local8 - _local6;
} else if (_local3 == "L") {
_local5 = 0;
} else if (_local3 == "R") {
_local5 = _local9 - _local7;
} else if (_local3 == "LT") {
_local4 = 0;
_local5 = 0;
} else if (_local3 == "TR") {
_local4 = 0;
_local5 = _local9 - _local7;
} else if (_local3 == "LB") {
_local4 = _local8 - _local6;
_local5 = 0;
} else if (_local3 == "RB") {
_local4 = _local8 - _local6;
_local5 = _local9 - _local7;
}
if (__screen == undefined) {
__screen = new Object();
}
__screen.x = _local5;
__screen.y = _local4;
__screen.width = _local7;
__screen.height = _local6;
_root.focusManager.relocate();
dispatchEvent({type:"resize"});
}
static function get screen() {
init();
if (__screen == undefined) {
onResize();
}
return(__screen);
}
static var _initialized = false;
static var idleFrames = 0;
static var isMouseDown = false;
static var forms = new Array();
}
Symbol 43 MovieClip [__Packages.mx.managers.FocusManager] Frame 0
class mx.managers.FocusManager extends mx.core.UIComponent
{
var __defaultPushButton, defPushButton, form, move, tabEnabled, _width, _height, _x, _y, _alpha, _parent, tabCapture, watch, lastMouse, _visible, lastFocus, doLater, lastSelFocus, cancelAllDoLaters, _searchKey, _lastTarget, _firstNode, _nextIsNext, _nextNode, _lastx, _prevNode, _needPrev, _foundList, _prevObj, _nextObj, _firstObj, _lastObj, _lastNode, lastTabFocus, findFocusFromObject;
function FocusManager () {
super();
}
function get defaultPushButton() {
return(__defaultPushButton);
}
function set defaultPushButton(x) {
if (x != __defaultPushButton) {
__defaultPushButton.__set__emphasized(false);
__defaultPushButton = x;
defPushButton = x;
x.__set__emphasized(true);
}
//return(defaultPushButton);
}
function getMaxTabIndex(o) {
var _local3 = 0;
var _local6;
for (_local6 in o) {
var _local2 = o[_local6];
if (_local2._parent == o) {
if (_local2.tabIndex != undefined) {
if (_local2.tabIndex > _local3) {
_local3 = _local2.tabIndex;
}
}
if (_local2.tabChildren == true) {
var _local4 = getMaxTabIndex(_local2);
if (_local4 > _local3) {
_local3 = _local4;
}
}
}
}
return(_local3);
}
function getNextTabIndex(Void) {
return(getMaxTabIndex(form) + 1);
}
function get nextTabIndex() {
return(getNextTabIndex());
}
function relocate(Void) {
var _local2 = mx.managers.SystemManager.__get__screen();
move(_local2.x - 1, _local2.y - 1);
}
function init(Void) {
super.init();
tabEnabled = false;
_width = (_height = 1);
_x = (_y = -1);
_alpha = 0;
_parent.focusManager = this;
_parent.tabChildren = true;
_parent.tabEnabled = false;
form = _parent;
_parent.addEventListener("hide", this);
_parent.addEventListener("reveal", this);
mx.managers.SystemManager.init();
mx.managers.SystemManager.addFocusManager(form);
tabCapture.tabIndex = 0;
watch("enabled", enabledChanged);
Selection.addListener(this);
lastMouse = new Object();
_global.ASSetPropFlags(_parent, "focusManager", 1);
_global.ASSetPropFlags(_parent, "tabChildren", 1);
_global.ASSetPropFlags(_parent, "tabEnabled", 1);
}
function enabledChanged(id, oldValue, newValue) {
_visible = newValue;
return(newValue);
}
function activate(Void) {
Key.addListener(this);
activated = (_visible = true);
if (lastFocus != undefined) {
bNeedFocus = true;
if (!mx.managers.SystemManager.isMouseDown) {
doLater(this, "restoreFocus");
}
}
}
function deactivate(Void) {
Key.removeListener(this);
activated = (_visible = false);
var _local2 = getSelectionFocus();
var _local3 = getActualFocus(_local2);
if (isOurFocus(_local3)) {
lastSelFocus = _local2;
lastFocus = _local3;
}
cancelAllDoLaters();
}
function isOurFocus(o) {
if (o.focusManager == this) {
return(true);
}
while (o != undefined) {
if (o.focusManager != undefined) {
return(false);
}
if (o._parent == _parent) {
return(true);
}
o = o._parent;
}
return(false);
}
function onSetFocus(o, n) {
if (n == null) {
if (activated) {
bNeedFocus = true;
}
} else {
var _local2 = getFocus();
if (isOurFocus(_local2)) {
bNeedFocus = false;
lastFocus = _local2;
lastSelFocus = n;
}
}
}
function restoreFocus(Void) {
var _local2 = lastSelFocus.hscroll;
if (_local2 != undefined) {
var _local5 = lastSelFocus.scroll;
var _local4 = lastSelFocus.background;
}
lastFocus.setFocus();
var _local3 = Selection;
Selection.setSelection(_local3.lastBeginIndex, _local3.lastEndIndex);
if (_local2 != undefined) {
lastSelFocus.scroll = _local5;
lastSelFocus.hscroll = _local2;
lastSelFocus.background = _local4;
}
}
function onUnload(Void) {
mx.managers.SystemManager.removeFocusManager(form);
}
function setFocus(o) {
if (o == null) {
Selection.setFocus(null);
} else if (o.setFocus == undefined) {
Selection.setFocus(o);
} else {
o.setFocus();
}
}
function getActualFocus(o) {
var _local1 = o._parent;
while (_local1 != undefined) {
if (_local1.focusTextField != undefined) {
while (_local1.focusTextField != undefined) {
o = _local1;
_local1 = _local1._parent;
if (_local1 == undefined) {
return(undefined);
}
if (_local1.focusTextField == undefined) {
return(o);
}
}
}
if (_local1.tabEnabled != true) {
return(o);
}
o = _local1;
_local1 = o._parent;
}
return(undefined);
}
function getSelectionFocus() {
var m = Selection.getFocus();
var o = eval (m);
return(o);
}
function getFocus(Void) {
var _local2 = getSelectionFocus();
return(getActualFocus(_local2));
}
function walkTree(p, index, groupName, dir, lookup, firstChild) {
var _local5 = true;
var _local11;
for (_local11 in p) {
var _local2 = p[_local11];
if ((((_local2._parent == p) && (_local2.enabled != false)) && (_local2._visible != false)) && ((_local2.tabEnabled == true) || ((_local2.tabEnabled != false) && ((((((((_local2.onPress != undefined) || (_local2.onRelease != undefined)) || (_local2.onReleaseOutside != undefined)) || (_local2.onDragOut != undefined)) || (_local2.onDragOver != undefined)) || (_local2.onRollOver != undefined)) || (_local2.onRollOut != undefined)) || (_local2 instanceof TextField))))) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
if (_local2 != _lastTarget) {
if (((_local2.groupName != undefined) || (groupName != undefined)) && (_local2.groupName == groupName)) {
continue;
}
if ((_local2 instanceof TextField) && (_local2.selectable == false)) {
continue;
}
if (_local5 || (((_local2.groupName != undefined) && (_local2.groupName == _firstNode.groupName)) && (_local2.selected == true))) {
if (firstChild) {
_firstNode = _local2;
firstChild = false;
}
}
if (_nextIsNext == true) {
if ((((_local2.groupName != undefined) && (_local2.groupName == _nextNode.groupName)) && (_local2.selected == true)) || ((_nextNode == undefined) && ((_local2.groupName == undefined) || ((_local2.groupName != undefined) && (_local2.groupName != groupName))))) {
_nextNode = _local2;
}
}
if ((_local2.groupName == undefined) || (groupName != _local2.groupName)) {
if (((_lastx.groupName != undefined) && (_local2.groupName == _lastx.groupName)) && (_lastx.selected == true)) {
} else {
_lastx = _local2;
}
}
} else {
_prevNode = _lastx;
_needPrev = false;
_nextIsNext = true;
}
if (_local2.tabIndex != undefined) {
if (_local2.tabIndex == index) {
if (_foundList[_local2._name] == undefined) {
if (_needPrev) {
_prevObj = _local2;
_needPrev = false;
}
_nextObj = _local2;
}
}
if (dir && (_local2.tabIndex > index)) {
if (((_nextObj == undefined) || ((_nextObj.tabIndex > _local2.tabIndex) && (((_local2.groupName == undefined) || (_nextObj.groupName == undefined)) || (_local2.groupName != _nextObj.groupName)))) || ((((_nextObj.groupName != undefined) && (_nextObj.groupName == _local2.groupName)) && (_nextObj.selected != true)) && ((_local2.selected == true) || (_nextObj.tabIndex > _local2.tabIndex)))) {
_nextObj = _local2;
}
} else if ((!dir) && (_local2.tabIndex < index)) {
if (((_prevObj == undefined) || ((_prevObj.tabIndex < _local2.tabIndex) && (((_local2.groupName == undefined) || (_prevObj.groupName == undefined)) || (_local2.groupName != _prevObj.groupName)))) || ((((_prevObj.groupName != undefined) && (_prevObj.groupName == _local2.groupName)) && (_prevObj.selected != true)) && ((_local2.selected == true) || (_prevObj.tabIndex < _local2.tabIndex)))) {
_prevObj = _local2;
}
}
if (((_firstObj == undefined) || ((_local2.tabIndex < _firstObj.tabIndex) && (((_local2.groupName == undefined) || (_firstObj.groupName == undefined)) || (_local2.groupName != _firstObj.groupName)))) || ((((_firstObj.groupName != undefined) && (_firstObj.groupName == _local2.groupName)) && (_firstObj.selected != true)) && ((_local2.selected == true) || (_local2.tabIndex < _firstObj.tabIndex)))) {
_firstObj = _local2;
}
if (((_lastObj == undefined) || ((_local2.tabIndex > _lastObj.tabIndex) && (((_local2.groupName == undefined) || (_lastObj.groupName == undefined)) || (_local2.groupName != _lastObj.groupName)))) || ((((_lastObj.groupName != undefined) && (_lastObj.groupName == _local2.groupName)) && (_lastObj.selected != true)) && ((_local2.selected == true) || (_local2.tabIndex > _lastObj.tabIndex)))) {
_lastObj = _local2;
}
}
if (_local2.tabChildren) {
getTabCandidateFromChildren(_local2, index, groupName, dir, _local5 && (firstChild));
}
_local5 = false;
} else if (((_local2._parent == p) && (_local2.tabChildren == true)) && (_local2._visible != false)) {
if (_local2 == _lastTarget) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
if (_prevNode == undefined) {
var _local3 = _lastx;
var _local7 = false;
while (_local3 != undefined) {
if (_local3 == _local2) {
_local7 = true;
break;
}
_local3 = _local3._parent;
}
if (_local7 == false) {
_prevNode = _lastx;
}
}
_needPrev = false;
if (_nextNode == undefined) {
_nextIsNext = true;
}
} else if (!((_local2.focusManager != undefined) && (_local2.focusManager._parent == _local2))) {
if (_local2._searchKey == _searchKey) {
continue;
}
_local2._searchKey = _searchKey;
getTabCandidateFromChildren(_local2, index, groupName, dir, _local5 && (firstChild));
}
_local5 = false;
}
}
_lastNode = _lastx;
if (lookup) {
if (p._parent != undefined) {
if (p != _parent) {
if ((_prevNode == undefined) && (dir)) {
_needPrev = true;
} else if ((_nextNode == undefined) && (!dir)) {
_nextIsNext = false;
}
_lastTarget = _lastTarget._parent;
getTabCandidate(p._parent, index, groupName, dir, true);
}
}
}
}
function getTabCandidate(o, index, groupName, dir, firstChild) {
var _local2;
var _local3 = true;
if (o == _parent) {
_local2 = o;
_local3 = false;
} else {
_local2 = o._parent;
if (_local2 == undefined) {
_local2 = o;
_local3 = false;
}
}
walkTree(_local2, index, groupName, dir, _local3, firstChild);
}
function getTabCandidateFromChildren(o, index, groupName, dir, firstChild) {
walkTree(o, index, groupName, dir, false, firstChild);
}
function getFocusManagerFromObject(o) {
while (o != undefined) {
if (o.focusManager != undefined) {
return(o.focusManager);
}
o = o._parent;
}
return(undefined);
}
function tabHandler(Void) {
bDrawFocus = true;
var _local5 = getSelectionFocus();
var _local4 = getActualFocus(_local5);
if (_local4 != _local5) {
_local5 = _local4;
}
if (getFocusManagerFromObject(_local5) != this) {
_local5 == undefined;
}
if (_local5 == undefined) {
_local5 = form;
} else if (_local5.tabIndex != undefined) {
if ((_foundList != undefined) || (_foundList.tabIndex != _local5.tabIndex)) {
_foundList = new Object();
_foundList.tabIndex = _local5.tabIndex;
}
_foundList[_local5._name] = _local5;
}
var _local3 = Key.isDown(16) != true;
_searchKey = getTimer();
_needPrev = true;
_nextIsNext = false;
_lastx = undefined;
_firstNode = undefined;
_lastNode = undefined;
_nextNode = undefined;
_prevNode = undefined;
_firstObj = undefined;
_lastObj = undefined;
_nextObj = undefined;
_prevObj = undefined;
_lastTarget = _local5;
var _local6 = _local5;
getTabCandidate(_local6, ((_local5.tabIndex == undefined) ? 0 : (_local5.tabIndex)), _local5.groupName, _local3, true);
var _local2;
if (_local3) {
if (_nextObj != undefined) {
_local2 = _nextObj;
} else {
_local2 = _firstObj;
}
} else if (_prevObj != undefined) {
_local2 = _prevObj;
} else {
_local2 = _lastObj;
}
if (_local2.tabIndex != _local5.tabIndex) {
_foundList = new Object();
_foundList.tabIndex = _local2.tabIndex;
_foundList[_local2._name] = _local2;
} else {
if (_foundList == undefined) {
_foundList = new Object();
_foundList.tabIndex = _local2.tabIndex;
}
_foundList[_local2._name] = _local2;
}
if (_local2 == undefined) {
if (_local3 == false) {
if (_nextNode != undefined) {
_local2 = _nextNode;
} else {
_local2 = _firstNode;
}
} else if ((_prevNode == undefined) || (_local5 == form)) {
_local2 = _lastNode;
} else {
_local2 = _prevNode;
}
}
if (_local2 == undefined) {
return(undefined);
}
lastTabFocus = _local2;
setFocus(_local2);
if (_local2.emphasized != undefined) {
if (defPushButton != undefined) {
_local5 = defPushButton;
defPushButton = _local2;
_local5.emphasized = false;
_local2.emphasized = true;
}
} else if ((defPushButton != undefined) && (defPushButton != __defaultPushButton)) {
_local5 = defPushButton;
defPushButton = __defaultPushButton;
_local5.emphasized = false;
__defaultPushButton.__set__emphasized(true);
}
}
function onKeyDown(Void) {
mx.managers.SystemManager.idleFrames = 0;
if (defaultPushButtonEnabled) {
if (Key.getCode() == 13) {
if (defaultPushButton != undefined) {
doLater(this, "sendDefaultPushButtonEvent");
}
}
}
}
function sendDefaultPushButtonEvent(Void) {
defPushButton.dispatchEvent({type:"click"});
}
function getMousedComponentFromChildren(x, y, o) {
for (var _local7 in o) {
var _local2 = o[_local7];
if (((_local2._visible && (_local2.enabled)) && (_local2._parent == o)) && (_local2._searchKey != _searchKey)) {
_local2._searchKey = _searchKey;
if (_local2.hitTest(x, y, true)) {
if ((_local2.onPress != undefined) || (_local2.onRelease != undefined)) {
return(_local2);
}
var _local3 = getMousedComponentFromChildren(x, y, _local2);
if (_local3 != undefined) {
return(_local3);
}
return(_local2);
}
}
}
return(undefined);
}
function mouseActivate(Void) {
if (!bNeedFocus) {
return(undefined);
}
_searchKey = getTimer();
var _local2 = getMousedComponentFromChildren(lastMouse.x, lastMouse.y, form);
if (_local2 instanceof mx.core.UIComponent) {
return(undefined);
}
_local2 = findFocusFromObject(_local2);
if (_local2 == lastFocus) {
return(undefined);
}
if (_local2 == undefined) {
doLater(this, "restoreFocus");
return(undefined);
}
var _local3 = _local2.hscroll;
if (_local3 != undefined) {
var _local6 = _local2.scroll;
var _local5 = _local2.background;
}
setFocus(_local2);
var _local4 = Selection;
Selection.setSelection(_local4.lastBeginIndex, _local4.lastEndIndex);
if (_local3 != undefined) {
_local2.scroll = _local6;
_local2.hscroll = _local3;
_local2.background = _local5;
}
}
function _onMouseDown(Void) {
bDrawFocus = false;
if (lastFocus != undefined) {
lastFocus.drawFocus(false);
}
mx.managers.SystemManager.idleFrames = 0;
var _local3 = Selection;
_local3.lastBeginIndex = Selection.getBeginIndex();
_local3.lastEndIndex = Selection.getEndIndex();
lastMouse.x = _root._xmouse;
lastMouse.y = _root._ymouse;
_root.localToGlobal(lastMouse);
}
function onMouseUp(Void) {
if (_visible) {
doLater(this, "mouseActivate");
}
}
function handleEvent(e) {
if (e.type == "reveal") {
mx.managers.SystemManager.activate(form);
} else {
mx.managers.SystemManager.deactivate(form);
}
}
static function enableFocusManagement() {
if (!initialized) {
initialized = true;
Object.registerClass("FocusManager", mx.managers.FocusManager);
if (_root.focusManager == undefined) {
_root.createClassObject(mx.managers.FocusManager, "focusManager", mx.managers.DepthManager.highestDepth--);
}
}
}
static var symbolName = "FocusManager";
static var symbolOwner = mx.managers.FocusManager;
static var version = "2.0.1.78";
var className = "FocusManager";
var bNeedFocus = false;
var bDrawFocus = false;
var defaultPushButtonEnabled = true;
var activated = true;
static var initialized = false;
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}
Symbol 44 MovieClip [__Packages.mx.skins.halo.FocusRect] Frame 0
class mx.skins.halo.FocusRect extends mx.skins.SkinElement
{
var boundingBox_mc, _xscale, _yscale, clear, beginFill, drawRoundRect, endFill, _visible;
function FocusRect () {
super();
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
function draw(o) {
o.adjustFocusRect();
}
function setSize(w, h, r, a, rectCol) {
_xscale = (_yscale = 100);
clear();
if (typeof(r) == "object") {
r.br = ((r.br > 2) ? (r.br - 2) : 0);
r.bl = ((r.bl > 2) ? (r.bl - 2) : 0);
r.tr = ((r.tr > 2) ? (r.tr - 2) : 0);
r.tl = ((r.tl > 2) ? (r.tl - 2) : 0);
beginFill(rectCol, a * 0.3);
drawRoundRect(0, 0, w, h, r);
drawRoundRect(2, 2, w - 4, h - 4, r);
endFill();
r.br = ((r.br > 1) ? (r.br + 1) : 0);
r.bl = ((r.bl > 1) ? (r.bl + 1) : 0);
r.tr = ((r.tr > 1) ? (r.tr + 1) : 0);
r.tl = ((r.tl > 1) ? (r.tl + 1) : 0);
beginFill(rectCol, a * 0.3);
drawRoundRect(1, 1, w - 2, h - 2, r);
r.br = ((r.br > 1) ? (r.br - 1) : 0);
r.bl = ((r.bl > 1) ? (r.bl - 1) : 0);
r.tr = ((r.tr > 1) ? (r.tr - 1) : 0);
r.tl = ((r.tl > 1) ? (r.tl - 1) : 0);
drawRoundRect(2, 2, w - 4, h - 4, r);
endFill();
} else {
var _local5;
if (r != 0) {
_local5 = r - 2;
} else {
_local5 = 0;
}
beginFill(rectCol, a * 0.3);
drawRoundRect(0, 0, w, h, r);
drawRoundRect(2, 2, w - 4, h - 4, _local5);
endFill();
beginFill(rectCol, a * 0.3);
if (r != 0) {
_local5 = r - 2;
r = r - 1;
} else {
_local5 = 0;
r = 0;
}
drawRoundRect(1, 1, w - 2, h - 2, r);
drawRoundRect(2, 2, w - 4, h - 4, _local5);
endFill();
}
}
function handleEvent(e) {
if (e.type == "unload") {
_visible = true;
} else if (e.type == "resize") {
e.target.adjustFocusRect();
} else if (e.type == "move") {
e.target.adjustFocusRect();
}
}
static function classConstruct() {
mx.core.UIComponent.prototype.drawFocus = function (focused) {
var _local2 = this._parent.focus_mc;
if (!focused) {
_local2._visible = false;
this.removeEventListener("unload", _local2);
this.removeEventListener("move", _local2);
this.removeEventListener("resize", _local2);
} else {
if (_local2 == undefined) {
_local2 = this._parent.createChildAtDepth("FocusRect", mx.managers.DepthManager.kTop);
_local2.tabEnabled = false;
this._parent.focus_mc = _local2;
} else {
_local2._visible = true;
}
_local2.draw(this);
if (_local2.getDepth() < this.getDepth()) {
_local2.setDepthAbove(this);
}
this.addEventListener("unload", _local2);
this.addEventListener("move", _local2);
this.addEventListener("resize", _local2);
}
};
mx.core.UIComponent.prototype.adjustFocusRect = function () {
var _local2 = this.getStyle("themeColor");
if (_local2 == undefined) {
_local2 = 8453965 /* 0x80FF4D */;
}
var _local3 = this._parent.focus_mc;
_local3.setSize(this.width + 4, this.height + 4, 0, 100, _local2);
_local3.move(this.x - 2, this.y - 2);
};
TextField.prototype.drawFocus = mx.core.UIComponent.prototype.drawFocus;
TextField.prototype.adjustFocusRect = mx.core.UIComponent.prototype.adjustFocusRect;
mx.skins.halo.FocusRect.prototype.drawRoundRect = mx.skins.halo.Defaults.prototype.drawRoundRect;
return(true);
}
static var classConstructed = classConstruct();
static var DefaultsDependency = mx.skins.halo.Defaults;
static var UIComponentDependency = mx.core.UIComponent;
}
Symbol 45 MovieClip [__Packages.mx.managers.OverlappedWindows] Frame 0
class mx.managers.OverlappedWindows
{
function OverlappedWindows () {
}
static function checkIdle(Void) {
if (mx.managers.SystemManager.idleFrames > 10) {
mx.managers.SystemManager.dispatchEvent({type:"idle"});
} else {
mx.managers.SystemManager.idleFrames++;
}
}
static function __addEventListener(e, o, l) {
if (e == "idle") {
if (mx.managers.SystemManager.interval == undefined) {
mx.managers.SystemManager.interval = setInterval(mx.managers.SystemManager.checkIdle, 100);
}
}
mx.managers.SystemManager._xAddEventListener(e, o, l);
}
static function __removeEventListener(e, o, l) {
if (e == "idle") {
if (mx.managers.SystemManager._xRemoveEventListener(e, o, l) == 0) {
clearInterval(mx.managers.SystemManager.interval);
}
} else {
mx.managers.SystemManager._xRemoveEventListener(e, o, l);
}
}
static function onMouseDown(Void) {
mx.managers.SystemManager.idleFrames = 0;
mx.managers.SystemManager.isMouseDown = true;
var _local5 = _root;
var _local3;
var _local8 = _root._xmouse;
var _local7 = _root._ymouse;
if (mx.managers.SystemManager.form.modalWindow == undefined) {
if (mx.managers.SystemManager.forms.length > 1) {
var _local6 = mx.managers.SystemManager.forms.length;
var _local4;
_local4 = 0;
while (_local4 < _local6) {
var _local2 = mx.managers.SystemManager.forms[_local4];
if (_local2._visible) {
if (_local2.hitTest(_local8, _local7)) {
if (_local3 == undefined) {
_local3 = _local2.getDepth();
_local5 = _local2;
} else if (_local3 < _local2.getDepth()) {
_local3 = _local2.getDepth();
_local5 = _local2;
}
}
}
_local4++;
}
if (_local5 != mx.managers.SystemManager.form) {
mx.managers.SystemManager.activate(_local5);
}
}
}
var _local9 = mx.managers.SystemManager.form;
_local9.focusManager._onMouseDown();
}
static function onMouseMove(Void) {
mx.managers.SystemManager.idleFrames = 0;
}
static function onMouseUp(Void) {
mx.managers.SystemManager.isMouseDown = false;
mx.managers.SystemManager.idleFrames = 0;
}
static function activate(f) {
if (mx.managers.SystemManager.form != undefined) {
if ((mx.managers.SystemManager.form != f) && (mx.managers.SystemManager.forms.length > 1)) {
var _local1 = mx.managers.SystemManager.form;
_local1.focusManager.deactivate();
}
}
mx.managers.SystemManager.form = f;
f.focusManager.activate();
}
static function deactivate(f) {
if (mx.managers.SystemManager.form != undefined) {
if ((mx.managers.SystemManager.form == f) && (mx.managers.SystemManager.forms.length > 1)) {
var _local5 = mx.managers.SystemManager.form;
_local5.focusManager.deactivate();
var _local3 = mx.managers.SystemManager.forms.length;
var _local1;
var _local2;
_local1 = 0;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1] == f) {
_local1 = _local1 + 1;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1]._visible == true) {
_local2 = mx.managers.SystemManager.forms[_local1];
}
_local1++;
}
mx.managers.SystemManager.form = _local2;
break;
}
if (mx.managers.SystemManager.forms[_local1]._visible == true) {
_local2 = mx.managers.SystemManager.forms[_local1];
}
_local1++;
}
_local5 = mx.managers.SystemManager.form;
_local5.focusManager.activate();
}
}
}
static function addFocusManager(f) {
mx.managers.SystemManager.forms.push(f);
mx.managers.SystemManager.activate(f);
}
static function removeFocusManager(f) {
var _local3 = mx.managers.SystemManager.forms.length;
var _local1;
_local1 = 0;
while (_local1 < _local3) {
if (mx.managers.SystemManager.forms[_local1] == f) {
if (mx.managers.SystemManager.form == f) {
mx.managers.SystemManager.deactivate(f);
}
mx.managers.SystemManager.forms.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
static function enableOverlappedWindows() {
if (!initialized) {
initialized = true;
mx.managers.SystemManager.checkIdle = checkIdle;
mx.managers.SystemManager.__addEventListener = __addEventListener;
mx.managers.SystemManager.__removeEventListener = __removeEventListener;
mx.managers.SystemManager.onMouseDown = onMouseDown;
mx.managers.SystemManager.onMouseMove = onMouseMove;
mx.managers.SystemManager.onMouseUp = onMouseUp;
mx.managers.SystemManager.activate = activate;
mx.managers.SystemManager.deactivate = deactivate;
mx.managers.SystemManager.addFocusManager = addFocusManager;
mx.managers.SystemManager.removeFocusManager = removeFocusManager;
}
}
static var initialized = false;
static var SystemManagerDependency = mx.managers.SystemManager;
}
Symbol 46 MovieClip [__Packages.mx.styles.CSSSetStyle] Frame 0
class mx.styles.CSSSetStyle
{
var styleName, stylecache, _color, setColor, invalidateStyle;
function CSSSetStyle () {
}
function _setStyle(styleProp, newValue) {
this[styleProp] = newValue;
if (mx.styles.StyleManager.TextStyleMap[styleProp] != undefined) {
if (styleProp == "color") {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
}
_level0.changeTextStyleInChildren(styleProp);
return(undefined);
}
if (mx.styles.StyleManager.isColorStyle(styleProp)) {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
if (styleProp == "themeColor") {
var _local7 = mx.styles.StyleManager.colorNames.haloBlue;
var _local6 = mx.styles.StyleManager.colorNames.haloGreen;
var _local8 = mx.styles.StyleManager.colorNames.haloOrange;
var _local4 = {};
_local4[_local7] = 12188666 /* 0xB9FBFA */;
_local4[_local6] = 13500353 /* 0xCDFFC1 */;
_local4[_local8] = 16766319 /* 0xFFD56F */;
var _local5 = {};
_local5[_local7] = 13958653 /* 0xD4FDFD */;
_local5[_local6] = 14942166 /* 0xE3FFD6 */;
_local5[_local8] = 16772787 /* 0xFFEEB3 */;
var _local9 = _local4[newValue];
var _local10 = _local5[newValue];
if (_local9 == undefined) {
_local9 = newValue;
}
if (_local10 == undefined) {
_local10 = newValue;
}
setStyle("selectionColor", _local9);
setStyle("rollOverColor", _local10);
}
_level0.changeColorStyleInChildren(styleName, styleProp, newValue);
} else {
if ((styleProp == "backgroundColor") && (isNaN(newValue))) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
_level0.notifyStyleChangeInChildren(styleName, styleProp, newValue);
}
}
function changeTextStyleInChildren(styleProp) {
var _local4 = getTimer();
var _local5;
for (_local5 in this) {
var _local2 = this[_local5];
if (_local2._parent == this) {
if (_local2.searchKey != _local4) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache.tf;
delete _local2.stylecache[styleProp];
}
_local2.invalidateStyle(styleProp);
_local2.changeTextStyleInChildren(styleProp);
_local2.searchKey = _local4;
}
}
}
}
function changeColorStyleInChildren(sheetName, colorStyle, newValue) {
var _local6 = getTimer();
var _local7;
for (_local7 in this) {
var _local2 = this[_local7];
if (_local2._parent == this) {
if (_local2.searchKey != _local6) {
if (((_local2.getStyleName() == sheetName) || (sheetName == undefined)) || (sheetName == "_global")) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache[colorStyle];
}
if (typeof(_local2._color) == "string") {
if (_local2._color == colorStyle) {
var _local4 = _local2.getStyle(colorStyle);
if (colorStyle == "color") {
if (stylecache.tf.color != undefined) {
stylecache.tf.color = _local4;
}
}
_local2.setColor(_local4);
}
} else if (_local2._color[colorStyle] != undefined) {
if (typeof(_local2) != "movieclip") {
_local2._parent.invalidateStyle();
} else {
_local2.invalidateStyle(colorStyle);
}
}
}
_local2.changeColorStyleInChildren(sheetName, colorStyle, newValue);
_local2.searchKey = _local6;
}
}
}
}
function notifyStyleChangeInChildren(sheetName, styleProp, newValue) {
var _local5 = getTimer();
var _local6;
for (_local6 in this) {
var _local2 = this[_local6];
if (_local2._parent == this) {
if (_local2.searchKey != _local5) {
if (((_local2.styleName == sheetName) || ((_local2.styleName != undefined) && (typeof(_local2.styleName) == "movieclip"))) || (sheetName == undefined)) {
if (_local2.stylecache != undefined) {
delete _local2.stylecache[styleProp];
delete _local2.stylecache.tf;
}
delete _local2.enabledColor;
_local2.invalidateStyle(styleProp);
}
_local2.notifyStyleChangeInChildren(sheetName, styleProp, newValue);
_local2.searchKey = _local5;
}
}
}
}
function setStyle(styleProp, newValue) {
if (stylecache != undefined) {
delete stylecache[styleProp];
delete stylecache.tf;
}
this[styleProp] = newValue;
if (mx.styles.StyleManager.isColorStyle(styleProp)) {
if (isNaN(newValue)) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
if (styleProp == "themeColor") {
var _local10 = mx.styles.StyleManager.colorNames.haloBlue;
var _local9 = mx.styles.StyleManager.colorNames.haloGreen;
var _local11 = mx.styles.StyleManager.colorNames.haloOrange;
var _local6 = {};
_local6[_local10] = 12188666 /* 0xB9FBFA */;
_local6[_local9] = 13500353 /* 0xCDFFC1 */;
_local6[_local11] = 16766319 /* 0xFFD56F */;
var _local7 = {};
_local7[_local10] = 13958653 /* 0xD4FDFD */;
_local7[_local9] = 14942166 /* 0xE3FFD6 */;
_local7[_local11] = 16772787 /* 0xFFEEB3 */;
var _local12 = _local6[newValue];
var _local13 = _local7[newValue];
if (_local12 == undefined) {
_local12 = newValue;
}
if (_local13 == undefined) {
_local13 = newValue;
}
setStyle("selectionColor", _local12);
setStyle("rollOverColor", _local13);
}
if (typeof(_color) == "string") {
if (_color == styleProp) {
if (styleProp == "color") {
if (stylecache.tf.color != undefined) {
stylecache.tf.color = newValue;
}
}
setColor(newValue);
}
} else if (_color[styleProp] != undefined) {
invalidateStyle(styleProp);
}
changeColorStyleInChildren(undefined, styleProp, newValue);
} else {
if ((styleProp == "backgroundColor") && (isNaN(newValue))) {
newValue = mx.styles.StyleManager.getColorName(newValue);
this[styleProp] = newValue;
if (newValue == undefined) {
return(undefined);
}
}
invalidateStyle(styleProp);
}
if (mx.styles.StyleManager.isInheritingStyle(styleProp) || (styleProp == "styleName")) {
var _local8;
var _local5 = newValue;
if (styleProp == "styleName") {
_local8 = ((typeof(newValue) == "string") ? (_global.styles[newValue]) : (_local5));
_local5 = _local8.themeColor;
if (_local5 != undefined) {
_local8.rollOverColor = (_local8.selectionColor = _local5);
}
}
notifyStyleChangeInChildren(undefined, styleProp, newValue);
}
}
static function enableRunTimeCSS() {
}
static function classConstruct() {
var _local2 = MovieClip.prototype;
var _local3 = mx.styles.CSSSetStyle.prototype;
mx.styles.CSSStyleDeclaration.prototype.setStyle = _local3._setStyle;
_local2.changeTextStyleInChildren = _local3.changeTextStyleInChildren;
_local2.changeColorStyleInChildren = _local3.changeColorStyleInChildren;
_local2.notifyStyleChangeInChildren = _local3.notifyStyleChangeInChildren;
_local2.setStyle = _local3.setStyle;
_global.ASSetPropFlags(_local2, "changeTextStyleInChildren", 1);
_global.ASSetPropFlags(_local2, "changeColorStyleInChildren", 1);
_global.ASSetPropFlags(_local2, "notifyStyleChangeInChildren", 1);
_global.ASSetPropFlags(_local2, "setStyle", 1);
var _local4 = TextField.prototype;
_local4.setStyle = _local2.setStyle;
_local4.changeTextStyleInChildren = _local3.changeTextStyleInChildren;
return(true);
}
static var classConstructed = classConstruct();
static var CSSStyleDeclarationDependency = mx.styles.CSSStyleDeclaration;
}
Symbol 47 MovieClip [__Packages.mx.core.ext.UIComponentExtensions] Frame 0
class mx.core.ext.UIComponentExtensions
{
function UIComponentExtensions () {
}
static function Extensions() {
if (bExtended == true) {
return(true);
}
bExtended = true;
TextField.prototype.setFocus = function () {
Selection.setFocus(this);
};
TextField.prototype.onSetFocus = function (oldFocus) {
if (this.tabEnabled != false) {
if (this.getFocusManager().bDrawFocus) {
this.drawFocus(true);
}
}
};
TextField.prototype.onKillFocus = function (oldFocus) {
if (this.tabEnabled != false) {
this.drawFocus(false);
}
};
TextField.prototype.drawFocus = mx.core.UIComponent.prototype.drawFocus;
TextField.prototype.getFocusManager = mx.core.UIComponent.prototype.getFocusManager;
mx.managers.OverlappedWindows.enableOverlappedWindows();
mx.styles.CSSSetStyle.enableRunTimeCSS();
mx.managers.FocusManager.enableFocusManagement();
}
static var bExtended = false;
static var UIComponentExtended = Extensions();
static var UIComponentDependency = mx.core.UIComponent;
static var FocusManagerDependency = mx.managers.FocusManager;
static var OverlappedWindowsDependency = mx.managers.OverlappedWindows;
}
Symbol 48 MovieClip [__Packages.mx.controls.TextInput] Frame 0
class mx.controls.TextInput extends mx.core.UIComponent
{
var owner, enterListener, label, tabChildren, tabEnabled, focusTextField, _color, _parent, border_mc, createClassObject, dispatchValueChangedEvent, __get__width, __get__height, tfx, tfy, tfw, tfh, getStyle, bind, updateModel, _getTextFormat, enabled;
function TextInput () {
super();
}
function addEventListener(event, handler) {
if (event == "enter") {
addEnterEvents();
}
super.addEventListener(event, handler);
}
function enterOnKeyDown() {
if (Key.getAscii() == 13) {
owner.dispatchEvent({type:"enter"});
}
}
function addEnterEvents() {
if (enterListener == undefined) {
enterListener = new Object();
enterListener.owner = this;
enterListener.onKeyDown = enterOnKeyDown;
}
}
function init(Void) {
super.init();
label.styleName = this;
tabChildren = true;
tabEnabled = false;
focusTextField = label;
_color = mx.core.UIObject.textColorList;
label.onSetFocus = function () {
this._parent.onSetFocus();
};
label.onKillFocus = function (n) {
this._parent.onKillFocus(n);
};
label.drawFocus = function (b) {
this._parent.drawFocus(b);
};
label.onChanged = onLabelChanged;
}
function setFocus() {
Selection.setFocus(label);
}
function onLabelChanged(Void) {
_parent.dispatchEvent({type:"change"});
_parent.dispatchValueChangedEvent(text);
}
function createChildren(Void) {
super.createChildren();
if (border_mc == undefined) {
createClassObject(_global.styles.rectBorderClass, "border_mc", 0, {styleName:this});
}
border_mc.swapDepths(label);
label.autoSize = "none";
}
function get html() {
return(getHtml());
}
function set html(value) {
setHtml(value);
//return(html);
}
function getHtml() {
return(label.html);
}
function setHtml(value) {
if (value != label.html) {
label.html = value;
}
}
function get text() {
return(getText());
}
function set text(t) {
setText(t);
//return(text);
}
function getText() {
if (initializing) {
return(initText);
}
if (label.html == true) {
return(label.htmlText);
}
return(label.text);
}
function setText(t) {
if (initializing) {
initText = t;
} else {
var _local2 = label;
if (_local2.html == true) {
_local2.htmlText = t;
} else {
_local2.text = t;
}
}
dispatchValueChangedEvent(t);
}
function size(Void) {
border_mc.setSize(__get__width(), __get__height());
var _local2 = border_mc.__get__borderMetrics();
var _local6 = _local2.left + _local2.right;
var _local3 = _local2.top + _local2.bottom;
var _local5 = _local2.left;
var _local4 = _local2.top;
tfx = _local5;
tfy = _local4;
tfw = __get__width() - _local6;
tfh = __get__height() - _local3;
label.move(tfx, tfy);
label.setSize(tfw, tfh + 1);
}
function setEnabled(enable) {
label.type = (((__editable == true) || (enable == false)) ? "input" : "dynamic");
label.selectable = enable;
var _local2 = getStyle((enable ? "color" : "disabledColor"));
if (_local2 == undefined) {
_local2 = (enable ? 0 : 8947848);
}
setColor(_local2);
}
function setColor(col) {
label.textColor = col;
}
function onKillFocus(newFocus) {
if (enterListener != undefined) {
Key.removeListener(enterListener);
}
if (bind != undefined) {
updateModel(text);
}
super.onKillFocus(newFocus);
}
function onSetFocus(oldFocus) {
var f = Selection.getFocus();
var o = eval (f);
if (o != label) {
Selection.setFocus(label);
return(undefined);
}
if (enterListener != undefined) {
Key.addListener(enterListener);
}
super.onSetFocus(oldFocus);
}
function draw(Void) {
var _local2 = label;
var _local4 = getText();
if (initializing) {
initializing = false;
delete initText;
}
var _local3 = _getTextFormat();
_local2.embedFonts = _local3.embedFonts == true;
if (_local3 != undefined) {
_local2.setTextFormat(_local3);
_local2.setNewTextFormat(_local3);
}
_local2.multiline = false;
_local2.wordWrap = false;
if (_local2.html == true) {
_local2.setTextFormat(_local3);
_local2.htmlText = _local4;
} else {
_local2.text = _local4;
}
_local2.type = (((__editable == true) || (enabled == false)) ? "input" : "dynamic");
size();
}
function setEditable(s) {
__editable = s;
label.type = (s ? "input" : "dynamic");
}
function get maxChars() {
return(label.maxChars);
}
function set maxChars(w) {
label.maxChars = w;
//return(maxChars);
}
function get length() {
return(label.length);
}
function get restrict() {
return(label.restrict);
}
function set restrict(w) {
label.restrict = ((w == "") ? null : (w));
//return(restrict);
}
function get hPosition() {
return(label.hscroll);
}
function set hPosition(w) {
label.hscroll = w;
//return(hPosition);
}
function get maxHPosition() {
return(label.maxhscroll);
}
function get editable() {
return(__editable);
}
function set editable(w) {
setEditable(w);
//return(editable);
}
function get password() {
return(label.password);
}
function set password(w) {
label.password = w;
//return(password);
}
function get tabIndex() {
return(label.tabIndex);
}
function set tabIndex(w) {
label.tabIndex = w;
//return(tabIndex);
}
function set _accProps(val) {
label._accProps = val;
//return(_accProps);
}
function get _accProps() {
return(label._accProps);
}
static var symbolName = "TextInput";
static var symbolOwner = mx.controls.TextInput;
static var version = "2.0.1.78";
var className = "TextInput";
var initializing = true;
var clipParameters = {text:1, editable:1, password:1, maxChars:1, restrict:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.TextInput.prototype.clipParameters, mx.core.UIComponent.prototype.clipParameters);
var _maxWidth = mx.core.UIComponent.kStretch;
var __editable = true;
var initText = "";
}
Symbol 53 MovieClip [__Packages.mx.skins.Border] Frame 0
class mx.skins.Border extends mx.core.UIObject
{
function Border () {
super();
}
function init(Void) {
super.init();
}
static var symbolName = "Border";
static var symbolOwner = mx.skins.Border;
var className = "Border";
var tagBorder = 0;
var idNames = new Array("border_mc");
}
Symbol 54 MovieClip [__Packages.mx.skins.RectBorder] Frame 0
class mx.skins.RectBorder extends mx.skins.Border
{
var __width, __height, offset, __borderMetrics;
function RectBorder () {
super();
}
function get width() {
return(__width);
}
function get height() {
return(__height);
}
function init(Void) {
super.init();
}
function draw(Void) {
size();
}
function getBorderMetrics(Void) {
var _local2 = offset;
if (__borderMetrics == undefined) {
__borderMetrics = {left:_local2, top:_local2, right:_local2, bottom:_local2};
} else {
__borderMetrics.left = _local2;
__borderMetrics.top = _local2;
__borderMetrics.right = _local2;
__borderMetrics.bottom = _local2;
}
return(__borderMetrics);
}
function get borderMetrics() {
return(getBorderMetrics());
}
function drawBorder(Void) {
}
function size(Void) {
drawBorder();
}
function setColor(Void) {
drawBorder();
}
static var symbolName = "RectBorder";
static var symbolOwner = mx.skins.RectBorder;
static var version = "2.0.1.78";
var className = "RectBorder";
var borderStyleName = "borderStyle";
var borderColorName = "borderColor";
var shadowColorName = "shadowColor";
var highlightColorName = "highlightColor";
var buttonColorName = "buttonColor";
var backgroundColorName = "backgroundColor";
}
Symbol 55 MovieClip [__Packages.mx.skins.halo.RectBorder] Frame 0
class mx.skins.halo.RectBorder extends mx.skins.RectBorder
{
var offset, getStyle, borderStyleName, __borderMetrics, className, borderColorName, backgroundColorName, shadowColorName, highlightColorName, buttonColorName, __get__width, __get__height, clear, _color, drawRoundRect, beginFill, drawRect, endFill;
function RectBorder () {
super();
}
function init(Void) {
borderWidths.default = 3;
super.init();
}
function getBorderMetrics(Void) {
if (offset == undefined) {
var _local3 = getStyle(borderStyleName);
offset = borderWidths[_local3];
}
if ((getStyle(borderStyleName) == "default") || (getStyle(borderStyleName) == "alert")) {
__borderMetrics = {left:3, top:1, right:3, bottom:3};
return(__borderMetrics);
}
return(super.getBorderMetrics());
}
function drawBorder(Void) {
var _local6 = _global.styles[className];
if (_local6 == undefined) {
_local6 = _global.styles.RectBorder;
}
var _local5 = getStyle(borderStyleName);
var _local7 = getStyle(borderColorName);
if (_local7 == undefined) {
_local7 = _local6[borderColorName];
}
var _local8 = getStyle(backgroundColorName);
if (_local8 == undefined) {
_local8 = _local6[backgroundColorName];
}
var _local16 = getStyle("backgroundImage");
if (_local5 != "none") {
var _local14 = getStyle(shadowColorName);
if (_local14 == undefined) {
_local14 = _local6[shadowColorName];
}
var _local13 = getStyle(highlightColorName);
if (_local13 == undefined) {
_local13 = _local6[highlightColorName];
}
var _local12 = getStyle(buttonColorName);
if (_local12 == undefined) {
_local12 = _local6[buttonColorName];
}
var _local11 = getStyle(borderCapColorName);
if (_local11 == undefined) {
_local11 = _local6[borderCapColorName];
}
var _local10 = getStyle(shadowCapColorName);
if (_local10 == undefined) {
_local10 = _local6[shadowCapColorName];
}
}
offset = borderWidths[_local5];
var _local9 = offset;
var _local3 = __get__width();
var _local4 = __get__height();
clear();
_color = undefined;
if (_local5 == "none") {
} else if (_local5 == "inset") {
_color = colorList;
draw3dBorder(_local11, _local12, _local7, _local13, _local14, _local10);
} else if (_local5 == "outset") {
_color = colorList;
draw3dBorder(_local11, _local7, _local12, _local14, _local13, _local10);
} else if (_local5 == "alert") {
var _local15 = getStyle("themeColor");
drawRoundRect(0, 5, _local3, _local4 - 5, 5, 6184542, 10);
drawRoundRect(1, 4, _local3 - 2, _local4 - 5, 4, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, 3, _local15, 50);
drawRoundRect(3, 1, _local3 - 6, _local4 - 4, 2, 16777215, 100);
} else if (_local5 == "default") {
drawRoundRect(0, 5, _local3, _local4 - 5, {tl:5, tr:5, br:0, bl:0}, 6184542, 10);
drawRoundRect(1, 4, _local3 - 2, _local4 - 5, {tl:4, tr:4, br:0, bl:0}, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(2, 0, _local3 - 4, _local4 - 2, {tl:3, tr:3, br:0, bl:0}, [12897484, 11844796], 100, 0, "radial");
drawRoundRect(3, 1, _local3 - 6, _local4 - 4, {tl:2, tr:2, br:0, bl:0}, 16777215, 100);
} else if (_local5 == "dropDown") {
drawRoundRect(0, 0, _local3 + 1, _local4, {tl:4, tr:0, br:0, bl:4}, [13290186, 7895160], 100, -10, "linear");
drawRoundRect(1, 1, _local3 - 1, _local4 - 2, {tl:3, tr:0, br:0, bl:3}, 16777215, 100);
} else if (_local5 == "menuBorder") {
var _local15 = getStyle("themeColor");
drawRoundRect(4, 4, _local3 - 2, _local4 - 3, 0, [6184542, 6184542], 10, 0, "radial");
drawRoundRect(4, 4, _local3 - 1, _local4 - 2, 0, 6184542, 10);
drawRoundRect(0, 0, _local3 + 1, _local4, 0, [0, 14342874], 100, 250, "linear");
drawRoundRect(0, 0, _local3 + 1, _local4, 0, _local15, 50);
drawRoundRect(2, 2, _local3 - 3, _local4 - 4, 0, 16777215, 100);
} else if (_local5 == "comboNonEdit") {
} else {
beginFill(_local7);
drawRect(0, 0, _local3, _local4);
drawRect(1, 1, _local3 - 1, _local4 - 1);
endFill();
_color = borderColorName;
}
if (_local8 != undefined) {
beginFill(_local8);
drawRect(_local9, _local9, __get__width() - _local9, __get__height() - _local9);
endFill();
}
}
function draw3dBorder(c1, c2, c3, c4, c5, c6) {
var _local3 = __get__width();
var _local2 = __get__height();
beginFill(c1);
drawRect(0, 0, _local3, _local2);
drawRect(1, 0, _local3 - 1, _local2);
endFill();
beginFill(c2);
drawRect(1, 0, _local3 - 1, 1);
endFill();
beginFill(c3);
drawRect(1, _local2 - 1, _local3 - 1, _local2);
endFill();
beginFill(c4);
drawRect(1, 1, _local3 - 1, 2);
endFill();
beginFill(c5);
drawRect(1, _local2 - 2, _local3 - 1, _local2 - 1);
endFill();
beginFill(c6);
drawRect(1, 2, _local3 - 1, _local2 - 2);
drawRect(2, 2, _local3 - 2, _local2 - 2);
endFill();
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
_global.styles.rectBorderClass = mx.skins.halo.RectBorder;
_global.skinRegistry.RectBorder = true;
return(true);
}
static var symbolName = "RectBorder";
static var symbolOwner = mx.skins.halo.RectBorder;
static var version = "2.0.1.78";
var borderCapColorName = "borderCapColor";
var shadowCapColorName = "shadowCapColor";
var colorList = {highlightColor:0, borderColor:0, buttonColor:0, shadowColor:0, borderCapColor:0, shadowCapColor:0};
var borderWidths = {none:0, solid:1, inset:2, outset:2, alert:3, dropDown:2, menuBorder:2, comboNonEdit:2};
static var classConstructed = classConstruct();
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}
Symbol 56 MovieClip [__Packages.mx.controls.Button] Frame 0
class mx.controls.Button extends mx.controls.SimpleButton
{
var initializing, labelPath, initIcon, getState, enabled, phase, idNames, __width, __height, setState, invalidate, iconName, refresh, createLabel, _iconLinkageName, removeIcons, hitArea_mc, createEmptyObject;
function Button () {
super();
}
function init(Void) {
super.init();
}
function draw() {
if (initializing) {
labelPath.visible = true;
}
super.draw();
if (initIcon != undefined) {
_setIcon(initIcon);
}
delete initIcon;
}
function onRelease(Void) {
super.onRelease();
}
function createChildren(Void) {
super.createChildren();
}
function setSkin(tag, linkageName, initobj) {
return(super.setSkin(tag, linkageName, initobj));
}
function viewSkin(varName) {
var _local3 = (getState() ? "true" : "false");
_local3 = _local3 + (enabled ? (phase) : "disabled");
super.viewSkin(varName, {styleName:this, borderStyle:_local3});
}
function invalidateStyle(c) {
labelPath.invalidateStyle(c);
super.invalidateStyle(c);
}
function setColor(c) {
var _local2 = 0;
while (_local2 < 8) {
this[idNames[_local2]].redraw(true);
_local2++;
}
}
function setEnabled(enable) {
labelPath.enabled = enable;
super.setEnabled(enable);
}
function calcSize(tag, ref) {
if ((__width == undefined) || (__height == undefined)) {
return(undefined);
}
if (tag < 7) {
ref.setSize(__width, __height, true);
}
}
function size(Void) {
setState(getState());
setHitArea(__width, __height);
var _local3 = 0;
while (_local3 < 8) {
var _local4 = idNames[_local3];
if (typeof(this[_local4]) == "movieclip") {
this[_local4].setSize(__width, __height, true);
}
_local3++;
}
super.size();
}
function set labelPlacement(val) {
__labelPlacement = val;
invalidate();
//return(labelPlacement);
}
function get labelPlacement() {
return(__labelPlacement);
}
function getLabelPlacement(Void) {
return(__labelPlacement);
}
function setLabelPlacement(val) {
__labelPlacement = val;
invalidate();
}
function getBtnOffset(Void) {
if (getState()) {
var _local2 = btnOffset;
} else if (phase == "down") {
var _local2 = btnOffset;
} else {
var _local2 = 0;
}
return(_local2);
}
function setView(offset) {
var _local16 = (offset ? (btnOffset) : 0);
var _local12 = getLabelPlacement();
var _local7 = 0;
var _local6 = 0;
var _local9 = 0;
var _local8 = 0;
var _local5 = 0;
var _local4 = 0;
var _local3 = labelPath;
var _local2 = iconName;
var _local15 = _local3.textWidth;
var _local14 = _local3.textHeight;
var _local10 = (__width - borderW) - borderW;
var _local11 = (__height - borderW) - borderW;
if (_local2 != undefined) {
_local7 = _local2._width;
_local6 = _local2._height;
}
if ((_local12 == "left") || (_local12 == "right")) {
if (_local3 != undefined) {
_local9 = Math.min(_local10 - _local7, _local15 + 5);
_local3._width = _local9;
_local8 = Math.min(_local11, _local14 + 5);
_local3._height = _local8;
}
if (_local12 == "right") {
_local5 = _local7;
if (centerContent) {
_local5 = _local5 + (((_local10 - _local9) - _local7) / 2);
}
_local2._x = _local5 - _local7;
} else {
_local5 = (_local10 - _local9) - _local7;
if (centerContent) {
_local5 = _local5 / 2;
}
_local2._x = _local5 + _local9;
}
_local4 = 0;
_local2._y = _local4;
if (centerContent) {
_local2._y = (_local11 - _local6) / 2;
_local4 = (_local11 - _local8) / 2;
}
if (!centerContent) {
_local2._y = _local2._y + Math.max(0, (_local8 - _local6) / 2);
}
} else {
if (_local3 != undefined) {
_local9 = Math.min(_local10, _local15 + 5);
_local3._width = _local9;
_local8 = Math.min(_local11 - _local6, _local14 + 5);
_local3._height = _local8;
}
_local5 = (_local10 - _local9) / 2;
_local2._x = (_local10 - _local7) / 2;
if (_local12 == "top") {
_local4 = (_local11 - _local8) - _local6;
if (centerContent) {
_local4 = _local4 / 2;
}
_local2._y = _local4 + _local8;
} else {
_local4 = _local6;
if (centerContent) {
_local4 = _local4 + (((_local11 - _local8) - _local6) / 2);
}
_local2._y = _local4 - _local6;
}
}
var _local13 = borderW + _local16;
_local3._x = _local5 + _local13;
_local3._y = _local4 + _local13;
_local2._x = _local2._x + _local13;
_local2._y = _local2._y + _local13;
}
function set label(lbl) {
setLabel(lbl);
//return(label);
}
function setLabel(label) {
if (label == "") {
labelPath.removeTextField();
refresh();
return(undefined);
}
if (labelPath == undefined) {
var _local2 = createLabel("labelPath", 200, label);
_local2._width = _local2.textWidth + 5;
_local2._height = _local2.textHeight + 5;
if (initializing) {
_local2.visible = false;
}
} else {
delete labelPath.__text;
labelPath.text = label;
refresh();
}
}
function getLabel(Void) {
return(((labelPath.__text != undefined) ? (labelPath.__text) : (labelPath.text)));
}
function get label() {
return(getLabel());
}
function _getIcon(Void) {
return(_iconLinkageName);
}
function get icon() {
if (initializing) {
return(initIcon);
}
return(_iconLinkageName);
}
function _setIcon(linkage) {
if (initializing) {
if (linkage == "") {
return(undefined);
}
initIcon = linkage;
} else {
if (linkage == "") {
removeIcons();
return(undefined);
}
super.changeIcon(0, linkage);
super.changeIcon(1, linkage);
super.changeIcon(3, linkage);
super.changeIcon(4, linkage);
super.changeIcon(5, linkage);
_iconLinkageName = linkage;
refresh();
}
}
function set icon(linkage) {
_setIcon(linkage);
//return(icon);
}
function setHitArea(w, h) {
if (hitArea_mc == undefined) {
createEmptyObject("hitArea_mc", 100);
}
var _local2 = hitArea_mc;
_local2.clear();
_local2.beginFill(16711680);
_local2.drawRect(0, 0, w, h);
_local2.endFill();
_local2.setVisible(false);
}
static var symbolName = "Button";
static var symbolOwner = mx.controls.Button;
var className = "Button";
static var version = "2.0.1.78";
var btnOffset = 0;
var _color = "buttonColor";
var __label = "default value";
var __labelPlacement = "right";
var falseUpSkin = "ButtonSkin";
var falseDownSkin = "ButtonSkin";
var falseOverSkin = "ButtonSkin";
var falseDisabledSkin = "ButtonSkin";
var trueUpSkin = "ButtonSkin";
var trueDownSkin = "ButtonSkin";
var trueOverSkin = "ButtonSkin";
var trueDisabledSkin = "ButtonSkin";
var falseUpIcon = "";
var falseDownIcon = "";
var falseOverIcon = "";
var falseDisabledIcon = "";
var trueUpIcon = "";
var trueDownIcon = "";
var trueOverIcon = "";
var trueDisabledIcon = "";
var clipParameters = {labelPlacement:1, icon:1, toggle:1, selected:1, label:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.Button.prototype.clipParameters, mx.controls.SimpleButton.prototype.clipParameters);
var centerContent = true;
var borderW = 1;
}
Symbol 71 MovieClip [__Packages.mx.skins.halo.ButtonSkin] Frame 0
class mx.skins.halo.ButtonSkin extends mx.skins.RectBorder
{
var __get__width, __get__height, getStyle, _parent, clear, drawRoundRect, __get__x, __get__y;
function ButtonSkin () {
super();
}
function init() {
super.init();
}
function size() {
drawHaloRect(__get__width(), __get__height());
}
function drawHaloRect(w, h) {
var _local6 = getStyle("borderStyle");
var _local4 = getStyle("themeColor");
var _local5 = _parent.emphasized;
clear();
switch (_local6) {
case "falseup" :
if (_local5) {
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 75);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 85, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 75);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
} else {
drawRoundRect(0, 0, w, h, 5, 9542041, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, [13291985, 16250871], 100, 0, "radial");
drawRoundRect(2, 2, w - 4, h - 4, 3, [9542041, 13818586], 100, 0, "radial");
drawRoundRect(3, 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(3, 4, w - 6, h - 7, 2, 16316664, 100);
}
break;
case "falsedown" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, _local4, 20);
break;
case "falserollover" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 50);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 50);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
break;
case "falsedisabled" :
drawRoundRect(0, 0, w, h, 5, 13159628, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, 15921906, 100);
drawRoundRect(2, 2, w - 4, h - 4, 3, 13949401, 100);
drawRoundRect(3, 3, w - 6, h - 6, 2, 15921906, 100);
break;
case "trueup" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 10066329, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16250871, 100);
break;
case "truedown" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 10066329, 100);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16579836], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 50);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, _local4, 20);
break;
case "truerollover" :
drawRoundRect(__get__x(), __get__y(), w, h, 5, 9542041, 100);
drawRoundRect(__get__x(), __get__y(), w, h, 5, _local4, 50);
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, [3355443, 16777215], 100, 0, "radial");
drawRoundRect(__get__x() + 1, __get__y() + 1, w - 2, h - 2, 4, _local4, 40);
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, [0, 14342874], 100, 0, "radial");
drawRoundRect(__get__x() + 2, __get__y() + 2, w - 4, h - 4, 3, _local4, 40);
drawRoundRect(__get__x() + 3, __get__y() + 3, w - 6, h - 6, 2, 16777215, 100);
drawRoundRect(__get__x() + 3, __get__y() + 4, w - 6, h - 7, 2, 16316664, 100);
break;
case "truedisabled" :
drawRoundRect(0, 0, w, h, 5, 13159628, 100);
drawRoundRect(1, 1, w - 2, h - 2, 4, 15921906, 100);
drawRoundRect(2, 2, w - 4, h - 4, 3, 13949401, 100);
drawRoundRect(3, 3, w - 6, h - 6, 2, 15921906, 100);
}
}
static function classConstruct() {
mx.core.ext.UIObjectExtensions.Extensions();
_global.skinRegistry.ButtonSkin = true;
return(true);
}
static var symbolName = "ButtonSkin";
static var symbolOwner = mx.skins.halo.ButtonSkin;
var className = "ButtonSkin";
var backgroundColorName = "buttonColor";
static var classConstructed = classConstruct();
static var UIObjectExtensionsDependency = mx.core.ext.UIObjectExtensions;
}
Symbol 222 MovieClip [__Packages.mx.controls.RadioButton] Frame 0
class mx.controls.RadioButton extends mx.controls.Button
{
var setToggle, __value, selected, releaseFocus, phase, dispatchEvent, _parent, __data, setState, __state, getFocusManager;
function RadioButton () {
super();
}
function init(Void) {
setToggle(__toggle);
__value = this;
super.init();
}
function size(Void) {
super.size();
}
function onRelease() {
if (selected) {
return(undefined);
}
releaseFocus();
phase = "up";
setSelected(true);
dispatchEvent({type:"click"});
_parent[__groupName].dispatchEvent({type:"click"});
}
function setData(val) {
__data = val;
}
function set data(val) {
__data = val;
//return(data);
}
function getData(val) {
return(__data);
}
function get data() {
return(__data);
}
function onUnload() {
if (_parent[__groupName].selectedRadio == this) {
_parent[__groupName].selectedRadio = undefined;
}
_parent[__groupName].radioList[indexNumber] = null;
delete _parent[__groupName].radioList[indexNumber];
}
function setSelected(val) {
var _local2 = _parent[__groupName];
var _local4 = _local2.selectedRadio.__width;
var _local5 = _local2.selectedRadio.__height;
if (val) {
_local2.selectedRadio.setState(false);
_local2.selectedRadio = this;
} else if (_local2.selectedRadio == this) {
_local2.selectedRadio.setState(false);
_local2.selectedRadio = undefined;
}
setState(val);
}
function deleteGroupObj(groupName) {
delete _parent[groupName];
}
function getGroupName() {
return(__groupName);
}
function get groupName() {
return(__groupName);
}
function setGroupName(groupName) {
if ((groupName == undefined) || (groupName == "")) {
return(undefined);
}
delete _parent[__groupName].radioList[__data];
addToGroup(groupName);
__groupName = groupName;
}
function set groupName(groupName) {
setGroupName(groupName);
//return(this.groupName);
}
function addToGroup(groupName) {
if ((groupName == "") || (groupName == undefined)) {
return(undefined);
}
var _local2 = _parent[groupName];
if (_local2 == undefined) {
_local2 = (_parent[groupName] = new mx.controls.RadioButtonGroup());
_local2.__groupName = groupName;
}
_local2.addInstance(this);
if (__state) {
_local2.selectedRadio.setState(false);
_local2.selectedRadio = this;
}
}
function get emphasized() {
return(undefined);
}
function keyDown(e) {
switch (e.code) {
case 40 :
setNext();
break;
case 38 :
setPrev();
break;
case 37 :
setPrev();
break;
case 39 :
setNext();
}
}
function setNext() {
var _local2 = _parent[groupName];
if ((_local2.selectedRadio.indexNumber + 1) == _local2.radioList.length) {
return(undefined);
}
var _local4 = (_local2.selectedRadio ? (_local2.selectedRadio.indexNumber) : -1);
var _local3 = 1;
while (_local3 < _local2.radioList.length) {
if ((_local2.radioList[_local4 + _local3] != undefined) && (_local2.radioList[_local4 + _local3].enabled)) {
var _local5 = getFocusManager();
_local2.radioList[_local4 + _local3].selected = true;
_local5.setFocus(_local2.radioList[_local2.selectedRadio.indexNumber]);
_local2.dispatchEvent({type:"click"});
break;
}
_local3++;
}
}
function setPrev() {
var _local2 = _parent[groupName];
if (_local2.selectedRadio.indexNumber == 0) {
return(undefined);
}
var _local4 = (_local2.selectedRadio ? (_local2.selectedRadio.indexNumber) : 1);
var _local3 = 1;
while (_local3 < _local2.radioList.length) {
if ((_local2.radioList[_local4 - _local3] != undefined) && (_local2.radioList[_local4 - _local3].enabled)) {
var _local5 = getFocusManager();
_local2.radioList[_local4 - _local3].selected = true;
_local5.setFocus(_local2.radioList[_local2.selectedRadio.indexNumber]);
_local2.dispatchEvent({type:"click"});
break;
}
_local3++;
}
}
function set toggle(v) {
//return(toggle);
}
function get toggle() {
}
function set icon(v) {
//return(icon);
}
function get icon() {
}
static var symbolName = "RadioButton";
static var symbolOwner = mx.controls.RadioButton;
static var version = "2.0.1.78";
var className = "RadioButton";
var btnOffset = 0;
var __toggle = true;
var __label = "Radio Button";
var __labelPlacement = "right";
var ignoreClassStyleDeclaration = {Button:1};
var __groupName = "radioGroup";
var indexNumber = 0;
var offset = false;
var falseUpSkin = "";
var falseDownSkin = "";
var falseOverSkin = "";
var falseDisabledSkin = "";
var trueUpSkin = "";
var trueDownSkin = "";
var trueOverSkin = "";
var trueDisabledSkin = "";
var falseUpIcon = "RadioFalseUp";
var falseDownIcon = "RadioFalseDown";
var falseOverIcon = "RadioFalseOver";
var falseDisabledIcon = "RadioFalseDisabled";
var trueUpIcon = "RadioTrueUp";
var trueDownIcon = "";
var trueOverIcon = "";
var trueDisabledIcon = "RadioTrueDisabled";
var centerContent = false;
var borderW = 0;
var clipParameters = {labelPlacement:1, data:1, label:1, groupName:1, selected:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.RadioButton.prototype.clipParameters, mx.controls.Button.prototype.clipParameters);
}
Symbol 239 MovieClip [__Packages.mx.controls.RadioButtonGroup] Frame 0
class mx.controls.RadioButtonGroup
{
var radioList, __groupName, selectedRadio;
function RadioButtonGroup () {
init();
mx.events.UIEventDispatcher.initialize(this);
}
function init(Void) {
radioList = new Array();
}
function setGroupName(groupName) {
if ((groupName == undefined) || (groupName == "")) {
return(undefined);
}
var _local6 = __groupName;
_parent[groupName] = this;
for (var _local5 in radioList) {
radioList[_local5].groupName = groupName;
var _local3 = radioList[_local5];
}
_local3.deleteGroupObj(_local6);
}
function getGroupName() {
return(__groupName);
}
function addInstance(instance) {
instance.indexNumber = indexNumber++;
radioList.push(instance);
}
function getValue() {
if (selectedRadio.data == "") {
return(selectedRadio.label);
}
return(selectedRadio.__data);
}
function getLabelPlacement() {
for (var _local3 in radioList) {
var _local2 = radioList[_local3].getLabelPlacement();
}
return(_local2);
}
function setLabelPlacement(pos) {
for (var _local3 in radioList) {
radioList[_local3].setLabelPlacement(pos);
}
}
function setEnabled(val) {
for (var _local3 in radioList) {
radioList[_local3].enabled = val;
}
}
function setSize(val, val1) {
for (var _local3 in radioList) {
radioList[_local3].setSize(val, val1);
}
}
function getEnabled() {
for (var _local4 in radioList) {
var _local2 = radioList[_local4].enabled;
var _local3 = t + (_local2 + 0);
}
if (_local3 == radioList.length) {
return(true);
}
if (_local3 == 0) {
return(false);
}
}
function setStyle(name, val) {
for (var _local4 in radioList) {
radioList[_local4].setStyle(name, val);
}
}
function setInstance(val) {
for (var _local3 in radioList) {
if (radioList[_local3] == val) {
radioList[_local3].selected = true;
}
}
}
function getInstance() {
return(selectedRadio);
}
function setValue(val) {
for (var _local4 in radioList) {
if ((radioList[_local4].__data == val) || (radioList[_local4].label == val)) {
var _local2 = _local4;
break;
}
}
if (_local2 != undefined) {
selectedRadio.setState(false);
selectedRadio.hitArea_mc._height = selectedRadio.__height;
selectedRadio.hitArea_mc._width = selectedRadio.__width;
selectedRadio = radioList[_local2];
selectedRadio.setState(true);
selectedRadio.hitArea_mc._height = (selectedRadio.hitArea_mc._width = 0);
}
}
function set groupName(groupName) {
if ((groupName == undefined) || (groupName == "")) {
return;
}
var _local6 = __groupName;
_parent[groupName] = this;
for (var _local5 in radioList) {
radioList[_local5].groupName = groupName;
var _local3 = radioList[_local5];
}
_local3.deleteGroupObj(_local6);
//return(this.groupName);
}
function get groupName() {
return(__groupName);
}
function set selectedData(val) {
for (var _local4 in radioList) {
if ((radioList[_local4].__data == val) || (radioList[_local4].label == val)) {
var _local2 = _local4;
break;
}
}
if (_local2 != undefined) {
selectedRadio.setState(false);
selectedRadio = radioList[_local2];
selectedRadio.setState(true);
}
//return(selectedData);
}
function get selectedData() {
if ((selectedRadio.data == "") || (selectedRadio.data == undefined)) {
return(selectedRadio.label);
}
return(selectedRadio.__data);
}
function get selection() {
return(selectedRadio);
}
function set selection(val) {
for (var _local3 in radioList) {
if (radioList[_local3] == val) {
radioList[_local3].selected = true;
}
}
//return(selection);
}
function set labelPlacement(pos) {
for (var _local3 in radioList) {
radioList[_local3].setLabelPlacement(pos);
}
//return(labelPlacement);
}
function get labelPlacement() {
for (var _local3 in radioList) {
var _local2 = radioList[_local3].getLabelPlacement();
}
return(_local2);
}
function set enabled(val) {
for (var _local3 in radioList) {
radioList[_local3].enabled = val;
}
//return(enabled);
}
function get enabled() {
var _local2 = 0;
for (var _local3 in radioList) {
_local2 = _local2 + radioList[_local3].enabled;
}
if (_local2 == 0) {
return(false);
}
if (_local2 == radioList.length) {
return(true);
}
}
static var symbolName = "RadioButtonGroup";
static var symbolOwner = mx.controls.RadioButtonGroup;
static var version = "2.0.1.78";
var className = "RadioButtonGroup";
var indexNumber = 0;
}
Symbol 291 MovieClip [__Packages.mx.controls.listclasses.DataSelector] Frame 0
class mx.controls.listclasses.DataSelector extends Object
{
var __vPosition, setVPosition, __dataProvider, enabled, lastSelID, lastSelected, selected, invUpdateControl, invalidate, multipleSelection, updateControl, __rowCount, rows;
function DataSelector () {
super();
}
static function Initialize(obj) {
var _local3 = mixinProps;
var _local4 = _local3.length;
obj = obj.prototype;
var _local1 = 0;
while (_local1 < _local4) {
obj[_local3[_local1]] = mixins[_local3[_local1]];
_local1++;
}
mixins.createProp(obj, "dataProvider", true);
mixins.createProp(obj, "length", false);
mixins.createProp(obj, "value", false);
mixins.createProp(obj, "selectedIndex", true);
mixins.createProp(obj, "selectedIndices", true);
mixins.createProp(obj, "selectedItems", false);
mixins.createProp(obj, "selectedItem", true);
return(true);
}
function createProp(obj, propName, setter) {
var p = (propName.charAt(0).toUpperCase() + propName.substr(1));
var _local2 = null;
var _local4 = function (Void) {
return(this["get" + p]());
};
if (setter) {
_local2 = function (val) {
this["set" + p](val);
};
}
obj.addProperty(propName, _local4, _local2);
}
function setDataProvider(dP) {
if (__vPosition != 0) {
setVPosition(0);
}
clearSelected();
__dataProvider.removeEventListener(this);
__dataProvider = dP;
dP.addEventListener("modelChanged", this);
dP.addView(this);
modelChanged({eventName:"updateAll"});
}
function getDataProvider(Void) {
return(__dataProvider);
}
function addItemAt(index, label, data) {
if ((index < 0) || (!enabled)) {
return(undefined);
}
var _local2 = __dataProvider;
if (_local2 == undefined) {
_local2 = (__dataProvider = new Array());
_local2.addEventListener("modelChanged", this);
index = 0;
}
if ((typeof(label) == "object") || (typeof(_local2.getItemAt(0)) == "string")) {
_local2.addItemAt(index, label);
} else {
_local2.addItemAt(index, {label:label, data:data});
}
}
function addItem(label, data) {
addItemAt(__dataProvider.length, label, data);
}
function removeItemAt(index) {
return(__dataProvider.removeItemAt(index));
}
function removeAll(Void) {
__dataProvider.removeAll();
}
function replaceItemAt(index, newLabel, newData) {
if (typeof(newLabel) == "object") {
__dataProvider.replaceItemAt(index, newLabel);
} else {
__dataProvider.replaceItemAt(index, {label:newLabel, data:newData});
}
}
function sortItemsBy(fieldName, order) {
lastSelID = __dataProvider.getItemID(lastSelected);
__dataProvider.sortItemsBy(fieldName, order);
}
function sortItems(compareFunc, order) {
lastSelID = __dataProvider.getItemID(lastSelected);
__dataProvider.sortItems(compareFunc, order);
}
function getLength(Void) {
return(__dataProvider.length);
}
function getItemAt(index) {
return(__dataProvider.getItemAt(index));
}
function modelChanged(eventObj) {
var _local3 = eventObj.firstItem;
var _local6 = eventObj.lastItem;
var _local7 = eventObj.eventName;
if (_local7 == undefined) {
_local7 = eventObj.event;
_local3 = eventObj.firstRow;
_local6 = eventObj.lastRow;
if (_local7 == "addRows") {
_local7 = (eventObj.eventName = "addItems");
} else if (_local7 == "deleteRows") {
_local7 = (eventObj.eventName = "removeItems");
} else if (_local7 == "updateRows") {
_local7 = (eventObj.eventName = "updateItems");
}
}
if (_local7 == "addItems") {
for (var _local2 in selected) {
var _local5 = selected[_local2];
if ((_local5 != undefined) && (_local5 >= _local3)) {
selected[_local2] = selected[_local2] + ((_local6 - _local3) + 1);
}
}
} else if (_local7 == "removeItems") {
if (__dataProvider.length == 0) {
delete selected;
} else {
var _local9 = eventObj.removedIDs;
var _local10 = _local9.length;
var _local2 = 0;
while (_local2 < _local10) {
var _local4 = _local9[_local2];
if (selected[_local4] != undefined) {
delete selected[_local4];
}
_local2++;
}
for (_local2 in selected) {
if (selected[_local2] >= _local3) {
selected[_local2] = selected[_local2] - ((_local6 - _local3) + 1);
}
}
}
} else if (_local7 == "sort") {
if (typeof(__dataProvider.getItemAt(0)) != "object") {
delete selected;
} else {
var _local10 = __dataProvider.length;
var _local2 = 0;
while (_local2 < _local10) {
if (isSelected(_local2)) {
var _local4 = __dataProvider.getItemID(_local2);
if (_local4 == lastSelID) {
lastSelected = _local2;
}
selected[_local4] = _local2;
}
_local2++;
}
}
} else if (_local7 == "filterModel") {
setVPosition(0);
}
invUpdateControl = true;
invalidate();
}
function getValue(Void) {
var _local2 = getSelectedItem();
if (typeof(_local2) != "object") {
return(_local2);
}
return(((_local2.data == undefined) ? (_local2.label) : (_local2.data)));
}
function getSelectedIndex(Void) {
for (var _local3 in selected) {
var _local2 = selected[_local3];
if (_local2 != undefined) {
return(_local2);
}
}
}
function setSelectedIndex(index) {
if (((index >= 0) && (index < __dataProvider.length)) && (enabled)) {
delete selected;
selectItem(index, true);
lastSelected = index;
invUpdateControl = true;
invalidate();
} else if (index == undefined) {
clearSelected();
}
}
function getSelectedIndices(Void) {
var _local2 = new Array();
for (var _local3 in selected) {
_local2.push(selected[_local3]);
}
_local2.reverse();
return(((_local2.length > 0) ? (_local2) : undefined));
}
function setSelectedIndices(indexArray) {
if (multipleSelection != true) {
return(undefined);
}
delete selected;
var _local3 = 0;
while (_local3 < indexArray.length) {
var _local2 = indexArray[_local3];
if ((_local2 >= 0) && (_local2 < __dataProvider.length)) {
selectItem(_local2, true);
}
_local3++;
}
invUpdateControl = true;
updateControl();
}
function getSelectedItems(Void) {
var _local3 = getSelectedIndices();
var _local4 = new Array();
var _local2 = 0;
while (_local2 < _local3.length) {
_local4.push(getItemAt(_local3[_local2]));
_local2++;
}
return(((_local4.length > 0) ? (_local4) : undefined));
}
function getSelectedItem(Void) {
return(__dataProvider.getItemAt(getSelectedIndex()));
}
function selectItem(index, selectedFlag) {
if (selected == undefined) {
selected = new Object();
}
var _local2 = __dataProvider.getItemID(index);
if (_local2 == undefined) {
return(undefined);
}
if (selectedFlag && (!isSelected(index))) {
selected[_local2] = index;
} else if (!selectedFlag) {
delete selected[_local2];
}
}
function isSelected(index) {
var _local2 = __dataProvider.getItemID(index);
if (_local2 == undefined) {
return(false);
}
return(selected[_local2] != undefined);
}
function clearSelected(transition) {
var _local3 = 0;
for (var _local4 in selected) {
var _local2 = selected[_local4];
if (((_local2 != undefined) && (__vPosition <= _local2)) && (_local2 < (__vPosition + __rowCount))) {
rows[_local2 - __vPosition].drawRow(rows[_local2 - __vPosition].item, "normal", transition && ((_local3 % 3) == 0));
}
_local3++;
}
delete selected;
}
static var mixins = new mx.controls.listclasses.DataSelector();
static var mixinProps = ["setDataProvider", "getDataProvider", "addItem", "addItemAt", "removeAll", "removeItemAt", "replaceItemAt", "sortItemsBy", "sortItems", "getLength", "getItemAt", "modelChanged", "calcPreferredWidthFromData", "calcPreferredHeightFromData", "getValue", "getSelectedIndex", "getSelectedItem", "getSelectedIndices", "getSelectedItems", "selectItem", "isSelected", "clearSelected", "setSelectedIndex", "setSelectedIndices"];
}
Symbol 292 MovieClip [__Packages.mx.controls.ComboBase] Frame 0
class mx.controls.ComboBase extends mx.core.UIComponent
{
var getValue, tabEnabled, tabChildren, boundingBox_mc, downArrow_mc, createClassObject, onDownArrow, border_mc, __border, text_mc, focusTextField, __width, __height, getFocusManager, __get__height, height, _parent;
function ComboBase () {
super();
getValue = _getValue;
}
function init() {
super.init();
tabEnabled = !_editable;
tabChildren = _editable;
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
function createChildren() {
var _local3 = new Object();
_local3.styleName = this;
if (downArrow_mc == undefined) {
_local3.falseUpSkin = downArrowUpName;
_local3.falseOverSkin = downArrowOverName;
_local3.falseDownSkin = downArrowDownName;
_local3.falseDisabledSkin = downArrowDisabledName;
_local3.validateNow = true;
_local3.tabEnabled = false;
createClassObject(mx.controls.SimpleButton, "downArrow_mc", 19, _local3);
downArrow_mc.buttonDownHandler = onDownArrow;
downArrow_mc.useHandCursor = false;
downArrow_mc.onPressWas = downArrow_mc.onPress;
downArrow_mc.onPress = function () {
this.trackAsMenuWas = this.trackAsMenu;
this.trackAsMenu = true;
if (!this._editable) {
this._parent.text_mc.trackAsMenu = this.trackAsMenu;
}
this.onPressWas();
};
downArrow_mc.onDragOutWas = downArrow_mc.onDragOut;
downArrow_mc.onDragOut = function () {
this.trackAsMenuWas = this.trackAsMenu;
this.trackAsMenu = false;
if (!this._editable) {
this._parent.text_mc.trackAsMenu = this.trackAsMenu;
}
this.onDragOutWas();
};
downArrow_mc.onDragOverWas = downArrow_mc.onDragOver;
downArrow_mc.onDragOver = function () {
this.trackAsMenu = this.trackAsMenuWas;
if (!this._editable) {
this._parent.text_mc.trackAsMenu = this.trackAsMenu;
}
this.onDragOverWas();
};
}
if (border_mc == undefined) {
_local3.tabEnabled = false;
createClassObject(_global.styles.rectBorderClass, "border_mc", 17, _local3);
border_mc.move(0, 0);
__border = border_mc;
}
_local3.borderStyle = "none";
_local3.readOnly = !_editable;
_local3.tabEnabled = _editable;
if (text_mc == undefined) {
createClassObject(mx.controls.TextInput, "text_mc", 18, _local3);
text_mc.move(0, 0);
text_mc.addEnterEvents();
text_mc.enterHandler = _enterHandler;
text_mc.changeHandler = _changeHandler;
text_mc.oldOnSetFocus = text_mc.onSetFocus;
text_mc.onSetFocus = function () {
this.oldOnSetFocus();
this._parent.onSetFocus();
};
text_mc.__set__restrict("^\x1B");
text_mc.oldOnKillFocus = text_mc.onKillFocus;
text_mc.onKillFocus = function (n) {
this.oldOnKillFocus(n);
this._parent.onKillFocus(n);
};
text_mc.drawFocus = function (b) {
this._parent.drawFocus(b);
};
delete text_mc.borderStyle;
}
focusTextField = text_mc;
text_mc.owner = this;
layoutChildren(__width, __height);
}
function onKillFocus() {
super.onKillFocus();
Key.removeListener(text_mc);
getFocusManager().defaultPushButtonEnabled = true;
}
function onSetFocus() {
super.onSetFocus();
getFocusManager().defaultPushButtonEnabled = false;
Key.addListener(text_mc);
}
function setFocus() {
if (_editable) {
Selection.setFocus(text_mc);
} else {
Selection.setFocus(this);
}
}
function setSize(w, h, noEvent) {
super.setSize(w, ((h == undefined) ? (__get__height()) : (h)), noEvent);
}
function setEnabled(enabledFlag) {
super.setEnabled(enabledFlag);
downArrow_mc.enabled = enabledFlag;
text_mc.enabled = enabledFlag;
}
function setEditable(e) {
_editable = e;
if (wrapDownArrowButton == false) {
if (e) {
border_mc.borderStyle = "inset";
text_mc.borderStyle = "inset";
symbolName = "ComboBox";
invalidateStyle();
} else {
border_mc.borderStyle = "comboNonEdit";
text_mc.borderStyle = "dropDown";
symbolName = "DropDown";
invalidateStyle();
}
}
tabEnabled = !e;
tabChildren = e;
text_mc.tabEnabled = e;
if (e) {
delete text_mc.onPress;
delete text_mc.onRelease;
delete text_mc.onReleaseOutside;
delete text_mc.onDragOut;
delete text_mc.onDragOver;
delete text_mc.onRollOver;
delete text_mc.onRollOut;
} else {
text_mc.onPress = function () {
this._parent.downArrow_mc.onPress();
};
text_mc.onRelease = function () {
this._parent.downArrow_mc.onRelease();
};
text_mc.onReleaseOutside = function () {
this._parent.downArrow_mc.onReleaseOutside();
};
text_mc.onDragOut = function () {
this._parent.downArrow_mc.onDragOut();
};
text_mc.onDragOver = function () {
this._parent.downArrow_mc.onDragOver();
};
text_mc.onRollOver = function () {
this._parent.downArrow_mc.onRollOver();
};
text_mc.onRollOut = function () {
this._parent.downArrow_mc.onRollOut();
};
text_mc.useHandCursor = false;
}
}
function get editable() {
return(_editable);
}
function set editable(e) {
setEditable(e);
//return(editable);
}
function _getValue() {
return((_editable ? (text_mc.getText()) : (DSgetValue())));
}
function draw() {
downArrow_mc.draw();
border_mc.draw();
}
function size() {
layoutChildren(__width, __height);
}
function setTheme(t) {
downArrowUpName = (t + "downArrow") + "Up_mc";
downArrowDownName = (t + "downArrow") + "Down_mc";
downArrowDisabledName = (t + "downArrow") + "Disabled_mc";
}
function get text() {
return(text_mc.getText());
}
function set text(t) {
setText(t);
//return(text);
}
function setText(t) {
text_mc.setText(t);
}
function get textField() {
return(text_mc);
}
function get restrict() {
return(text_mc.__get__restrict());
}
function set restrict(w) {
text_mc.__set__restrict(w);
//return(restrict);
}
function invalidateStyle() {
downArrow_mc.invalidateStyle();
text_mc.invalidateStyle();
border_mc.invalidateStyle();
}
function layoutChildren(w, h) {
if (downArrow_mc == undefined) {
return(undefined);
}
if (wrapDownArrowButton) {
var _local2 = border_mc.__get__borderMetrics();
downArrow_mc._width = (downArrow_mc._height = (h - _local2.top) - _local2.bottom);
downArrow_mc.move((w - downArrow_mc._width) - _local2.right, _local2.top);
border_mc.setSize(w, h);
text_mc.setSize(w - downArrow_mc._width, h);
} else {
downArrow_mc.move(w - downArrow_mc._width, 0);
border_mc.setSize(w - downArrow_mc.width, h);
text_mc.setSize(w - downArrow_mc._width, h);
downArrow_mc._height = height;
}
}
function _changeHandler(obj) {
}
function _enterHandler(obj) {
var _local2 = _parent;
obj.target = _local2;
_local2.dispatchEvent(obj);
}
function get tabIndex() {
return(text_mc.__get__tabIndex());
}
function set tabIndex(w) {
text_mc.__set__tabIndex(w);
//return(tabIndex);
}
static var mixIt1 = mx.controls.listclasses.DataSelector.Initialize(mx.controls.ComboBase);
static var symbolName = "ComboBase";
static var symbolOwner = mx.controls.ComboBase;
static var version = "2.0.1.78";
var _editable = false;
var downArrowUpName = "ScrollDownArrowUp";
var downArrowDownName = "ScrollDownArrowDown";
var downArrowOverName = "ScrollDownArrowOver";
var downArrowDisabledName = "ScrollDownArrowDisabled";
var wrapDownArrowButton = true;
var DSgetValue = mx.controls.listclasses.DataSelector.prototype.getValue;
var multipleSelection = false;
}
Symbol 293 MovieClip [__Packages.mx.controls.ComboBox] Frame 0
class mx.controls.ComboBox extends mx.controls.ComboBase
{
var __set__editable, editable, __labels, data, __dropdownWidth, __width, _editable, selectedIndex, __dropdown, dataProvider, __labelFunction, createObject, border_mc, mask, text_mc, dispatchValueChangedEvent, getValue, length, selectedItem, _y, isPressed, owner, __set__visible, height, localToGlobal, __selectedIndexOnDropdown, __get__height, getStyle, _parent, width, __dataProvider, selected, dispatchEvent;
function ComboBox () {
super();
}
function init() {
super.init();
}
function createChildren() {
super.createChildren();
__set__editable(editable);
if (__labels.length > 0) {
var _local6 = new Array();
var _local3 = 0;
while (_local3 < labels.length) {
_local6.addItem({label:labels[_local3], data:data[_local3]});
_local3++;
}
setDataProvider(_local6);
}
dropdownWidth = (((typeof(__dropdownWidth) == "number") ? (__dropdownWidth) : (__width)));
if (!_editable) {
selectedIndex = 0;
}
initializing = false;
}
function onKillFocus(n) {
if (_showingDropdown && (n != null)) {
displayDropdown(false);
}
super.onKillFocus();
}
function getDropdown() {
if (initializing) {
return(undefined);
}
if (!hasDropdown()) {
var _local3 = new Object();
_local3.styleName = this;
if (dropdownBorderStyle != undefined) {
_local3.borderStyle = dropdownBorderStyle;
}
_local3._visible = false;
__dropdown = mx.managers.PopUpManager.createPopUp(this, mx.controls.List, false, _local3, true);
__dropdown.scroller.mask.removeMovieClip();
if (dataProvider == undefined) {
dataProvider = new Array();
}
__dropdown.setDataProvider(dataProvider);
__dropdown.selectMultiple = false;
__dropdown.rowCount = __rowCount;
__dropdown.selectedIndex = selectedIndex;
__dropdown.vScrollPolicy = "auto";
__dropdown.labelField = __labelField;
__dropdown.labelFunction = __labelFunction;
__dropdown.owner = this;
__dropdown.changeHandler = _changeHandler;
__dropdown.scrollHandler = _scrollHandler;
__dropdown.itemRollOverHandler = _itemRollOverHandler;
__dropdown.itemRollOutHandler = _itemRollOutHandler;
__dropdown.resizeHandler = _resizeHandler;
__dropdown.mouseDownOutsideHandler = function (eventObj) {
var _local3 = this.owner;
var _local4 = new Object();
_local4.x = _local3._root._xmouse;
_local4.y = _local3._root._ymouse;
_local3._root.localToGlobal(_local4);
if (_local3.hitTest(_local4.x, _local4.y, false)) {
} else if ((!this.wrapDownArrowButton) && (this.owner.downArrow_mc.hitTest(_root._xmouse, _root._ymouse, false))) {
} else {
_local3.displayDropdown(false);
}
};
__dropdown.onTweenUpdate = function (v) {
this._y = v;
};
__dropdown.setSize(__dropdownWidth, __dropdown.height);
createObject("BoundingBox", "mask", 20);
mask._y = border_mc.height;
mask._width = __dropdownWidth;
mask._height = __dropdown.height;
mask._visible = false;
__dropdown.setMask(mask);
}
return(__dropdown);
}
function setSize(w, h, noEvent) {
super.setSize(w, h, noEvent);
__dropdownWidth = w;
__dropdown.rowHeight = h;
__dropdown.setSize(__dropdownWidth, __dropdown.height);
}
function setEditable(e) {
super.setEditable(e);
if (e) {
text_mc.setText("");
} else {
text_mc.setText(selectedLabel);
}
}
function get labels() {
return(__labels);
}
function set labels(lbls) {
__labels = lbls;
setDataProvider(lbls);
//return(labels);
}
function getLabelField() {
return(__labelField);
}
function get labelField() {
return(getLabelField());
}
function setLabelField(s) {
__dropdown.labelField = (__labelField = s);
text_mc.setText(selectedLabel);
}
function set labelField(s) {
setLabelField(s);
//return(labelField);
}
function getLabelFunction() {
return(__labelFunction);
}
function get labelFunction() {
return(getLabelFunction());
}
function set labelFunction(f) {
__dropdown.labelFunction = (__labelFunction = f);
text_mc.setText(selectedLabel);
//return(labelFunction);
}
function setSelectedItem(v) {
super.setSelectedItem(v);
__dropdown.selectedItem = v;
text_mc.setText(selectedLabel);
}
function setSelectedIndex(v) {
super.setSelectedIndex(v);
__dropdown.selectedIndex = v;
if (v != undefined) {
text_mc.setText(selectedLabel);
}
dispatchValueChangedEvent(getValue());
}
function setRowCount(count) {
if (isNaN(count)) {
return(undefined);
}
__rowCount = count;
__dropdown.setRowCount(count);
}
function get rowCount() {
return(Math.max(1, Math.min(length, __rowCount)));
}
function set rowCount(v) {
setRowCount(v);
//return(rowCount);
}
function setDropdownWidth(w) {
__dropdownWidth = w;
__dropdown.setSize(w, __dropdown.height);
}
function get dropdownWidth() {
return(__dropdownWidth);
}
function set dropdownWidth(v) {
setDropdownWidth(v);
//return(dropdownWidth);
}
function get dropdown() {
return(getDropdown());
}
function setDataProvider(dp) {
super.setDataProvider(dp);
__dropdown.setDataProvider(dp);
if (!_editable) {
selectedIndex = 0;
}
}
function open() {
displayDropdown(true);
}
function close() {
displayDropdown(false);
}
function get selectedLabel() {
var _local2 = selectedItem;
if (_local2 == undefined) {
return("");
}
if (labelFunction != undefined) {
return(labelFunction(_local2));
}
if (typeof(_local2) != "object") {
return(_local2);
}
if (_local2[labelField] != undefined) {
return(_local2[labelField]);
}
if (_local2.label != undefined) {
return(_local2.label);
}
var _local3 = " ";
for (var _local4 in _local2) {
if (_local4 != "__ID__") {
_local3 = (_local2[_local4] + ", ") + _local3;
}
}
_local3 = _local3.substring(0, _local3.length - 3);
return(_local3);
}
function hasDropdown() {
return((__dropdown != undefined) && (__dropdown.valueOf() != undefined));
}
function tweenEndShow(value) {
_y = value;
isPressed = true;
owner.dispatchEvent({type:"open", target:owner});
}
function tweenEndHide(value) {
_y = value;
__set__visible(false);
owner.dispatchEvent({type:"close", target:owner});
}
function displayDropdown(show) {
if (show == _showingDropdown) {
return(undefined);
}
var _local3 = new Object();
_local3.x = 0;
_local3.y = height;
localToGlobal(_local3);
if (show) {
__selectedIndexOnDropdown = selectedIndex;
getDropdown();
var _local2 = __dropdown;
_local2.isPressed = true;
_local2.rowCount = rowCount;
_local2.visible = show;
_local2._parent.globalToLocal(_local3);
_local2.onTweenEnd = tweenEndShow;
var _local5;
var _local8;
if ((_local3.y + _local2.height) > Stage.height) {
_local5 = _local3.y - __get__height();
_local8 = _local5 - _local2.height;
mask._y = -_local2.height;
} else {
_local5 = _local3.y - _local2.height;
_local8 = _local3.y;
mask._y = border_mc.height;
}
var _local6 = _local2.selectedIndex;
if (_local6 == undefined) {
_local6 = 0;
}
var _local4 = _local2.vPosition;
_local4 = _local6 - 1;
_local4 = Math.min(Math.max(_local4, 0), _local2.length - _local2.rowCount);
_local2.vPosition = _local4;
_local2.move(_local3.x, _local5);
_local2.tween = new mx.effects.Tween(__dropdown, _local5, _local8, getStyle("openDuration"));
} else {
__dropdown._parent.globalToLocal(_local3);
delete __dropdown.dragScrolling;
__dropdown.onTweenEnd = tweenEndHide;
__dropdown.tween = new mx.effects.Tween(__dropdown, __dropdown._y, _local3.y - __dropdown.height, getStyle("openDuration"));
}
var _local9 = getStyle("openEasing");
if (_local9 != undefined) {
__dropdown.tween.easingEquation = _local9;
}
_showingDropdown = show;
}
function onDownArrow() {
_parent.displayDropdown(!_parent._showingDropdown);
}
function keyDown(e) {
if (e.ctrlKey && (e.code == 40)) {
displayDropdown(true);
} else if (e.ctrlKey && (e.code == 38)) {
displayDropdown(false);
dispatchChangeEvent(undefined, __selectedIndexOnDropdown, selectedIndex);
} else if (e.code == 27) {
displayDropdown(false);
} else if (e.code == 13) {
if (_showingDropdown) {
selectedIndex = __dropdown.selectedIndex;
displayDropdown(false);
dispatchChangeEvent(undefined, __selectedIndexOnDropdown, selectedIndex);
}
} else if (((((!_editable) || (e.code == 38)) || (e.code == 40)) || (e.code == 33)) || (e.code == 34)) {
selectedIndex = 0 + selectedIndex;
bInKeyDown = true;
var _local3 = dropdown;
_local3.keyDown(e);
bInKeyDown = false;
selectedIndex = __dropdown.selectedIndex;
}
}
function invalidateStyle(styleProp) {
__dropdown.invalidateStyle(styleProp);
super.invalidateStyle(styleProp);
}
function changeTextStyleInChildren(styleProp) {
if (dropdown.stylecache != undefined) {
delete dropdown.stylecache[styleProp];
delete dropdown.stylecache.tf;
}
__dropdown.changeTextStyleInChildren(styleProp);
super.changeTextStyleInChildren(styleProp);
}
function changeColorStyleInChildren(sheetName, styleProp, newValue) {
if (dropdown.stylecache != undefined) {
delete dropdown.stylecache[styleProp];
delete dropdown.stylecache.tf;
}
__dropdown.changeColorStyleInChildren(sheetName, styleProp, newValue);
super.changeColorStyleInChildren(sheetName, styleProp, newValue);
}
function notifyStyleChangeInChildren(sheetName, styleProp, newValue) {
if (dropdown.stylecache != undefined) {
delete dropdown.stylecache[styleProp];
delete dropdown.stylecache.tf;
}
__dropdown.notifyStyleChangeInChildren(sheetName, styleProp, newValue);
super.notifyStyleChangeInChildren(sheetName, styleProp, newValue);
}
function onUnload() {
__dropdown.removeMovieClip();
}
function _resizeHandler() {
var _local2 = owner;
_local2.mask._width = width;
_local2.mask._height = height;
}
function _changeHandler(obj) {
var _local2 = owner;
var _local3 = _local2.selectedIndex;
obj.target = _local2;
if (this == owner.text_mc) {
_local2.selectedIndex = undefined;
_local2.dispatchChangeEvent(obj, -1, -2);
} else {
_local2.selectedIndex = selectedIndex;
if (!_local2._showingDropdown) {
_local2.dispatchChangeEvent(obj, _local3, _local2.selectedIndex);
} else if (!_local2.bInKeyDown) {
_local2.displayDropdown(false);
_local2.dispatchChangeEvent(obj, _local3, _local2.selectedIndex);
}
}
}
function _scrollHandler(obj) {
var _local2 = owner;
obj.target = _local2;
_local2.dispatchEvent(obj);
}
function _itemRollOverHandler(obj) {
var _local2 = owner;
obj.target = _local2;
_local2.dispatchEvent(obj);
}
function _itemRollOutHandler(obj) {
var _local2 = owner;
obj.target = _local2;
_local2.dispatchEvent(obj);
}
function modelChanged(eventObj) {
super.modelChanged(eventObj);
if (0 == __dataProvider.length) {
text_mc.setText("");
delete selected;
} else if ((__dataProvider.length == ((eventObj.lastItem - eventObj.firstItem) + 1)) && (eventObj.eventName == "addItems")) {
selectedIndex = 0;
}
}
function dispatchChangeEvent(obj, prevValue, newValue) {
var _local2;
if (prevValue != newValue) {
if ((obj != undefined) && (obj.type == "change")) {
_local2 = obj;
} else {
_local2 = {type:"change"};
}
dispatchEvent(_local2);
}
}
static var symbolName = "ComboBox";
static var symbolOwner = mx.controls.ComboBox;
static var version = "2.0.1.78";
var clipParameters = {labels:1, data:1, editable:1, rowCount:1, dropdownWidth:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.ComboBox.prototype.clipParameters, mx.controls.ComboBase.prototype.clipParameters);
var className = "ComboBox";
var _showingDropdown = false;
var __rowCount = 5;
var dropdownBorderStyle = undefined;
var initializing = true;
var __labelField = "label";
var bInKeyDown = false;
}
Symbol 374 MovieClip [__Packages.mx.managers.PopUpManager] Frame 0
class mx.managers.PopUpManager
{
var popUp, setSize, move, modalWindow, _parent, _name, _visible, owner;
function PopUpManager () {
}
static function createModalWindow(parent, o, broadcastOutsideEvents) {
var _local2 = parent.createChildAtDepth("Modal", mx.managers.DepthManager.kTopmost);
_local2.setDepthBelow(o);
o.modalID = _local2._name;
_local2._alpha = _global.style.modalTransparency;
_local2.tabEnabled = false;
if (broadcastOutsideEvents) {
_local2.onPress = mixins.onPress;
} else {
_local2.onPress = mixins.nullFunction;
}
_local2.onRelease = mixins.nullFunction;
_local2.resize = mixins.resize;
mx.managers.SystemManager.init();
mx.managers.SystemManager.addEventListener("resize", _local2);
_local2.resize();
_local2.useHandCursor = false;
_local2.popUp = o;
o.modalWindow = _local2;
o.deletePopUp = mixins.deletePopUp;
o.setVisible = mixins.setVisible;
o.getVisible = mixins.getVisible;
o.addProperty("visible", o.getVisible, o.setVisible);
}
static function createPopUp(parent, className, modal, initobj, broadcastOutsideEvents) {
if (mixins == undefined) {
mixins = new mx.managers.PopUpManager();
}
if (broadcastOutsideEvents == undefined) {
broadcastOutsideEvents = false;
}
var _local5 = parent._root;
if (_local5 == undefined) {
_local5 = _root;
}
while (parent != _local5) {
parent = parent._parent;
}
initobj.popUp = true;
var _local4 = parent.createClassChildAtDepth(className, ((broadcastOutsideEvents || (modal)) ? (mx.managers.DepthManager.kTopmost) : (mx.managers.DepthManager.kTop)), initobj);
var _local2 = _root;
var _local6 = _local2.focusManager != undefined;
while (_local2._parent != undefined) {
_local2 = _local2._parent._root;
if (_local2.focusManager != undefined) {
_local6 = true;
break;
}
}
if (_local6) {
_local4.createObject("FocusManager", "focusManager", -1);
if (_local4._visible == false) {
mx.managers.SystemManager.deactivate(_local4);
}
}
if (modal) {
createModalWindow(parent, _local4, broadcastOutsideEvents);
} else {
if (broadcastOutsideEvents) {
_local4.mouseListener = new Object();
_local4.mouseListener.owner = _local4;
_local4.mouseListener.onMouseDown = mixins.onMouseDown;
Mouse.addListener(_local4.mouseListener);
}
_local4.deletePopUp = mixins.deletePopUp;
}
return(_local4);
}
function onPress(Void) {
var _local3 = popUp._root;
if (_local3 == undefined) {
_local3 = _root;
}
if (popUp.hitTest(_local3._xmouse, _local3._ymouse, false)) {
return(undefined);
}
popUp.dispatchEvent({type:"mouseDownOutside"});
}
function nullFunction(Void) {
}
function resize(Void) {
var _local2 = mx.managers.SystemManager.__get__screen();
setSize(_local2.width, _local2.height);
move(_local2.x, _local2.y);
}
function deletePopUp(Void) {
if (modalWindow != undefined) {
_parent.destroyObject(modalWindow._name);
}
_parent.destroyObject(_name);
}
function setVisible(v, noEvent) {
super.setVisible(v, noEvent);
modalWindow._visible = v;
}
function getVisible(Void) {
return(_visible);
}
function onMouseDown(Void) {
var _local3 = owner._root;
if (_local3 == undefined) {
_local3 = _root;
}
var _local4 = new Object();
_local4.x = _local3._xmouse;
_local4.y = _local3._ymouse;
_local3.localToGlobal(_local4);
if (owner.hitTest(_local4.x, _local4.y, false)) {
} else {
owner.mouseDownOutsideHandler(owner);
}
}
static var version = "2.0.1.78";
static var mixins = undefined;
}
Symbol 375 MovieClip [__Packages.mx.core.View] Frame 0
class mx.core.View extends mx.core.UIComponent
{
var tabChildren, tabEnabled, boundingBox_mc, border_mc, __get__width, __get__height, __tabIndex, depth, createObject, createClassObject, loadExternal, destroyObject, createClassChildAtDepth, doLater;
function View () {
super();
}
function init() {
super.init();
tabChildren = true;
tabEnabled = false;
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
function size() {
border_mc.move(0, 0);
border_mc.setSize(__get__width(), __get__height());
doLayout();
}
function draw() {
size();
}
function get numChildren() {
var _local3 = childNameBase;
var _local2 = 0;
while (true) {
if (this[_local3 + _local2] == undefined) {
return(_local2);
}
_local2++;
}
}
function get tabIndex() {
return((tabEnabled ? (__tabIndex) : undefined));
}
function set tabIndex(n) {
__tabIndex = n;
//return(tabIndex);
}
function addLayoutObject(object) {
}
function createChild(className, instanceName, initProps) {
if (depth == undefined) {
depth = 1;
}
var _local2;
if (typeof(className) == "string") {
_local2 = createObject(className, instanceName, depth++, initProps);
} else {
_local2 = createClassObject(className, instanceName, depth++, initProps);
}
if (_local2 == undefined) {
_local2 = loadExternal(className, _loadExternalClass, instanceName, depth++, initProps);
} else {
this[childNameBase + numChildren] = _local2;
_local2._complete = true;
childLoaded(_local2);
}
addLayoutObject(_local2);
return(_local2);
}
function getChildAt(childIndex) {
return(this[childNameBase + childIndex]);
}
function destroyChildAt(childIndex) {
if (!((childIndex >= 0) && (childIndex < numChildren))) {
return(undefined);
}
var _local4 = childNameBase + childIndex;
var _local6 = numChildren;
var _local3;
for (_local3 in this) {
if (_local3 == _local4) {
_local4 = "";
destroyObject(_local3);
break;
}
}
var _local2 = Number(childIndex);
while (_local2 < (_local6 - 1)) {
this[childNameBase + _local2] = this[childNameBase + (_local2 + 1)];
_local2++;
}
delete this[childNameBase + (_local6 - 1)];
depth--;
}
function initLayout() {
if (!hasBeenLayedOut) {
doLayout();
}
}
function doLayout() {
hasBeenLayedOut = true;
}
function createChildren() {
if (border_mc == undefined) {
border_mc = createClassChildAtDepth(_global.styles.rectBorderClass, mx.managers.DepthManager.kBottom, {styleName:this});
}
doLater(this, "initLayout");
}
function convertToUIObject(obj) {
}
function childLoaded(obj) {
convertToUIObject(obj);
}
static function extension() {
mx.core.ExternalContent.enableExternalContent();
}
static var symbolName = "View";
static var symbolOwner = mx.core.View;
static var version = "2.0.1.78";
var className = "View";
static var childNameBase = "_child";
var hasBeenLayedOut = false;
var _loadExternalClass = "UIComponent";
}
Symbol 376 MovieClip [__Packages.mx.core.ExternalContent] Frame 0
class mx.core.ExternalContent
{
var createObject, numChildren, prepList, doLater, loadList, dispatchEvent, loadedList, childLoaded;
function ExternalContent () {
}
function loadExternal(url, placeholderClassName, instanceName, depth, initProps) {
var _local2;
_local2 = createObject(placeholderClassName, instanceName, depth, initProps);
this[mx.core.View.childNameBase + numChildren] = _local2;
if (prepList == undefined) {
prepList = new Object();
}
prepList[instanceName] = {obj:_local2, url:url, complete:false, initProps:initProps};
prepareToLoadMovie(_local2);
return(_local2);
}
function prepareToLoadMovie(obj) {
obj.unloadMovie();
doLater(this, "waitForUnload");
}
function waitForUnload() {
var _local3;
for (_local3 in prepList) {
var _local2 = prepList[_local3];
if (_local2.obj.getBytesTotal() == 0) {
if (loadList == undefined) {
loadList = new Object();
}
loadList[_local3] = _local2;
_local2.obj.loadMovie(_local2.url);
delete prepList[_local3];
doLater(this, "checkLoadProgress");
} else {
doLater(this, "waitForUnload");
}
}
}
function checkLoadProgress() {
var _local3;
for (_local3 in loadList) {
var _local2 = loadList[_local3];
_local2.loaded = _local2.obj.getBytesLoaded();
_local2.total = _local2.obj.getBytesTotal();
if (_local2.total > 0) {
_local2.obj._visible = false;
dispatchEvent({type:"progress", target:_local2.obj, current:_local2.loaded, total:_local2.total});
if (_local2.loaded == _local2.total) {
if (loadedList == undefined) {
loadedList = new Object();
}
loadedList[_local3] = _local2;
delete loadList[_local3];
doLater(this, "contentLoaded");
}
} else if (_local2.total == -1) {
if (_local2.failedOnce != undefined) {
_local2.failedOnce++;
if (_local2.failedOnce > 3) {
dispatchEvent({type:"complete", target:_local2.obj, current:_local2.loaded, total:_local2.total});
delete loadList[_local3];
}
} else {
_local2.failedOnce = 0;
}
}
doLater(this, "checkLoadProgress");
}
}
function contentLoaded() {
var _local4;
for (_local4 in loadedList) {
var _local2 = loadedList[_local4];
_local2.obj._visible = true;
_local2.obj._complete = true;
var _local3;
for (_local3 in _local2.initProps) {
_local2.obj[_local3] = _local2.initProps[_local3];
}
childLoaded(_local2.obj);
dispatchEvent({type:"complete", target:_local2.obj, current:_local2.loaded, total:_local2.total});
delete loadedList[_local4];
}
}
function convertToUIObject(obj) {
if (obj.setSize == undefined) {
var _local2 = mx.core.UIObject.prototype;
obj.addProperty("width", _local2.__get__width, null);
obj.addProperty("height", _local2.__get__height, null);
obj.addProperty("left", _local2.__get__left, null);
obj.addProperty("x", _local2.__get__x, null);
obj.addProperty("top", _local2.__get__top, null);
obj.addProperty("y", _local2.__get__y, null);
obj.addProperty("right", _local2.__get__right, null);
obj.addProperty("bottom", _local2.__get__bottom, null);
obj.addProperty("visible", _local2.__get__visible, _local2.__set__visible);
obj.move = mx.core.UIObject.prototype.move;
obj.setSize = mx.core.UIObject.prototype.setSize;
obj.size = mx.core.UIObject.prototype.size;
mx.events.UIEventDispatcher.initialize(obj);
}
}
static function enableExternalContent() {
}
static function classConstruct() {
var _local1 = mx.core.View.prototype;
var _local2 = mx.core.ExternalContent.prototype;
_local1.loadExternal = _local2.loadExternal;
_local1.prepareToLoadMovie = _local2.prepareToLoadMovie;
_local1.waitForUnload = _local2.waitForUnload;
_local1.checkLoadProgress = _local2.checkLoadProgress;
_local1.contentLoaded = _local2.contentLoaded;
_local1.convertToUIObject = _local2.convertToUIObject;
return(true);
}
static var classConstructed = classConstruct();
static var ViewDependency = mx.core.View;
}
Symbol 377 MovieClip [__Packages.mx.skins.CustomBorder] Frame 0
class mx.skins.CustomBorder extends mx.skins.Border
{
var __width, __height, l_mc, setSkin, minHeight, minWidth, m_mc, r_mc;
function CustomBorder () {
super();
}
function get width() {
return(__width);
}
function get height() {
return(__height);
}
function init(Void) {
super.init();
}
function createChildren(Void) {
}
function draw(Void) {
if (l_mc == undefined) {
var _local2 = setSkin(tagL, leftSkin);
if (horizontal) {
minHeight = l_mc._height;
minWidth = l_mc._width;
} else {
minHeight = l_mc._height;
minWidth = l_mc._width;
}
}
if (m_mc == undefined) {
setSkin(tagM, middleSkin);
if (horizontal) {
minHeight = m_mc._height;
minWidth = minWidth + m_mc._width;
} else {
minHeight = minHeight + m_mc._height;
minWidth = m_mc._width;
}
}
if (r_mc == undefined) {
setSkin(tagR, rightSkin);
if (horizontal) {
minHeight = r_mc._height;
minWidth = minWidth + r_mc._width;
} else {
minHeight = minHeight + r_mc._height;
minWidth = r_mc._width;
}
}
size();
}
function size(Void) {
l_mc.move(0, 0);
if (horizontal) {
r_mc.move(width - r_mc.width, 0);
m_mc.move(l_mc.width, 0);
m_mc.setSize(r_mc.x - m_mc.x, m_mc.height);
} else {
r_mc.move(0, height - r_mc.height, 0);
m_mc.move(0, l_mc.height);
m_mc.setSize(m_mc.width, r_mc.y - m_mc.y);
}
}
static var symbolName = "CustomBorder";
static var symbolOwner = mx.skins.CustomBorder;
static var version = "2.0.1.78";
var className = "CustomBorder";
static var tagL = 0;
static var tagM = 1;
static var tagR = 2;
var idNames = new Array("l_mc", "m_mc", "r_mc");
var leftSkin = "F3PieceLeft";
var middleSkin = "F3PieceMiddle";
var rightSkin = "F3PieceRight";
var horizontal = true;
}
Symbol 378 MovieClip [__Packages.mx.controls.scrollClasses.ScrollThumb] Frame 0
class mx.controls.scrollClasses.ScrollThumb extends mx.skins.CustomBorder
{
var useHandCursor, ymin, ymax, datamin, datamax, scrollMove, lastY, _ymouse, _y, _parent, onMouseMove, grip_mc, setSkin, gripSkin, __get__width, __get__height;
function ScrollThumb () {
super();
}
function createChildren(Void) {
super.createChildren();
useHandCursor = false;
}
function setRange(_ymin, _ymax, _datamin, _datamax) {
ymin = _ymin;
ymax = _ymax;
datamin = _datamin;
datamax = _datamax;
}
function dragThumb(Void) {
scrollMove = _ymouse - lastY;
scrollMove = scrollMove + _y;
if (scrollMove < ymin) {
scrollMove = ymin;
} else if (scrollMove > ymax) {
scrollMove = ymax;
}
_parent.isScrolling = true;
_y = scrollMove;
var _local2 = Math.round(((datamax - datamin) * (_y - ymin)) / (ymax - ymin)) + datamin;
_parent.scrollPosition = _local2;
_parent.dispatchScrollEvent("ThumbTrack");
updateAfterEvent();
}
function stopDragThumb(Void) {
_parent.isScrolling = false;
_parent.dispatchScrollEvent("ThumbPosition");
_parent.dispatchScrollChangedEvent();
delete onMouseMove;
}
function onPress(Void) {
_parent.pressFocus();
lastY = _ymouse;
onMouseMove = dragThumb;
super.onPress();
}
function onRelease(Void) {
_parent.releaseFocus();
stopDragThumb();
super.onRelease();
}
function onReleaseOutside(Void) {
_parent.releaseFocus();
stopDragThumb();
super.onReleaseOutside();
}
function draw() {
super.draw();
if (grip_mc == undefined) {
setSkin(3, gripSkin);
}
}
function size() {
super.size();
grip_mc.move((__get__width() - grip_mc.width) / 2, (__get__height() - grip_mc.height) / 2);
}
static var symbolOwner = mx.skins.CustomBorder.symbolOwner;
var className = "ScrollThumb";
var btnOffset = 0;
var horizontal = false;
var idNames = new Array("l_mc", "m_mc", "r_mc", "grip_mc");
}
Symbol 379 MovieClip [__Packages.mx.controls.scrollClasses.ScrollBar] Frame 0
class mx.controls.scrollClasses.ScrollBar extends mx.core.UIComponent
{
var isScrolling, scrollTrack_mc, scrollThumb_mc, __height, tabEnabled, focusEnabled, boundingBox_mc, setSkin, upArrow_mc, _minHeight, _minWidth, downArrow_mc, createObject, createClassObject, enabled, _height, dispatchEvent, minMode, maxMode, plusMode, minusMode, _parent, getStyle, scrolling, _ymouse;
function ScrollBar () {
super();
}
function get scrollPosition() {
return(_scrollPosition);
}
function set scrollPosition(pos) {
_scrollPosition = pos;
if (isScrolling != true) {
pos = Math.min(pos, maxPos);
pos = Math.max(pos, minPos);
var _local3 = (((pos - minPos) * (scrollTrack_mc.height - scrollThumb_mc._height)) / (maxPos - minPos)) + scrollTrack_mc.top;
scrollThumb_mc.move(0, _local3);
}
//return(scrollPosition);
}
function get pageScrollSize() {
return(largeScroll);
}
function set pageScrollSize(lScroll) {
largeScroll = lScroll;
//return(pageScrollSize);
}
function set lineScrollSize(sScroll) {
smallScroll = sScroll;
//return(lineScrollSize);
}
function get lineScrollSize() {
return(smallScroll);
}
function get virtualHeight() {
return(__height);
}
function init(Void) {
super.init();
_scrollPosition = 0;
tabEnabled = false;
focusEnabled = false;
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
}
function createChildren(Void) {
if (scrollTrack_mc == undefined) {
setSkin(skinIDTrack, scrollTrackName);
}
scrollTrack_mc.visible = false;
var _local3 = new Object();
_local3.enabled = false;
_local3.preset = mx.controls.SimpleButton.falseDisabled;
_local3.initProperties = 0;
_local3.autoRepeat = true;
_local3.tabEnabled = false;
var _local2;
if (upArrow_mc == undefined) {
_local2 = createButton(upArrowName, "upArrow_mc", skinIDUpArrow, _local3);
}
_local2.buttonDownHandler = onUpArrow;
_local2.clickHandler = onScrollChanged;
_minHeight = _local2.height;
_minWidth = _local2.width;
if (downArrow_mc == undefined) {
_local2 = createButton(downArrowName, "downArrow_mc", skinIDDownArrow, _local3);
}
_local2.buttonDownHandler = onDownArrow;
_local2.clickHandler = onScrollChanged;
_minHeight = _minHeight + _local2.height;
}
function createButton(linkageName, id, skinID, o) {
if (skinID == skinIDUpArrow) {
o.falseUpSkin = upArrowUpName;
o.falseDownSkin = upArrowDownName;
o.falseOverSkin = upArrowOverName;
} else {
o.falseUpSkin = downArrowUpName;
o.falseDownSkin = downArrowDownName;
o.falseOverSkin = downArrowOverName;
}
var _local3 = createObject(linkageName, id, skinID, o);
this[id].visible = false;
this[id].useHandCursor = false;
return(_local3);
}
function createThumb(Void) {
var _local2 = new Object();
_local2.validateNow = true;
_local2.tabEnabled = false;
_local2.leftSkin = thumbTopName;
_local2.middleSkin = thumbMiddleName;
_local2.rightSkin = thumbBottomName;
_local2.gripSkin = thumbGripName;
createClassObject(mx.controls.scrollClasses.ScrollThumb, "scrollThumb_mc", skinIDThumb, _local2);
}
function setScrollProperties(pSize, mnPos, mxPos, ls) {
var _local4;
var _local2 = scrollTrack_mc;
pageSize = pSize;
largeScroll = (((ls != undefined) && (ls > 0)) ? (ls) : (pSize));
minPos = Math.max(mnPos, 0);
maxPos = Math.max(mxPos, 0);
_scrollPosition = Math.max(minPos, _scrollPosition);
_scrollPosition = Math.min(maxPos, _scrollPosition);
if (((maxPos - minPos) > 0) && (enabled)) {
var _local5 = _scrollPosition;
if (!initializing) {
upArrow_mc.enabled = true;
downArrow_mc.enabled = true;
}
_local2.onPress = (_local2.onDragOver = startTrackScroller);
_local2.onRelease = releaseScrolling;
_local2.onDragOut = (_local2.stopScrolling = stopScrolling);
_local2.onReleaseOutside = releaseScrolling;
_local2.useHandCursor = false;
if (scrollThumb_mc == undefined) {
createThumb();
}
var _local3 = scrollThumb_mc;
if (scrollTrackOverName.length > 0) {
_local2.onRollOver = trackOver;
_local2.onRollOut = trackOut;
}
_local4 = (pageSize / ((maxPos - minPos) + pageSize)) * _local2.height;
if (_local4 < _local3.minHeight) {
if (_local2.height < _local3.minHeight) {
_local3.__set__visible(false);
} else {
_local4 = _local3.minHeight;
_local3.__set__visible(true);
_local3.setSize(_minWidth, _local3.minHeight + 0);
}
} else {
_local3.__set__visible(true);
_local3.setSize(_minWidth, _local4);
}
_local3.setRange(upArrow_mc.__get__height() + 0, (virtualHeight - downArrow_mc.__get__height()) - _local3.__get__height(), minPos, maxPos);
_local5 = Math.min(_local5, maxPos);
scrollPosition = (Math.max(_local5, minPos));
} else {
scrollThumb_mc.__set__visible(false);
if (!initializing) {
upArrow_mc.enabled = false;
downArrow_mc.enabled = false;
}
delete _local2.onPress;
delete _local2.onDragOver;
delete _local2.onRelease;
delete _local2.onDragOut;
delete _local2.onRollOver;
delete _local2.onRollOut;
delete _local2.onReleaseOutside;
}
if (initializing) {
scrollThumb_mc.__set__visible(false);
}
}
function setEnabled(enabledFlag) {
super.setEnabled(enabledFlag);
setScrollProperties(pageSize, minPos, maxPos, largeScroll);
}
function draw(Void) {
if (initializing) {
initializing = false;
scrollTrack_mc.visible = true;
upArrow_mc.__set__visible(true);
downArrow_mc.__set__visible(true);
}
size();
}
function size(Void) {
if (_height == 1) {
return(undefined);
}
if (upArrow_mc == undefined) {
return(undefined);
}
var _local3 = upArrow_mc.__get__height();
var _local2 = downArrow_mc.__get__height();
upArrow_mc.move(0, 0);
var _local4 = scrollTrack_mc;
_local4._y = _local3;
_local4._height = (virtualHeight - _local3) - _local2;
downArrow_mc.move(0, virtualHeight - _local2);
setScrollProperties(pageSize, minPos, maxPos, largeScroll);
}
function dispatchScrollEvent(detail) {
dispatchEvent({type:"scroll", detail:detail});
}
function isScrollBarKey(k) {
if (k == 36) {
if (scrollPosition != 0) {
scrollPosition = (0);
dispatchScrollEvent(minMode);
}
return(true);
}
if (k == 35) {
if (scrollPosition < maxPos) {
scrollPosition = (maxPos);
dispatchScrollEvent(maxMode);
}
return(true);
}
return(false);
}
function scrollIt(inc, mode) {
var _local3 = smallScroll;
if (inc != "Line") {
_local3 = ((largeScroll == 0) ? (pageSize) : (largeScroll));
}
var _local2 = _scrollPosition + (mode * _local3);
if (_local2 > maxPos) {
_local2 = maxPos;
} else if (_local2 < minPos) {
_local2 = minPos;
}
if (scrollPosition != _local2) {
scrollPosition = (_local2);
var _local4 = ((mode < 0) ? (minusMode) : (plusMode));
dispatchScrollEvent(inc + _local4);
}
}
function startTrackScroller(Void) {
_parent.pressFocus();
if (_parent.scrollTrackDownName.length > 0) {
if (_parent.scrollTrackDown_mc == undefined) {
_parent.setSkin(skinIDTrackDown, scrollTrackDownName);
} else {
_parent.scrollTrackDown_mc.visible = true;
}
}
_parent.trackScroller();
_parent.scrolling = setInterval(_parent, "scrollInterval", getStyle("repeatDelay"), "Page", -1);
}
function scrollInterval(inc, mode) {
clearInterval(scrolling);
if (inc == "Page") {
trackScroller();
} else {
scrollIt(inc, mode);
}
scrolling = setInterval(this, "scrollInterval", getStyle("repeatInterval"), inc, mode);
}
function trackScroller(Void) {
if ((scrollThumb_mc._y + scrollThumb_mc.__get__height()) < _ymouse) {
scrollIt("Page", 1);
} else if (scrollThumb_mc._y > _ymouse) {
scrollIt("Page", -1);
}
}
function dispatchScrollChangedEvent(Void) {
dispatchEvent({type:"scrollChanged"});
}
function stopScrolling(Void) {
clearInterval(_parent.scrolling);
_parent.scrollTrackDown_mc.visible = false;
}
function releaseScrolling(Void) {
_parent.releaseFocus();
stopScrolling();
_parent.dispatchScrollChangedEvent();
}
function trackOver(Void) {
if (_parent.scrollTrackOverName.length > 0) {
if (_parent.scrollTrackOver_mc == undefined) {
_parent.setSkin(skinIDTrackOver, scrollTrackOverName);
} else {
_parent.scrollTrackOver_mc.visible = true;
}
}
}
function trackOut(Void) {
_parent.scrollTrackOver_mc.visible = false;
}
function onUpArrow(Void) {
_parent.scrollIt("Line", -1);
}
function onDownArrow(Void) {
_parent.scrollIt("Line", 1);
}
function onScrollChanged(Void) {
_parent.dispatchScrollChangedEvent();
}
static var symbolOwner = mx.core.UIComponent;
var className = "ScrollBar";
var minPos = 0;
var maxPos = 0;
var pageSize = 0;
var largeScroll = 0;
var smallScroll = 1;
var _scrollPosition = 0;
var scrollTrackName = "ScrollTrack";
var scrollTrackOverName = "";
var scrollTrackDownName = "";
var upArrowName = "BtnUpArrow";
var upArrowUpName = "ScrollUpArrowUp";
var upArrowOverName = "ScrollUpArrowOver";
var upArrowDownName = "ScrollUpArrowDown";
var downArrowName = "BtnDownArrow";
var downArrowUpName = "ScrollDownArrowUp";
var downArrowOverName = "ScrollDownArrowOver";
var downArrowDownName = "ScrollDownArrowDown";
var thumbTopName = "ScrollThumbTopUp";
var thumbMiddleName = "ScrollThumbMiddleUp";
var thumbBottomName = "ScrollThumbBottomUp";
var thumbGripName = "ScrollThumbGripUp";
static var skinIDTrack = 0;
static var skinIDTrackOver = 1;
static var skinIDTrackDown = 2;
static var skinIDUpArrow = 3;
static var skinIDDownArrow = 4;
static var skinIDThumb = 5;
var idNames = new Array("scrollTrack_mc", "scrollTrackOver_mc", "scrollTrackDown_mc", "upArrow_mc", "downArrow_mc");
var clipParameters = {minPos:1, maxPos:1, pageSize:1, scrollPosition:1, lineScrollSize:1, pageScrollSize:1, visible:1, enabled:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.scrollClasses.ScrollBar.prototype.clipParameters, mx.core.UIComponent.prototype.clipParameters);
var initializing = true;
}
Symbol 380 MovieClip [__Packages.mx.core.ScrollView] Frame 0
class mx.core.ScrollView extends mx.core.View
{
var __width, hScroller, vScroller, __maxHPosition, propsInited, scrollAreaChanged, specialHScrollCase, createObject, viewableColumns, __height, oldRndUp, viewableRows, __viewMetrics, owner, enabled, border_mc, __get__width, __get__height, invLayout, mask_mc, _parent, dispatchEvent;
function ScrollView () {
super();
}
function getHScrollPolicy(Void) {
return(__hScrollPolicy);
}
function setHScrollPolicy(policy) {
__hScrollPolicy = policy.toLowerCase();
if (__width == undefined) {
return(undefined);
}
setScrollProperties(numberOfCols, columnWidth, rowC, rowH, heightPadding, widthPadding);
}
function get hScrollPolicy() {
return(getHScrollPolicy());
}
function set hScrollPolicy(policy) {
setHScrollPolicy(policy);
//return(hScrollPolicy);
}
function getVScrollPolicy(Void) {
return(__vScrollPolicy);
}
function setVScrollPolicy(policy) {
__vScrollPolicy = policy.toLowerCase();
if (__width == undefined) {
return(undefined);
}
setScrollProperties(numberOfCols, columnWidth, rowC, rowH, heightPadding, widthPadding);
}
function get vScrollPolicy() {
return(getVScrollPolicy());
}
function set vScrollPolicy(policy) {
setVScrollPolicy(policy);
//return(vScrollPolicy);
}
function get hPosition() {
return(getHPosition());
}
function set hPosition(pos) {
setHPosition(pos);
//return(hPosition);
}
function getHPosition(Void) {
return(__hPosition);
}
function setHPosition(pos) {
hScroller.__set__scrollPosition(pos);
__hPosition = pos;
}
function get vPosition() {
return(getVPosition());
}
function set vPosition(pos) {
setVPosition(pos);
//return(vPosition);
}
function getVPosition(Void) {
return(__vPosition);
}
function setVPosition(pos) {
vScroller.__set__scrollPosition(pos);
__vPosition = pos;
}
function get maxVPosition() {
var _local2 = vScroller.maxPos;
return(((_local2 == undefined) ? 0 : (_local2)));
}
function get maxHPosition() {
return(getMaxHPosition());
}
function set maxHPosition(pos) {
setMaxHPosition(pos);
//return(maxHPosition);
}
function getMaxHPosition(Void) {
if (__maxHPosition != undefined) {
return(__maxHPosition);
}
var _local2 = hScroller.maxPos;
return(((_local2 == undefined) ? 0 : (_local2)));
}
function setMaxHPosition(pos) {
__maxHPosition = pos;
}
function setScrollProperties(colCount, colWidth, rwCount, rwHeight, hPadding, wPadding) {
var _local3 = getViewMetrics();
if (hPadding == undefined) {
hPadding = 0;
}
if (wPadding == undefined) {
wPadding = 0;
}
propsInited = true;
delete scrollAreaChanged;
heightPadding = hPadding;
widthPadding = wPadding;
if (colWidth == 0) {
colWidth = 1;
}
if (rwHeight == 0) {
rwHeight = 1;
}
var _local5 = Math.ceil((((__width - _local3.left) - _local3.right) - widthPadding) / colWidth);
if ((__hScrollPolicy == "on") || ((_local5 < colCount) && (__hScrollPolicy == "auto"))) {
if ((hScroller == undefined) || (specialHScrollCase)) {
delete specialHScrollCase;
hScroller = createObject("HScrollBar", "hSB", 1001);
hScroller.__set__lineScrollSize(20);
hScroller.scrollHandler = scrollProxy;
hScroller.__set__scrollPosition(__hPosition);
scrollAreaChanged = true;
}
if ((((numberOfCols != colCount) || (columnWidth != colWidth)) || (viewableColumns != _local5)) || (scrollAreaChanged)) {
hScroller.setScrollProperties(_local5, 0, colCount - _local5);
viewableColumns = _local5;
numberOfCols = colCount;
columnWidth = colWidth;
}
} else if (((__hScrollPolicy == "auto") || (__hScrollPolicy == "off")) && (hScroller != undefined)) {
hScroller.removeMovieClip();
delete hScroller;
scrollAreaChanged = true;
}
if (heightPadding == undefined) {
heightPadding = 0;
}
var _local4 = Math.ceil((((__height - _local3.top) - _local3.bottom) - heightPadding) / rwHeight);
var _local8 = (((__height - _local3.top) - _local3.bottom) % rwHeight) != 0;
if ((__vScrollPolicy == "on") || ((_local4 < (rwCount + _local8)) && (__vScrollPolicy == "auto"))) {
if (vScroller == undefined) {
vScroller = createObject("VScrollBar", "vSB", 1002);
vScroller.scrollHandler = scrollProxy;
vScroller.__set__scrollPosition(__vPosition);
scrollAreaChanged = true;
rowH = 0;
}
if ((((rowC != rwCount) || (rowH != rwHeight)) || ((viewableRows + _local8) != (_local4 + oldRndUp))) || (scrollAreaChanged)) {
vScroller.setScrollProperties(_local4, 0, (rwCount - _local4) + _local8);
viewableRows = _local4;
rowC = rwCount;
rowH = rwHeight;
oldRndUp = _local8;
}
} else if (((__vScrollPolicy == "auto") || (__vScrollPolicy == "off")) && (vScroller != undefined)) {
vScroller.removeMovieClip();
delete vScroller;
scrollAreaChanged = true;
}
numberOfCols = colCount;
columnWidth = colWidth;
if (scrollAreaChanged) {
doLayout();
var _local2 = __viewMetrics;
var _local12 = ((owner != undefined) ? (owner) : this);
_local12.layoutContent(_local2.left, _local2.top, ((columnWidth * numberOfCols) - _local2.left) - _local2.right, rowC * rowH, (__width - _local2.left) - _local2.right, (__height - _local2.top) - _local2.bottom);
}
if (!enabled) {
setEnabled(false);
}
}
function getViewMetrics(Void) {
var _local2 = __viewMetrics;
var _local3 = border_mc.__get__borderMetrics();
_local2.left = _local3.left;
_local2.right = _local3.right;
if (vScroller != undefined) {
_local2.right = _local2.right + vScroller.minWidth;
}
_local2.top = _local3.top;
if ((hScroller == undefined) && ((__hScrollPolicy == "on") || (__hScrollPolicy == true))) {
hScroller = createObject("FHScrollBar", "hSB", 1001);
specialHScrollCase = true;
}
_local2.bottom = _local3.bottom;
if (hScroller != undefined) {
_local2.bottom = _local2.bottom + hScroller.minHeight;
}
return(_local2);
}
function doLayout(Void) {
var _local10 = __get__width();
var _local8 = __get__height();
delete invLayout;
var _local3 = (__viewMetrics = getViewMetrics());
var _local2 = _local3.left;
var _local9 = _local3.right;
var _local5 = _local3.top;
var _local11 = _local3.bottom;
var _local7 = hScroller;
var _local6 = vScroller;
_local7.setSize((_local10 - _local2) - _local9, _local7.minHeight + 0);
_local7.move(_local2, _local8 - _local11);
_local6.setSize(_local6.minWidth + 0, (_local8 - _local5) - _local11);
_local6.move(_local10 - _local9, _local5);
var _local4 = mask_mc;
_local4._width = (_local10 - _local2) - _local9;
_local4._height = (_local8 - _local5) - _local11;
_local4._x = _local2;
_local4._y = _local5;
}
function createChild(id, name, props) {
var _local2 = super.createChild(id, name, props);
return(_local2);
}
function init(Void) {
super.init();
__viewMetrics = new Object();
if (_global.__SVMouseWheelManager == undefined) {
var _local4 = (_global.__SVMouseWheelManager = new Object());
_local4.onMouseWheel = __onMouseWheel;
Mouse.addListener(_local4);
}
}
function __onMouseWheel(delta, scrollTarget) {
var _local4 = scrollTarget;
var _local1;
while (_local4 != undefined) {
if (_local4 instanceof mx.core.ScrollView) {
_local1 = _local4;
}
_local4 = _local4._parent;
}
if (_local1 != undefined) {
_local4 = ((delta <= 0) ? 1 : -1);
var _local2 = _local1.vScroller.lineScrollSize;
if (_local2 == undefined) {
_local2 = 0;
}
_local2 = Math.max(Math.abs(delta), _local2);
var _local3 = _local1.vPosition + (_local2 * _local4);
_local1.vPosition = Math.max(0, Math.min(_local3, _local1.maxVPosition));
_local1.dispatchEvent({type:"scroll", direction:"vertical", position:_local1.vPosition});
}
}
function createChildren(Void) {
super.createChildren();
if (mask_mc == undefined) {
mask_mc = createObject("BoundingBox", "mask_mc", MASK_DEPTH);
}
mask_mc._visible = false;
}
function invalidate(Void) {
super.invalidate();
}
function draw(Void) {
size();
}
function size(Void) {
super.size();
}
function scrollProxy(docObj) {
_parent.onScroll(docObj);
}
function onScroll(docObj) {
var _local3 = docObj.target;
var _local2 = _local3.scrollPosition;
if (_local3 == vScroller) {
var _local4 = "vertical";
var _local5 = "__vPosition";
} else {
var _local4 = "horizontal";
var _local5 = "__hPosition";
}
dispatchEvent({type:"scroll", direction:_local4, position:_local2});
this[_local5] = _local2;
}
function setEnabled(v) {
vScroller.enabled = (hScroller.enabled = v);
}
function childLoaded(obj) {
super.childLoaded(obj);
obj.setMask(mask_mc);
}
static var symbolName = "ScrollView";
static var symbolOwner = mx.core.ScrollView;
static var version = "2.0.1.78";
var className = "ScrollView";
var __vScrollPolicy = "auto";
var __hScrollPolicy = "off";
var __vPosition = 0;
var __hPosition = 0;
var numberOfCols = 0;
var rowC = 0;
var columnWidth = 1;
var rowH = 0;
var heightPadding = 0;
var widthPadding = 0;
var MASK_DEPTH = 10000;
}
Symbol 381 MovieClip [__Packages.mx.controls.listclasses.DataProvider] Frame 0
class mx.controls.listclasses.DataProvider extends Object
{
var length, splice, dispatchEvent, sortOn, reverse, sort;
function DataProvider (obj) {
super();
}
static function Initialize(obj) {
var _local4 = mixinProps;
var _local6 = _local4.length;
obj = obj.prototype;
var _local3 = 0;
while (_local3 < _local6) {
obj[_local4[_local3]] = mixins[_local4[_local3]];
_global.ASSetPropFlags(obj, _local4[_local3], 1);
_local3++;
}
mx.events.EventDispatcher.initialize(obj);
_global.ASSetPropFlags(obj, "addEventListener", 1);
_global.ASSetPropFlags(obj, "removeEventListener", 1);
_global.ASSetPropFlags(obj, "dispatchEvent", 1);
_global.ASSetPropFlags(obj, "dispatchQueue", 1);
Object.prototype.LargestID = 0;
Object.prototype.getID = function () {
if (this.__ID__ == undefined) {
this.__ID__ = Object.prototype.LargestID++;
_global.ASSetPropFlags(this, "__ID__", 1);
}
return(this.__ID__);
};
_global.ASSetPropFlags(Object.prototype, "LargestID", 1);
_global.ASSetPropFlags(Object.prototype, "getID", 1);
return(true);
}
function addItemAt(index, value) {
if (index < length) {
splice(index, 0, value);
} else if (index > length) {
trace("Cannot add an item past the end of the DataProvider");
return(undefined);
}
this[index] = value;
updateViews("addItems", index, index);
}
function addItem(value) {
addItemAt(length, value);
}
function addItemsAt(index, newItems) {
index = Math.min(length, index);
newItems.unshift(index, 0);
splice.apply(this, newItems);
newItems.splice(0, 2);
updateViews("addItems", index, (index + newItems.length) - 1);
}
function removeItemsAt(index, len) {
var _local3 = new Array();
var _local2 = 0;
while (_local2 < len) {
_local3.push(getItemID(index + _local2));
_local2++;
}
var _local6 = splice(index, len);
dispatchEvent({type:"modelChanged", eventName:"removeItems", firstItem:index, lastItem:(index + len) - 1, removedItems:_local6, removedIDs:_local3});
}
function removeItemAt(index) {
var _local2 = this[index];
removeItemsAt(index, 1);
return(_local2);
}
function removeAll(Void) {
splice(0);
updateViews("removeItems", 0, length - 1);
}
function replaceItemAt(index, itemObj) {
if ((index < 0) || (index >= length)) {
return(undefined);
}
var _local3 = getItemID(index);
this[index] = itemObj;
this[index].__ID__ = _local3;
updateViews("updateItems", index, index);
}
function getItemAt(index) {
return(this[index]);
}
function getItemID(index) {
var _local2 = this[index];
if ((typeof(_local2) != "object") && (_local2 != undefined)) {
return(index);
}
return(_local2.getID());
}
function sortItemsBy(fieldName, order) {
if (typeof(order) == "string") {
sortOn(fieldName);
if (order.toUpperCase() == "DESC") {
reverse();
}
} else {
sortOn(fieldName, order);
}
updateViews("sort");
}
function sortItems(compareFunc, optionFlags) {
sort(compareFunc, optionFlags);
updateViews("sort");
}
function editField(index, fieldName, newData) {
this[index][fieldName] = newData;
dispatchEvent({type:"modelChanged", eventName:"updateField", firstItem:index, lastItem:index, fieldName:fieldName});
}
function getEditingData(index, fieldName) {
return(this[index][fieldName]);
}
function updateViews(event, first, last) {
dispatchEvent({type:"modelChanged", eventName:event, firstItem:first, lastItem:last});
}
static var mixinProps = ["addView", "addItem", "addItemAt", "removeAll", "removeItemAt", "replaceItemAt", "getItemAt", "getItemID", "sortItemsBy", "sortItems", "updateViews", "addItemsAt", "removeItemsAt", "getEditingData", "editField"];
static var evtDipatcher = mx.events.EventDispatcher;
static var mixins = new mx.controls.listclasses.DataProvider();
}
Symbol 382 MovieClip [__Packages.mx.controls.listclasses.ScrollSelectList] Frame 0
class mx.controls.listclasses.ScrollSelectList extends mx.core.ScrollView
{
var invLayoutContent, rows, topRowZ, listContent, __dataProvider, __vPosition, tW, layoutX, layoutY, tH, invRowHeight, invalidate, __height, invUpdateControl, __cellRenderer, __labelFunction, __iconField, __iconFunction, getLength, baseRowZ, lastPosition, propertyTable, isSelected, wasKeySelected, changeFlag, clearSelected, selectItem, lastSelected, dispatchEvent, dragScrolling, _ymouse, scrollInterval, isPressed, onMouseUp, getSelectedIndex, enabled, tabEnabled, tabChildren, createEmptyMovieClip, border_mc;
function ScrollSelectList () {
super();
}
function layoutContent(x, y, w, h) {
delete invLayoutContent;
var _local4 = Math.ceil(h / __rowHeight);
roundUp = (h % __rowHeight) != 0;
var _local12 = _local4 - __rowCount;
if (_local12 < 0) {
var _local3 = _local4;
while (_local3 < __rowCount) {
rows[_local3].removeMovieClip();
delete rows[_local3];
_local3++;
}
topRowZ = topRowZ + _local12;
} else if (_local12 > 0) {
if (rows == undefined) {
rows = new Array();
}
var _local3 = __rowCount;
while (_local3 < _local4) {
var _local2 = (rows[_local3] = listContent.createObject(__rowRenderer, "listRow" + (topRowZ++), topRowZ, {owner:this, styleName:this, rowIndex:_local3}));
_local2._x = x;
_local2._y = Math.round((_local3 * __rowHeight) + y);
_local2.setSize(w, __rowHeight);
_local2.drawRow(__dataProvider.getItemAt(__vPosition + _local3), getStateAt(__vPosition + _local3));
_local2.lastY = _local2._y;
_local3++;
}
}
if (w != tW) {
var _local11 = ((_local12 > 0) ? (__rowCount) : (_local4));
var _local3 = 0;
while (_local3 < _local11) {
rows[_local3].setSize(w, __rowHeight);
_local3++;
}
}
if ((layoutX != x) || (layoutY != y)) {
var _local3 = 0;
while (_local3 < _local4) {
rows[_local3]._x = x;
rows[_local3]._y = Math.round((_local3 * __rowHeight) + y);
_local3++;
}
}
__rowCount = _local4;
layoutX = x;
layoutY = y;
tW = w;
tH = h;
}
function getRowHeight(Void) {
return(__rowHeight);
}
function setRowHeight(v) {
__rowHeight = v;
invRowHeight = true;
invalidate();
}
function get rowHeight() {
return(getRowHeight());
}
function set rowHeight(w) {
setRowHeight(w);
//return(rowHeight);
}
function setRowCount(v) {
__rowCount = v;
}
function getRowCount(Void) {
var _local2 = ((__rowCount == 0) ? (Math.ceil(__height / __rowHeight)) : (__rowCount));
return(_local2);
}
function get rowCount() {
return(getRowCount());
}
function set rowCount(w) {
setRowCount(w);
//return(rowCount);
}
function setEnabled(v) {
super.setEnabled(v);
invUpdateControl = true;
invalidate();
}
function setCellRenderer(cR) {
__cellRenderer = cR;
var _local2 = 0;
while (_local2 < rows.length) {
rows[_local2].setCellRenderer(true);
_local2++;
}
invUpdateControl = true;
invalidate();
}
function set cellRenderer(cR) {
setCellRenderer(cR);
//return(cellRenderer);
}
function get cellRenderer() {
return(__cellRenderer);
}
function set labelField(field) {
setLabelField(field);
//return(labelField);
}
function setLabelField(field) {
__labelField = field;
invUpdateControl = true;
invalidate();
}
function get labelField() {
return(__labelField);
}
function set labelFunction(func) {
setLabelFunction(func);
//return(labelFunction);
}
function setLabelFunction(func) {
__labelFunction = func;
invUpdateControl = true;
invalidate();
}
function get labelFunction() {
return(__labelFunction);
}
function set iconField(field) {
setIconField(field);
//return(iconField);
}
function setIconField(field) {
__iconField = field;
invUpdateControl = true;
invalidate();
}
function get iconField() {
return(__iconField);
}
function set iconFunction(func) {
setIconFunction(func);
//return(iconFunction);
}
function setIconFunction(func) {
__iconFunction = func;
invUpdateControl = true;
invalidate();
}
function get iconFunction() {
return(__iconFunction);
}
function setVPosition(pos) {
if (pos < 0) {
return(undefined);
}
if ((pos > 0) && (pos > ((getLength() - __rowCount) + roundUp))) {
return(undefined);
}
var _local8 = pos - __vPosition;
if (_local8 == 0) {
return(undefined);
}
__vPosition = pos;
var _local10 = _local8 > 0;
_local8 = Math.abs(_local8);
if (_local8 >= __rowCount) {
updateControl();
} else {
var _local4 = new Array();
var _local9 = __rowCount - _local8;
var _local12 = _local8 * __rowHeight;
var _local11 = _local9 * __rowHeight;
var _local6 = (_local10 ? 1 : -1);
var _local3 = 0;
while (_local3 < __rowCount) {
if (((_local3 < _local8) && (_local10)) || ((_local3 >= _local9) && (!_local10))) {
rows[_local3]._y = rows[_local3]._y + Math.round(_local6 * _local11);
var _local5 = _local3 + (_local6 * _local9);
var _local7 = __vPosition + _local5;
_local4[_local5] = rows[_local3];
_local4[_local5].rowIndex = _local5;
_local4[_local5].drawRow(__dataProvider.getItemAt(_local7), getStateAt(_local7), false);
} else {
rows[_local3]._y = rows[_local3]._y - Math.round(_local6 * _local12);
var _local5 = _local3 - (_local6 * _local8);
_local4[_local5] = rows[_local3];
_local4[_local5].rowIndex = _local5;
}
_local3++;
}
rows = _local4;
_local3 = 0;
while (_local3 < __rowCount) {
rows[_local3].swapDepths(baseRowZ + _local3);
_local3++;
}
}
lastPosition = pos;
super.setVPosition(pos);
}
function setPropertiesAt(index, obj) {
var _local2 = __dataProvider.getItemID(index);
if (_local2 == undefined) {
return(undefined);
}
if (propertyTable == undefined) {
propertyTable = new Object();
}
propertyTable[_local2] = obj;
rows[index - __vPosition].drawRow(__dataProvider.getItemAt(index), getStateAt(index));
}
function getPropertiesAt(index) {
var _local2 = __dataProvider.getItemID(index);
if (_local2 == undefined) {
return(undefined);
}
return(propertyTable[_local2]);
}
function getPropertiesOf(obj) {
var _local2 = obj.getID();
if (_local2 == undefined) {
return(undefined);
}
return(propertyTable[_local2]);
}
function getStyle(styleProp) {
var _local2 = super.getStyle(styleProp);
var _local3 = mx.styles.StyleManager.colorNames[_local2];
if (_local3 != undefined) {
_local2 = _local3;
}
return(_local2);
}
function updateControl(Void) {
var _local2 = 0;
while (_local2 < __rowCount) {
rows[_local2].drawRow(__dataProvider.getItemAt(_local2 + __vPosition), getStateAt(_local2 + __vPosition));
_local2++;
}
delete invUpdateControl;
}
function getStateAt(index) {
return((isSelected(index) ? "selected" : "normal"));
}
function selectRow(rowIndex, transition, allowChangeEvent) {
if (!selectable) {
return(undefined);
}
var _local3 = __vPosition + rowIndex;
var _local8 = __dataProvider.getItemAt(_local3);
var _local5 = rows[rowIndex];
if (_local8 == undefined) {
return(undefined);
}
if (transition == undefined) {
transition = true;
}
if (allowChangeEvent == undefined) {
allowChangeEvent = wasKeySelected;
}
changeFlag = true;
if (((!multipleSelection) && (!Key.isDown(17))) || ((!Key.isDown(16)) && (!Key.isDown(17)))) {
clearSelected(transition);
selectItem(_local3, true);
lastSelected = _local3;
_local5.drawRow(_local5.item, getStateAt(_local3), transition);
} else if (Key.isDown(16) && (multipleSelection)) {
if (lastSelected == undefined) {
lastSelected = _local3;
}
var _local4 = ((lastSelected < _local3) ? 1 : -1);
clearSelected(false);
var _local2 = lastSelected;
while (_local2 != _local3) {
selectItem(_local2, true);
if ((_local2 >= __vPosition) && (_local2 < (__vPosition + __rowCount))) {
rows[_local2 - __vPosition].drawRow(rows[_local2 - __vPosition].item, "selected", false);
}
_local2 = _local2 + _local4;
}
selectItem(_local3, true);
_local5.drawRow(_local5.item, "selected", transition);
} else if (Key.isDown(17)) {
var _local7 = isSelected(_local3);
if ((!multipleSelection) || (wasKeySelected)) {
clearSelected(transition);
}
if (!((!multipleSelection) && (_local7))) {
selectItem(_local3, !_local7);
var _local9 = ((!_local7) ? "selected" : "normal");
_local5.drawRow(_local5.item, _local9, transition);
}
lastSelected = _local3;
}
if (allowChangeEvent) {
dispatchEvent({type:"change"});
}
delete wasKeySelected;
}
function dragScroll(Void) {
clearInterval(dragScrolling);
if (_ymouse < 0) {
setVPosition(__vPosition - 1);
selectRow(0, false);
var _local2 = Math.min((-_ymouse) - 30, 0);
scrollInterval = (((0.593 * _local2) * _local2) + 1) + minScrollInterval;
dragScrolling = setInterval(this, "dragScroll", scrollInterval);
dispatchEvent({type:"scroll", direction:"vertical", position:__vPosition});
} else if (_ymouse > __height) {
var _local3 = __vPosition;
setVPosition(__vPosition + 1);
if (_local3 != __vPosition) {
selectRow((__rowCount - 1) - roundUp, false);
}
var _local2 = Math.min((_ymouse - __height) - 30, 0);
scrollInterval = (((0.593 * _local2) * _local2) + 1) + minScrollInterval;
dragScrolling = setInterval(this, "dragScroll", scrollInterval);
dispatchEvent({type:"scroll", direction:"vertical", position:__vPosition});
} else {
dragScrolling = setInterval(this, "dragScroll", 15);
}
updateAfterEvent();
}
function __onMouseUp(Void) {
clearInterval(dragScrolling);
delete dragScrolling;
delete dragScrolling;
delete isPressed;
delete onMouseUp;
if (!selectable) {
return(undefined);
}
if (changeFlag) {
dispatchEvent({type:"change"});
}
delete changeFlag;
}
function moveSelBy(incr) {
if (!selectable) {
setVPosition(__vPosition + incr);
return(undefined);
}
var _local3 = getSelectedIndex();
if (_local3 == undefined) {
_local3 = -1;
}
var _local2 = _local3 + incr;
_local2 = Math.max(0, _local2);
_local2 = Math.min(getLength() - 1, _local2);
if (_local2 == _local3) {
return(undefined);
}
if ((_local3 < __vPosition) || (_local3 >= (__vPosition + __rowCount))) {
setVPosition(_local3);
}
if ((_local2 >= ((__vPosition + __rowCount) - roundUp)) || (_local2 < __vPosition)) {
setVPosition(__vPosition + incr);
}
wasKeySelected = true;
selectRow(_local2 - __vPosition, false);
}
function keyDown(e) {
if (selectable) {
if (findInputText()) {
return(undefined);
}
}
if (e.code == 40) {
moveSelBy(1);
} else if (e.code == 38) {
moveSelBy(-1);
} else if (e.code == 34) {
if (selectable) {
var _local3 = getSelectedIndex();
if (_local3 == undefined) {
_local3 = 0;
}
setVPosition(_local3);
}
moveSelBy((__rowCount - 1) - roundUp);
} else if (e.code == 33) {
if (selectable) {
var _local3 = getSelectedIndex();
if (_local3 == undefined) {
_local3 = 0;
}
setVPosition(_local3);
}
moveSelBy((1 - __rowCount) + roundUp);
} else if (e.code == 36) {
moveSelBy(-__dataProvider.length);
} else if (e.code == 35) {
moveSelBy(__dataProvider.length);
}
}
function findInputText(Void) {
var _local2 = Key.getAscii();
if ((_local2 >= 33) && (_local2 <= 126)) {
findString(String.fromCharCode(_local2));
return(true);
}
}
function findString(str) {
if (__dataProvider.length == 0) {
return(undefined);
}
var _local4 = getSelectedIndex();
if (_local4 == undefined) {
_local4 = 0;
}
var _local6 = 0;
var _local3 = _local4 + 1;
while (_local3 != _local4) {
var _local2 = __dataProvider.getItemAt(_local3);
if (_local2 instanceof XMLNode) {
_local2 = _local2.attributes[__labelField];
} else if (typeof(_local2) != "string") {
_local2 = String(_local2[__labelField]);
}
_local2 = _local2.substring(0, str.length);
if ((str == _local2) || (str.toUpperCase() == _local2.toUpperCase())) {
_local6 = _local3 - _local4;
break;
}
if (_local3 >= (getLength() - 1)) {
_local3 = -1;
}
_local3++;
}
if (_local6 != 0) {
moveSelBy(_local6);
}
}
function onRowPress(rowIndex) {
if (!enabled) {
return(undefined);
}
isPressed = true;
dragScrolling = setInterval(this, "dragScroll", 15);
onMouseUp = __onMouseUp;
if (!selectable) {
return(undefined);
}
selectRow(rowIndex);
}
function onRowRelease(rowIndex) {
}
function onRowRollOver(rowIndex) {
if (!enabled) {
return(undefined);
}
var _local2 = rows[rowIndex].item;
if (getStyle("useRollOver") && (_local2 != undefined)) {
rows[rowIndex].drawRow(_local2, "highlighted", false);
}
dispatchEvent({type:"itemRollOver", index:rowIndex + __vPosition});
}
function onRowRollOut(rowIndex) {
if (!enabled) {
return(undefined);
}
if (getStyle("useRollOver")) {
rows[rowIndex].drawRow(rows[rowIndex].item, getStateAt(rowIndex + __vPosition), false);
}
dispatchEvent({type:"itemRollOut", index:rowIndex + __vPosition});
}
function onRowDragOver(rowIndex) {
if (((!enabled) || (isPressed != true)) || (!selectable)) {
return(undefined);
}
if (dropEnabled) {
} else if (dragScrolling) {
selectRow(rowIndex, false);
} else {
onMouseUp = __onMouseUp;
onRowPress(rowIndex);
}
}
function onRowDragOut(rowIndex) {
if (!enabled) {
return(undefined);
}
if (dragEnabled) {
} else {
onRowRollOut(rowIndex);
}
}
function init(Void) {
super.init();
tabEnabled = true;
tabChildren = false;
if (__dataProvider == undefined) {
__dataProvider = new Array();
__dataProvider.addEventListener("modelChanged", this);
}
baseRowZ = (topRowZ = 10);
}
function createChildren(Void) {
super.createChildren();
listContent = createEmptyMovieClip("content_mc", CONTENTDEPTH);
invLayoutContent = true;
invalidate();
}
function draw(Void) {
if (invRowHeight) {
delete invRowHeight;
__rowCount = 0;
listContent.removeMovieClip();
listContent = createEmptyMovieClip("content_mc", CONTENTDEPTH);
}
if (invUpdateControl) {
updateControl();
}
border_mc.draw();
}
function invalidateStyle(propName) {
if (isRowStyle[propName]) {
invUpdateControl = true;
invalidate();
} else {
var _local3 = 0;
while (_local3 < __rowCount) {
rows[_local3].invalidateStyle(propName);
_local3++;
}
}
super.invalidateStyle(propName);
}
static var mixIt1 = mx.controls.listclasses.DataSelector.Initialize(mx.controls.listclasses.ScrollSelectList);
static var mixIt2 = mx.controls.listclasses.DataProvider.Initialize(Array);
var CONTENTDEPTH = 100;
var __hPosition = 0;
var __rowRenderer = "SelectableRow";
var __rowHeight = 22;
var __rowCount = 0;
var __labelField = "label";
var minScrollInterval = 30;
var dropEnabled = false;
var dragEnabled = false;
var className = "ScrollSelectList";
var isRowStyle = {styleName:true, backgroundColor:true, selectionColor:true, rollOverColor:true, selectionDisabledColor:true, backgroundDisabledColor:true, textColor:true, textSelectedColor:true, textRollOverColor:true, textDisabledColor:true, alternatingRowColors:true, defaultIcon:true};
var roundUp = 0;
var selectable = true;
var multipleSelection = false;
}
Symbol 383 MovieClip [__Packages.mx.controls.List] Frame 0
class mx.controls.List extends mx.controls.listclasses.ScrollSelectList
{
var border_mc, __labels, setDataProvider, roundUp, __get__rowCount, __dataProvider, __maxHPosition, invScrollProps, invalidate, __vPosition, getViewMetrics, setSize, __width, __rowHeight, totalWidth, totalHeight, displayWidth, __hScrollPolicy, vScroller, __hPosition, listContent, data, mask_mc, __height, __rowCount, invRowHeight, invLayoutContent, setScrollProperties, oldVWidth;
function List () {
super();
}
function setEnabled(v) {
super.setEnabled(v);
border_mc.backgroundColorName = (v ? "backgroundColor" : "backgroundDisabledColor");
border_mc.invalidate();
}
function get labels() {
return(__labels);
}
function set labels(lbls) {
__labels = lbls;
setDataProvider(lbls);
//return(labels);
}
function setVPosition(pos) {
pos = Math.min((__dataProvider.length - __get__rowCount()) + roundUp, pos);
pos = Math.max(0, pos);
super.setVPosition(pos);
}
function setHPosition(pos) {
pos = Math.max(Math.min(__maxHPosition, pos), 0);
super.setHPosition(pos);
hScroll(pos);
}
function setMaxHPosition(pos) {
__maxHPosition = pos;
invScrollProps = true;
invalidate();
}
function setHScrollPolicy(policy) {
if ((policy.toLowerCase() == "auto") && (!autoHScrollAble)) {
return(undefined);
}
super.setHScrollPolicy(policy);
if (policy == "off") {
setHPosition(0);
setVPosition(Math.min((__dataProvider.length - __get__rowCount()) + roundUp, __vPosition));
}
}
function setRowCount(rC) {
if (isNaN(rC)) {
return(undefined);
}
var _local2 = getViewMetrics();
setSize(__width, ((__rowHeight * rC) + _local2.top) + _local2.bottom);
}
function layoutContent(x, y, tW, tH, dW, dH) {
totalWidth = tW;
totalHeight = tH;
displayWidth = dW;
var _local4 = (((__hScrollPolicy == "on") || (__hScrollPolicy == "auto")) ? (Math.max(tW, dW)) : (dW));
super.layoutContent(x, y, _local4, dH);
}
function modelChanged(eventObj) {
super.modelChanged(eventObj);
var _local3 = eventObj.eventName;
if ((((_local3 == "addItems") || (_local3 == "removeItems")) || (_local3 == "updateAll")) || (_local3 == "filterModel")) {
invScrollProps = true;
invalidate("invScrollProps");
}
}
function onScroll(eventObj) {
var _local3 = eventObj.target;
if (_local3 == vScroller) {
setVPosition(_local3.scrollPosition);
} else {
hScroll(_local3.scrollPosition);
}
super.onScroll(eventObj);
}
function hScroll(pos) {
__hPosition = pos;
listContent._x = -pos;
}
function init(Void) {
super.init();
if (labels.length > 0) {
var _local6 = new Array();
var _local3 = 0;
while (_local3 < labels.length) {
_local6.addItem({label:labels[_local3], data:data[_local3]});
_local3++;
}
setDataProvider(_local6);
}
__maxHPosition = 0;
}
function createChildren(Void) {
super.createChildren();
listContent.setMask(mask_mc);
border_mc.move(0, 0);
border_mc.setSize(__width, __height);
}
function getRowCount(Void) {
var _local2 = getViewMetrics();
return(((__rowCount == 0) ? (Math.ceil(((__height - _local2.top) - _local2.bottom) / __rowHeight)) : (__rowCount)));
}
function size(Void) {
super.size();
configureScrolling();
var _local3 = getViewMetrics();
layoutContent(_local3.left, _local3.top, __width + __maxHPosition, totalHeight, (__width - _local3.left) - _local3.right, (__height - _local3.top) - _local3.bottom);
}
function draw(Void) {
if (invRowHeight) {
invScrollProps = true;
super.draw();
listContent.setMask(mask_mc);
invLayoutContent = true;
}
if (invScrollProps) {
configureScrolling();
delete invScrollProps;
}
if (invLayoutContent) {
var _local3 = getViewMetrics();
layoutContent(_local3.left, _local3.top, __width + __maxHPosition, totalHeight, (__width - _local3.left) - _local3.right, (__height - _local3.top) - _local3.bottom);
}
super.draw();
}
function configureScrolling(Void) {
var _local2 = __dataProvider.length;
if (__vPosition > Math.max(0, (_local2 - getRowCount()) + roundUp)) {
setVPosition(Math.max(0, Math.min((_local2 - getRowCount()) + roundUp, __vPosition)));
}
var _local3 = getViewMetrics();
var _local4 = ((__hScrollPolicy != "off") ? (((__maxHPosition + __width) - _local3.left) - _local3.right) : ((__width - _local3.left) - _local3.right));
if (_local2 == undefined) {
_local2 = 0;
}
setScrollProperties(_local4, 1, _local2, __rowHeight);
if (oldVWidth != _local4) {
invLayoutContent = true;
}
oldVWidth = _local4;
}
static var symbolOwner = mx.controls.List;
static var symbolName = "List";
var className = "List";
static var version = "2.0.1.78";
var clipParameters = {rowHeight:1, enabled:1, visible:1, labels:1};
var scrollDepth = 1;
var __vScrollPolicy = "on";
var autoHScrollAble = false;
}
Symbol 384 MovieClip [__Packages.mx.effects.Tween] Frame 0
class mx.effects.Tween extends Object
{
static var IntervalToken;
var arrayMode, listener, initVal, endVal, startTime, updateFunc, endFunc, ID;
function Tween (listenerObj, init, end, dur) {
super();
if (listenerObj == undefined) {
return;
}
if (typeof(init) != "number") {
arrayMode = true;
}
listener = listenerObj;
initVal = init;
endVal = end;
if (dur != undefined) {
duration = dur;
}
startTime = getTimer();
if (duration == 0) {
endTween();
} else {
AddTween(this);
}
}
static function AddTween(tween) {
tween.ID = ActiveTweens.length;
ActiveTweens.push(tween);
if (IntervalToken == undefined) {
Dispatcher.DispatchTweens = DispatchTweens;
IntervalToken = setInterval(Dispatcher, "DispatchTweens", Interval);
}
}
static function RemoveTweenAt(index) {
var _local2 = ActiveTweens;
if (((index >= _local2.length) || (index < 0)) || (index == undefined)) {
return(undefined);
}
_local2.splice(index, 1);
var _local4 = _local2.length;
var _local1 = index;
while (_local1 < _local4) {
_local2[_local1].ID--;
_local1++;
}
if (_local4 == 0) {
clearInterval(IntervalToken);
delete IntervalToken;
}
}
static function DispatchTweens(Void) {
var _local2 = ActiveTweens;
var _local3 = _local2.length;
var _local1 = 0;
while (_local1 < _local3) {
_local2[_local1].doInterval();
_local1++;
}
updateAfterEvent();
}
function doInterval() {
var _local2 = getTimer() - startTime;
var _local3 = getCurVal(_local2);
if (_local2 >= duration) {
endTween();
} else if (updateFunc != undefined) {
listener[updateFunc](_local3);
} else {
listener.onTweenUpdate(_local3);
}
}
function getCurVal(curTime) {
if (arrayMode) {
var _local3 = new Array();
var _local2 = 0;
while (_local2 < initVal.length) {
_local3[_local2] = easingEquation(curTime, initVal[_local2], endVal[_local2] - initVal[_local2], duration);
_local2++;
}
return(_local3);
}
return(easingEquation(curTime, initVal, endVal - initVal, duration));
}
function endTween() {
if (endFunc != undefined) {
listener[endFunc](endVal);
} else {
listener.onTweenEnd(endVal);
}
RemoveTweenAt(ID);
}
function setTweenHandlers(update, end) {
updateFunc = update;
endFunc = end;
}
function easingEquation(t, b, c, d) {
return(((c / 2) * (Math.sin(Math.PI * ((t / d) - 0.5)) + 1)) + b);
}
static var ActiveTweens = new Array();
static var Interval = 10;
static var Dispatcher = new Object();
var duration = 3000;
}
Symbol 385 MovieClip [__Packages.mx.controls.listclasses.SelectableRow] Frame 0
class mx.controls.listclasses.SelectableRow extends mx.core.UIComponent
{
var __height, cell, owner, rowIndex, icon_mc, createObject, __width, backGround, highlight, highlightColor, createLabel, createClassObject, listOwner, tabEnabled, item, createEmptyMovieClip, drawRect, isChangedToSelected, bGTween, grandOwner;
function SelectableRow () {
super();
}
function setValue(itmObj, state) {
var _local7 = __height;
var _local2 = cell;
var _local5 = owner;
var _local8 = itemToString(itmObj);
if (_local2.getValue() != _local8) {
_local2.setValue(_local8, itmObj, state);
}
var _local4 = _local5.getPropertiesAt(rowIndex + _local5.__vPosition).icon;
if (_local4 == undefined) {
_local4 = _local5.__iconFunction(itmObj);
if (_local4 == undefined) {
_local4 = itmObj[_local5.__iconField];
if (_local4 == undefined) {
_local4 = _local5.getStyle("defaultIcon");
}
}
}
var _local3 = icon_mc;
if ((_local4 != undefined) && (itmObj != undefined)) {
_local3 = createObject(_local4, "icon_mc", 20);
_local3._x = 2;
_local3._y = (_local7 - _local3._height) / 2;
_local2._x = 4 + _local3._width;
} else {
_local3.removeMovieClip();
_local2._x = 2;
}
var _local9 = ((_local3 == undefined) ? 0 : (_local3._width));
_local2.setSize(__width - _local9, Math.min(_local7, _local2.getPreferredHeight()));
_local2._y = (_local7 - _local2._height) / 2;
}
function size(Void) {
var _local3 = backGround;
var _local2 = cell;
var _local4 = __height;
var _local5 = __width;
var _local6 = ((icon_mc == undefined) ? 0 : (icon_mc._width));
_local2.setSize(_local5 - _local6, Math.min(_local4, _local2.getPreferredHeight()));
_local2._y = (_local4 - _local2._height) / 2;
icon_mc._y = (_local4 - icon_mc._height) / 2;
_local3._x = 0;
_local3._width = _local5;
_local3._height = _local4;
drawRowFill(_local3, normalColor);
drawRowFill(highlight, highlightColor);
}
function setCellRenderer(forceSizing) {
var _local3 = owner.__cellRenderer;
var _local4;
if (cell != undefined) {
_local4 = cell._x;
cell.removeMovieClip();
cell.removeTextField();
}
var _local2;
if (_local3 == undefined) {
_local2 = (cell = createLabel("cll", 0, {styleName:this}));
_local2.styleName = owner;
_local2.selectable = false;
_local2.tabEnabled = false;
_local2.background = false;
_local2.border = false;
} else if (typeof(_local3) == "string") {
_local2 = (cell = createObject(_local3, "cll", 0, {styleName:this}));
} else {
_local2 = (cell = createClassObject(_local3, "cll", 0, {styleName:this}));
}
_local2.owner = this;
_local2.listOwner = owner;
_local2.getCellIndex = getCellIndex;
_local2.getDataLabel = getDataLabel;
if (_local4 != undefined) {
_local2._x = _local4;
}
if (forceSizing) {
size();
}
}
function getCellIndex(Void) {
return({columnIndex:0, itemIndex:owner.rowIndex + listOwner.__vPosition});
}
function getDataLabel() {
return(listOwner.labelField);
}
function init(Void) {
super.init();
tabEnabled = false;
}
function createChildren(Void) {
setCellRenderer(false);
setupBG();
setState(state, false);
}
function drawRow(itmObj, state, transition) {
item = itmObj;
setState(state, transition);
setValue(itmObj, state, transition);
}
function itemToString(itmObj) {
if (itmObj == undefined) {
return(" ");
}
var _local2 = owner.__labelFunction(itmObj);
if (_local2 == undefined) {
_local2 = ((itmObj instanceof XMLNode) ? (itmObj.attributes[owner.__labelField]) : (itmObj[owner.__labelField]));
if (_local2 == undefined) {
_local2 = " ";
if (typeof(itmObj) == "object") {
for (var _local4 in itmObj) {
if (_local4 != "__ID__") {
_local2 = (itmObj[_local4] + ", ") + _local2;
}
}
_local2 = _local2.substring(0, _local2.length - 2);
} else {
_local2 = itmObj;
}
}
}
return(_local2);
}
function setupBG(Void) {
var _local2 = (backGround = createEmptyMovieClip("bG_mc", LOWEST_DEPTH));
drawRowFill(_local2, normalColor);
highlight = createEmptyMovieClip("tran_mc", LOWEST_DEPTH + 10);
_local2.owner = this;
_local2.grandOwner = owner;
_local2.onPress = bGOnPress;
_local2.onRelease = bGOnRelease;
_local2.onRollOver = bGOnRollOver;
_local2.onRollOut = bGOnRollOut;
_local2.onDragOver = bGOnDragOver;
_local2.onDragOut = bGOnDragOut;
_local2.useHandCursor = false;
_local2.trackAsMenu = true;
_local2.drawRect = drawRect;
highlight.drawRect = drawRect;
}
function drawRowFill(mc, newClr) {
mc.clear();
mc.beginFill(newClr);
mc.drawRect(1, 0, __width, __height);
mc.endFill();
mc._width = __width;
mc._height = __height;
}
function setState(newState, transition) {
var _local2 = highlight;
var _local8 = backGround;
var _local4 = __height;
var _local3 = owner;
if (!_local3.enabled) {
if ((newState == "selected") || (state == "selected")) {
highlightColor = _local3.getStyle("selectionDisabledColor");
drawRowFill(_local2, highlightColor);
_local2._visible = true;
_local2._y = 0;
_local2._height = _local4;
} else {
_local2._visible = false;
normalColor = _local3.getStyle("backgroundDisabledColor");
drawRowFill(_local8, normalColor);
}
cell.__enabled = false;
cell.setColor(_local3.getStyle("disabledColor"));
} else {
cell.__enabled = true;
if (transition && ((newState == state) || ((newState == "highlighted") && (state == "selected")))) {
isChangedToSelected = true;
return(undefined);
}
var _local6 = _local3.getStyle("selectionDuration");
var _local7 = 0;
if (isChangedToSelected && (newState == "selected")) {
transition = false;
}
var _local10 = transition && (_local6 != 0);
if (newState == "normal") {
_local7 = _local3.getStyle("color");
normalColor = getNormalColor();
drawRowFill(_local8, normalColor);
if (_local10) {
_local6 = _local6 / 2;
_local2._height = _local4;
_local2._width = __width;
_local2._y = 0;
bGTween = new mx.effects.Tween(this, _local4 + 2, _local4 * 0.2, _local6, 5);
} else {
_local2._visible = false;
}
delete isChangedToSelected;
} else {
highlightColor = _local3.getStyle(((newState == "highlighted") ? "rollOverColor" : "selectionColor"));
drawRowFill(_local2, highlightColor);
_local2._visible = true;
_local7 = _local3.getStyle(((newState == "highlighted") ? "textRollOverColor" : "textSelectedColor"));
if (_local10) {
_local2._height = _local4 * 0.5;
_local2._y = (_local4 - _local2._height) / 2;
bGTween = new mx.effects.Tween(this, _local2._height, _local4 + 2, _local6, 5);
var _local9 = _local3.getStyle("selectionEasing");
if (_local9 != undefined) {
bGTween.easingEquation = _local9;
}
} else {
_local2._y = 0;
_local2._height = _local4;
}
}
cell.setColor(_local7);
}
state = newState;
}
function onTweenUpdate(val) {
highlight._height = val;
highlight._y = (__height - val) / 2;
}
function onTweenEnd(val) {
onTweenUpdate(val);
highlight._visible = state != "normal";
}
function getNormalColor(Void) {
var _local3;
var _local2 = owner;
if (!owner.enabled) {
_local3 = _local2.getStyle("backgroundDisabledColor");
} else {
var _local5 = rowIndex + _local2.__vPosition;
if (rowIndex == undefined) {
_local3 = _local2.getPropertiesOf(item).backgroundColor;
} else {
_local3 = _local2.getPropertiesAt(_local5).backgroundColor;
}
if (_local3 == undefined) {
var _local4 = _local2.getStyle("alternatingRowColors");
if (_local4 == undefined) {
_local3 = _local2.getStyle("backgroundColor");
} else {
_local3 = _local4[_local5 % _local4.length];
}
}
}
return(_local3);
}
function invalidateStyle(propName) {
cell.invalidateStyle(propName);
super.invalidateStyle(propName);
}
function bGOnPress(Void) {
grandOwner.pressFocus();
grandOwner.onRowPress(owner.rowIndex);
}
function bGOnRelease(Void) {
grandOwner.releaseFocus();
grandOwner.onRowRelease(owner.rowIndex);
}
function bGOnRollOver(Void) {
grandOwner.onRowRollOver(owner.rowIndex);
}
function bGOnRollOut(Void) {
grandOwner.onRowRollOut(owner.rowIndex);
}
function bGOnDragOver(Void) {
grandOwner.onRowDragOver(owner.rowIndex);
}
function bGOnDragOut(Void) {
grandOwner.onRowDragOut(owner.rowIndex);
}
static var LOWEST_DEPTH = -16384;
var state = "normal";
var disabledColor = 15263976;
var normalColor = 16777215;
}
Symbol 386 MovieClip [__Packages.mx.controls.HScrollBar] Frame 0
class mx.controls.HScrollBar extends mx.controls.scrollClasses.ScrollBar
{
var _minHeight, _minWidth, _xscale, _rotation, __width, scrollIt;
function HScrollBar () {
super();
}
function getMinWidth(Void) {
return(_minHeight);
}
function getMinHeight(Void) {
return(_minWidth);
}
function init(Void) {
super.init();
_xscale = -100;
_rotation = -90;
}
function get virtualHeight() {
return(__width);
}
function isScrollBarKey(k) {
if (k == 37) {
scrollIt("Line", -1);
return(true);
}
if (k == 39) {
scrollIt("Line", 1);
return(true);
}
return(super.isScrollBarKey(k));
}
static var symbolName = "HScrollBar";
static var symbolOwner = mx.core.UIComponent;
static var version = "2.0.1.78";
var className = "HScrollBar";
var minusMode = "Left";
var plusMode = "Right";
var minMode = "AtLeft";
var maxMode = "AtRight";
}
Symbol 387 MovieClip [__Packages.mx.controls.VScrollBar] Frame 0
class mx.controls.VScrollBar extends mx.controls.scrollClasses.ScrollBar
{
var scrollIt;
function VScrollBar () {
super();
}
function init(Void) {
super.init();
}
function isScrollBarKey(k) {
if (k == 38) {
scrollIt("Line", -1);
return(true);
}
if (k == 40) {
scrollIt("Line", 1);
return(true);
}
if (k == 33) {
scrollIt("Page", -1);
return(true);
}
if (k == 34) {
scrollIt("Page", 1);
return(true);
}
return(super.isScrollBarKey(k));
}
static var symbolName = "VScrollBar";
static var symbolOwner = mx.core.UIComponent;
static var version = "2.0.1.78";
var className = "VScrollBar";
var minusMode = "Up";
var plusMode = "Down";
var minMode = "AtTop";
var maxMode = "AtBottom";
}
Symbol 396 MovieClip [__Packages.mx.controls.CheckBox] Frame 0
class mx.controls.CheckBox extends mx.controls.Button
{
var _getTextFormat, labelPath, iconName;
function CheckBox () {
super();
}
function onRelease() {
super.onRelease();
}
function init() {
super.init();
}
function size() {
super.size();
}
function get emphasized() {
return(undefined);
}
function calcPreferredHeight() {
var _local5 = _getTextFormat();
var _local3 = _local5.getTextExtent2(labelPath.text).height;
var _local4 = iconName._height;
var _local2 = 0;
if ((__labelPlacement == "left") || (__labelPlacement == "right")) {
_local2 = Math.max(_local3, _local4);
} else {
_local2 = _local3 + _local4;
}
return(Math.max(14, _local2));
}
function set toggle(v) {
//return(toggle);
}
function get toggle() {
}
function set icon(v) {
//return(icon);
}
function get icon() {
}
static var symbolName = "CheckBox";
static var symbolOwner = mx.controls.CheckBox;
static var version = "2.0.1.78";
var className = "CheckBox";
var ignoreClassStyleDeclaration = {Button:1};
var btnOffset = 0;
var __toggle = true;
var __selected = false;
var __labelPlacement = "right";
var __label = "CheckBox";
var falseUpSkin = "";
var falseDownSkin = "";
var falseOverSkin = "";
var falseDisabledSkin = "";
var trueUpSkin = "";
var trueDownSkin = "";
var trueOverSkin = "";
var trueDisabledSkin = "";
var falseUpIcon = "CheckFalseUp";
var falseDownIcon = "CheckFalseDown";
var falseOverIcon = "CheckFalseOver";
var falseDisabledIcon = "CheckFalseDisabled";
var trueUpIcon = "CheckTrueUp";
var trueDownIcon = "CheckTrueDown";
var trueOverIcon = "CheckTrueOver";
var trueDisabledIcon = "CheckTrueDisabled";
var clipParameters = {label:1, labelPlacement:1, selected:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.CheckBox.prototype.clipParameters, mx.controls.Button.prototype.clipParameters);
var centerContent = false;
var borderW = 0;
}
Symbol 416 MovieClip [__Packages.mx.containers.ScrollPane] Frame 0
class mx.containers.ScrollPane extends mx.core.ScrollView
{
var _total, _loaded, destroyChildAt, createChild, __scrollContent, spContentHolder, hScroller, vScroller, __get__hScrollPolicy, __vScrollPolicy, __get__vScrollPolicy, tabEnabled, keyDown, mask_mc, hPosition, __get__maxHPosition, vPosition, __get__maxVPosition, __hPosition, __vPosition, invalidate;
function ScrollPane () {
super();
}
function getBytesTotal() {
return(_total);
}
function getBytesLoaded() {
return(_loaded);
}
function set contentPath(scrollableContent) {
if (!initializing) {
if (scrollableContent == undefined) {
destroyChildAt(0);
} else {
if (this[mx.core.View.childNameBase + 0] != undefined) {
destroyChildAt(0);
}
createChild(scrollableContent, "spContentHolder");
}
}
__scrollContent = scrollableContent;
//return(contentPath);
}
function get contentPath() {
return(__scrollContent);
}
function get content() {
return(spContentHolder);
}
function setHPosition(position) {
if ((position <= hScroller.maxPos) && (position >= hScroller.minPos)) {
super.setHPosition(position);
spContentHolder._x = -position;
}
}
function setVPosition(position) {
if ((position <= vScroller.maxPos) && (position >= vScroller.minPos)) {
super.setVPosition(position);
spContentHolder._y = -position;
}
}
function get vLineScrollSize() {
return(__vLineScrollSize);
}
function set vLineScrollSize(vLineSize) {
__vLineScrollSize = vLineSize;
vScroller.__set__lineScrollSize(vLineSize);
//return(vLineScrollSize);
}
function get hLineScrollSize() {
return(__hLineScrollSize);
}
function set hLineScrollSize(hLineSize) {
__hLineScrollSize = hLineSize;
hScroller.__set__lineScrollSize(hLineSize);
//return(hLineScrollSize);
}
function get vPageScrollSize() {
return(__vPageScrollSize);
}
function set vPageScrollSize(vPageSize) {
__vPageScrollSize = vPageSize;
vScroller.__set__pageScrollSize(vPageSize);
//return(vPageScrollSize);
}
function get hPageScrollSize() {
return(__hPageScrollSize);
}
function set hPageScrollSize(hPageSize) {
__hPageScrollSize = hPageSize;
hScroller.__set__pageScrollSize(hPageSize);
//return(hPageScrollSize);
}
function set hScrollPolicy(policy) {
__hScrollPolicy = policy.toLowerCase();
setScrollProperties(spContentHolder._width, 1, spContentHolder._height, 1);
//return(__get__hScrollPolicy());
}
function set vScrollPolicy(policy) {
__vScrollPolicy = policy.toLowerCase();
setScrollProperties(spContentHolder._width, 1, spContentHolder._height, 1);
//return(__get__vScrollPolicy());
}
function get scrollDrag() {
return(__scrollDrag);
}
function set scrollDrag(s) {
__scrollDrag = s;
if (__scrollDrag) {
spContentHolder.useHandCursor = true;
spContentHolder.onPress = function () {
this._parent.startDragLoop();
};
spContentHolder.tabEnabled = false;
spContentHolder.onRelease = (spContentHolder.onReleaseOutside = function () {
delete this.onMouseMove;
});
__scrollDrag = true;
} else {
delete spContentHolder.onPress;
spContentHolder.tabEnabled = false;
spContentHolder.tabChildren = true;
spContentHolder.useHandCursor = false;
__scrollDrag = false;
}
//return(scrollDrag);
}
function init(Void) {
super.init();
tabEnabled = true;
keyDown = _onKeyDown;
}
function createChildren(Void) {
super.createChildren();
mask_mc._visible = false;
initializing = false;
if ((__scrollContent != undefined) && (__scrollContent != "")) {
contentPath = (__scrollContent);
}
}
function size(Void) {
super.size();
setScrollProperties(spContentHolder._width, 1, spContentHolder._height, 1);
hPosition = Math.min(hPosition, __get__maxHPosition());
vPosition = Math.min(vPosition, __get__maxVPosition());
}
function setScrollProperties(columnCount, columnWidth, rowCount, rowHeight) {
super.setScrollProperties(columnCount, columnWidth, rowCount, rowHeight);
hScroller.__set__lineScrollSize(__hLineScrollSize);
hScroller.__set__pageScrollSize(__hPageScrollSize);
vScroller.__set__lineScrollSize(__vLineScrollSize);
vScroller.__set__pageScrollSize(__vPageScrollSize);
}
function onScroll(scrollEvent) {
super.onScroll(scrollEvent);
spContentHolder._x = -__hPosition;
spContentHolder._y = -__vPosition;
}
function childLoaded(obj) {
super.childLoaded(obj);
onComplete();
}
function onComplete(Void) {
setScrollProperties(spContentHolder._width, 1, spContentHolder._height, 1);
hPosition = 0;
vPosition = 0;
scrollDrag = (__scrollDrag);
invalidate();
}
function startDragLoop(Void) {
spContentHolder.lastX = spContentHolder._xmouse;
spContentHolder.lastY = spContentHolder._ymouse;
spContentHolder.onMouseMove = function () {
var _local5 = this.lastX - this._xmouse;
var _local4 = this.lastY - this._ymouse;
_local5 = _local5 + this._parent.hPosition;
_local4 = _local4 + this._parent.vPosition;
var _local3 = this._parent.getViewMetrics();
var _local7 = (this._parent.__height - _local3.top) - _local3.bottom;
var _local6 = (this._parent.__width - _local3.left) - _local3.right;
this._parent.__hPosition = Math.max(0, Math.min(_local5, this._width - _local6));
this._parent.__vPosition = Math.max(0, Math.min(_local4, this._height - _local7));
this._parent.hScroller.scrollPosition = this._parent.__hPosition;
this._x = -this._parent.hPosition;
this._parent.vScroller.scrollPosition = this._parent.__vPosition;
this._y = -this._parent.vPosition;
super.dispatchEvent({type:"scroll"});
};
}
function dispatchEvent(o) {
o.target = this;
_total = o.total;
_loaded = o.current;
super.dispatchEvent(o);
}
function refreshPane(Void) {
contentPath = (__scrollContent);
}
function _onKeyDown(e) {
if (e.code == 40) {
vPosition = vPosition + vLineScrollSize;
} else if (e.code == 38) {
vPosition = vPosition - vLineScrollSize;
} else if (e.code == 37) {
hPosition = hPosition - hLineScrollSize;
} else if (e.code == 39) {
hPosition = hPosition + hLineScrollSize;
} else if (e.code == 33) {
vPosition = vPosition - vPageScrollSize;
} else if (e.code == 34) {
vPosition = vPosition + vPageScrollSize;
} else if (e.code == 36) {
vPosition = vScroller.minPos;
} else if (e.code == 35) {
vPosition = vScroller.maxPos;
}
}
static var symbolName = "ScrollPane";
static var symbolOwner = mx.containers.ScrollPane;
var className = "ScrollPane";
static var version = "2.0.1.78";
var __hScrollPolicy = "auto";
var __scrollDrag = false;
var __vLineScrollSize = 5;
var __hLineScrollSize = 5;
var __vPageScrollSize = 20;
var __hPageScrollSize = 20;
var clipParameters = {contentPath:1, scrollDrag:1, hScrollPolicy:1, vScrollPolicy:1, vLineScrollSize:1, hLineScrollSize:1, vPageScrollSize:1, hPageScrollSize:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.containers.ScrollPane.prototype.clipParameters, mx.core.ScrollView.prototype.clipParameters);
var initializing = true;
}
Symbol 425 MovieClip [__Packages.mx.controls.TextArea] Frame 0
class mx.controls.TextArea extends mx.core.ScrollView
{
var label, invalidate, initText, dispatchValueChangedEvent, getHPosition, setHPosition, getVPosition, setVPosition, _color, focusTextField, tfx, tfy, tfw, tfh, doLater, _vpos, _hpos, hookedV, vScroller, hookedH, hScroller, getViewMetrics, __get__width, __get__height, hScrollPolicy, vScrollPolicy, getStyle, getFocusManager, addEventListener, removeEventListener, _getTextFormat;
function TextArea () {
super();
}
function get maxChars() {
return(label.maxChars);
}
function set maxChars(x) {
label.maxChars = x;
//return(maxChars);
}
function get length() {
return(label.length);
}
function get restrict() {
return(label.restrict);
}
function set restrict(s) {
label.restrict = ((s == "") ? null : (s));
//return(restrict);
}
function get wordWrap() {
return(label.wordWrap);
}
function set wordWrap(s) {
label.wordWrap = s;
invalidate();
//return(wordWrap);
}
function get editable() {
return(__editable);
}
function set editable(x) {
__editable = x;
label.type = (x ? "input" : "dynamic");
//return(editable);
}
function get password() {
return(label.password);
}
function set password(s) {
label.password = s;
//return(password);
}
function get html() {
return(getHtml());
}
function set html(value) {
setHtml(value);
//return(html);
}
function getHtml() {
return(label.html);
}
function setHtml(value) {
if (value != label.html) {
label.html = value;
}
}
function get text() {
return(getText());
}
function set text(t) {
setText(t);
//return(text);
}
function getText() {
if (initializing) {
return(initText);
}
var _local2 = label;
if (_local2.html == true) {
return(_local2.htmlText);
}
return(_local2.text);
}
function setText(t) {
if (initializing) {
initText = t;
} else {
var _local2 = label;
if (_local2.html == true) {
_local2.htmlText = t;
} else {
_local2.text = t;
}
invalidate();
}
dispatchValueChangedEvent(t);
}
function get hPosition() {
return(getHPosition());
}
function set hPosition(pos) {
setHPosition(pos);
label.hscroll = pos;
label.background = false;
//return(hPosition);
}
function get vPosition() {
return(getVPosition());
}
function set vPosition(pos) {
setVPosition(pos);
label.scroll = pos + 1;
label.background = false;
//return(vPosition);
}
function get maxVPosition() {
var _local2 = label.maxscroll - 1;
return(((_local2 == undefined) ? 0 : (_local2)));
}
function get maxHPosition() {
var _local2 = label.maxhscroll;
return(((_local2 == undefined) ? 0 : (_local2)));
}
function init(Void) {
super.init();
label.styleName = this;
_color = mx.core.UIObject.textColorList;
focusTextField = label;
label.owner = this;
label.onSetFocus = function (x) {
this._parent.onSetFocus(x);
};
label.onKillFocus = function (x) {
this._parent.onKillFocus(x);
};
label.drawFocus = function (b) {
this._parent.drawFocus(b);
};
label.onChanged = function () {
this.owner.adjustScrollBars();
this.owner.dispatchEvent({type:"change"});
this.owner.dispatchValueChangedEvent(this.owner.text);
};
label.onScroller = function () {
this.owner.hPosition = this.hscroll;
this.owner.vPosition = this.scroll - 1;
};
if (text == undefined) {
text = ("");
}
}
function createChildren(Void) {
super.createChildren();
label.autoSize = "none";
}
function layoutContent(x, y, totalW, totalH, displayW, displayH) {
var _local2 = label;
if ((((tfx != x) || (tfy != y)) || (tfw != displayW)) || (tfh != displayH)) {
tfx = x;
tfy = y;
tfw = displayW;
tfh = displayH;
_local2.move(tfx, tfy);
_local2.setSize(tfw, tfh);
doLater(this, "adjustScrollBars");
}
}
function scrollChanged(Void) {
var _local2 = Selection;
if (_local2.lastBeginIndex != undefined) {
restoreSelection();
}
label.background = false;
}
function onScroll(docObj) {
var _local3 = label;
super.onScroll(docObj);
_local3.hscroll = hPosition + 0;
_local3.scroll = vPosition + 1;
_vpos = _local3.scroll;
_hpos = _local3.hscroll;
_local3.background = false;
if (hookedV != true) {
vScroller.addEventListener("scrollChanged", this);
hookedV = true;
}
if (hookedH != true) {
hScroller.addEventListener("scrollChanged", this);
hookedH = true;
}
}
function size(Void) {
var _local3 = getViewMetrics();
var _local7 = _local3.left + _local3.right;
var _local4 = _local3.top + _local3.bottom;
var _local6 = _local3.left;
var _local5 = _local3.top;
tfx = _local6;
tfy = _local5;
tfw = __get__width() - _local7;
tfh = __get__height() - _local4;
super.size();
label.move(tfx, tfy);
label.setSize(tfw, tfh);
if (__get__height() <= 40) {
hScrollPolicy = "off";
vScrollPolicy = "off";
}
doLater(this, "adjustScrollBars");
}
function setEnabled(enable) {
vScroller.enabled = enable;
hScroller.enabled = enable;
label.type = (((editable == false) || (enable == false)) ? "dynamic" : "input");
label.selectable = enable;
var _local3 = getStyle((enable ? "color" : "disabledColor"));
if (_local3 == undefined) {
_local3 = (enable ? 0 : 8947848);
}
setColor(_local3);
}
function setColor(col) {
label.textColor = col;
}
function setFocus(Void) {
Selection.setFocus(label);
}
function onSetFocus(x) {
var f = Selection.getFocus();
var o = eval (f);
if (o != label) {
Selection.setFocus(label);
return(undefined);
}
getFocusManager().defaultPushButtonEnabled = false;
addEventListener("keyDown", this);
super.onSetFocus(x);
}
function onKillFocus(x) {
getFocusManager().defaultPushButtonEnabled = true;
removeEventListener("keyDown", this);
super.onKillFocus(x);
}
function restoreSelection(x) {
var _local2 = Selection;
Selection.setSelection(_local2.lastBeginIndex, _local2.lastEndIndex);
label.scroll = _vpos;
label.hscroll = _hpos;
}
function getLineOffsets(Void) {
var _local16 = _getTextFormat();
var _local18 = _local16.getTextExtent2(label.text);
var _local5 = _root._getTextExtent;
_local5.setNewTextFormat(_local16);
var _local14 = label.wordWrap;
var _local9 = 0;
var _local7 = (label._width - 2) - 2;
var _local12 = new Array();
var _local17 = new String(label.text);
var _local15 = _local17.split("\r");
var _local11 = 0;
while (_local11 < _local15.length) {
_local12.push(_local9);
var _local4 = _local15[_local11];
_local5.text = _local4;
var _local13 = Math.ceil(_local5.textWidth / _local7);
var _local10 = Math.floor(_local4.length / _local13);
var _local3;
while (_local14 && (_local5.textWidth > _local7)) {
_local3 = _local4.indexOf(" ", _local10);
var _local6;
if (_local3 == -1) {
_local3 = _local4.lastIndexOf(" ");
if (_local3 == -1) {
_local3 = _local10;
}
}
_local6 = _local4.substr(0, _local3);
_local5.text = _local6;
if (_local5.textWidth > _local7) {
while (_local5.textWidth > _local7) {
var _local8 = _local3;
_local3 = _local4.lastIndexOf(" ", _local3 - 1);
if (_local3 == -1) {
_local3 = _local8 - 1;
}
_local6 = _local4.substr(0, _local3);
_local5.text = _local6;
}
} else if (_local5.textWidth < _local7) {
var _local8 = _local3;
while (_local5.textWidth < _local7) {
_local8 = _local3;
_local3 = _local4.indexOf(" ", _local3 + 1);
if (_local3 == -1) {
if (_local4.indexOf(" ", 0) != -1) {
break;
}
_local3 = _local8 + 1;
}
_local6 = _local4.substr(0, _local3);
_local5.text = _local6;
}
_local3 = _local8;
}
_local9 = _local9 + _local3;
_local12.push(_local9 + 1);
_local4 = _local4.substr(_local3);
if (_local4.charAt(0) == " ") {
_local4 = _local4.substr(1, _local4.length - 1);
_local9 = _local9 + 1;
}
_local5.text = _local4;
}
_local9 = _local9 + (_local4.length + 1);
_local11++;
}
return(_local12);
}
function keyDown(e) {
var _local5 = e.code;
if (_local5 == 34) {
var _local6 = (label.bottomScroll - label.scroll) + 1;
var _local3 = getLineOffsets();
var _local2 = Math.min(label.bottomScroll + 1, label.maxscroll);
if (_local2 == label.maxscroll) {
var _local4 = label.length;
Selection.setSelection(_local4, _local4);
} else {
label.scroll = _local2;
Selection.setSelection(_local3[_local2 - 1], _local3[_local2 - 1]);
}
} else if (_local5 == 33) {
var _local6 = (label.bottomScroll - label.scroll) + 1;
var _local3 = getLineOffsets();
var _local2 = label.scroll - 1;
if (_local2 < 1) {
Selection.setSelection(0, 0);
} else {
Selection.setSelection(_local3[_local2 - 1], _local3[_local2 - 1]);
label.scroll = Math.max(_local2 - _local6, 1);
}
}
}
function draw(Void) {
var _local2 = label;
var _local4 = getText();
if (initializing) {
initializing = false;
delete initText;
}
var _local3 = _getTextFormat();
_local2.embedFonts = _local3.embedFonts == true;
if (_local3 != undefined) {
_local2.setTextFormat(_local3);
_local2.setNewTextFormat(_local3);
}
_local2.multiline = true;
_local2.wordWrap = wordWrap == true;
if (_local2.html == true) {
_local2.setTextFormat(_local3);
_local2.htmlText = _local4;
} else {
_local2.text = _local4;
}
_local2.type = ((editable == true) ? "input" : "dynamic");
size();
_local2.background = false;
}
function adjustScrollBars() {
var _local2 = label;
var _local4 = (_local2.bottomScroll - _local2.scroll) + 1;
var _local3 = (_local4 + _local2.maxscroll) - 1;
if (_local3 < 1) {
_local3 = 1;
}
var _local5 = 0;
if ((_local2.textWidth + 5) > _local2._width) {
if (!_local2.wordWrap) {
_local5 = _local2._width + _local2.maxhscroll;
}
} else {
_local2.hscroll = 0;
_local2.background = false;
}
if ((_local2.height / _local4) != Math.round(_local2.height / _local4)) {
_local3--;
}
setScrollProperties(_local5, 1, _local3, _local2.height / _local4);
}
function setScrollProperties(colCount, colWidth, rwCount, rwHeight, hPadding, wPadding) {
super.setScrollProperties(colCount, colWidth, rwCount, rwHeight, hPadding, wPadding);
if (vScroller == undefined) {
hookedV = false;
}
if (hScroller == undefined) {
hookedH = false;
}
}
function get tabIndex() {
return(label.tabIndex);
}
function set tabIndex(w) {
label.tabIndex = w;
//return(tabIndex);
}
function set _accProps(val) {
label._accProps = val;
//return(_accProps);
}
function get _accProps() {
return(label._accProps);
}
function get styleSheet() {
return(label.styleSheet);
}
function set styleSheet(v) {
label.styleSheet = v;
//return(styleSheet);
}
static var symbolName = "TextArea";
static var symbolOwner = mx.controls.TextArea;
static var version = "2.0.1.78";
var className = "TextArea";
var initializing = true;
var clipParameters = {text:1, wordWrap:1, editable:1, maxChars:1, restrict:1, html:1, password:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.TextArea.prototype.clipParameters, mx.core.ScrollView.prototype.clipParameters);
var __vScrollPolicy = "auto";
var __hScrollPolicy = "auto";
var __editable = true;
}
Symbol 436 MovieClip [__Packages.mx.controls.NumericStepper] Frame 0
class mx.controls.NumericStepper extends mx.core.UIComponent
{
var boundingBox_mc, _visible, tabEnabled, tabChildren, nextButton_mc, __width, prevButton_mc, __height, inputField, StepTrack_mc, focusTextField, createObject, enabled, __set__visible, setSize, createClassObject, __maxChars, dispatchEvent;
function NumericStepper () {
super();
}
function init() {
super.init();
boundingBox_mc._visible = false;
boundingBox_mc._width = (boundingBox_mc._height = 0);
_visible = false;
tabEnabled = false;
tabChildren = true;
}
function setVisible(x, noEvent) {
super.setVisible(x, noEvent);
if (initializing) {
__visible = x;
}
}
function layoutControl() {
nextButton_mc._x = __width - nextButton_mc.__width;
nextButton_mc._y = 0;
prevButton_mc._x = __width - prevButton_mc.__width;
prevButton_mc._y = __height - prevButton_mc.__height;
inputField.setSize(__width - nextButton_mc.__width, __height);
StepTrack_mc._width = Math.max(nextButton_mc.__width, prevButton_mc.__width);
StepTrack_mc._x = __width - StepTrack_mc._width;
StepTrack_mc._height = __height - (nextButton_mc._height + prevButton_mc._height);
StepTrack_mc._y = nextButton_mc.__height;
}
function createChildren() {
super.createChildren();
addAsset("nextButton_mc", skinIDUpArrow);
addAsset("prevButton_mc", skinIDDownArrow);
addAsset("inputField", skinIDInput);
focusTextField = inputField.label;
createObject("StepTrack", "StepTrack_mc", 2);
size();
}
function draw() {
prevButton_mc.enabled = enabled;
nextButton_mc.enabled = enabled;
inputField.enabled = enabled;
size();
initializing = false;
__set__visible(__visible);
}
function size() {
var _local2 = calcMinHeight();
var _local3 = calcMinWidth();
if (__height < _local2) {
setSize(__width, _local2);
}
if (__width < _local3) {
setSize(_local3, __height);
}
layoutControl();
}
function calcMinHeight() {
return(22);
}
function calcMinWidth() {
return(40);
}
function addAsset(id, skinID) {
var _local2 = new Object();
_local2.styleName = this;
if (skinID == 10) {
_local2.falseUpSkin = upArrowUp;
_local2.falseOverSkin = upArrowOver;
_local2.falseDownSkin = upArrowDown;
_local2.falseDisabledSkin = upArrowDisabled;
createClassObject(mx.controls.SimpleButton, id, skinID, _local2);
var _local5 = nextButton_mc;
_local5.tabEnabled = false;
_local5.styleName = this;
_local5._x = __width - _local5.__width;
_local5._y = 0;
_local5.owner = this;
_local5.autoRepeat = true;
_local5.clickHandler = function () {
Selection.setSelection(0, 0);
};
_local5.buttonDownHandler = function () {
this.owner.buttonPress(this);
};
} else if (skinID == 11) {
_local2.falseUpSkin = downArrowUp;
_local2.falseOverSkin = downArrowOver;
_local2.falseDownSkin = downArrowDown;
_local2.falseDisabledSkin = downArrowDisabled;
createClassObject(mx.controls.SimpleButton, id, skinID, _local2);
var _local3 = prevButton_mc;
_local3.tabEnabled = false;
_local3.styleName = this;
_local3._x = __width - _local3.__width;
_local3._y = __height - _local3.__height;
_local3.owner = this;
_local3.autoRepeat = true;
_local3.clickHandler = function () {
Selection.setSelection(0, 0);
};
_local3.buttonDownHandler = function () {
this.owner.buttonPress(this);
};
} else if (skinID == 9) {
createClassObject(mx.controls.TextInput, id, skinID);
var _local4 = inputField;
_local4.styleName = this;
_local4.setSize(__width - nextButton_mc.__width, __height);
_local4.restrict = "0-9\\-\\.\\,";
_local4.maxChars = __maxChars;
_local4.text = value;
_local4.onSetFocus = function () {
this._parent.onSetFocus();
};
_local4.onKillFocus = function () {
this._parent.onKillFocus();
};
_local4.drawFocus = function (b) {
this._parent.drawFocus(b);
};
_local4.onKeyDown = function () {
this._parent.onFieldKeyDown();
};
}
}
function setFocus() {
Selection.setFocus(inputField);
}
function onKillFocus() {
mx.managers.SystemManager.form.focusManager.defaultPushButtonEnabled = true;
super.onKillFocus();
Key.removeListener(inputField);
if (Number(inputField.text) != value) {
var _local3 = checkValidValue(Number(inputField.text));
inputField.text = _local3;
value = (_local3);
}
}
function onSetFocus() {
super.onSetFocus();
Key.addListener(inputField);
mx.managers.SystemManager.form.focusManager.defaultPushButtonEnabled = false;
}
function onFieldKeyDown() {
var _local2 = value;
switch (Key.getCode()) {
case 40 :
var _local3 = value - stepSize;
value = (_local3);
if (_local2 != value) {
dispatchEvent({type:"change"});
}
break;
case 38 :
_local3 = stepSize + value;
value = (_local3);
if (_local2 != value) {
dispatchEvent({type:"change"});
}
break;
case 36 :
inputField.text = minimum;
value = (minimum);
break;
case 35 :
inputField.text = maximum;
value = (maximum);
break;
case 13 :
value = (Number(inputField.text));
if (_local2 == value) {
break;
}
dispatchEvent({type:"change"});
}
}
function get nextValue() {
if (checkRange(value + stepSize)) {
__nextValue = value + stepSize;
return(__nextValue);
}
}
function get previousValue() {
if (checkRange(__value - stepSize)) {
__previousValue = value - stepSize;
return(__previousValue);
}
}
function set maxChars(num) {
__maxChars = num;
inputField.maxChars = __maxChars;
//return(maxChars);
}
function get maxChars() {
return(__maxChars);
}
function get value() {
return(__value);
}
function set value(v) {
var _local2 = checkValidValue(v);
if (_local2 == __value) {
return;
}
inputField.text = (__value = _local2);
//return(value);
}
function get minimum() {
return(__minimum);
}
function set minimum(v) {
__minimum = v;
//return(minimum);
}
function get maximum() {
return(__maximum);
}
function set maximum(v) {
__maximum = v;
//return(maximum);
}
function get stepSize() {
return(__stepSize);
}
function set stepSize(v) {
__stepSize = v;
//return(stepSize);
}
function onFocus() {
}
function buttonPress(button) {
var _local2 = value;
if (button._name == "nextButton_mc") {
value = value + stepSize;
} else {
value = value - stepSize;
}
if (_local2 != value) {
dispatchEvent({type:"change"});
Selection.setSelection(0, 0);
}
}
function checkRange(v) {
return((v >= minimum) and (v <= maximum));
}
function checkValidValue(val) {
var _local7 = val / stepSize;
var _local9 = Math.floor(_local7);
var _local2 = stepSize;
var _local6 = minimum;
var _local5 = maximum;
if ((val > _local6) and (val < _local5)) {
if ((_local7 - _local9) == 0) {
return(val);
}
var _local8 = Math.floor(val / _local2);
var _local4 = _local8 * _local2;
if (((((val - _local4) >= (_local2 / 2)) && (_local5 >= (_local4 + _local2))) && (_local6 <= (_local4 - _local2))) || (((val + _local2) == _local5) && (((_local5 - _local4) - _local2) > 1E-14))) {
_local4 = _local4 + _local2;
}
return(_local4);
}
if (val >= _local5) {
return(_local5);
}
return(_local6);
}
function onLabelChanged(o) {
var _local2 = checkValidValue(Number(o.__get__text()));
o.__set__text(_local2);
value = (_local2);
}
function get tabIndex() {
return(inputField.tabIndex);
}
function set tabIndex(w) {
inputField.tabIndex = w;
//return(tabIndex);
}
static var symbolName = "NumericStepper";
static var symbolOwner = mx.controls.NumericStepper;
static var version = "2.0.1.78";
var className = "NumericStepper";
var upArrowUp = "StepUpArrowUp";
var upArrowDown = "StepUpArrowDown";
var upArrowOver = "StepUpArrowOver";
var upArrowDisabled = "StepUpArrowDisabled";
var downArrowUp = "StepDownArrowUp";
var downArrowDown = "StepDownArrowDown";
var downArrowOver = "StepDownArrowOver";
var downArrowDisabled = "StepDownArrowDisabled";
var skinIDUpArrow = 10;
var skinIDDownArrow = 11;
var skinIDInput = 9;
var initializing = true;
var __visible = true;
var __minimum = 0;
var __maximum = 10;
var __stepSize = 1;
var __value = 0;
var __nextValue = 0;
var __previousValue = 0;
var clipParameters = {minimum:1, maximum:1, stepSize:1, value:1, maxChars:1};
static var mergedClipParameters = mx.core.UIObject.mergeClipParameters(mx.controls.NumericStepper.prototype.clipParameters, mx.core.UIComponent.prototype.clipParameters);
}
Symbol 577 MovieClip Frame 1
function init() {
showActiveTowers = true;
creepsKilled = 0;
creepsExited = 0;
creepsSpawned = 0;
creepsOut = 0;
towers = 0;
activeTowers = 0;
updateAll();
}
function updateAll() {
updateLevelStr();
updateMoneyStr();
updateCreepsOutStr();
updateKilledStr();
updateLostStr();
updateTowersStr();
updateDifficultyStr();
}
function updateDifficultyStr() {
if (_root.difficulty == DIFFICULTY_EASY) {
difficultyStr = "EASY";
} else if (_root.difficulty == DIFFICULTY_HARD) {
difficultyStr = "HARD";
} else {
difficultyStr = "MEDIUM";
}
}
function updateTowersStr() {
towersStr = towers + " TOWERS";
if (showActiveTowers) {
towersStr = (("(" + activeTowers) + ") ") + towersStr;
}
}
function updateMoneyStr() {
moneyStr = "$" + _root.formatInt(_root.money);
}
function updateCreepsOutStr() {
outStr = creepsOut + " ALIVE";
}
function updateLevelStr() {
var format = levelLabel.getTextFormat();
if (_root.numLevels <= 99) {
format.size = 48;
} else {
format.size = 40;
}
levelLabel.setTextFormat(format);
levelStr = (("LEVEL " + _root.levelNum) + "/") + _root.numLevels;
}
function updateKilledStr() {
killedStr = creepsKilled + " KILLED";
}
function updateLostStr() {
lostStr = ((creepsExited + "/") + (_root.allowedLost + 1)) + " LOST";
}
function creepKilled(creep) {
creepsKilled++;
updateKilledStr();
creepsOut--;
updateCreepsOutStr();
_root.money = _root.money + creep.money;
updateMoneyStr();
}
function creepExited(creep) {
creepsOut--;
creepsExited++;
updateCreepsOutStr();
updateLostStr();
}
function creepSpawned(creep) {
creepsOut++;
updateCreepsOutStr();
creepsSpawned++;
}
function spend(val) {
if (isNaN(val) || (val == undefined)) {
return(undefined);
}
_root.money = _root.money - val;
updateMoneyStr();
}
function towerBuilt() {
towers++;
updateTowersStr();
}
function towerRemoved() {
if (towers > 0) {
towers--;
}
updateTowersStr();
}
function towerActivated() {
activeTowers++;
updateTowersStr();
}
function towerDeactivated() {
activeTowers--;
updateTowersStr();
}
showActiveTowers = false;
creepsKilled = 0;
creepsExited = 0;
creepsSpawned = 0;
creepsOut = 0;
towers = 0;
activeTowers = 0;
updateAll();