Combined Code
// unknown tag 88 length 74
movieClip 4 {
}
movieClip 5 {
}
movieClip 6 copied {
frame 65 {
stop();
this.unloadMovie();
this.removeMovieClip();
}
}
movieClip 8 {
}
movieClip 9 shell2 {
}
movieClip 11 {
}
movieClip 12 shell0 {
}
movieClip 14 {
}
movieClip 18 {
}
movieClip 20 {
}
movieClip 46 bosslife {
frame 27 {
stop();
}
}
movieClip 52 glass0 {
frame 1 {
stop();
}
}
movieClip 58 cancelshotleft {
}
movieClip 60 cancelshot {
}
movieClip 62 progresssaved {
frame 77 {
stop();
}
}
movieClip 64 {
frame 1 {
this.onPress = function () {};
}
}
// unknown tag 88 length 608
movieClip 69 {
}
movieClip 82 {
}
movieClip 85 {
}
movieClip 88 {
}
movieClip 91 {
}
movieClip 94 {
}
movieClip 97 {
}
movieClip 100 {
}
movieClip 103 {
}
movieClip 106 {
}
movieClip 109 {
}
movieClip 114 {
frame 1 {
stop();
}
}
movieClip 115 savedialogue {
frame 1 {
function successSave(e) {
var v2 = savinganim;
if (e.success) {
v2.gotoAndStop('complete');
v2.daid.text = new_save.id;
v2.danam.text = new_save.name;
} else {
v2.gotoAndStop('problem');
}
v2.but_ok.onPress = function () {
var v2 = this._parent.partner._parent;
v2.resultscreen.but_sharescene._visible = false;
v2.resultscreen.but_watchreplay._visible = false;
v2.resultscreen.but_playagain._visible = false;
this._parent.partner.unloadMovie();
this._parent.partner.removeMovieClip();
this._parent.unloadMovie();
this._parent.removeMovieClip();
};
}
levels = com.newgrounds.API.getSaveGroup('levels');
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_SAVED, successSave, this);
err._visible = false;
var urlString = _root._url;
if (urlString.indexOf('newgrounds.com') == -1 && urlString.indexOf('ungrounded.net') == -1) {
err._visible = true;
err.onPress = function () {
com.newgrounds.API.loadCustomLink('portalversion');
};
err.onRollOver = function () {
this.gotoAndStop(2);
};
err.onRollOut = function () {
this.gotoAndStop(1);
};
}
but_exit.onPress = function () {
this._parent.unloadMovie();
this._parent.removeMovieClip();
};
but_doit.onPress = function () {
if (nambox.text != '') {
new_save = com.newgrounds.API.newSaveFile('levels');
new_save.contents = this._parent.tosave;
new_save.name = this._parent.nambox.text;
var v3 = this._parent['t' + this._parent.curlev];
v3._x = 0;
v3._y = 0;
var v4 = new flash.display.BitmapData(v3._width, v3._height, true);
v4.draw(v3);
this._parent.attachBitmap(v4, 999);
new_save.thumbnail = v4;
new_save.save();
this._visible = false;
v3._x = 300;
delete this.onPress;
var v5 = this._parent.attachMovie('savinganim', 'savinganim', 999);
v5.partner = this._parent;
} else {
_root.game.runCopy('GIVE YOUR FILE A NAME!');
}
};
}
}
movieClip 116 {
frame 1 {
this.onPress = function () {};
}
}
movieClip 119 {
}
movieClip 120 {
}
movieClip 123 {
}
movieClip 124 {
}
movieClip 138 savinganim {
frame 1 {
stop();
}
}
movieClip 140 {
}
movieClip 142 levelblock {
}
movieClip 144 {
frame 1 {
this.onPress = function () {};
}
}
movieClip 147 {
}
movieClip 149 {
}
movieClip 157 {
frame 1 {
stop();
}
}
movieClip 160 {
}
movieClip 162 {
}
movieClip 167 {
}
movieClip 169 {
}
movieClip 174 {
frame 1 {
stop();
}
}
movieClip 175 votepanel {
frame 1 {
function onVoteComplete(e) {
if (e.success) {
_root.showLoad(0);
stopAllSounds();
_root.gotoAndStop('main');
} else {
var v3 = 0;
while (v3 < 6) {
var v4 = this._parent['v' + v3];
v4._visible = true;
++v3;
}
_root.showLoad(0);
stopAllSounds();
_root.gotoAndStop('main');
}
}
function overIt(id) {
var v2 = this['v' + id];
if (!v2.selected) {
v2.gotoAndStop('over');
}
}
function offIt(id) {
var v2 = this['v' + id];
if (!v2.selected) {
v2.gotoAndStop('norm');
}
}
function clickIt(id) {
var v2 = 0;
while (v2 < 6) {
var v3 = this['v' + v2];
v3.selected = false;
v3.gotoAndStop('norm');
++v2;
}
v3 = this['v' + id];
v3.gotoAndStop('selected');
selid = id;
v3.selected = true;
}
ngpanel._visible = false;
var urlString = _root._url;
if (urlString.indexOf('newgrounds.com') == -1 && urlString.indexOf('ungrounded.net') == -1) {
ngpanel._visible = true;
but_done._visible = false;
ngpanel.onPress = function () {
com.newgrounds.API.loadCustomLink('portalversion');
};
ngpanel.onRollOver = function () {
this.gotoAndStop(2);
};
ngpanel.onRollOut = function () {
this.gotoAndStop(1);
};
}
this.but_main.onPress = function () {
stopAllSounds();
_root.gotoAndStop('main');
};
this.but_done.onPress = function () {
if (this._parent.selid != undefined) {
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.VOTE_COMPLETE, onVoteComplete, this);
var v5 = _root.mysavefile;
v5.sendRating('madness', this._parent.selid);
var v3 = 0;
while (v3 < 6) {
var v4 = this._parent['v' + v3];
v4._visible = false;
++v3;
}
} else {
_root.game.runCopy('CHOOSE A RATING!');
}
};
var i = 0;
while (i < 6) {
var tar = this['v' + i];
tar.num.text = i;
tar.id = i;
tar.onRollOver = function () {
overIt(this.id);
};
tar.onRollOut = function () {
offIt(this.id);
};
tar.onPress = function () {
clickIt(this.id);
};
++i;
}
}
}
movieClip 176 loadspinner {
}
movieClip 182 {
frame 5 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 183 {
frame 1 {
stop();
}
}
movieClip 185 {
}
movieClip 186 gun300 {
}
movieClip 190 {
}
movieClip 191 gun300_menu {
frame 1 {
stop();
}
}
movieClip 194 {
}
movieClip 198 {
frame 5 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 199 {
frame 1 {
stop();
}
}
movieClip 200 gun200 {
}
movieClip 201 gun200_menu {
frame 1 {
stop();
}
}
movieClip 204 {
frame 3 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 205 {
frame 1 {
stop();
}
}
movieClip 206 gun101 {
}
movieClip 207 gun101_menu {
frame 1 {
stop();
}
}
movieClip 212 {
frame 6 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 213 {
frame 1 {
stop();
}
}
movieClip 214 gun100 {
}
movieClip 215 gun100_menu {
frame 1 {
stop();
}
}
movieClip 226 {
frame 9 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 227 {
frame 1 {
stop();
this.sc = 70;
}
}
movieClip 228 gun1 {
}
movieClip 229 gun1_menu {
frame 1 {
stop();
}
}
movieClip 235 {
frame 7 {
stop();
this._parent.gotoAndStop('norm');
}
}
movieClip 236 {
frame 1 {
stop();
this.sc = 70;
}
}
movieClip 237 gun0 {
}
movieClip 238 gun0_menu {
frame 1 {
stop();
}
}
// unknown tag 88 length 68
movieClip 247 {
frame 1 {
onEnterFrame = function () {
if (_visible) {
_rotation = _rotation + 30;
} else {
delete onEnterFrame;
}
};
}
}
// unknown tag 88 length 68
movieClip 249 {
frame 10 {
stop();
}
}
// unknown tag 88 length 68
movieClip 251 {
frame 37 {
_parent.setGotoFrame('done');
stop();
}
}
movieClip 253 {
}
movieClip 255 NewgroundsAPIAsset_Medal_Icon_Placeholder {
}
// unknown tag 88 length 68
// unknown tag 88 length 69
// unknown tag 88 length 68
movieClip 263 NewgroundsAPIAsset_Medal_Popup {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_visible = true;
icon._visible = false;
pop_delay = setInterval(endDelay, 3000);
}
frame 2 {
medal.attachIcon(icon);
}
frame 10 {
icon._visible = true;
medal_name = medal.getName();
medal_value = medal.getValue() + 'pts';
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
movieClip 269 NewgroundsAPIAsset_Login_Warning {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 69
movieClip 272 NewgroundsAPIAsset_Connection_Error {
frame 1 {
function endDelay() {
clearInterval(pop_delay);
gotoAndPlay('closeme');
}
_x = 0;
_y = 0;
_visible = true;
pop_delay = setInterval(endDelay, 6000);
}
frame 10 {
stop();
}
frame 21 {
this.removeMovieClip();
_visible = false;
stop();
}
}
movieClip 274 {
}
movieClip 276 {
}
movieClip 278 {
}
movieClip 280 {
}
movieClip 282 {
}
movieClip 284 {
}
movieClip 286 {
}
movieClip 288 {
}
movieClip 290 {
}
movieClip 292 {
}
movieClip 293 NewgroundsAPIAsset_big_popup_background {
frame 1 {
var w = Math.round(this._width);
var h = Math.round(this._height);
if (w < 80) {
w = 80;
}
if (h < 80) {
h = 80;
}
this._width = 350;
this._height = 120;
t._width = w - 2;
t._x = 1;
b._width = w - 2;
b._x = 1;
c._width = w - 2;
c._x = 1;
c._height = h - 2;
c._y = 1;
l._height = h - 2;
l._y = 1;
r._height = h - 2;
r._y = 1;
tr._x = w - 7;
r._x = w - 7;
br._x = w - 7;
b._y = h - 7;
bl._y = h - 7;
br._y = h - 7;
shadow._width = w + 10;
shadow._height = h + 10;
}
}
button 297 {
on (release) {
this._visible = false;
this.removeMovieClip();
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
button 303 {
on (release) {
getURL(official_version_url, '_blank');
}
}
// unknown tag 88 length 69
movieClip 305 NewgroundsAsset_New_Version_Available {
frame 1 {
_x = Stage.width / 2;
_y = Stage.height / 2;
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
}
}
button 306 {
on (release) {
getURL(official_version_url, '_blank');
}
}
// unknown tag 88 length 68
// unknown tag 88 length 68
// unknown tag 88 length 69
movieClip 310 NewgroundsAsset_Illegal_Host {
frame 1 {
_x = Stage.width / 2;
_y = Stage.height / 2;
background._width = Stage.width + 200;
background._height = Stage.height + 200;
background._x = -(_x + 100);
background._y = -(_y + 100);
}
}
movieClip 311 API Connector (NewgroundsAPI) {
#initclip
Object.registerClass('API Connector (NewgroundsAPI)', com.newgrounds.components.APIConnector);
#endinitclip
frame 20 {
_visible = false;
}
}
button 341 {
on (release) {
com.newgrounds.API.loadNewgrounds();
}
}
movieClip 347 {
frame 1 {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
Unknown action: 0xfc
function () {
= (865 % 511) * true;
if (!'') {
} else {}
return ;
}
var = -67 + ();
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
if ( == 287) {
+= 374;
true;
}
if ( == 239) {
for (;;) {
-= 28;
// An attempt to read a value from empty stack
// An attempt to read a value from empty stack
var eval(undefined) = undefined;
if ( == 753) {
-= 514;
'';
1;
}
if ( == 211) {
+= 348;
'';
}
if ( != 140) break;
+= 608;
if ( == 963) {
-= 521;
}
if ( == 829) {
-= 268;
// An attempt to read a value from empty stack
!undefined;
}
if ( != 913) goto 556;
-= 160;
label 556:
for (;;) {
if ( == 975) {
-= 678;
}
}
if ( == 238) {
+= 737;
true;
}
if ( == 6) {
+= 747;
}
-= 291;
for (;;) {
+= 270;
+= 302;
}
-= 204;
-= 753;
+= 398;
-= 819;
-= 748;
}
eval( != 297);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
movieClip 348 {
frame 11 {
gotoAndPlay(1);
}
}
movieClip 349 Flash Ad (NewgroundsAPI) {
#initclip
Object.registerClass('Flash Ad (NewgroundsAPI)', com.newgrounds.components.FlashAd);
#endinitclip
}
frame 1 {
function freshSaveData() {
_root.so.data.curlev = 0;
_root.so.data.myguns = new Array();
_root.so.data.boughtguns = new Array();
_root.so.data.gunpoints = 0;
_root.so.data.grens = new Array();
}
function runSkip() {
if (!goneahead) {
goAhead();
}
}
function goAhead() {
wrap.gotoAndPlay('fadeout');
delete wrap.but_go.onPress;
goneahead = true;
}
function continueIt() {
gotoAndStop('main');
}
function initSkipBut() {
Key.addListener(keyListener);
}
stop();
Stage.showMenu = false;
_root.so = SharedObject.getLocal('premed');
if (_root.so.data.curlev == undefined) {
freshSaveData();
}
this.skipbut = 32;
goneahead = false;
var keyListener = new Object();
keyListener.onKeyDown = function () {
runSkip();
};
wrap.madlink.onPress = function () {
com.newgrounds.API.loadCustomLink('madness');
};
wrap.madlink1.onPress = function () {
com.newgrounds.API.loadCustomLink('madness');
};
this.onEnterFrame = function () {
var v4 = this.getBytesTotal();
var v3 = this.getBytesLoaded();
var v2 = (v3 / v4) * 100;
wrap.bar._xscale = v2;
if (v2 >= 100) {
delete this.onEnterFrame;
initSkipBut();
wrap.gotoAndPlay('done');
}
};
}
movieClip 353 {
}
movieClip 354 {
instance of movieClip 349 Flash Ad (NewgroundsAPI) {
onClipEvent (construct) {
show_background = false;
}
}
}
movieClip 357 {
}
movieClip 359 {
}
movieClip 362 {
}
movieClip 364 {
frame 13 {
stop();
}
frame 54 {
stop();
gobut.onPress = function () {
this._parent._parent.goAhead();
};
}
frame 100 {
stop();
this._parent.continueIt();
}
}
instance of movieClip 311 API Connector (NewgroundsAPI) {
onClipEvent (construct) {
api_id = '13912:JyekeWn0';
encryption_key = 'hp8ycesZXIT4GwUaKfaq0GxM4IkuoMhI';
version = '';
fake_session = false;
debug = false;
error_screens = true;
medal_popups = true;
}
}
movieClip 313 __Packages.com.newgrounds.API {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.API) {
var v1 = function () {};
com.newgrounds.API = v1;
var v2 = v1.prototype;
v1.setVersion = function (v) {
com.newgrounds.API.version = v;
};
v1.setUserEmail = function (e) {
com.newgrounds.API.user_email = e;
};
v1.setFakeSession = function (fake) {
com.newgrounds.API.fake_session = fake;
};
v1.setPreload = function (p) {
com.newgrounds.API.preload = p;
};
v1.getPercentLoaded = function () {
var v2;
if (com.newgrounds.API.preload && com.newgrounds.API.preload_items > 0) {
v2 = 80;
var v4 = Math.round((com.newgrounds.API.preload_items_loaded / com.newgrounds.API.preload_items) * 20);
var v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2) + v4;
return v3;
}
v2 = 100;
v3 = Math.round((_root.getBytesLoaded() / _root.getBytesTotal()) * v2);
return v3;
};
v1.reportNewAsset = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items;
}
};
v1.reportAssetLoaded = function () {
if (com.newgrounds.API.preload) {
++com.newgrounds.API.preload_items_loaded;
}
};
v1.populateMedals = function (medal_list) {
if (com.newgrounds.API.medals === null) {
com.newgrounds.API.medals = new Array();
var v2 = 0;
while (v2 < medal_list.length) {
var v1 = medal_list[v2];
com.newgrounds.API.medals.push(new com.newgrounds.Medal(v1.medal_id, v1.medal_name, v1.medal_value, v1.medal_difficulty, v1.medal_unlocked, v1.medal_icon));
++v2;
}
}
};
v1.populateSaveGroups = function (save_group_list, file_path, image_path) {
com.newgrounds.SaveFile.setFilePath(file_path);
com.newgrounds.SaveFile.setImagePath(image_path);
com.newgrounds.API.save_groups = new Array();
var v6 = 0;
while (v6 < save_group_list.length) {
var v2 = save_group_list[v6];
var v5 = new com.newgrounds.SaveGroup(v2.group_id, v2.group_name, v2.group_type);
var v4 = 0;
while (v4 < v2.keys.length) {
var v3 = v2.keys[v4];
v5.addKey(v3.id, v3.name, v3.type);
++v4;
}
v4 = 0;
while (v4 < v2.ratings.length) {
var v1 = v2.ratings[v4];
v5.addRating(v1.id, v1.name, v1.min, v1.max, v1.float);
++v4;
}
com.newgrounds.API.save_groups.push(v5);
++v6;
}
};
v1.populateScoreBoards = function (score_boards) {
com.newgrounds.API.scoreboards = new Array();
var v1 = 0;
while (v1 < score_boards.length) {
com.newgrounds.API.scoreboards.push(new com.newgrounds.ScoreBoard(score_boards[v1].id, score_boards[v1].name));
++v1;
}
};
v1.getOfficialURL = function () {
var v1 = com.newgrounds.API.GATEWAY_URL + '?tracker_id=' + com.newgrounds.API.movie_id + '&command_id=loadOfficalVersion&seed=' + Math.random();
if (com.newgrounds.API.debug) {
v1 += '&debug=1';
}
return v1;
};
v1.loadOfficialURL = function () {
getURL(com.newgrounds.API.getOfficialURL(), '_blank');
};
v1.hasUserSession = function () {
if (com.newgrounds.API.session_id && com.newgrounds.API.publisher_id) {
return true;
return false;
}
if (_root.NewgroundsAPI_PublisherID && _root.NewgroundsAPI_SessionID) {
return true;
}
return false;
};
v1.hostIsCompatible = function () {
return _root.NewgroundsAPI_PublisherID !== undefined;
};
v1.isNewgrounds = function () {
return com.newgrounds.API.publisher_id == 1 || _root.NewgroundsAPI_PublisherID == 1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('ungrounded.net') > -1 || ((com.newgrounds.API.getHost()).toLowerCase()).indexOf('newgrounds.com') > -1;
};
v1.hasPublisher = function () {
return com.newgrounds.API.publisher_id || _root.NewgroundsAPI_PublisherID;
};
v1.hasUserEmail = function () {
if (com.newgrounds.API.user_email) {
return true;
}
return false;
};
v1.isConnected = function () {
return com.newgrounds.API.connected;
};
v1.getID = function () {
return com.newgrounds.API.getTrackerID();
};
v1.getTrackerID = function () {
return com.newgrounds.API.tracker_id;
};
v1.getUserID = function () {
return com.newgrounds.API.user_id;
};
v1.getUserName = function () {
return com.newgrounds.API.user_name;
};
v1.connectionTimeOut = function () {
com.newgrounds.API.reportAssetLoaded();
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, new com.newgrounds.APIError('CONNECTION_FAILED', 'Connection to API gateway timed out.'));
};
v1.connect = function (m_id, encrypt_key, debug_mode) {
if (com.newgrounds.API.connected) {
return undefined;
}
com.newgrounds.API.sendMessage('Connecting to the Newgrounds API Gateway...');
var v2 = function () {
com.newgrounds.API.connectionTimeOut();
};
com.newgrounds.API.timeout = setInterval(v2, 10000, null);
if (!m_id) {
com.newgrounds.API.fatalError('API.connect() - missing required movie_id parameter', 'connect');
}
com.newgrounds.API.movie_id = String(m_id);
com.newgrounds.API.tracker_id = Number(com.newgrounds.API.movie_id.substring(0, com.newgrounds.API.movie_id.indexOf(':')));
com.newgrounds.API.encryption_key = encrypt_key;
com.newgrounds.API.debug = debug_mode;
com.newgrounds.API.user_id = 0;
com.newgrounds.API.user_name = 'Guest';
if (_root.NewgroundsAPI_PublisherID) {
com.newgrounds.API.publisher_id = _root.NewgroundsAPI_PublisherID;
if (_root.NewgroundsAPI_SessionID) {
com.newgrounds.API.session_id = _root.NewgroundsAPI_SessionID;
}
} else {
if (com.newgrounds.API.fake_session) {
com.newgrounds.API.publisher_id = 1;
com.newgrounds.API.session_id = 'D3bu64p1U53R';
com.newgrounds.API.user_id = 10;
com.newgrounds.API.user_name = 'API-Debugger';
} else {
if (com.newgrounds.API.debug) {
com.newgrounds.API.publisher_id = 1;
}
com.newgrounds.API.session_id = null;
}
}
if (_root.NewgroundsAPI_UserName) {
com.newgrounds.API.user_name = _root.NewgroundsAPI_UserName;
}
if (_root.NewgroundsAPI_UserID) {
com.newgrounds.API.user_id = _root.NewgroundsAPI_UserID;
}
if (_root.NewgroundsAPI_UserpageFormat) {
com.newgrounds.API.userpage_format = _root.NewgroundsAPI_UserpageFormat;
}
com.newgrounds.API.reportNewAsset();
com.newgrounds.API.connected = true;
com.newgrounds.API.sendCommand('connectMovie', {'host': com.newgrounds.API.getHost(), 'movie_version': com.newgrounds.API.version});
};
v1.getHost = function () {
if (!com.newgrounds.API.host) {
var v1 = _url;
if ((v1.toLowerCase()).indexOf('http://') > -1 or (v1.toLowerCase()).indexOf('https://') > -1) {
if ((v1.toLowerCase()).indexOf(com.newgrounds.API.NEWGROUNDS_PREVIEW) > -1) {
com.newgrounds.API.host = com.newgrounds.API.NEWGROUNDS_PREVIEW;
} else {
com.newgrounds.API.host = (v1.split('/'))[2].toLowerCase();
}
return com.newgrounds.API.host;
}
com.newgrounds.API.host = com.newgrounds.API.LOCAL_HOST;
}
return com.newgrounds.API.host;
};
v1.isPublishedHost = function () {
for (var v1 in com.newgrounds.API.PREVIEW_HOSTS) {
if (com.newgrounds.API.getHost() == com.newgrounds.API.PREVIEW_HOSTS[v1]) {
return false;
}
}
return true;
};
v1.loadUserPage = function (u_id, u_name) {
if (u_id == undefined && u_name == undefined) {
if (com.newgrounds.API.hasUserSession()) {
u_id = com.newgrounds.API.user_id;
u_name = com.newgrounds.API.user_name;
} else {
return false;
}
}
if (com.newgrounds.API.publisher_id == 1) {
var v1 = 'http://' + com.newgrounds.API.user_name.toLowerCase() + '.newgrounds.com';
getURL(v1, '_blank');
return true;
return false;
}
if (com.newgrounds.API.userpage_format) {
v1 = com.newgrounds.API.userpage_format;
v1 = (v1.split(':user_id:')).join(u_id.toString());
v1 = (v1.split(':user_name:')).join(escape(u_name));
getURL(v1, '_blank');
return true;
}
return false;
};
v1.loadNewgrounds = function () {
com.newgrounds.API.sendCommand('loadNewgrounds', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadMySite = function () {
com.newgrounds.API.sendCommand('loadMySite', {'host': com.newgrounds.API.getHost()}, true);
};
v1.loadCustomLink = function (link) {
com.newgrounds.API.sendCommand('loadCustomLink', {'host': com.newgrounds.API.getHost(), 'link': link}, true);
};
v1.logCustomEvent = function (event) {
com.newgrounds.API.sendCommand('logCustomEvent', {'host': com.newgrounds.API.getHost(), 'event': event});
};
v1.getScoreBoard = function (board) {
if (!com.newgrounds.API.scoreboards || com.newgrounds.API.scoreboards.length < 1) {
com.newgrounds.API.sendWarning('You do not have any scoreboards configured in your API setup.');
return null;
}
for (var v2 in com.newgrounds.API.scoreboards) {
if (typeof board == 'string' && com.newgrounds.API.scoreboards[v2].name == board) {
return com.newgrounds.API.scoreboards[v2];
} else {
if (typeof board == 'number' && com.newgrounds.API.scoreboards[v2].id == board) {
return com.newgrounds.API.scoreboards[v2];
}
}
}
com.newgrounds.API.sendWarning('Could not find any scoreboards named \'' + board + '\'.');
return null;
};
v1.postScore = function (board_name, value, tag) {
var v3 = com.newgrounds.API.getScoreBoard(board_name);
if (tag === undefined) {
tag = '';
}
if (!v3) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to post score. Check the spelling of your board name.'));
return undefined;
}
if (value == undefined) {
com.newgrounds.API.sendError({'command_id': 'postScore'}, new com.newgrounds.APIError('MISSING_PARAM', 'Missing score value'));
return undefined;
}
com.newgrounds.API.sendSecureCommand('postScore', {'user_name': com.newgrounds.API.user_name, 'board': v3.id, 'value': value, 'tag': tag, 'publisher_id': com.newgrounds.API.publisher_id});
};
v1.loadScores = function (board_name, period, tag) {
var v3 = 'loadScores';
var v2 = com.newgrounds.API.getScoreBoard(board_name);
if (!v2) {
com.newgrounds.API.sendError({'command_id': v3}, new com.newgrounds.APIError('INVALID_SCOREBOARD', 'Failed to load scores. Check the spelling of your board name.'));
return undefined;
}
var v1 = {};
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.board = v2.id;
v1.num_results = v2.num_results;
v1.page = v2.page;
if (period === undefined) {
v1.period = v2.period;
} else {
v1.period = period;
}
if (tag === undefined) {
v1.tag = v2.tag;
} else {
v1.tag = tag;
}
com.newgrounds.API.sendCommand(v3, v1);
};
v1.unlockMedal = function (medal, x, y) {
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('MISSING_PARAM', 'missing required medal name'));
return undefined;
}
if (typeof medal != 'object') {
medal = com.newgrounds.API.getMedal(medal);
}
if (!medal) {
com.newgrounds.API.sendError({'command_id': 'unlockMedal'}, new com.newgrounds.APIError('INVALID_MEDAL', 'medal unlock failed, check your medal name for correct spelling.'));
return undefined;
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.UNLOCK_MEDAL, true, {'medal': medal, 'x': x, 'y': y});
if (com.newgrounds.API.hasUserSession() or com.newgrounds.API.debug) {
com.newgrounds.API.sendMessage('Attempting to unlock \'' + medal.getName() + '\'');
var v3 = new Object();
v3.medal_id = medal.getID();
com.newgrounds.API.sendSecureCommand('unlockMedal', v3);
} else {
com.newgrounds.API.sendMessage('Unlocking \'' + medal.getName() + '\'');
medal.setUnlocked(true);
var v2 = com.newgrounds.API.loadLocal('medals_unlocked');
if (!v2) {
v2 = new Object();
}
v2[medal.getID()] = true;
com.newgrounds.API.saveLocal('medals_unlocked', v2);
}
};
v1.loadMedals = function () {
if (com.newgrounds.API.medals) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, true, {'medals': com.newgrounds.API.medals});
return undefined;
}
var v1 = new Object();
if (com.newgrounds.API.hasUserSession()) {
v1.publisher_id = com.newgrounds.API.publisher_id;
v1.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('getMedals', v1);
};
v1.getMedals = function () {
return com.newgrounds.API.medals;
};
v1.getMedal = function (identifier) {
if (!com.newgrounds.API.medals || com.newgrounds.API.medals.length < 1) {
com.newgrounds.API.sendWarning('You do not have any medals configured on your API setup!');
return false;
}
for (var v3 in com.newgrounds.API.medals) {
var v1 = com.newgrounds.API.medals[v3];
if (typeof identifier == 'string' && v1.getName() == identifier) {
return v1;
} else {
if (v1.getID() == identifier) {
return v1;
}
}
}
com.newgrounds.API.sendWarning('Could not find any medals named \'' + identifier + '\'.');
return false;
};
v1.saveLocal = function (save_id, save_data, size_allocation) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].data[save_id] = com.newgrounds.API.encodeData(save_data);
com.newgrounds.API.sharedObjects[save_id].flush();
};
v1.loadLocal = function (save_id) {
if (!com.newgrounds.API.sharedObjects[save_id]) {
com.newgrounds.API.sharedObjects[save_id] = SharedObject.getLocal('ng_ap_secure_' + com.newgrounds.API.movie_id + '_' + save_id);
}
com.newgrounds.API.sharedObjects[save_id].flush();
com.newgrounds.API.echo('sharedobject ' + save_id + ' is: ' + com.newgrounds.API.sharedObjects[save_id].data[save_id]);
if (com.newgrounds.API.sharedObjects[save_id].data[save_id]) {
com.newgrounds.API.echo('decoded: ' + com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]));
return com.newgrounds.API.decodeData(com.newgrounds.API.sharedObjects[save_id].data[save_id]);
} else {
return null;
}
};
v1.encodeData = function (data) {
return com.newgrounds.API.compressHex(com.newgrounds.encoders.RC4.encrypt(com.newgrounds.encoders.JSON.encode(data), com.newgrounds.API.encryption_key));
};
v1.decodeData = function (base) {
return com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(com.newgrounds.API.uncompressHex(base), com.newgrounds.API.encryption_key));
};
v1.compressHex = function (hex_value) {
var v6 = hex_value.length % 6;
var v4 = '';
var v5 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v1 = 0;
while (v1 < hex_value.length) {
var v2 = Number('0x' + hex_value.substr(v1, 6));
v4 += v5.encode(v2, 4);
v1 += 6;
}
return v6 + v4;
};
v1.uncompressHex = function (base_value) {
var v9 = Number(base_value.charAt(0));
var v7 = '';
var v3;
var v8 = new com.newgrounds.encoders.BaseN(com.newgrounds.API.compression_radix);
var v2 = 1;
while (v2 < base_value.length) {
var v6 = base_value.substr(v2, 4);
var v5 = v8.decode(v6);
var v1 = com.newgrounds.API.dec2hex(v5);
if (v2 + 4 < base_value.length) {
v3 = 6;
} else {
v3 = v9;
}
while (v1.length < v3) {
v1 = '0' + v1;
}
v7 += v1;
v2 += 4;
}
return v7;
};
v1.dec2hex = function (dec) {
var v4 = '0123456789ABCDEF';
var v3 = '';
while (dec > 0) {
var v2 = dec % 16;
v3 = v4.charAt(v2) + v3;
dec = (dec - v2) / 16;
}
return v3;
};
v1.getSaveGroup = function (group) {
if (com.newgrounds.API.save_groups == null || com.newgrounds.API.save_groups.length < 1) {
com.newgrounds.API.sendWarning('You do not have any save groups configured in your API setup!');
return null;
}
var v1 = 0;
while (v1 <= com.newgrounds.API.save_groups.length) {
if (typeof group == 'number' or (Number(group)).toString() == String(group)) {
if (com.newgrounds.API.save_groups[v1].getID() == Number(group)) {
return com.newgrounds.API.save_groups[v1];
}
} else {
if (typeof group == 'string') {
if ((com.newgrounds.API.save_groups[v1].getName()).toLowerCase() == group.toLowerCase()) {
return com.newgrounds.API.save_groups[v1];
}
}
}
++v1;
}
com.newgrounds.API.sendWarning('Could not find any save groups named \'' + group + '\'.');
return null;
};
v1.getCurrentSaveFile = function () {
return com.newgrounds.API.save_file;
};
v1.setCurrentSaveFile = function (current) {
com.newgrounds.API.save_file = current;
};
v1.loadSaveFile = function (save_id, get_contents) {
if (get_contents === undefined) {
get_contents = true;
}
var v1 = 'loadSaveFile';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'save_id': save_id, 'get_contents': get_contents};
com.newgrounds.API.save_file = null;
com.newgrounds.API.sendCommand(v1, v2);
};
v1.loadFilesByDate = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByDate'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('CREATED_ON', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByViews = function (group_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByViews'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOn('TOTAL_VIEWS', sort_descending ? 'DESC' : 'ASC');
v1.execute();
};
v1.loadFilesByRating = function (group_name, rating_name, sort_descending, key_name, key_value) {
if (sort_descending === undefined) {
sort_descending = true;
}
var v2 = com.newgrounds.API.getSaveGroup(group_name);
if (!v2) {
var v3 = new com.newgrounds.APIError('QUERY_INCOMPLETE', 'The query could not be preformed, check the spelling of your save group name.');
com.newgrounds.API.sendError({'command_id': 'loadFilesByRating'}, v3);
return undefined;
}
var v1 = new com.newgrounds.SaveGroupQuery(v2);
if (key_name) {
v1.addKeyCondition(key_name, '=', key_value);
}
v1.sortOnRating(rating_name, sort_descending ? 'DESC' : 'ASC', 'score');
v1.execute();
};
v1.lookupSaveFiles = function (save_group) {
var v1 = 'lookupSaveFiles';
var v2 = {'publisher_id': com.newgrounds.API.publisher_id, 'group_id': save_group.getID(), 'query': com.newgrounds.encoders.JSON.encode(save_group.getQuery(true))};
com.newgrounds.API.sendCommand(v1, v2);
};
v1.newSaveFile = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newFile();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', 'You can not create new files in invalid groups.');
com.newgrounds.API.sendError({'command_id': 'newSaveFile'}, v2);
}
};
v1.newSaveQuery = function (group) {
var v1 = com.newgrounds.API.getSaveGroup(group);
if (v1) {
return v1.newQuery();
} else {
var v2 = new com.newgrounds.APIError('INVALID_SAVE_GROUP', '\'' + group + '\' is not a valid save group.');
com.newgrounds.API.sendError({'command_id': 'newSaveQuery'}, v2);
}
};
v1.checkFilePrivs = function (file) {
if (com.newgrounds.API.user_id) {
var v1 = com.newgrounds.API.user_id;
} else {
var v1 = 0;
}
var v2 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'user_id': v1, 'publisher_id': com.newgrounds.API.publisher_id};
com.newgrounds.API.sendCommand('checkFilePrivs', v2);
};
v1.saveFile = function (file, overwrite) {
var v1;
v1 = {'group': (file.getGroup()).getID(), 'filename': file.getName(), 'description': file.getDescription(), 'draft': file.__get__draft(), 'user_name': com.newgrounds.API.user_name};
if (overwrite) {
v1.overwrite = overwrite;
}
if (file.getDuplicateID()) {
v1.save_id = file.getDuplicateID();
}
if ((file.getKeys()).length > 0) {
v1.keys = file.getKeys();
}
var v3;
v3 = {'file': file.getRawContents()};
if (file.getThumbnailImageScan()) {
v3.thumbnail = file.getThumbnailImageScan();
}
com.newgrounds.API.save_file = file;
com.newgrounds.API.sendSecureCommand('saveFile', v1, null, v3);
};
v1.rateSaveFile = function (file, rating, vote) {
var v1 = {'group': (file.getGroup()).getID(), 'save_id': file.getID(), 'rating_id': rating.rating_id, 'vote': vote, 'user_id': com.newgrounds.API.user_id};
com.newgrounds.API.sendSecureCommand('rateSaveFile', v1);
};
v1.getConfirmation = function (command_name, event, msg, target, confirm, cancel) {
var v1 = new com.newgrounds.APIError('CONFIRM_REQUEST', msg);
v1.confirm = function () {
target[confirm]();
};
v1.cancel = function () {
target[cancel]();
};
v1.command = command_name;
com.newgrounds.API.callListener(event, false, v1);
};
v1.onRemoteAuthentication = function (auth_result) {
var v1 = com.newgrounds.encoders.JSON.decode(com.newgrounds.encoders.RC4.decrypt(auth_result, com.newgrounds.API.encryption_key));
delete com.newgrounds.API.remote_auth;
com.newgrounds.API.user_id = v1.NewgroundsAPI_UserID;
com.newgrounds.API.user_name = v1.NewgroundsAPI_UserName;
com.newgrounds.API.session_id = v1.NewgroundsAPI_SessionID;
com.newgrounds.API.publisher_id = v1.NewgroundsAPI_PublisherID;
};
v1.doEvent = function (e) {
switch (e.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.sendMessage('You have successfully connected to the Newgrounds API Gateway');
com.newgrounds.API.sendMessage('Movie identified as "' + e.movie_name + '"');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, e.success, {'title': e.movie_name});
var v7 = false;
if (e.ad_status === -1) {
var v11 = 'This movie was not approved to run Flash Ads.';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('visit ' + com.newgrounds.API.AD_TERMS_URL + ' to view our approval guidelines');
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
} else {
if (e.ad_status === 0) {
var v11 = 'Flash Ads are currently awaiting approval.';
com.newgrounds.API.sendNotice(v11);
if (!e.ad_url) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', v11));
} else {
v7 = true;
}
}
}
if (e.ad_url) {
com.newgrounds.API.ad_url = unescape(e.ad_url);
if (!v7) {
com.newgrounds.API.sendMessage('This movie has been approved to run Flash Ads!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.ADS_APPROVED, true);
}
if (e.deny_host) {
v11 = com.newgrounds.API.getHost() + ' does not have permission to run this movie!';
com.newgrounds.API.sendWarning(v11);
com.newgrounds.API.sendWarning('\tUpdate your API configuration to unblock ' + com.newgrounds.API.getHost());
com.newgrounds.API.callListener(com.newgrounds.APIEvent.HOST_BLOCKED, true, {'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
} else {
if (e.movie_version) {
com.newgrounds.API.sendWarning('According to your API Configuration, this version is out of date.');
if (com.newgrounds.API.version) {
com.newgrounds.API.sendWarning('\tThe this movie is version ' + com.newgrounds.API.version);
}
com.newgrounds.API.sendWarning('\tThe most current version is ' + e.movie_version);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.NEW_VERSION_AVAILABLE, true, {'version': e.movie_version, 'real_url': unescape(e.movie_url), 'url': com.newgrounds.API.getOfficialURL()});
}
}
if (e.request_portal_url) {
com.newgrounds.API.sendCommand('setPortalID', {'portal_url': _url});
}
if (com.newgrounds.API.preload) {
com.newgrounds.API.reportNewAsset();
var v8 = {};
if (com.newgrounds.API.hasUserSession()) {
v8.publisher_id = com.newgrounds.API.publisher_id;
v8.user_id = com.newgrounds.API.user_id;
}
com.newgrounds.API.sendCommand('preloadSettings', v8);
}
com.newgrounds.API.reportAssetLoaded();
break;
case 'preloadSettings':
if (e.medals) {
com.newgrounds.API.populateMedals(e.medals);
if (!com.newgrounds.API.hasUserSession() and !com.newgrounds.API.debug) {
com.newgrounds.API.echo('checking for sharedobject medals...');
var v4 = com.newgrounds.API.loadLocal('medals_unlocked');
if (v4) {
for (var v32 in v4) {
v32 = Number(v32);
if (v4[v32]) {
var v3 = com.newgrounds.API.getMedal(v32);
com.newgrounds.API.echo('now unlocking ' + v3.getName());
v3.setUnlocked(true);
}
}
}
}
}
if (e.save_groups) {
com.newgrounds.API.populateSaveGroups(e.save_groups, e.save_file_path);
}
if (e.score_boards) {
com.newgrounds.API.populateScoreBoards(e.score_boards);
}
if (_root.NewgroundsAPI_SaveFileID && _root.NewgroundsAPI_SaveGroupID) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_REQUESTED, true, {'save_id': _root.NewgroundsAPI_SaveFileID, 'group': com.newgrounds.API.getSaveGroup(_root.NewgroundsAPI_SaveGroupID)});
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.METADATA_LOADED, true);
com.newgrounds.API.reportAssetLoaded();
break;
case 'logCustomEvent':
if (e.success) {
com.newgrounds.API.sendMessage('Event \'' + e.event + '\' was logged.');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.EVENT_LOGGED, e.success, {'event': e.event});
break;
case 'postScore':
var v9;
if (e.success) {
var v5 = 'User';
if (com.newgrounds.API.user_email) {
v5 = com.newgrounds.API.user_email;
} else {
if (com.newgrounds.API.user_name) {
v5 = com.newgrounds.API.user_name;
}
}
var v19 = com.newgrounds.API.getScoreBoard(e.board);
com.newgrounds.API.sendMessage(v5 + ' posted ' + e.value + ' to \'' + v19.name + '\'');
v9 = {'board': v19, 'value': e.value, 'username': v5};
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORE_POSTED, e.success, v9);
break;
case 'loadScores':
var v9 = new Object();
var v19 = com.newgrounds.API.getScoreBoard(e.board);
if (v19.exists()) {
v19.setScores(e.scores, e.period, e.page, e.num_results);
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.SCORES_LOADED, e.success, {'board': v19});
break;
case 'unlockMedal':
var v24 = com.newgrounds.API.getMedal(e.medal_name);
v24.setUnlocked(true);
com.newgrounds.API.sendMessage('Successfuly unlocked \'' + v24.getName() + '\'');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDAL_UNLOCKED, e.success, {'medal_id': v24.id, 'medal': v24});
break;
case 'getMedals':
com.newgrounds.API.populateMedals(e.medals);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.MEDALS_LOADED, e.success, {'medals': com.newgrounds.API.medals});
break;
case 'loadSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = new com.newgrounds.SaveFile(v16);
v14.id = e.file.save_id;
v14.name = e.file.filename;
v14.fileUrl = e.file.file;
v14.thumbnailUrl = e.file.thumb;
v14.authorName = e.file.user_name;
v14.authorId = e.file.user_id;
v14.description = e.file.description;
v14.setPermissions(e.file.status, e.file.locked);
for (var v6 in e.file.keys) {
v14.setKey(e.file.keys[v6].id, e.file.keys[v6].value);
}
for (v6 in e.file.ratings) {
v14.setRating(e.file.ratings[v6].id, e.file.ratings[v6].votes, e.file.ratings[v6].score);
}
if (e.get_contents) {
v14.loadContents();
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_INITIALIZED, e.success, {'save_id': v14.id, 'file': v14});
com.newgrounds.API.save_file = v14;
break;
case 'lookupSaveFiles':
var v12 = (com.newgrounds.API.getSaveGroup(e.group_id)).getQuery();
v12.onExecuted(e.files);
break;
case 'rateSaveFile':
var v16 = com.newgrounds.API.getSaveGroup(e.group_id);
var v14 = v16.getFile(e.save_id);
if (e.already_voted) {
var v27 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v27, 'file': v14, 'save_id': v14.id});
return undefined;
} else {
if (e.success) {
var v10 = v14.onVoted(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'rating': v10, 'file': v14, 'save_id': v14.id});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, e.success, {'file': v14, 'save_id': v14.id});
com.newgrounds.API.sendError('Your vote was not accepted.');
}
}
break;
case 'saveFile':
if (com.newgrounds.API.save_file) {
if (!com.newgrounds.API.save_file.exists()) {
com.newgrounds.API.save_file.setID(e.save_id, true);
}
com.newgrounds.API.save_file.onSaved(e);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, e.success, {'save_id': com.newgrounds.API.save_file.__get__id(), 'file': com.newgrounds.API.save_file});
if (e.success) {
com.newgrounds.API.sendMessage('You just saved a new file (id #' + e.save_id + ') to the \'' + (com.newgrounds.API.save_file.__get__group()).__get__name() + '\' save group.');
}
}
com.newgrounds.API.save_file = null;
break;
case 'checkFilePrivs':
var v9 = {'file': com.newgrounds.API.save_file, 'filename': e.filename, 'group': e.group, 'exists': e.exists, 'can_write': e.can_write};
if (e.duplicate_id) {
v9.duplicate_id = e.duplicate_id;
}
if (!e.success) {
com.newgrounds.API.sendWarning('You do not have permission to save this file!');
}
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, e.success, v9);
}
};
v1.getDispatcher = function () {
if (!com.newgrounds.API.eventDispatcher) {
com.newgrounds.API.eventDispatcher = new com.newgrounds.APIEventDispatcher();
}
return com.newgrounds.API.eventDispatcher;
};
v1.hasEventListener = function (event) {
return (com.newgrounds.API.getDispatcher()).hasEventListener(event);
};
v1.addEventListener = function (event, listener, target) {
com.newgrounds.API.echo('Adding a listener for \'' + event + '\'');
(com.newgrounds.API.getDispatcher()).addEventListener(event, listener, target);
};
v1.removeEventListener = function (event, target) {
(com.newgrounds.API.getDispatcher()).removeEventListener(event, target);
};
v1.callListener = function (event, success, data, target) {
com.newgrounds.API.echo('Fired Event: ' + event);
var v2 = new com.newgrounds.APIEvent(event, success, data);
(com.newgrounds.API.getDispatcher()).dispatchEvent(v2);
if (event == com.newgrounds.APIEvent.API_CONNECTED && !success) {
com.newgrounds.API.connected = false;
}
com.newgrounds.API.bridge.sendEvent(event, {'success': success, 'data': data});
};
v1.sendError = function (c, e) {
switch (c.command_id) {
case 'connectMovie':
clearInterval(com.newgrounds.API.timeout);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.API_CONNECTED, false, {'error': e, 'response': c});
break;
case 'saveFile':
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_SAVED, false, {'error': e, 'file': com.newgrounds.API.save_file, 'response': c});
com.newgrounds.API.save_file = null;
}
var v3 = '[Newgrounds API ERROR] :: ' + c.command_id + '() - ' + e.name + ':' + '\n' + '\t\t\t\t' + e.message;
trace(v3);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v3});
};
v1.sendWarning = function (m, c) {
if (c) {
m += '\r[Newgrounds API WARNING] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
var v1 = '[Newgrounds API WARNING] :: ' + m;
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
};
v1.sendNotice = function (m, c) {
if (c) {
m += '\r[Newgrounds API NOTICE] :: \tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
trace('[Newgrounds API NOTICE] :: ' + m);
};
v1.fatalError = function (m, c) {
if (c) {
m += '\r\tSee ' + com.newgrounds.API.COMMANDS_WIKI_URL + c.toLowerCase() + ' for additional information.';
}
throw '***ERROR*** frame=' + _root._currentframe + ', class=API' + '\n' + '\n' + m;
};
v1.openLoginPage = function () {
if (com.newgrounds.API.hasUserSession()) {
return undefined;
}
if (!com.newgrounds.API.remote_auth) {
var v1 = com.newgrounds.encoders.MD5.calculate(Math.random() + 'a' + com.newgrounds.API.movie_id);
v1 = 'POOPYPANTS';
com.newgrounds.API.remote_auth = new com.newgrounds.RemoteAuth(v1);
}
var v2 = com.newgrounds.encoders.RC4.encrypt(com.newgrounds.API.remote_auth.__get__token(), com.newgrounds.API.encryption_key);
trace(v2);
getURL(com.newgrounds.API.LOGIN_URL + '?api_auth_id=' + com.newgrounds.API.movie_id + '&api_auth_key=' + v2, '_blank');
};
v1.sendSecureCommand = function (command, secure_params, unsecure_params, files) {
if (!com.newgrounds.API.debug && !com.newgrounds.API.hasUserSession() && !com.newgrounds.API.hasUserEmail()) {
com.newgrounds.API.sendError({'command_id': command}, new com.newgrounds.APIError('IDENTIFICATION_REQUIRED', 'You must be logged in, or provide an e-mail address using \'API.setUserEmail("name@domain.com");\' to use ' + command + '().'));
return undefined;
}
if (!command) {
com.newgrounds.API.fatalError('Missing command', 'sendSecureCommand');
}
if (!secure_params) {
com.newgrounds.API.fatalError('Missing secure_params', 'sendSecureCommand');
}
if (!unsecure_params) {
unsecure_params = new Object();
}
var v2 = '';
var v1 = 0;
while (v1 < 16) {
v2 += com.newgrounds.API.compression_radix.charAt(Math.floor(Math.random() * com.newgrounds.API.compression_radix.length));
++v1;
}
if (com.newgrounds.API.debug && !com.newgrounds.API.fake_session && !com.newgrounds.API.session_id) {
secure_params.session_id = '';
} else {
secure_params.session_id = com.newgrounds.API.session_id;
}
secure_params.as_version = 2;
secure_params.user_email = com.newgrounds.API.user_email;
secure_params.publisher_id = com.newgrounds.API.publisher_id;
secure_params.seed = v2;
secure_params.command_id = command;
var v6 = com.newgrounds.encoders.JSON.encode(secure_params);
trace('JSON: ' + v6 + '\n');
var v9 = com.newgrounds.encoders.MD5.calculate(v2);
var v7 = com.newgrounds.encoders.RC4.encrypt(v6, com.newgrounds.API.encryption_key);
var v8 = v9 + v7;
unsecure_params.secure = com.newgrounds.API.compressHex(v8);
com.newgrounds.API.sendCommand('securePacket', unsecure_params, false, files);
};
v1.sendCommand = function (command, params, open_browser, files) {
if (!com.newgrounds.API.connected and command != 'connectMovie') {
var v12 = 'API.' + command + '() - API.connect() must be called before this command can be called' + '\n';
com.newgrounds.API.fatalError(v12, 'connect');
}
if (open_browser) {
var v2 = new Object();
} else {
var v2 = new LoadVars();
}
v2.command_id = command;
v2.tracker_id = com.newgrounds.API.movie_id;
if (com.newgrounds.API.debug) {
v2.debug = com.newgrounds.API.debug;
}
if (params) {
for (var v9 in params) {
v2[v9] = params[v9];
}
}
if (files) {
for (v9 in files) {
v2[v9] = files[v9];
}
}
if (open_browser) {
var v6 = com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random();
for (v9 in v2) {
v6 += '&' + escape(v9) + '=' + escape(v2[v9]);
}
trace('OPENING ' + v6);
getURL(v6, '_blank');
v2.removeMovieClip();
} else {
var v10 = new LoadVars();
v10.remember_command_id = v2.command_id;
v10.onData = function (data) {
com.newgrounds.API.echo('INPUT: \r' + data + '\n');
if (data) {
var v2 = com.newgrounds.encoders.JSON.decode(data);
} else {
var v2 = {'success': false};
}
if (!v2.success) {
if (!v2.error_code && !v2.error_msg) {
v2.error_code = 'CONNECTION_FAILED';
v2.error_msg = 'Could not contact the API Gateway';
v2.command_id = this.remember_command_id;
}
var v4 = new com.newgrounds.APIError(v2.error_code, v2.error_msg);
com.newgrounds.API.sendError(v2, v4);
} else {
com.newgrounds.API.doEvent(v2);
}
};
var v7 = new Array();
for (var v8 in v2) {
v7.push(v8 + '=' + escape(v2[v8]));
}
com.newgrounds.API.echo('POST ' + com.newgrounds.API.GATEWAY_URL + '?' + v7.join('&'));
v2.sendAndLoad(com.newgrounds.API.GATEWAY_URL + '?seed=' + Math.random(), v10, 'POST');
com.newgrounds.API.last_command = v2.command_id;
}
};
v1.renderAd = function (target) {
if (com.newgrounds.API.ad_swf_url) {
target.background = target.createEmptyMovieClip('background', 100);
target.background.beginFill(0);
target.background.moveTo(0, 0);
target.background.lineTo(300, 0);
target.background.lineTo(300, 250);
target.background.lineTo(0, 250);
target.background.lineTo(0, 0);
target.background.endFill();
target.mask = target.createEmptyMovieClip('mask', 101);
target.mask.beginFill(0);
target.mask.moveTo(0, 0);
target.mask.lineTo(300, 0);
target.mask.lineTo(300, 250);
target.mask.lineTo(0, 250);
target.mask.lineTo(0, 0);
target.mask.endFill();
target.clip = target.createEmptyMovieClip('clip', 102);
target.clip.ad = target.clip.createEmptyMovieClip('ad', 100);
target.clip.setMask(target.mask);
target.clip.ad._lockroot = true;
loadMovie(com.newgrounds.API.ad_swf_url, target.clip.ad);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, true, {'target': target});
} else {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.AD_ATTACHED, false, new com.newgrounds.APIError('FLASH_ADS_NOT_APPROVED', 'Unable to render ad'));
}
};
v1.attachFlashAd = function (target) {
if (com.newgrounds.API.checkAdFlood()) {
com.newgrounds.API.ad_swf_url = null;
} else {
if (com.newgrounds.API.checkAdCache()) {
com.newgrounds.API.reportNewAsset();
var v1 = new LoadVars();
v1.onData = function (data) {
if (data) {
com.newgrounds.API.ad_swf_url = data;
} else {
com.newgrounds.API.ad_swf_url = null;
}
com.newgrounds.API.reportAssetLoaded();
com.newgrounds.API.renderAd(target);
};
if (com.newgrounds.API.ad_url.indexOf('?') > -1) {
v1.load(com.newgrounds.API.ad_url + '&random=' + Math.random());
} else {
v1.load(com.newgrounds.API.ad_url + '?random=' + Math.random());
}
if (!com.newgrounds.API.ad_warning) {
com.newgrounds.API.ad_warning = true;
com.newgrounds.API.sendMessage('You may get a security sandbox violation from this ad. This is nothing to worry about!');
}
} else {
if (com.newgrounds.API.ad_swf_url) {
com.newgrounds.API.renderAd(target);
}
}
}
};
v1.checkAdFlood = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_flood) {
if (v1 - com.newgrounds.API.ad_flood > 1000) {
com.newgrounds.API.ad_flood = v1 + 1000;
return false;
}
com.newgrounds.API.ad_flood = v1;
com.newgrounds.API.sendWarning('This movie is attempting to load multiple ads at too high of a frequency; you may have a bad preloader loop.');
return true;
}
return false;
};
v1.checkAdCache = function () {
if (!com.newgrounds.API.ad_url) {
return false;
}
var v2 = new Date();
var v1 = v2.getTime();
if (v1 >= com.newgrounds.API.ad_url_cache) {
com.newgrounds.API.ad_url_cache = v1 + 300000;
return true;
}
return false;
};
v1.sendMessage = function (m, r) {
var v1 = '[Newgrounds API] :: ' + m;
if (r) {
return v1;
} else {
trace(v1);
com.newgrounds.API.bridge.sendEvent('trace', {'data': v1});
}
};
v1.echo = function (m) {
if (com.newgrounds.API.do_echo) {
trace(m);
}
};
v1.LOGIN_URL = 'http://ng-local.newgrounds.com/apilogin/';
v1.do_echo = true;
v1.GATEWAY_URL = 'http://www.ngads.com/gateway_v2.php';
v1.NEWGROUNDS_PREVIEW = 'uploads.ungrounded.net/previews';
v1.AD_TERMS_URL = 'http://www.newgrounds.com/wiki/using-the-site/terms-of-use/flash-ads/';
v1.COMMANDS_WIKI_URL = 'http://www.newgrounds.com/wiki/developer-resources/flash-api/commands/';
v1.LOCAL_HOST = 'localhost';
v1.NEWGROUNDS_WWW = 'www.newgrounds.com';
v1.PREVIEW_HOSTS = new Array(com.newgrounds.API.LOCAL_HOST, com.newgrounds.API.NEWGROUNDS_PREVIEW);
v1.ad_url_cache = 0;
v1.ad_flood = 0;
v1.ad_warning = false;
v1.save_file = null;
v1.publisher_id = 1;
v1.fake_session = false;
v1.medals = null;
v1.userpage_format = null;
v1.scoreboards = new Array();
v1.save_groups = null;
v1.compression_radix = '/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X';
v1.errors = com.newgrounds.APIError.init_codes();
v1.sharedObjects = new Object();
v1.bridge = new com.newgrounds.Bridge(_root.NewgroundsAPI_SandboxID);
v1.preload = true;
v1.preload_items = 0;
v1.preload_items_loaded = 0;
ASSetPropFlags(com.newgrounds.API.prototype, null, 1);
}
#endinitclip
}
movieClip 314 __Packages.com.newgrounds.Bridge {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.Bridge) {
var v1 = function (id) {
this.widget_id = id;
this.receiver = new LocalConnection();
this.transmitter = new LocalConnection();
this.receiver.receiveEvent = function (event, params) {
com.newgrounds.API.callListener(event, params.success, params.data);
};
try {
this.receiver.connect('rec_' + this.widget_id);
}
catch (v0) {
if (Error(v0) != null) {
var error = Error(v0);
} else {
throw v0;
}
}
};
com.newgrounds.Bridge = v1;
var v2 = v1.prototype;
v2.sendEvent = function (event, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendEvent', event, this.validateParams(params));
}
};
v2.sendCommand = function (command, params) {
if (this.widget_id) {
this.transmitter.send(this.widget_id, 'sendCommand', command, this.validateParams(params));
}
};
v2.validateParams = function (params) {
var v2 = {};
for (var v3 in params) {
if (typeof params[v3] == 'string' || typeof params[v3] == 'number') {
v2[v3] = params[v3];
}
}
return v2;
};
ASSetPropFlags(com.newgrounds.Bridge.prototype, null, 1);
}
#endinitclip
}
movieClip 315 __Packages.com.newgrounds.SaveFile {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveFile) {
var v1 = function (_group) {
this._group = _group;
this._filename = null;
this._file_id = null;
this._contents = null;
this._thumbnail = null;
this._thumbnail_url = null;
this.raw = null;
this.img = null;
this._draft = false;
this._keys = new Array();
this._ratings = new Array();
this._file_url = null;
com.newgrounds.API.addEventListener(com.newgrounds.APIEvent.FILE_PRIVS_LOADED, this.checkPrivs, this);
};
com.newgrounds.SaveFile = v1;
var v2 = v1.prototype;
v1.setFilePath = function (path) {
com.newgrounds.SaveFile.file_path = path + '/';
};
v1.setImagePath = function (path) {
com.newgrounds.SaveFile.image_path = path + '/';
};
v2.__get__name = function () {
return this._filename;
};
v2.__set__name = function (s) {
this._filename = s;
return this.__get__name();
};
v2.__get__id = function () {
return this._file_id;
};
v2.__get__description = function () {
return this._description;
};
v2.__set__description = function (s) {
this._description = s;
return this.__get__description();
};
v2.__get__contents = function () {
return this._contents;
};
v2.__set__contents = function (o) {
this._contents = o;
return this.__get__contents();
};
v2.__get__thumbnailUrl = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.__set__thumbnailUrl = function (s) {
this._thumbnail_url = s;
return this.__get__thumbnailUrl();
};
v2.__get__fileUrl = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.__set__fileUrl = function (s) {
this._file_url = s;
return this.__get__fileUrl();
};
v2.__get__authorID = function () {
return this._author_id;
};
v2.__set__authorID = function (i) {
this._author_id = i;
return this.__get__authorID();
};
v2.__get__authorName = function () {
return this._author_name;
};
v2.__set__authorName = function (n) {
this._author_name = n;
return this.__get__authorName();
};
v2.__get__views = function () {
return this._views;
};
v2.__get__draft = function () {
return this._draft;
};
v2.__set__draft = function (d) {
this._draft = d;
return this.__get__draft();
};
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__groupName = function () {
return this._group.getName();
};
v2.__get__groupType = function () {
return this._group.getType();
};
v2.__get__locked = function () {
return this._locked;
};
v2.__get__shared = function () {
return this._isShared();
};
v2.__get__isPrivate = function () {
return this._isPrivate();
};
v2.__get__isPublic = function () {
return this._isPublic();
};
v2.__get__approved = function () {
return this._isApproved();
};
v2.__get__keys = function () {
return this._keys;
};
v2.__get__ratings = function () {
return this._ratings;
};
v2.loadAuthorPage = function () {
com.newgrounds.API.loadUserPage(this._author_id, this._author_name);
};
v2.getID = function () {
return this._file_id;
};
v2.exists = function () {
return this._file_id !== null;
};
v2.getGroup = function () {
return this._group;
};
v2.getName = function () {
return this._filename;
};
v2._isPrivate = function () {
return this.status == com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isShared = function () {
return this.status > com.newgrounds.SaveFile.STATUS.PRIVATE;
};
v2._isApproved = function () {
return this.status > com.newgrounds.SaveFile.STATUS.UNAPPROVED;
};
v2._isPublic = function () {
if (this._isPrivate()) {
return false;
return false;
}
if (this._group.isType('SYSTEM') or this._group.isType('PRIVATE')) {
return false;
return false;
}
if (this._group.isType('PUBLIC')) {
return true;
return false;
}
if (this._isApproved()) {
return true;
}
return false;
};
v2.isLocked = function () {
return this._locked;
};
v2.getDescription = function () {
return this._description;
};
v2.getShared = function () {
return this._draft;
};
v2.getThumbnailImageScan = function () {
return this.img;
};
v2.getRawContents = function () {
return this.raw;
};
v2.getDuplicateID = function () {
return this.duplicate_id;
};
v2.getKeys = function () {
return this._keys;
};
v2.getKey = function (key) {
var v3 = (this.getGroup()).getKey(key);
var v2 = 0;
while (v2 < this._keys.length) {
if (this._keys[v2].id == v3.key_id) {
return this._keys[v2].value;
}
++v2;
}
};
v2.getRating = function (rating) {
var v2 = (this.getGroup()).getRating(rating);
if (this._ratings[v2.rating_id]) {
return this._ratings[v2.rating_id];
} else {
return null;
}
};
v2.overwriteAllowed = function () {
return this.overwrite;
};
v2.getFileURL = function () {
return com.newgrounds.SaveFile.file_path + this._file_url;
};
v2.getThumbnailURL = function () {
return com.newgrounds.SaveFile.image_path + this._thumbnail_url;
};
v2.overwriteExisting = function () {
this.overwrite = true;
};
v2.setID = function (id, add_to_group) {
this._file_id = id;
if (add_to_group) {
(this.getGroup()).addFile(this);
}
};
v2.setName = function (filename, locked) {
this._filename = filename;
this._locked = locked;
};
v2.setDescription = function (description) {
this._description = description;
};
v2.setDraft = function (draft) {
this._draft = draft;
};
v2.setContents = function (_contents) {
this._contents = _contents;
};
v2.setThumbnail = function (thumb) {
if (thumb) {
this._thumbnail = thumb;
} else {
this._thumbnail = null;
}
};
v2.setThumbnailURL = function (url) {
this._thumbnail_url = url;
};
v2.setFileURL = function (url) {
this._file_url = url;
};
v2.setPermissions = function (status, _locked) {
this._locked = _locked;
this.status = status;
};
v2.setKey = function (key, val) {
var v4 = (this.getGroup()).getKeyID(key);
var v2;
if (!v4) {
this.onError('\'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' save group', 'setKey', 'INVALID_VALUE', true);
return undefined;
}
if (!this._group.keyValueIsValid(key, val) && val !== null) {
this.onError('\'' + val + '\' is not a valid ' + this._group.getKeyType(key, true), 'setKey', 'INVALID_VALUE', true);
return undefined;
}
switch (this._group.getKeyType(key, true)) {
case 'string':
if (val) {
val = String(val);
} else {
val = undefined;
}
break;
default:
val = Number(val);
}
var v5 = {'id': v4, 'value': val};
for (var v6 in this._keys) {
v2 = this._keys[v6];
if (v2.id == v4) {
this._keys[v6] = v5;
return undefined;
}
}
this._keys.push(v5);
};
v2.setRating = function (rating, votes, score) {
var v2 = (this.getGroup()).getRating(rating);
if (!votes) {
votes = 0;
}
if (!score) {
score = 0;
}
if (!v2.is_float) {
score = Math.round(Number(score));
}
this._ratings[v2.rating_id] = {'id': Number(v2.rating_id), 'name': v2.rating_name, 'votes': Number(votes), 'score': Number(score)};
return this._ratings[v2.rating_id];
};
v2.clearBuffer = function () {
this._contents = null;
this.raw = null;
this.img = null;
this.scanner = null;
this.overwrite = false;
this.duplicate_id = null;
};
v2.onError = function (msg, funct, code) {
com.newgrounds.SaveFile.busy = false;
if (!code) {
code = 'SAVE_FILE_ERROR';
}
if (!funct) {
funct = 'unknown_function';
}
var v3 = 'getSaveGroup(\'' + this._group.getName() + '\')';
if (this.exists()) {
funct = v3 + '.getFile(\'' + this.getName() + '\').' + funct;
} else {
funct = v3 + '.getNewFile().' + funct;
}
var v5 = new com.newgrounds.APIError(code, msg);
com.newgrounds.API.sendError({'command_id': funct}, v5);
};
v2.onSaved = function (p) {
com.newgrounds.SaveFile.busy = false;
if (!this.exists()) {
this.setID(p.save_id, true);
}
this.setName(p.filename);
this.setFileURL(p.file_url);
if (p.thumbnail) {
this._thumbnail_url = p.thumbnail;
}
};
v2.onVoted = function (p) {
trace('ONVOTED WAS CALLED');
return this.setRating(p.rating_id, p.votes, p.score);
};
v2.sendRating = function (rating, vote) {
var v6 = null;
if (!com.newgrounds.API.hasUserSession()) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You must be logged in to vote on save files');
}
var v2 = this._group.getRating(rating);
if (!v2) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save group');
}
if (this.voted === true) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', 'You have already voted on this item today');
}
if (vote < v2.min_value or vote > v2.max_value) {
v6 = new com.newgrounds.APIError('PERMISSION_DENIED', '\'' + rating + '\' votes must be between ' + v2.min_value + ' and ' + v2.max_value);
}
if (v6) {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.VOTE_COMPLETE, false, {'error': v6, 'file': this});
return undefined;
}
this.voted = true;
com.newgrounds.API.rateSaveFile(this, v2, vote);
};
v2.replace = function () {
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'replace');
return undefined;
}
this.overwriteExisting();
this.save();
};
v2.save = function () {
if (com.newgrounds.API.hasUserSession() && !this._author_id && !this._author_name) {
this._author_id = com.newgrounds.API.getUserID();
this._author_name = com.newgrounds.API.getUserName();
}
if (com.newgrounds.SaveFile.busy) {
this.onError('Another file is currently being saved, please try again later', 'save', 'UPLOAD_IN_PROGRESS');
return undefined;
}
com.newgrounds.SaveFile.busy = true;
if (this.isLocked()) {
this.onError('This file is _locked and cannot be overwritten.', 'save', 'PERMISSION_DENIED');
return undefined;
}
if (!this._filename) {
this.onError('Please provide a name for your file.', 'save', 'MISSING_PARAM');
return undefined;
} else {
if (!this._contents) {
this.onError('The file is empty.', 'save', 'MISSING_PARAM');
return undefined;
}
}
this.img = null;
com.newgrounds.API.checkFilePrivs(this);
};
v2.checkPrivs = function (e) {
if (e.data.file.id != this.__get__id()) {
return undefined;
}
if (e.success) {
if (e.data.can_write) {
this.can_write = e.data.can_write;
if (e.data.duplicate_id) {
this.duplicate_id = e.data.duplicate_id;
}
if (e.data.exists && !this.overwriteAllowed()) {
this.onError('You already have a file named \'' + this.getName() + '\'', 'save', 'CONFIRM_REQUEST');
} else {
this.startFile();
}
} else {
this.onError('This file is _locked and cannot be overwritten', 'save', 'PERMISSION_DENIED');
}
} else {
this.onError('There was a problem looking up your file\'s details. The server may be down.', 'save', 'UNKNOWN_ERROR');
}
};
v2.startFile = function () {
if (this.can_write) {
if (this._thumbnail) {
this.scanner = new com.newgrounds.encoders.ImageScanner(this._thumbnail);
this.scanner.setCallback(this, 'encodeFile');
this.scanner.startScan(100, 100, true);
} else {
this.encodeFile();
}
} else {
this.onError('You do not have permission to save this file.', 'save', 'PERMISSION_DENIED');
}
};
v2.encodeFile = function (img) {
this.img = img;
this.raw = (com.newgrounds.encoders.SerialXML.encode(this._contents)).toString();
this.compressFile();
};
v2.compressFile = function () {
com.newgrounds.encoders.LZW2.compress(this.raw, function (s, p) {
p.file.onCompressed(s);
}, {'file': this});
};
v2.onCompressed = function (compressed) {
this.raw = escape(compressed);
this.writeFile();
};
v2.getProgress = function () {};
v2.writeFile = function () {
((this.getGroup()).getQuery()).clearCache();
com.newgrounds.API.saveFile(this);
this.clearBuffer();
};
v2.loadContents = function () {
if (this._contents) {
com.newgrounds.API.setCurrentSaveFile(this);
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
return undefined;
}
if (!this.getFileURL()) {
var v4 = new com.newgrounds.APIError('FILE_NOT_FOUND', 'Attempted to load contents of an unsaved file.');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {'file': this, 'error': v4});
return undefined;
}
var v2 = new LoadVars();
v2.target = this;
var target = this;
v2.onData = function (encoded) {
target.onLoaded(encoded);
};
v2.load(this.getFileURL());
};
v2.onLoaded = function (encoded) {
if (encoded == undefined) {
var v3 = new com.newgrounds.APIError('FILE_NOT_FOUND', 'We could not find the contents for this file. It may have been deleted.');
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, false, {'file': this, 'error': v3});
return undefined;
}
com.newgrounds.encoders.LZW.setXMLSafe(true);
this._contents = com.newgrounds.encoders.SerialXML.decode(com.newgrounds.encoders.LZW.decompress(encoded));
com.newgrounds.API.callListener(com.newgrounds.APIEvent.FILE_LOADED, true, {'file': this});
};
v2.setViews = function (n) {
this._views = n;
};
v1.busy = false;
v2.can_write = false;
v2._draft = false;
v2.status = 0;
v2.voted = false;
v2._views = 0;
v2._locked = false;
v2.overwrite = false;
v2.duplicate_id = null;
v2._keys = null;
v2._ratings = null;
v2._author_id = null;
v2._author_name = null;
v1.STATUS = {'PRIVATE': 1, 'PUBLIC': 2, 'UNAPPROVED': 3, 'APPROVED': 4};
v2.addProperty('approved', v2.__get__approved, function () {});
v2.addProperty('authorID', v2.__get__authorID, v2.__set__authorID);
v2.addProperty('authorName', v2.__get__authorName, v2.__set__authorName);
v2.addProperty('contents', v2.__get__contents, v2.__set__contents);
v2.addProperty('description', v2.__get__description, v2.__set__description);
v2.addProperty('draft', v2.__get__draft, v2.__set__draft);
v2.addProperty('fileUrl', v2.__get__fileUrl, v2.__set__fileUrl);
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('groupName', v2.__get__groupName, function () {});
v2.addProperty('groupType', v2.__get__groupType, function () {});
v2.addProperty('id', v2.__get__id, function () {});
v2.addProperty('isPrivate', v2.__get__isPrivate, function () {});
v2.addProperty('isPublic', v2.__get__isPublic, function () {});
v2.addProperty('keys', v2.__get__keys, function () {});
v2.addProperty('locked', v2.__get__locked, function () {});
v2.addProperty('name', v2.__get__name, v2.__set__name);
v2.addProperty('ratings', v2.__get__ratings, function () {});
v2.addProperty('shared', v2.__get__shared, function () {});
v2.addProperty('thumbnailUrl', v2.__get__thumbnailUrl, v2.__set__thumbnailUrl);
v2.addProperty('views', v2.__get__views, function () {});
ASSetPropFlags(com.newgrounds.SaveFile.prototype, null, 1);
}
#endinitclip
}
movieClip 316 __Packages.com.newgrounds.SaveGroup {
#initclip
label -29747:
label -15570:
label -14936:
label -12734:
Unknown action: 0xfc
function () {
= (562 % 511) * true;
if (!'') {
} else {}
return ;
}
var = 739 + ();
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
for (;;) {
if ( == 790) {
-= 104;
true;
}
if ( == 94) {
+= 589;
for (;;) {
if ( != 608) break;
+= 221;
if ( == 419) {
+= 573;
}
if ( == 920) {
-= 167;
}
if ( != 20) break;
+= 932;
goto -29747;
if ( == 690) {
-= 82;
}
if ( == 864) {
-= 683;
}
if ( != 533) break;
+= 387;
goto 1398;
label 1398:
if ( == 502) {
+= 31;
}
if ( == 284) {
+= 580;
}
if ( != 429) goto 1554;
+= 254;
label 1554:
-= 98;
var eval(true ::: !true) = != 181;
-= 491;
continue;
break;
-= 488;
goto -15570;
-= 344;
+= 690;
for (;;) {
-= 271;
-= 57;
}
+= 303;
for (;;) {
goto -14936;
+= 718;
-= 560;
}
-= 262;
for (;;) {
+= 74;
+= 274;
for (;;) {
-= 972;
-= 644;
}
}
-= 272;
+= 578;
goto -12734;
}
;
true;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
#endinitclip
}
movieClip 319 __Packages.com.newgrounds.SaveGroupQuery {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.SaveGroupQuery) {
var v1 = function (_group) {
this._group = _group;
this.reset();
};
com.newgrounds.SaveGroupQuery = v1;
var v2 = v1.prototype;
v2.__get__group = function () {
return this._group;
};
v2.__get__groupId = function () {
return this._group.getID();
};
v2.__get__resultsPerPage = function () {
return this._num_results;
};
v2.__set__resultsPerPage = function (n) {
this._num_results = n;
return this.__get__resultsPerPage();
};
v2.__get__pages = function () {
return this._pages;
};
v2.__get__page = function () {
return this._page;
};
v2.__set__page = function (n) {
this._page = n;
return this.__get__page();
};
v2.__get__randomize = function () {
return this._randomize_results;
};
v2.__set__randomize = function (b) {
this._randomize_results = b;
return this.__get__randomize();
};
v2.__get__results = function () {
return this._results;
};
v2.clearCache = function () {
this._results = [];
};
v2.reset = function () {
this.file_conditions = new Array();
this.key_conditions = new Array();
this.rating_conditions = new Array();
this.sort_conditions = new Array();
this.lookup_keys = new Object();
this.lookup_ratings = new Object();
this._num_results = 20;
this._page = 1;
this._randomize_results = false;
this._group_by = new Array();
this.clearCache();
};
v2.getGroup = function () {
return this._group;
};
v2.getGroupID = function () {
return this._group.getID();
};
v2.isRandomized = function () {
return this._randomize_results;
};
v2.toObject = function () {
var v2;
var v11 = {'page': this._page, 'num_results': this._num_results};
if (this._randomize_results) {
v11.randomize = 1;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.file_conditions)) {
var v12 = [];
v2 = 0;
while (v2 < this.file_conditions.length) {
var v6 = this.file_conditions[v2];
v12.push({'field': com.newgrounds.SaveGroupQuery.file_fields[v6.field.toUpperCase()].id, 'operator': v6.operator, 'value': v6.value});
++v2;
}
v11.file_conditions = v12;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.key_conditions)) {
v11.key_conditions = this.key_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.rating_conditions)) {
v11.rating_conditions = this.rating_conditions;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.sort_conditions)) {
var v14 = [];
v2 = 0;
while (v2 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v2];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
var v8 = com.newgrounds.SaveGroupQuery.file_fields[v3.field.toUpperCase()].id;
} else {
var v8 = v3.field;
}
var v5 = {'field': v8, 'table': v3.table};
if (v3.desc) {
v5.desc = 1;
}
if (v3.extra) {
v5.extra = v3.extra;
}
v14.push(v5);
++v2;
}
v11.sort_conditions = v14;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_keys)) {
var v15 = [];
for (v2 in this.lookup_keys) {
v15.push(v2);
}
v11.lookup_keys = v15;
}
if (!com.newgrounds.ValidationTools.isEmpty(this.lookup_ratings)) {
var v13 = [];
for (v2 in this.lookup_ratings) {
v13.push(v2);
}
v11.lookup_ratings = v13;
}
if (!com.newgrounds.ValidationTools.isEmpty(this._group_by)) {
var v16 = [];
v2 = 0;
while (v2 < this._group_by.length) {
var v4 = this._group_by[v2];
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_FILES) {
v8 = com.newgrounds.SaveGroupQuery.file_fields[v4.field.toUpperCase()].id;
} else {
v8 = v4.field;
}
v16.push({'field': v8, 'table': v4.table});
++v2;
}
v11.group_by = v16;
}
return v11;
};
v2.toString = function () {
var v9;
var v2;
var v11 = [];
v9 = 'Lookup:\r';
var v14 = [];
for (var v6 in com.newgrounds.SaveGroupQuery.file_fields) {
v14.push(' ' + v6);
v2 = true;
}
v9 += v14.join('\n');
v11.push(v9);
v9 = '';
v2 = false;
var v16 = [];
for (v6 in this.lookup_keys) {
v16.push(' KEY \'' + this._group.getKeyName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v16.join('\n');
v11.push(v9);
}
v9 = '';
v2 = false;
var v15 = [];
for (v6 in this.lookup_ratings) {
v15.push(' RATING \'' + this._group.getRatingName(v6) + '\'');
v2 = true;
}
if (v2) {
v9 += v15.join('\n');
v11.push(v9);
}
v9 = 'Where:\r';
v2 = false;
var v8 = [];
v6 = 0;
while (v6 < this.file_conditions.length) {
var v7 = this.file_conditions[v6];
var v10 = ' ' + v7.field + ' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.key_conditions.length) {
v7 = this.key_conditions[v6];
v10 = ' KEY \'' + this._group.getKeyName(v7.key_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
v6 = 0;
while (v6 < this.rating_conditions.length) {
v7 = this.rating_conditions[v6];
v10 = ' RATING \'' + this._group.getRatingName(v7.rating_id) + '\' ' + v7.operator + ' ' + v7.value;
v8.push(v10);
v2 = true;
++v6;
}
if (v2) {
v9 += v8.join('\n');
v11.push(v9);
}
v9 = 'Group By:\r';
v2 = false;
var v13 = [];
v6 = 0;
while (v6 < this._group_by.length) {
var v4 = this._group_by[v6];
var v5;
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v4.field) + '\'';
} else {
if (v4.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v4.field) + '\'';
} else {
v5 = ' ' + v4.field;
}
}
v13.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v13.join('\n');
v11.push(v9);
}
v9 = 'Order By:\r';
v2 = false;
var v12 = [];
if (this.isRandomized()) {
v12.push(' RANDOM');
v2 = true;
}
v6 = 0;
while (v6 < this.sort_conditions.length) {
var v3 = this.sort_conditions[v6];
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_KEYS) {
v5 = ' KEY \'' + this._group.getKeyName(v3.field) + '\'';
} else {
if (v3.table == com.newgrounds.SaveGroupQuery.TABLE_RATINGS) {
v5 = ' RATING \'' + this._group.getRatingName(v3.field) + '\' ' + ((v3.extra == 'votes') ? 'VOTES' : 'SCORE');
} else {
v5 = ' ' + v3.field;
}
}
v5 += v3.desc ? ' (DESCENDING)' : '';
v12.push(v5);
v2 = true;
++v6;
}
if (v2) {
v9 += v12.join('\n');
v11.push(v9);
}
v11.push('Page:\r ' + this._page);
v11.push('Results Per Page:\r ' + this._num_results);
return v11.join('\n');
};
v2.setResultsPerPage = function (r) {
this._num_results = r;
this.clearCache();
};
v2.setPage = function (p) {
this._page = p;
this.clearCache();
};
v2.setRandomize = function (bool) {
this._randomize_results = (bool === false) ? false : true;
};
v2.includeKey = function (key) {
if (!this._group.getKeyID(key)) {
trace('[SaveGroupQuery Error] :: \'' + key + '\' is not a valid key for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_keys[this._group.getKeyID(key)] = 1;
this.clearCache();
};
v2.includeRating = function (rating) {
if (!this._group.getRatingID(rating)) {
trace('[SaveGroupQuery Error] :: \'' + rating + '\' is not a valid rating for the \'' + this._group.__get__name() + '\' group.');
return undefined;
}
this.lookup_ratings[this._group.getRatingID(rating)] = 1;
this.clearCache();
};
v2.groupBy = function (field) {
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_FILES, field);
};
v2.groupByKey = function (key) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key));
};
v2.groupByRating = function (rating) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addGroupItem(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating));
};
v2.addGroupItem = function (table, field) {
this._group_by.push({'table': table, 'field': field});
this.clearCache();
};
v2.excludeKey = function (key) {
delete this.lookup_keys[this._group.getKeyID(key)];
this.clearCache();
};
v2.excludeRating = function (rating) {
delete this.lookup_ratings[this._group.getRatingID(rating)];
this.clearCache();
};
v2.addCondition = function (field, operator, value) {
if (field == 'FILE_STATUS' && typeof value == 'string' && com.newgrounds.SaveFile.STATUS[value.toUpperCase()] !== undefined) {
value = com.newgrounds.SaveFile.STATUS[value.toUpperCase()];
}
if (operator == '==') {
operator = '=';
}
if (!this.validateOperator(operator) or !this.validateValue(field, value)) {
return undefined;
}
this.file_conditions.push({'field': field, 'operator': operator, 'value': value});
this.clearCache();
};
v2.addKeyCondition = function (key, operator, value) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator) or !this.validateKeyValue(key, value)) {
return undefined;
}
}
this.key_conditions.push({'key_id': this._group.getKeyID(key), 'operator': operator, 'value': value});
this.clearCache();
};
v2.addRatingCondition = function (rating, operator, value, column) {
if (!column) {
column = 'SCORE';
}
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' save _group');
} else {
if (!this.validateOperator(operator)) {
return undefined;
} else {
if (!com.newgrounds.ValidationTools.isNumber(value)) {
this.error('Expected numeric value for rating \'' + rating + '\'');
return undefined;
}
}
}
if (!com.newgrounds.SaveGroupQuery.rating_columns[column]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.rating_columns) {
v2.push(v3);
}
this.error('Invalid rating column \'' + column + '\'. Valid columns are ' + v2.join(', '));
return undefined;
}
this.rating_conditions.push({'rating_id': this._group.getRatingID(rating), 'operator': operator, 'value': value, 'column': com.newgrounds.SaveGroupQuery.rating_columns[column]});
this.clearCache();
};
v2.sortOn = function (field, order) {
if (!com.newgrounds.SaveGroupQuery.file_fields[field]) {
var v2 = [];
for (var v3 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v3);
}
this.error('\'' + field + '\' is not a valid sort field. Valid fields are: ' + v2.join(', '));
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_FILES, field, order);
};
v2.sortOnKey = function (key, order) {
if (!this._group.getKeyID(key)) {
this.error('\'' + key + '\' is not a valid key for the \'' + this._group.getName() + '\' _group');
return undefined;
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_KEYS, this._group.getKeyID(key), order);
};
v2.sortOnRating = function (rating, order, column) {
if (!this._group.getRatingID(rating)) {
this.error('\'' + rating + '\' is not a valid rating for the \'' + this._group.getName() + '\' _group');
return undefined;
}
if (!column) {
column = 'score';
}
this.addSortCondition(com.newgrounds.SaveGroupQuery.TABLE_RATINGS, this._group.getRatingID(rating), order, column);
};
v2.sortOnRatingScore = function (rating, order) {
this.sortOnRating(rating, order, 'score');
};
v2.sortOnRatingVotes = function (rating, order) {
this.sortOnRating(rating, order, 'votes');
};
v2.addSortCondition = function (table, field, order, extra) {
var v7;
if (!order or order == '' or order.toUpperCase() == 'ASC') {
v7 = false;
} else {
if (order.toUpperCase() == 'DESC') {
v7 = true;
} else {
this.error('\'' + order + '\' is not a valid sort order!');
return undefined;
}
}
var v3 = {'table': table, 'field': field, 'desc': v7};
if (extra) {
v3.extra = extra;
}
this.sort_conditions.push(v3);
this.clearCache();
};
v2.onExecuted = function (results) {
this._results = [];
var v6 = 0;
while (v6 < results.length) {
var v2 = results[v6];
var v3 = new com.newgrounds.SaveFile(this._group);
v3.setName(v2.filename);
v3.setID(v2.save_id);
v3.setDescription(v2.description);
v3.setThumbnailURL(v2.thumb);
v3.setFileURL(v2.file);
if (v2.views) {
v3.setViews(v2.views);
}
v3.setPermissions(v2.status, v2.locked);
v3.authorName = v2.user_name;
v3.authorID = v2.user_id;
var v5 = 0;
while (v5 < v2.keys.length) {
v3.setKey(v2.keys[v5].id, v2.keys[v5].value);
++v5;
}
var v4 = 0;
while (v4 < v2.ratings.length) {
v3.setRating(v2.ratings[v4].id, v2.ratings[v4].votes, v2.ratings[v4].score);
++v4;
}
(this.getGroup()).addFile(v3);
this._results.push(v3);
++v6;
}
this.callEventDispatcher();
};
v2.hasResults = function () {
return this._results && this._results.length > 0;
};
v2.callEventDispatcher = function () {
com.newgrounds.API.callListener(com.newgrounds.APIEvent.QUERY_COMPLETE, true, {'query': this});
};
v2.execute = function () {
if (this.hasResults() && !this.isRandomized()) {
this.callEventDispatcher();
return undefined;
}
this._group.query = this;
com.newgrounds.API.lookupSaveFiles(this._group);
};
v2.processResults = function (files) {
return null;
};
v2.validateKeyValue = function (key, value) {
var v3 = this._group.getKeyType(key);
if (v3) {
var v2 = com.newgrounds.SaveGroup.KEY_TYPES[v3];
if (v2 == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (v2 == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (v2 == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
}
}
}
this.error('Expected type ' + v2 + ' for key \'' + key + '\'');
}
return false;
};
v2.validateValue = function (field, value) {
if (com.newgrounds.SaveGroupQuery.file_fields[field]) {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'integer' and com.newgrounds.ValidationTools.isInteger(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'float' and com.newgrounds.ValidationTools.isFloat(value)) {
return true;
} else {
if (com.newgrounds.SaveGroupQuery.file_fields[field].type == 'string' and com.newgrounds.ValidationTools.isString(value)) {
return true;
} else {
this.error('Expecting ' + com.newgrounds.SaveGroupQuery.file_fields[field].type + ' value on \'' + field + '\' condition');
}
}
}
return false;
}
var v2 = [];
for (var v4 in com.newgrounds.SaveGroupQuery.file_fields) {
v2.push(v4);
}
this.error('\'' + field + '\' is not a searchable field. Valid fields are: ' + v2.join(', '));
return false;
};
v2.validateOperator = function (operator) {
var v2 = 0;
while (v2 < com.newgrounds.SaveGroupQuery.valid_operators.length) {
if (operator == com.newgrounds.SaveGroupQuery.valid_operators[v2]) {
return true;
}
++v2;
}
this.error('\'' + operator + '\' is not a valid lookup operation. Valid operations are: ' + com.newgrounds.SaveGroupQuery.valid_operators.join(', '));
return false;
};
v2.error = function (msg) {
trace('[QUERY ERROR] :: ' + msg);
};
v1.TABLE_FILES = 1;
v1.TABLE_KEYS = 2;
v1.TABLE_RATINGS = 3;
v2._results = [];
v1.file_fields = {'FILE_ID': {'id': 0, 'field': 'file_id', 'type': 'integer'}, 'AUTHOR_ID': {'id': 1, 'field': 'user_id', 'type': 'integer'}, 'AUTHOR_NAME': {'id': 2, 'field': 'user_name', 'type': 'string'}, 'FILE_NAME': {'id': 3, 'field': 'file_name', 'type': 'string'}, 'CREATED_ON': {'id': 4, 'field': 'created', 'type': 'string'}, 'UPDATED_ON': {'id': 5, 'field': 'last_update', 'type': 'string'}, 'TOTAL_VIEWS': {'id': 6, 'field': 'views', 'type': 'integer'}, 'FILE_STATUS': {'id': 7, 'field': 'status', 'type': 'integer'}};
v1.rating_columns = {'TOTAL_VOTES': 'votes', 'SCORE': 'score'};
v1.valid_operators = ['=', '<', '>', '!=', '<>', '<=', '>=', '*', '!*', '!*=', '!=*', '*=', '=*'];
v2.addProperty('group', v2.__get__group, function () {});
v2.addProperty('groupId', v2.__get__groupId, function () {});
v2.addProperty('page', v2.__get__page, v2.__set__page);
v2.addProperty('pages', v2.__get__pages, function () {});
v2.addProperty('randomize', v2.__get__randomize, v2.__set__randomize);
v2.addProperty('results', v2.__get__results, function () {});
v2.addProperty('resultsPerPage', v2.__get__resultsPerPage, v2.__set__resultsPerPage);
ASSetPropFlags(com.newgrounds.SaveGroupQuery.prototype, null, 1);
}
#endinitclip
}
movieClip 321 __Packages.com.newgrounds.encoders.ImageScanner {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.ImageScanner) {
var v1 = function (the_source) {
if (the_source) {
this.image_source = the_source;
} else {
this.image_source = _root;
}
this.reset();
if (typeof this.image_source == 'movieclip') {
if (this.image_source == _root) {
this.source_width = Stage.width;
this.source_height = Stage.height;
} else {
this.source_width = Math.floor(this.image_source._width);
this.source_height = Math.floor(this.image_source._height);
}
this.sourceBitmap = new flash.display.BitmapData(this.source_width, this.source_height, false, 4294967295.0);
this.sourceBitmap.draw(_root);
} else {
if (this.image_source.width) {
this.source_width = this.image_source.width;
this.source_height = this.image_source.height;
this.sourceBitmap = this.image_source;
} else {
this.error('You can only use BitMaptData and MovieClip objects to create images');
}
}
};
com.newgrounds.encoders.ImageScanner = v1;
var v2 = v1.prototype;
v2.setCallback = function (target, funct) {
if (target && funct) {
this.callback_target = target;
this.callback_function = funct;
}
};
v2.reset = function () {
this.callback_target = null;
this.callback_function = null;
this.debug.bad_pixels = 0;
this.hash = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ<>?:;-_=+()!&';
var v3 = Math.pow(this.hash.length, 2);
trace('MAX COLORS: ' + v3);
var v2 = Math.floor(Math.pow(v3, 0.3333333333333333)) - 1;
var v4 = Math.pow(v2, 3);
this.cube = v2;
this.basen = new com.newgrounds.encoders.BaseN(this.hash);
this.xpos = 0;
this.ypos = 0;
this.pixels = 0;
this.busy = false;
};
v2.startScan = function (w, h, s) {
if (w) {
this.image_width = w;
}
if (h) {
this.image_height = h;
}
if (s != undefined) {
this.crop = s;
}
var v7 = _root.getNextHighestDepth();
var v6 = _root.createEmptyMovieClip('API_image_container_' + v7, v7);
var v5 = v6.createEmptyMovieClip('canvas', 100);
v5.attachBitmap(this.sourceBitmap, 100);
if (this.crop) {
if (this.image_width / this.source_width > this.image_height / this.source_height) {
this.canvas_width = this.image_width;
this.canvas_height = Math.ceil(this.source_height * (this.image_width / this.source_width));
} else {
this.canvas_height = this.image_height;
this.canvas_width = Math.ceil(this.source_width * (this.image_height / this.source_height));
}
} else {
this.canvas_width = this.image_width;
this.canvas_height = this.image_height;
}
v5._x = Math.round((this.image_width - this.canvas_width) / 2);
v5._width = this.canvas_width;
v5._height = this.canvas_height;
this.resizedBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
this.resizedBitmap.draw(v6);
v6.removeMovieClip();
this.copyBitmap = new flash.display.BitmapData(this.image_width, this.image_height, false, 4294967295.0);
var v3 = '' + this.image_width;
while (v3.length < 3) {
v3 = '0' + v3;
}
var v4 = '' + this.image_height;
while (v4.length < 3) {
v4 = '0' + v4;
}
this.output = v3 + v4;
this.draw_interval = setInterval(this, 'drawChunk', 10);
this.busy = false;
return this.resizedBitmap;
};
v2.getBitmapData = function () {
return this.copyBitmap;
};
v2.getBytesTotal = function () {
return this.image_width * this.image_height * 2;
};
v2.getBytesScanned = function () {
return this.pixels * 2;
};
v2.getProgress = function () {
return Math.round((this.getBytesScanned() / this.getBytesTotal()) * 100);
};
v2.drawChunk = function () {
if (!this.busy) {
this.busy = true;
var v2 = 0;
while (v2 < this.pixels_per_chunk) {
if (!this.nextPixel()) {
clearInterval(this.draw_interval);
this.callback_interval = setInterval(this, 'doCallback', 25);
this.busy = true;
break;
}
++v2;
}
this.busy = false;
}
};
v2.doCallback = function () {
this.busy = false;
clearInterval(this.callback_interval);
if (this.callback_target and this.callback_function) {
this.callback_target[this.callback_function](this.output);
} else {
this.onScanComplete(this.output);
}
};
v2.onScanComplete = function (packet) {
this.sendMessage('packet size: ' + this.output.length + ' bytes', 'onScanComplete');
};
v2.nextPixel = function () {
var v15 = this.xpos;
var v14 = this.ypos;
var v7 = this.resizedBitmap.getPixel(v15, v14);
var v17 = v7 >> 16 & 255;
var v20 = v7 >> 8 & 255;
var v16 = v7 >> 0 & 255;
var v11 = Math.round(((v17 + 1) / 256) * this.cube);
var v10 = Math.round(((v20 + 1) / 256) * this.cube);
var v13 = Math.round(((v16 + 1) / 256) * this.cube);
var v12 = v11 * (this.cube + 1) * (this.cube + 1) + v10 * (this.cube + 1) + v13;
var v6 = this.basen.encode(v12, 2);
this.output += v6;
if (v6.length != 2) {
trace('bad pixel ' + v6);
}
var v5 = this.basen.decode(v6);
var v18 = v5;
var v8 = v5 % (this.cube + 1);
v5 = (v5 - v8) / (this.cube + 1);
var v9 = v5 % (this.cube + 1);
var v19 = (v5 - v9) / (this.cube + 1);
if (v13 != v8 and v10 != v9 and v11 != v10) {
++this.debug.bad_pixels;
trace('BAD PIXEL ' + this.debug.bad_pixels + ') ' + v12 + ' != ' + v18 + ' ' + v6);
trace(this.basen.debug.lastencode);
}
var v2 = (Math.round((v19 / this.cube) * 255)).toString(16);
var v4 = (Math.round((v9 / this.cube) * 255)).toString(16);
var v3 = (Math.round((v8 / this.cube) * 255)).toString(16);
while (v2.length < 2) {
v2 = '0' + v2;
}
while (v4.length < 2) {
v4 = '0' + v4;
}
while (v3.length < 2) {
v3 = '0' + v3;
}
this.copyBitmap.setPixel(v15, v14, Number('0x' + v2 + v4 + v3));
++this.pixels;
if (this.pixels >= this.image_width * this.image_height) {
return false;
}
++this.xpos;
if (this.xpos >= this.image_width) {
this.xpos = 0;
++this.ypos;
}
return true;
};
v2.error = function (e, f) {
this.sendMessage(e, f, 'ERROR');
};
v2.sendMessage = function (msg, func, type) {
var v1 = 'ImageScanner';
if (func) {
v1 += '.' + func + '()';
}
if (type) {
v1 = type + ' in ' + v1;
}
v1 += ' :: ' + msg;
trace(v1);
};
v2.image_width = 100;
v2.image_height = 100;
v2.crop = true;
v2.pixels_per_chunk = 500;
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.ImageScanner.prototype, null, 1);
}
#endinitclip
}
movieClip 320 __Packages.com.newgrounds.encoders.BaseN {
#initclip
if (!_global.com) {
_global.com = new Object();
}
if (!_global.com.newgrounds) {
_global.com.newgrounds = new Object();
}
if (!_global.com.newgrounds.encoders) {
_global.com.newgrounds.encoders = new Object();
}
if (!_global.com.newgrounds.encoders.BaseN) {
var v1 = function (hash) {
this.ceiling = 100000000000000.0;
if (hash) {
this.hashIndex = hash;
} else {
this.hashIndex = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/';
}
this.bitSize = this.hashIndex.length;
this.hashVal = new Object();
this.i = 0;
while (this.i < this.bitSize) {
this.hashVal[this.hashIndex.charAt(this.i)] = this.i;
++this.i;
}
};
com.newgrounds.encoders.BaseN = v1;
var v2 = v1.prototype;
v2.verify = function (s) {
if (this.hashVal[s] != undefined) {
return true;
} else {
return false;
}
};
v2.encode = function (n, minchars) {
this.debug.lastencode = '';
if (typeof this.i != 'string') {
n = n.toString();
}
if (n.charAt(0) == '-') {
var v3 = '-';
n = n.substring(1);
} else {
var v3 = '';
}
if ((String(n)).indexOf('.') > -1) {
var v4 = (String(n)).split('.', 2);
return v3 + this.baseNEncoder(v4[0], minchars) + '.' + this.baseNEncoder(v4[1]);
} else {
this.debug.lastencode += '\tNo decimal\r';
return v3 + this.baseNEncoder(n, minchars);
}
};
v2.decode = function (s) {
var v4 = 1;
if (s.charAt(0) == '-') {
v4 = -1;
s = s.substring(1, s.length);
}
var v3 = s.indexOf('.');
if (v3 > -1) {
var v5 = Math.pow(10, this.baseNDecoder(s.substring(v3 + 1, s.length)));
return (this.baseNDecoder(s.substring(0, v3)) / v5) * v4;
} else {
return this.baseNDecoder(s) * v4;
}
};
v2.baseNEncoder = function (n, minchars) {
if (!minchars) {
minchars = 1;
}
var v4 = '';
while (n != 0) {
n = Math.round(n);
var v3 = n % this.bitSize;
if (Math.round(v3) != v3) {
trace('BaseN failed on ' + n + '%' + this.bitSize + ' = ' + v3 + ' ' + int(n) + ' ' + int(this.bitSize));
}
v4 = this.hashIndex.charAt(v3) + v4;
this.debug.lastencode += '\t-> n:' + n + ' % bitSize:' + this.bitSize + ' = ' + v3 + ', final char=' + v4 + '\n';
n -= v3;
n /= this.bitSize;
}
if (minchars) {
while (v4.length < minchars) {
v4 = this.hashIndex.charAt(0) + v4;
}
}
return v4;
};
v2.baseNDecoder = function (s) {
var v2 = 0;
var v6 = 0;
this.i = 0;
while (this.i < s.length) {
var v3 = s.charAt(s.length - this.i - 1);
if (v3 == this.hashIndex.charAt(0)) {
var v5 = 0;
} else {
var v5 = this.hashVal[v3] * Math.pow(this.bitSize, this.i);
}
v2 += v5;
if (v2 >= this.ceiling) {
v6 += (v2 - v2 % this.ceiling) / this.ceiling;
v2 %= this.ceiling;
}
++this.i;
}
if (v6 > 0) {
v2 = '' + v2;
while (v2.length < (this.ceiling.toString()).length - 1) {
v2 = '0' + v2;
}
v2 = '' + v6 + v2;
}
return v2;
};
v2.debug = new Object();
ASSetPropFlags(com.newgrounds.encoders.BaseN.prototype, null, 1);