Section 1
//MD5 (com.adobe.crypto.MD5)
package com.adobe.crypto {
import flash.utils.*;
import com.adobe.utils.*;
public class MD5 {
public static var digest:ByteArray;
private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function f(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg2) | (~(_arg1) & _arg3)));
}
private static function g(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 & _arg3) | (_arg2 & ~(_arg3))));
}
private static function h(_arg1:int, _arg2:int, _arg3:int):int{
return (((_arg1 ^ _arg2) ^ _arg3));
}
private static function i(_arg1:int, _arg2:int, _arg3:int):int{
return ((_arg2 ^ (_arg1 | ~(_arg3))));
}
private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{
var _local9:int;
_local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8);
return ((IntUtil.rol(_local9, _arg7) + _arg3));
}
private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
public static function hash(_arg1:String):String{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (hashBinary(_local2));
}
private static function createBlocks(_arg1:ByteArray):Array{
var _local2:Array;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = new Array();
_local3 = (_arg1.length * 8);
_local4 = 0xFF;
_local5 = 0;
while (_local5 < _local3) {
_local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32)));
_local5 = (_local5 + 8);
};
_local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32)));
_local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3;
return (_local2);
}
public static function hashBinary(_arg1:ByteArray):String{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:Array;
var _local11:int;
var _local12:int;
_local2 = 1732584193;
_local3 = -271733879;
_local4 = -1732584194;
_local5 = 271733878;
_local10 = createBlocks(_arg1);
_local11 = _local10.length;
_local12 = 0;
while (_local12 < _local11) {
_local6 = _local2;
_local7 = _local3;
_local8 = _local4;
_local9 = _local5;
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162);
_local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682);
_local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101);
_local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290);
_local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501);
_local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467);
_local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784);
_local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473);
_local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189);
_local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487);
_local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835);
_local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520);
_local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649);
_local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070);
_local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379);
_local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259);
_local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551);
_local2 = (_local2 + _local6);
_local3 = (_local3 + _local7);
_local4 = (_local4 + _local8);
_local5 = (_local5 + _local9);
_local12 = (_local12 + 16);
};
digest = new ByteArray();
digest.writeInt(_local2);
digest.writeInt(_local3);
digest.writeInt(_local4);
digest.writeInt(_local5);
digest.position = 0;
return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5)));
}
private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{
return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7));
}
public static function hashBytes(_arg1:ByteArray):String{
return (hashBinary(_arg1));
}
}
}//package com.adobe.crypto
Section 2
//BitString (com.adobe.images.BitString)
package com.adobe.images {
public class BitString {
public var val:int;// = 0
public var len:int;// = 0
public function BitString(){
len = 0;
val = 0;
super();
}
}
}//package com.adobe.images
Section 3
//JPGEncoder (com.adobe.images.JPGEncoder)
package com.adobe.images {
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
public class JPGEncoder {
private var fdtbl_UV:Array;
private var std_ac_chrominance_values:Array;
private var std_dc_chrominance_nrcodes:Array;
private var std_dc_chrominance_values:Array;
private var ZigZag:Array;
private var YDC_HT:Array;
private var bytenew:int;// = 0
private var fdtbl_Y:Array;
private var YAC_HT:Array;
private var std_ac_chrominance_nrcodes:Array;
private var DU:Array;
private var std_ac_luminance_values:Array;
private var UVTable:Array;
private var UDU:Array;
private var YDU:Array;
private var byteout:ByteArray;
private var UVAC_HT:Array;
private var UVDC_HT:Array;
private var bytepos:int;// = 7
private var VDU:Array;
private var std_ac_luminance_nrcodes:Array;
private var std_dc_luminance_values:Array;
private var YTable:Array;
private var std_dc_luminance_nrcodes:Array;
private var bitcode:Array;
private var category:Array;
public function JPGEncoder(_arg1:Number=50){
var _local2:int;
ZigZag = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63];
YTable = new Array(64);
UVTable = new Array(64);
fdtbl_Y = new Array(64);
fdtbl_UV = new Array(64);
std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];
std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];
std_ac_luminance_values = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250];
std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];
std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];
std_ac_chrominance_values = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
bitcode = new Array(0xFFFF);
category = new Array(0xFFFF);
bytenew = 0;
bytepos = 7;
DU = new Array(64);
YDU = new Array(64);
UDU = new Array(64);
VDU = new Array(64);
super();
if (_arg1 <= 0){
_arg1 = 1;
};
if (_arg1 > 100){
_arg1 = 100;
};
_local2 = 0;
if (_arg1 < 50){
_local2 = int((5000 / _arg1));
} else {
_local2 = int((200 - (_arg1 * 2)));
};
initHuffmanTbl();
initCategoryNumber();
initQuantTables(_local2);
}
private function RGB2YUV(_arg1:BitmapData, _arg2:int, _arg3:int):void{
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:uint;
var _local8:Number;
var _local9:Number;
var _local10:Number;
_local4 = 0;
_local5 = 0;
while (_local5 < 8) {
_local6 = 0;
while (_local6 < 8) {
_local7 = _arg1.getPixel32((_arg2 + _local6), (_arg3 + _local5));
_local8 = Number(((_local7 >> 16) & 0xFF));
_local9 = Number(((_local7 >> 8) & 0xFF));
_local10 = Number((_local7 & 0xFF));
YDU[_local4] = ((((0.299 * _local8) + (0.587 * _local9)) + (0.114 * _local10)) - 128);
UDU[_local4] = (((-0.16874 * _local8) + (-0.33126 * _local9)) + (0.5 * _local10));
VDU[_local4] = (((0.5 * _local8) + (-0.41869 * _local9)) + (-0.08131 * _local10));
_local4++;
_local6++;
};
_local5++;
};
}
private function writeWord(_arg1:int):void{
writeByte(((_arg1 >> 8) & 0xFF));
writeByte((_arg1 & 0xFF));
}
private function writeByte(_arg1:int):void{
byteout.writeByte(_arg1);
}
private function writeDHT():void{
var _local1:int;
writeWord(65476);
writeWord(418);
writeByte(0);
_local1 = 0;
while (_local1 < 16) {
writeByte(std_dc_luminance_nrcodes[(_local1 + 1)]);
_local1++;
};
_local1 = 0;
while (_local1 <= 11) {
writeByte(std_dc_luminance_values[_local1]);
_local1++;
};
writeByte(16);
_local1 = 0;
while (_local1 < 16) {
writeByte(std_ac_luminance_nrcodes[(_local1 + 1)]);
_local1++;
};
_local1 = 0;
while (_local1 <= 161) {
writeByte(std_ac_luminance_values[_local1]);
_local1++;
};
writeByte(1);
_local1 = 0;
while (_local1 < 16) {
writeByte(std_dc_chrominance_nrcodes[(_local1 + 1)]);
_local1++;
};
_local1 = 0;
while (_local1 <= 11) {
writeByte(std_dc_chrominance_values[_local1]);
_local1++;
};
writeByte(17);
_local1 = 0;
while (_local1 < 16) {
writeByte(std_ac_chrominance_nrcodes[(_local1 + 1)]);
_local1++;
};
_local1 = 0;
while (_local1 <= 161) {
writeByte(std_ac_chrominance_values[_local1]);
_local1++;
};
}
private function writeBits(_arg1:BitString):void{
var _local2:int;
var _local3:int;
_local2 = _arg1.val;
_local3 = (_arg1.len - 1);
while (_local3 >= 0) {
if ((_local2 & uint((1 << _local3)))){
bytenew = (bytenew | uint((1 << bytepos)));
};
_local3--;
bytepos--;
if (bytepos < 0){
if (bytenew == 0xFF){
writeByte(0xFF);
writeByte(0);
} else {
writeByte(bytenew);
};
bytepos = 7;
bytenew = 0;
};
};
}
private function initHuffmanTbl():void{
YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);
UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);
YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);
UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);
}
public function encode(_arg1:BitmapData):ByteArray{
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:int;
var _local6:int;
var _local7:BitString;
byteout = new ByteArray();
bytenew = 0;
bytepos = 7;
writeWord(65496);
writeAPP0();
writeDQT();
writeSOF0(_arg1.width, _arg1.height);
writeDHT();
writeSOS();
_local2 = 0;
_local3 = 0;
_local4 = 0;
bytenew = 0;
bytepos = 7;
_local5 = 0;
while (_local5 < _arg1.height) {
_local6 = 0;
while (_local6 < _arg1.width) {
RGB2YUV(_arg1, _local6, _local5);
_local2 = processDU(YDU, fdtbl_Y, _local2, YDC_HT, YAC_HT);
_local3 = processDU(UDU, fdtbl_UV, _local3, UVDC_HT, UVAC_HT);
_local4 = processDU(VDU, fdtbl_UV, _local4, UVDC_HT, UVAC_HT);
_local6 = (_local6 + 8);
};
_local5 = (_local5 + 8);
};
if (bytepos >= 0){
_local7 = new BitString();
_local7.len = (bytepos + 1);
_local7.val = ((1 << (bytepos + 1)) - 1);
writeBits(_local7);
};
writeWord(65497);
return (byteout);
}
private function initCategoryNumber():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = 1;
_local2 = 2;
_local4 = 1;
while (_local4 <= 15) {
_local3 = _local1;
while (_local3 < _local2) {
category[(32767 + _local3)] = _local4;
bitcode[(32767 + _local3)] = new BitString();
bitcode[(32767 + _local3)].len = _local4;
bitcode[(32767 + _local3)].val = _local3;
_local3++;
};
_local3 = -((_local2 - 1));
while (_local3 <= -(_local1)) {
category[(32767 + _local3)] = _local4;
bitcode[(32767 + _local3)] = new BitString();
bitcode[(32767 + _local3)].len = _local4;
bitcode[(32767 + _local3)].val = ((_local2 - 1) + _local3);
_local3++;
};
_local1 = (_local1 << 1);
_local2 = (_local2 << 1);
_local4++;
};
}
private function writeDQT():void{
var _local1:int;
writeWord(65499);
writeWord(132);
writeByte(0);
_local1 = 0;
while (_local1 < 64) {
writeByte(YTable[_local1]);
_local1++;
};
writeByte(1);
_local1 = 0;
while (_local1 < 64) {
writeByte(UVTable[_local1]);
_local1++;
};
}
private function writeAPP0():void{
writeWord(65504);
writeWord(16);
writeByte(74);
writeByte(70);
writeByte(73);
writeByte(70);
writeByte(0);
writeByte(1);
writeByte(1);
writeByte(0);
writeWord(1);
writeWord(1);
writeByte(0);
writeByte(0);
}
private function writeSOS():void{
writeWord(65498);
writeWord(12);
writeByte(3);
writeByte(1);
writeByte(0);
writeByte(2);
writeByte(17);
writeByte(3);
writeByte(17);
writeByte(0);
writeByte(63);
writeByte(0);
}
private function processDU(_arg1:Array, _arg2:Array, _arg3:Number, _arg4:Array, _arg5:Array):Number{
var _local6:BitString;
var _local7:BitString;
var _local8:int;
var _local9:Array;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
_local6 = _arg5[0];
_local7 = _arg5[240];
_local9 = fDCTQuant(_arg1, _arg2);
_local8 = 0;
while (_local8 < 64) {
DU[ZigZag[_local8]] = _local9[_local8];
_local8++;
};
_local10 = (DU[0] - _arg3);
_arg3 = DU[0];
if (_local10 == 0){
writeBits(_arg4[0]);
} else {
writeBits(_arg4[category[(32767 + _local10)]]);
writeBits(bitcode[(32767 + _local10)]);
};
_local11 = 63;
while ((((_local11 > 0)) && ((DU[_local11] == 0)))) {
_local11--;
};
if (_local11 == 0){
writeBits(_local6);
return (_arg3);
};
_local8 = 1;
while (_local8 <= _local11) {
_local12 = _local8;
while ((((DU[_local8] == 0)) && ((_local8 <= _local11)))) {
_local8++;
};
_local13 = (_local8 - _local12);
if (_local13 >= 16){
_local14 = 1;
while (_local14 <= (_local13 / 16)) {
writeBits(_local7);
_local14++;
};
_local13 = int((_local13 & 15));
};
writeBits(_arg5[((_local13 * 16) + category[(32767 + DU[_local8])])]);
writeBits(bitcode[(32767 + DU[_local8])]);
_local8++;
};
if (_local11 != 63){
writeBits(_local6);
};
return (_arg3);
}
private function initQuantTables(_arg1:int):void{
var _local2:int;
var _local3:Number;
var _local4:Array;
var _local5:Array;
var _local6:Array;
var _local7:int;
var _local8:int;
_local4 = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99];
_local2 = 0;
while (_local2 < 64) {
_local3 = Math.floor((((_local4[_local2] * _arg1) + 50) / 100));
if (_local3 < 1){
_local3 = 1;
} else {
if (_local3 > 0xFF){
_local3 = 0xFF;
};
};
YTable[ZigZag[_local2]] = _local3;
_local2++;
};
_local5 = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99];
_local2 = 0;
while (_local2 < 64) {
_local3 = Math.floor((((_local5[_local2] * _arg1) + 50) / 100));
if (_local3 < 1){
_local3 = 1;
} else {
if (_local3 > 0xFF){
_local3 = 0xFF;
};
};
UVTable[ZigZag[_local2]] = _local3;
_local2++;
};
_local6 = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379];
_local2 = 0;
_local7 = 0;
while (_local7 < 8) {
_local8 = 0;
while (_local8 < 8) {
fdtbl_Y[_local2] = (1 / (((YTable[ZigZag[_local2]] * _local6[_local7]) * _local6[_local8]) * 8));
fdtbl_UV[_local2] = (1 / (((UVTable[ZigZag[_local2]] * _local6[_local7]) * _local6[_local8]) * 8));
_local2++;
_local8++;
};
_local7++;
};
}
private function writeSOF0(_arg1:int, _arg2:int):void{
writeWord(65472);
writeWord(17);
writeByte(8);
writeWord(_arg2);
writeWord(_arg1);
writeByte(3);
writeByte(1);
writeByte(17);
writeByte(0);
writeByte(2);
writeByte(17);
writeByte(1);
writeByte(3);
writeByte(17);
writeByte(1);
}
private function computeHuffmanTbl(_arg1:Array, _arg2:Array):Array{
var _local3:int;
var _local4:int;
var _local5:Array;
var _local6:int;
var _local7:int;
_local3 = 0;
_local4 = 0;
_local5 = new Array();
_local6 = 1;
while (_local6 <= 16) {
_local7 = 1;
while (_local7 <= _arg1[_local6]) {
_local5[_arg2[_local4]] = new BitString();
_local5[_arg2[_local4]].val = _local3;
_local5[_arg2[_local4]].len = _local6;
_local4++;
_local3++;
_local7++;
};
_local3 = (_local3 * 2);
_local6++;
};
return (_local5);
}
private function fDCTQuant(_arg1:Array, _arg2:Array):Array{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:int;
var _local23:int;
_local23 = 0;
_local22 = 0;
while (_local22 < 8) {
_local3 = (_arg1[(_local23 + 0)] + _arg1[(_local23 + 7)]);
_local10 = (_arg1[(_local23 + 0)] - _arg1[(_local23 + 7)]);
_local4 = (_arg1[(_local23 + 1)] + _arg1[(_local23 + 6)]);
_local9 = (_arg1[(_local23 + 1)] - _arg1[(_local23 + 6)]);
_local5 = (_arg1[(_local23 + 2)] + _arg1[(_local23 + 5)]);
_local8 = (_arg1[(_local23 + 2)] - _arg1[(_local23 + 5)]);
_local6 = (_arg1[(_local23 + 3)] + _arg1[(_local23 + 4)]);
_local7 = (_arg1[(_local23 + 3)] - _arg1[(_local23 + 4)]);
_local11 = (_local3 + _local6);
_local14 = (_local3 - _local6);
_local12 = (_local4 + _local5);
_local13 = (_local4 - _local5);
_arg1[(_local23 + 0)] = (_local11 + _local12);
_arg1[(_local23 + 4)] = (_local11 - _local12);
_local15 = ((_local13 + _local14) * 0.707106781);
_arg1[(_local23 + 2)] = (_local14 + _local15);
_arg1[(_local23 + 6)] = (_local14 - _local15);
_local11 = (_local7 + _local8);
_local12 = (_local8 + _local9);
_local13 = (_local9 + _local10);
_local19 = ((_local11 - _local13) * 0.382683433);
_local16 = ((0.5411961 * _local11) + _local19);
_local18 = ((1.306562965 * _local13) + _local19);
_local17 = (_local12 * 0.707106781);
_local20 = (_local10 + _local17);
_local21 = (_local10 - _local17);
_arg1[(_local23 + 5)] = (_local21 + _local16);
_arg1[(_local23 + 3)] = (_local21 - _local16);
_arg1[(_local23 + 1)] = (_local20 + _local18);
_arg1[(_local23 + 7)] = (_local20 - _local18);
_local23 = (_local23 + 8);
_local22++;
};
_local23 = 0;
_local22 = 0;
while (_local22 < 8) {
_local3 = (_arg1[(_local23 + 0)] + _arg1[(_local23 + 56)]);
_local10 = (_arg1[(_local23 + 0)] - _arg1[(_local23 + 56)]);
_local4 = (_arg1[(_local23 + 8)] + _arg1[(_local23 + 48)]);
_local9 = (_arg1[(_local23 + 8)] - _arg1[(_local23 + 48)]);
_local5 = (_arg1[(_local23 + 16)] + _arg1[(_local23 + 40)]);
_local8 = (_arg1[(_local23 + 16)] - _arg1[(_local23 + 40)]);
_local6 = (_arg1[(_local23 + 24)] + _arg1[(_local23 + 32)]);
_local7 = (_arg1[(_local23 + 24)] - _arg1[(_local23 + 32)]);
_local11 = (_local3 + _local6);
_local14 = (_local3 - _local6);
_local12 = (_local4 + _local5);
_local13 = (_local4 - _local5);
_arg1[(_local23 + 0)] = (_local11 + _local12);
_arg1[(_local23 + 32)] = (_local11 - _local12);
_local15 = ((_local13 + _local14) * 0.707106781);
_arg1[(_local23 + 16)] = (_local14 + _local15);
_arg1[(_local23 + 48)] = (_local14 - _local15);
_local11 = (_local7 + _local8);
_local12 = (_local8 + _local9);
_local13 = (_local9 + _local10);
_local19 = ((_local11 - _local13) * 0.382683433);
_local16 = ((0.5411961 * _local11) + _local19);
_local18 = ((1.306562965 * _local13) + _local19);
_local17 = (_local12 * 0.707106781);
_local20 = (_local10 + _local17);
_local21 = (_local10 - _local17);
_arg1[(_local23 + 40)] = (_local21 + _local16);
_arg1[(_local23 + 24)] = (_local21 - _local16);
_arg1[(_local23 + 8)] = (_local20 + _local18);
_arg1[(_local23 + 56)] = (_local20 - _local18);
_local23++;
_local22++;
};
_local22 = 0;
while (_local22 < 64) {
_arg1[_local22] = Math.round((_arg1[_local22] * _arg2[_local22]));
_local22++;
};
return (_arg1);
}
}
}//package com.adobe.images
Section 4
//PNGEncoder (com.adobe.images.PNGEncoder)
package com.adobe.images {
import flash.display.*;
import flash.utils.*;
public class PNGEncoder {
private static var crcTableComputed:Boolean = false;
private static var crcTable:Array;
private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:int;
var _local8:uint;
var _local9:uint;
var _local10:uint;
if (!crcTableComputed){
crcTableComputed = true;
crcTable = [];
_local9 = 0;
while (_local9 < 0x0100) {
_local8 = _local9;
_local10 = 0;
while (_local10 < 8) {
if ((_local8 & 1)){
_local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1))));
} else {
_local8 = uint((_local8 >>> 1));
};
_local10++;
};
crcTable[_local9] = _local8;
_local9++;
};
};
_local4 = 0;
if (_arg3 != null){
_local4 = _arg3.length;
};
_arg1.writeUnsignedInt(_local4);
_local5 = _arg1.position;
_arg1.writeUnsignedInt(_arg2);
if (_arg3 != null){
_arg1.writeBytes(_arg3);
};
_local6 = _arg1.position;
_arg1.position = _local5;
_local8 = 4294967295;
_local7 = 0;
while (_local7 < (_local6 - _local5)) {
_local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8))));
_local7++;
};
_local8 = uint((_local8 ^ uint(4294967295)));
_arg1.position = _local6;
_arg1.writeUnsignedInt(_local8);
}
public static function encode(_arg1:BitmapData):ByteArray{
var _local2:ByteArray;
var _local3:ByteArray;
var _local4:ByteArray;
var _local5:int;
var _local6:uint;
var _local7:int;
_local2 = new ByteArray();
_local2.writeUnsignedInt(2303741511);
_local2.writeUnsignedInt(218765834);
_local3 = new ByteArray();
_local3.writeInt(_arg1.width);
_local3.writeInt(_arg1.height);
_local3.writeUnsignedInt(134610944);
_local3.writeByte(0);
writeChunk(_local2, 1229472850, _local3);
_local4 = new ByteArray();
_local5 = 0;
while (_local5 < _arg1.height) {
_local4.writeByte(0);
if (!_arg1.transparent){
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF)));
_local7++;
};
} else {
_local7 = 0;
while (_local7 < _arg1.width) {
_local6 = _arg1.getPixel32(_local7, _local5);
_local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24))));
_local7++;
};
};
_local5++;
};
_local4.compress();
writeChunk(_local2, 1229209940, _local4);
writeChunk(_local2, 1229278788, null);
return (_local2);
}
}
}//package com.adobe.images
Section 5
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function decode(_arg1:String){
var _local2:JSONDecoder;
_local2 = new JSONDecoder(_arg1);
return (_local2.getValue());
}
public static function encode(_arg1:Object):String{
var _local2:JSONEncoder;
_local2 = new JSONEncoder(_arg1);
return (_local2.getString());
}
}
}//package com.adobe.serialization.json
Section 6
//JSONDecoder (com.adobe.serialization.json.JSONDecoder)
package com.adobe.serialization.json {
public class JSONDecoder {
private var value;
private var tokenizer:JSONTokenizer;
private var token:JSONToken;
public function JSONDecoder(_arg1:String){
tokenizer = new JSONTokenizer(_arg1);
nextToken();
value = parseValue();
}
private function nextToken():JSONToken{
return ((token = tokenizer.getNextToken()));
}
private function parseObject():Object{
var _local1:Object;
var _local2:String;
_local1 = new Object();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
while (true) {
if (token.type == JSONTokenType.STRING){
_local2 = String(token.value);
nextToken();
if (token.type == JSONTokenType.COLON){
nextToken();
_local1[_local2] = parseValue();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACE){
return (_local1);
};
if (token.type == JSONTokenType.COMMA){
nextToken();
} else {
tokenizer.parseError(("Expecting } or , but found " + token.value));
};
} else {
tokenizer.parseError(("Expecting : but found " + token.value));
};
} else {
tokenizer.parseError(("Expecting string but found " + token.value));
};
};
return (null);
}
private function parseArray():Array{
var _local1:Array;
_local1 = new Array();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
while (true) {
_local1.push(parseValue());
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACKET){
return (_local1);
};
if (token.type == JSONTokenType.COMMA){
nextToken();
} else {
tokenizer.parseError(("Expecting ] or , but found " + token.value));
};
};
return (null);
}
public function getValue(){
return (value);
}
private function parseValue():Object{
if (token == null){
tokenizer.parseError("Unexpected end of input");
};
switch (token.type){
case JSONTokenType.LEFT_BRACE:
return (parseObject());
case JSONTokenType.LEFT_BRACKET:
return (parseArray());
case JSONTokenType.STRING:
case JSONTokenType.NUMBER:
case JSONTokenType.TRUE:
case JSONTokenType.FALSE:
case JSONTokenType.NULL:
return (token.value);
default:
tokenizer.parseError(("Unexpected " + token.value));
};
return (null);
}
}
}//package com.adobe.serialization.json
Section 7
//JSONEncoder (com.adobe.serialization.json.JSONEncoder)
package com.adobe.serialization.json {
import flash.utils.*;
public class JSONEncoder {
private var jsonString:String;
public function JSONEncoder(_arg1){
jsonString = convertToString(_arg1);
}
private function arrayToString(_arg1:Array):String{
var _local2:String;
var _local3:int;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
if (_local2.length > 0){
_local2 = (_local2 + ",");
};
_local2 = (_local2 + convertToString(_arg1[_local3]));
_local3++;
};
return ((("[" + _local2) + "]"));
}
private function convertToString(_arg1):String{
if ((_arg1 is String)){
return (escapeString((_arg1 as String)));
};
if ((_arg1 is Number)){
return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null");
} else {
if ((_arg1 is Boolean)){
return ((_arg1) ? "true" : "false");
} else {
if ((_arg1 is Array)){
return (arrayToString((_arg1 as Array)));
};
if ((((_arg1 is Object)) && (!((_arg1 == null))))){
return (objectToString(_arg1));
};
};
};
return ("null");
}
private function escapeString(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:int;
var _local6:String;
var _local7:String;
_local2 = "";
_local4 = _arg1.length;
_local5 = 0;
while (_local5 < _local4) {
_local3 = _arg1.charAt(_local5);
switch (_local3){
case "\"":
_local2 = (_local2 + "\\\"");
break;
case "\\":
_local2 = (_local2 + "\\\\");
break;
case "\b":
_local2 = (_local2 + "\\b");
break;
case "\f":
_local2 = (_local2 + "\\f");
break;
case "\n":
_local2 = (_local2 + "\\n");
break;
case "\r":
_local2 = (_local2 + "\\r");
break;
case "\t":
_local2 = (_local2 + "\\t");
break;
default:
if (_local3 < " "){
_local6 = _local3.charCodeAt(0).toString(16);
_local7 = ((_local6.length == 2)) ? "00" : "000";
_local2 = (_local2 + (("\\u" + _local7) + _local6));
} else {
_local2 = (_local2 + _local3);
};
};
_local5++;
};
return ((("\"" + _local2) + "\""));
}
private function objectToString(_arg1:Object):String{
var s:String;
var classInfo:XML;
var value:Object;
var key:String;
var v:XML;
var o = _arg1;
s = "";
classInfo = describeType(o);
if (classInfo.@name.toString() == "Object"){
for (key in o) {
value = o[key];
if ((value is Function)){
} else {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((escapeString(key) + ":") + convertToString(value)));
};
};
} else {
for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name])));
};
};
return ((("{" + s) + "}"));
}
public function getString():String{
return (jsonString);
}
}
}//package com.adobe.serialization.json
Section 8
//JSONParseError (com.adobe.serialization.json.JSONParseError)
package com.adobe.serialization.json {
public class JSONParseError extends Error {
private var _text:String;
private var _location:int;
public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){
super(_arg1);
name = "JSONParseError";
_location = _arg2;
_text = _arg3;
}
public function get text():String{
return (_text);
}
public function get location():int{
return (_location);
}
}
}//package com.adobe.serialization.json
Section 9
//JSONToken (com.adobe.serialization.json.JSONToken)
package com.adobe.serialization.json {
public class JSONToken {
private var _value:Object;
private var _type:int;
public function JSONToken(_arg1:int=-1, _arg2:Object=null){
_type = _arg1;
_value = _arg2;
}
public function set value(_arg1:Object):void{
_value = _arg1;
}
public function get value():Object{
return (_value);
}
public function set type(_arg1:int):void{
_type = _arg1;
}
public function get type():int{
return (_type);
}
}
}//package com.adobe.serialization.json
Section 10
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer)
package com.adobe.serialization.json {
public class JSONTokenizer {
private var loc:int;
private var ch:String;
private var obj:Object;
private var jsonString:String;
public function JSONTokenizer(_arg1:String){
jsonString = _arg1;
loc = 0;
nextChar();
}
private function skipComments():void{
if (ch == "/"){
nextChar();
switch (ch){
case "/":
do {
nextChar();
} while (((!((ch == "\n"))) && (!((ch == "")))));
nextChar();
break;
case "*":
nextChar();
while (true) {
if (ch == "*"){
nextChar();
if (ch == "/"){
nextChar();
break;
};
} else {
nextChar();
};
if (ch == ""){
parseError("Multi-line comment not closed");
};
};
break;
default:
parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )"));
};
};
}
private function isDigit(_arg1:String):Boolean{
return ((((_arg1 >= "0")) && ((_arg1 <= "9"))));
}
private function readNumber():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:Number;
_local1 = new JSONToken();
_local1.type = JSONTokenType.NUMBER;
_local2 = "";
if (ch == "-"){
_local2 = (_local2 + "-");
nextChar();
};
if (!isDigit(ch)){
parseError("Expecting a digit");
};
if (ch == "0"){
_local2 = (_local2 + ch);
nextChar();
if (isDigit(ch)){
parseError("A digit cannot immediately follow 0");
};
} else {
while (isDigit(ch)) {
_local2 = (_local2 + ch);
nextChar();
};
};
if (ch == "."){
_local2 = (_local2 + ".");
nextChar();
if (!isDigit(ch)){
parseError("Expecting a digit");
};
while (isDigit(ch)) {
_local2 = (_local2 + ch);
nextChar();
};
};
if ((((ch == "e")) || ((ch == "E")))){
_local2 = (_local2 + "e");
nextChar();
if ((((ch == "+")) || ((ch == "-")))){
_local2 = (_local2 + ch);
nextChar();
};
if (!isDigit(ch)){
parseError("Scientific notation number needs exponent value");
};
while (isDigit(ch)) {
_local2 = (_local2 + ch);
nextChar();
};
};
_local3 = Number(_local2);
if (((isFinite(_local3)) && (!(isNaN(_local3))))){
_local1.value = _local3;
return (_local1);
};
parseError((("Number " + _local3) + " is not valid!"));
return (null);
}
private function nextChar():String{
return ((ch = jsonString.charAt(loc++)));
}
public function getNextToken():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:String;
var _local4:String;
_local1 = new JSONToken();
skipIgnored();
switch (ch){
case "{":
_local1.type = JSONTokenType.LEFT_BRACE;
_local1.value = "{";
nextChar();
break;
case "}":
_local1.type = JSONTokenType.RIGHT_BRACE;
_local1.value = "}";
nextChar();
break;
case "[":
_local1.type = JSONTokenType.LEFT_BRACKET;
_local1.value = "[";
nextChar();
break;
case "]":
_local1.type = JSONTokenType.RIGHT_BRACKET;
_local1.value = "]";
nextChar();
break;
case ",":
_local1.type = JSONTokenType.COMMA;
_local1.value = ",";
nextChar();
break;
case ":":
_local1.type = JSONTokenType.COLON;
_local1.value = ":";
nextChar();
break;
case "t":
_local2 = ((("t" + nextChar()) + nextChar()) + nextChar());
if (_local2 == "true"){
_local1.type = JSONTokenType.TRUE;
_local1.value = true;
nextChar();
} else {
parseError(("Expecting 'true' but found " + _local2));
};
break;
case "f":
_local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar());
if (_local3 == "false"){
_local1.type = JSONTokenType.FALSE;
_local1.value = false;
nextChar();
} else {
parseError(("Expecting 'false' but found " + _local3));
};
break;
case "n":
_local4 = ((("n" + nextChar()) + nextChar()) + nextChar());
if (_local4 == "null"){
_local1.type = JSONTokenType.NULL;
_local1.value = null;
nextChar();
} else {
parseError(("Expecting 'null' but found " + _local4));
};
break;
case "\"":
_local1 = readString();
break;
default:
if (((isDigit(ch)) || ((ch == "-")))){
_local1 = readNumber();
} else {
if (ch == ""){
return (null);
};
parseError((("Unexpected " + ch) + " encountered"));
};
};
return (_local1);
}
private function skipWhite():void{
while (isWhiteSpace(ch)) {
nextChar();
};
}
private function isWhiteSpace(_arg1:String):Boolean{
return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r"))));
}
public function parseError(_arg1:String):void{
throw (new JSONParseError(_arg1, loc, jsonString));
}
private function skipIgnored():void{
var _local1:int;
do {
_local1 = loc;
skipWhite();
skipComments();
} while (_local1 != loc);
}
private function isHexDigit(_arg1:String):Boolean{
var _local2:String;
_local2 = _arg1.toUpperCase();
return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
}
private function readString():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:String;
var _local4:int;
_local1 = new JSONToken();
_local1.type = JSONTokenType.STRING;
_local2 = "";
nextChar();
while (((!((ch == "\""))) && (!((ch == ""))))) {
if (ch == "\\"){
nextChar();
switch (ch){
case "\"":
_local2 = (_local2 + "\"");
break;
case "/":
_local2 = (_local2 + "/");
break;
case "\\":
_local2 = (_local2 + "\\");
break;
case "b":
_local2 = (_local2 + "\b");
break;
case "f":
_local2 = (_local2 + "\f");
break;
case "n":
_local2 = (_local2 + "\n");
break;
case "r":
_local2 = (_local2 + "\r");
break;
case "t":
_local2 = (_local2 + "\t");
break;
case "u":
_local3 = "";
_local4 = 0;
while (_local4 < 4) {
if (!isHexDigit(nextChar())){
parseError((" Excepted a hex digit, but found: " + ch));
};
_local3 = (_local3 + ch);
_local4++;
};
_local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16)));
break;
default:
_local2 = (_local2 + ("\\" + ch));
};
} else {
_local2 = (_local2 + ch);
};
nextChar();
};
if (ch == ""){
parseError("Unterminated string literal");
};
nextChar();
_local1.value = _local2;
return (_local1);
}
}
}//package com.adobe.serialization.json
Section 11
//JSONTokenType (com.adobe.serialization.json.JSONTokenType)
package com.adobe.serialization.json {
public class JSONTokenType {
public static const NUMBER:int = 11;
public static const FALSE:int = 8;
public static const RIGHT_BRACKET:int = 4;
public static const NULL:int = 9;
public static const TRUE:int = 7;
public static const RIGHT_BRACE:int = 2;
public static const UNKNOWN:int = -1;
public static const COMMA:int = 0;
public static const LEFT_BRACKET:int = 3;
public static const STRING:int = 10;
public static const LEFT_BRACE:int = 1;
public static const COLON:int = 6;
}
}//package com.adobe.serialization.json
Section 12
//IntUtil (com.adobe.utils.IntUtil)
package com.adobe.utils {
public class IntUtil {
private static var hexChars:String = "0123456789abcdef";
public static function toHex(_arg1:int, _arg2:Boolean=false):String{
var _local3:String;
var _local4:int;
var _local5:int;
_local3 = "";
if (_arg2){
_local4 = 0;
while (_local4 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15))));
_local4++;
};
} else {
_local5 = 0;
while (_local5 < 4) {
_local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15))));
_local5++;
};
};
return (_local3);
}
public static function ror(_arg1:int, _arg2:int):uint{
var _local3:int;
_local3 = (32 - _arg2);
return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3))));
}
public static function rol(_arg1:int, _arg2:int):int{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
}
}//package com.adobe.utils
Section 13
//CreateToken (com.facebook.commands.auth.CreateToken)
package com.facebook.commands.auth {
import com.facebook.net.*;
public class CreateToken extends FacebookCall {
public static const SCHEMA:Array = [];
public static const METHOD_NAME:String = "auth.createToken";
public function CreateToken(){
super(METHOD_NAME);
}
}
}//package com.facebook.commands.auth
Section 14
//ExpireSession (com.facebook.commands.auth.ExpireSession)
package com.facebook.commands.auth {
import com.facebook.net.*;
public class ExpireSession extends FacebookCall {
public static const SCHEMA:Array = [];
public static const METHOD_NAME:String = "auth.expireSession";
public function ExpireSession(){
super(METHOD_NAME);
}
}
}//package com.facebook.commands.auth
Section 15
//GetSession (com.facebook.commands.auth.GetSession)
package com.facebook.commands.auth {
import com.facebook.net.*;
import com.facebook.*;
public class GetSession extends FacebookCall {
public var auth_token:String;
public static const SCHEMA:Array = ["auth_token"];
public static const METHOD_NAME:String = "auth.getSession";
public function GetSession(_arg1:String){
super(METHOD_NAME);
this.auth_token = _arg1;
}
override facebook_internal function initialize():void{
applySchema(SCHEMA, auth_token);
super.initialize();
}
}
}//package com.facebook.commands.auth
Section 16
//GetCookiesData (com.facebook.commands.data.GetCookiesData)
package com.facebook.commands.data {
import com.facebook.data.*;
public class GetCookiesData extends FacebookData {
public var name:String;
public var uid:String;
public var path:String;
public var value:String;
public var expires:Number;
}
}//package com.facebook.commands.data
Section 17
//UploadPhoto (com.facebook.commands.photos.UploadPhoto)
package com.facebook.commands.photos {
import com.facebook.net.*;
import com.facebook.data.photos.*;
import com.facebook.*;
public class UploadPhoto extends FacebookCall implements IUploadPhoto {
protected var _data:Object;
public var uploadedPhoto:FacebookPhoto;
public var aid:String;
protected var _uploadQuality:uint;// = 80
public var uid:String;
public var caption:String;
protected var _uploadType:String;// = "png"
public static const SCHEMA:Array = ["data", "aid", "caption", "uid"];
public static const METHOD_NAME:String = "photos.upload";
public function UploadPhoto(_arg1:Object, _arg2:String=null, _arg3:String=null, _arg4:String=null){
_uploadType = UploadPhotoTypes.PNG;
_uploadQuality = 80;
super(METHOD_NAME);
this.data = _arg1;
this.aid = _arg2;
this.caption = _arg3;
this.uid = _arg4;
}
override facebook_internal function initialize():void{
applySchema(SCHEMA, data, aid, caption, uid);
super.initialize();
}
public function get data():Object{
return (_data);
}
public function set uploadType(_arg1:String):void{
_uploadType = _arg1;
}
public function get uploadQuality():uint{
return (_uploadQuality);
}
public function set data(_arg1:Object):void{
_data = _arg1;
}
public function get uploadType():String{
return (_uploadType);
}
public function set uploadQuality(_arg1:uint):void{
_uploadQuality = _arg1;
}
}
}//package com.facebook.commands.photos
Section 18
//UploadPhotoTypes (com.facebook.commands.photos.UploadPhotoTypes)
package com.facebook.commands.photos {
public class UploadPhotoTypes {
public static const JPEG:String = "jpeg";
public static const PNG:String = "png";
}
}//package com.facebook.commands.photos
Section 19
//GetLoggedInUser (com.facebook.commands.users.GetLoggedInUser)
package com.facebook.commands.users {
import com.facebook.net.*;
public class GetLoggedInUser extends FacebookCall {
public static const SCHEMA:Array = [];
public static const METHOD_NAME:String = "users.getLoggedInUser";
public function GetLoggedInUser(){
super(METHOD_NAME);
}
}
}//package com.facebook.commands.users
Section 20
//HasAppPermission (com.facebook.commands.users.HasAppPermission)
package com.facebook.commands.users {
import com.facebook.net.*;
import com.facebook.*;
public class HasAppPermission extends FacebookCall {
public var uid:String;
public var ext_perm:String;
public static const SCHEMA:Array = ["ext_perm", "uid"];
public static const METHOD_NAME:String = "users.hasAppPermission";
public function HasAppPermission(_arg1:String, _arg2:String=null){
super(METHOD_NAME);
this.ext_perm = _arg1;
this.uid = _arg2;
}
override facebook_internal function initialize():void{
applySchema(SCHEMA, ext_perm, uid);
super.initialize();
}
}
}//package com.facebook.commands.users
Section 21
//UploadVideo (com.facebook.commands.video.UploadVideo)
package com.facebook.commands.video {
import com.facebook.net.*;
import com.facebook.*;
public class UploadVideo extends FacebookCall implements IUploadVideo {
protected var _data:Object;
protected var _description:String;
protected var _title:String;
protected var _ext:String;
public static const SCHEMA:Array = ["data", "title", "description"];
public static const METHOD_NAME:String = "video.upload";
public function UploadVideo(_arg1:String, _arg2:Object, _arg3:String=null, _arg4:String=null){
super(METHOD_NAME);
this.ext = _arg1;
this.data = _arg2;
this.title = _arg3;
this.description = _arg4;
}
override facebook_internal function initialize():void{
applySchema(SCHEMA, data, title, description);
super.initialize();
}
public function get ext():String{
return (_ext);
}
public function set title(_arg1:String):void{
_title = _arg1;
}
public function get data():Object{
return (_data);
}
public function set ext(_arg1:String):void{
_ext = _arg1;
}
public function set data(_arg1:Object):void{
_data = _arg1;
}
public function get title():String{
return (_title);
}
public function set description(_arg1:String):void{
_description = _arg1;
}
public function get description():String{
return (_description);
}
}
}//package com.facebook.commands.video
Section 22
//GetAllocationData (com.facebook.data.admin.GetAllocationData)
package com.facebook.data.admin {
import com.facebook.data.*;
public class GetAllocationData extends FacebookData {
public var allocationLimit:Number;
}
}//package com.facebook.data.admin
Section 23
//GetAppPropertiesData (com.facebook.data.admin.GetAppPropertiesData)
package com.facebook.data.admin {
import com.facebook.data.*;
public class GetAppPropertiesData extends FacebookData {
public var appProperties:Object;
}
}//package com.facebook.data.admin
Section 24
//GetMetricsData (com.facebook.data.admin.GetMetricsData)
package com.facebook.data.admin {
import com.facebook.data.*;
public class GetMetricsData extends FacebookData {
public var metricsCollection:MetricsDataCollection;
}
}//package com.facebook.data.admin
Section 25
//MetricsData (com.facebook.data.admin.MetricsData)
package com.facebook.data.admin {
public class MetricsData {
public var end_time:Date;
public var canvas_page_views:Number;
public var active_users:Number;
}
}//package com.facebook.data.admin
Section 26
//MetricsDataCollection (com.facebook.data.admin.MetricsDataCollection)
package com.facebook.data.admin {
import com.facebook.utils.*;
public class MetricsDataCollection extends FacebookArrayCollection {
public function MetricsDataCollection(){
super(null, MetricsData);
}
}
}//package com.facebook.data.admin
Section 27
//GetPublicInfoData (com.facebook.data.application.GetPublicInfoData)
package com.facebook.data.application {
import com.facebook.data.*;
public class GetPublicInfoData extends FacebookData {
public var monthly_active_users:Number;
public var canvas_name:String;
public var logo_url:String;
public var company_name:String;
public var display_name:String;
public var icon_url:String;
public var weekly_active_users:Number;
public var developers:String;
public var daily_active_users:Number;
public var app_id:String;
public var api_key:String;
public var description:String;
}
}//package com.facebook.data.application
Section 28
//ExtendedPermissionValues (com.facebook.data.auth.ExtendedPermissionValues)
package com.facebook.data.auth {
public class ExtendedPermissionValues {
public static const READ_STREAM:String = "read_stream";
public static const PHOTO_UPLOAD:String = "photo_upload";
public static const PUBLISH_STREAM:String = "publish_stream";
public static const SHARE_ITEM:String = "share_item";
public static const CREATE_NOTE:String = "create_note";
public static const OFFLINE_ACCESS:String = "offline_access";
public static const CREATE_LISTING:String = "create_listing";
public static const VIDEO_UPLOAD:String = "video_upload";
public static const READ_MAILBOX:String = "read_mailbox";
public static const RSVP_EVENT:String = "rsvp_event";
public static const CREATE_EVENT:String = "create_event";
public static const SMS:String = "sms";
public static const EMAIL:String = "email";
public static const STATUS_UPDATE:String = "status_update";
}
}//package com.facebook.data.auth
Section 29
//GetSessionData (com.facebook.data.auth.GetSessionData)
package com.facebook.data.auth {
import com.facebook.data.*;
public class GetSessionData extends FacebookData {
public var uid:String;
public var secret:String;
public var expires:Date;
public var session_key:String;
}
}//package com.facebook.data.auth
Section 30
//BatchResult (com.facebook.data.batch.BatchResult)
package com.facebook.data.batch {
import com.facebook.data.*;
public class BatchResult extends FacebookData {
public var results:Array;
}
}//package com.facebook.data.batch
Section 31
//GetObjectTypeData (com.facebook.data.data.GetObjectTypeData)
package com.facebook.data.data {
import com.facebook.data.*;
public class GetObjectTypeData extends FacebookData {
public var name:String;
public var data_type:Number;
public var index_type:Number;
}
}//package com.facebook.data.data
Section 32
//GetObjectTypesData (com.facebook.data.data.GetObjectTypesData)
package com.facebook.data.data {
import com.facebook.data.*;
public class GetObjectTypesData extends FacebookData {
public var objectTypeCollection:ObjectTypesCollection;
}
}//package com.facebook.data.data
Section 33
//GetUserPreferencesData (com.facebook.data.data.GetUserPreferencesData)
package com.facebook.data.data {
import com.facebook.data.*;
public class GetUserPreferencesData extends FacebookData {
public var perferenceCollection:PreferenceCollection;
}
}//package com.facebook.data.data
Section 34
//ObjectTypesCollection (com.facebook.data.data.ObjectTypesCollection)
package com.facebook.data.data {
import com.facebook.utils.*;
public class ObjectTypesCollection extends FacebookArrayCollection {
public function ObjectTypesCollection(){
super(null, ObjectTypesData);
}
}
}//package com.facebook.data.data
Section 35
//ObjectTypesData (com.facebook.data.data.ObjectTypesData)
package com.facebook.data.data {
public class ObjectTypesData {
public var object_class:String;
public var name:String;
}
}//package com.facebook.data.data
Section 36
//PreferenceCollection (com.facebook.data.data.PreferenceCollection)
package com.facebook.data.data {
import com.facebook.utils.*;
public class PreferenceCollection extends FacebookArrayCollection {
public function PreferenceCollection(){
super(null, PreferenceData);
}
}
}//package com.facebook.data.data
Section 37
//PreferenceData (com.facebook.data.data.PreferenceData)
package com.facebook.data.data {
public class PreferenceData {
public var value:String;
public var pref_id:Number;
}
}//package com.facebook.data.data
Section 38
//EventCollection (com.facebook.data.events.EventCollection)
package com.facebook.data.events {
import com.facebook.utils.*;
public class EventCollection extends FacebookArrayCollection {
public function EventCollection(){
super(null, EventData);
}
}
}//package com.facebook.data.events
Section 39
//EventData (com.facebook.data.events.EventData)
package com.facebook.data.events {
import com.facebook.data.*;
public class EventData {
public var eid:String;
public var update_time:Date;
public var nid:Number;
public var pic:String;
public var name:String;
public var tagline:String;
public var start_time:Date;
public var end_time:Date;
public var event_subtype:String;
public var pic_small:String;
public var pic_big:String;
public var host:String;
public var creator:Number;
public var venue:FacebookLocation;
public var location:String;
public var description:String;
public var event_type:String;
}
}//package com.facebook.data.events
Section 40
//GetEventsData (com.facebook.data.events.GetEventsData)
package com.facebook.data.events {
import com.facebook.data.*;
public class GetEventsData extends FacebookData {
public var eventCollection:EventCollection;
}
}//package com.facebook.data.events
Section 41
//GetMembersData (com.facebook.data.events.GetMembersData)
package com.facebook.data.events {
import com.facebook.data.*;
public class GetMembersData extends FacebookData {
public var attending:Array;
public var not_replied:Array;
public var declined:Array;
public var unsure:Array;
}
}//package com.facebook.data.events
Section 42
//AbstractTagData (com.facebook.data.fbml.AbstractTagData)
package com.facebook.data.fbml {
public class AbstractTagData {
public var description:String;
public var name:String;
public var header_fbml:String;
public var attributes:AttributeCollection;
public var type:String;
public var is_public:String;
public var footer_fbml:String;
public function AbstractTagData(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String="", _arg6:String="", _arg7:AttributeCollection=null){
this.name = _arg1;
this.type = _arg4;
this.description = _arg5;
this.is_public = _arg6;
this.header_fbml = _arg2;
this.footer_fbml = _arg3;
this.attributes = _arg7;
}
}
}//package com.facebook.data.fbml
Section 43
//AttributeCollection (com.facebook.data.fbml.AttributeCollection)
package com.facebook.data.fbml {
import com.facebook.utils.*;
public class AttributeCollection extends FacebookArrayCollection {
public function AttributeCollection(){
super(null, AttributeData);
}
}
}//package com.facebook.data.fbml
Section 44
//AttributeData (com.facebook.data.fbml.AttributeData)
package com.facebook.data.fbml {
public class AttributeData {
public var default_value:String;
public var name:String;
public var description:String;
}
}//package com.facebook.data.fbml
Section 45
//ContainerTagData (com.facebook.data.fbml.ContainerTagData)
package com.facebook.data.fbml {
public class ContainerTagData extends AbstractTagData {
public var close_tag_fbml:String;
public var open_tag_fbml:String;
public function ContainerTagData(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String="", _arg8:String="", _arg9:AttributeCollection=null){
this.open_tag_fbml = _arg5;
this.close_tag_fbml = _arg6;
super(_arg1, _arg2, _arg3, _arg4, _arg7, _arg8, _arg9);
}
}
}//package com.facebook.data.fbml
Section 46
//GetCustomTagsData (com.facebook.data.fbml.GetCustomTagsData)
package com.facebook.data.fbml {
import com.facebook.data.*;
public class GetCustomTagsData extends FacebookData {
public var tagCollection:TagCollection;
}
}//package com.facebook.data.fbml
Section 47
//LeafTagData (com.facebook.data.fbml.LeafTagData)
package com.facebook.data.fbml {
public class LeafTagData extends AbstractTagData {
public var fbml:String;
public function LeafTagData(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String="", _arg7:String="", _arg8:AttributeCollection=null){
super(_arg1, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
this.fbml = _arg2;
}
}
}//package com.facebook.data.fbml
Section 48
//TagCollection (com.facebook.data.fbml.TagCollection)
package com.facebook.data.fbml {
import com.facebook.utils.*;
public class TagCollection extends FacebookArrayCollection {
public function TagCollection(){
super(null, AbstractTagData);
}
}
}//package com.facebook.data.fbml
Section 49
//GetRegisteredTemplateBundleByIDData (com.facebook.data.feed.GetRegisteredTemplateBundleByIDData)
package com.facebook.data.feed {
import com.facebook.data.*;
public class GetRegisteredTemplateBundleByIDData extends FacebookData {
public var templateCollection:TemplateCollection;
}
}//package com.facebook.data.feed
Section 50
//GetRegisteredTemplateBundleData (com.facebook.data.feed.GetRegisteredTemplateBundleData)
package com.facebook.data.feed {
import com.facebook.data.*;
public class GetRegisteredTemplateBundleData extends FacebookData {
public var bundleCollection:TemplateCollection;
}
}//package com.facebook.data.feed
Section 51
//TemplateBundleCollection (com.facebook.data.feed.TemplateBundleCollection)
package com.facebook.data.feed {
import com.facebook.utils.*;
public class TemplateBundleCollection extends FacebookArrayCollection {
public function TemplateBundleCollection(){
super(null, TemplateData);
}
}
}//package com.facebook.data.feed
Section 52
//TemplateCollection (com.facebook.data.feed.TemplateCollection)
package com.facebook.data.feed {
import com.facebook.utils.*;
public class TemplateCollection extends FacebookArrayCollection {
public var template_bundle_id:Number;
public var time_created:Date;
public function TemplateCollection(){
super(null, TemplateData);
}
public function addTemplateData(_arg1:TemplateData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.feed
Section 53
//TemplateData (com.facebook.data.feed.TemplateData)
package com.facebook.data.feed {
public class TemplateData {
public var template_title:String;
public var template_body:String;
public var type:String;
}
}//package com.facebook.data.feed
Section 54
//AreFriendsData (com.facebook.data.friends.AreFriendsData)
package com.facebook.data.friends {
import com.facebook.data.*;
public class AreFriendsData extends FacebookData {
public var friendsCollection:FriendsCollection;
}
}//package com.facebook.data.friends
Section 55
//FriendsCollection (com.facebook.data.friends.FriendsCollection)
package com.facebook.data.friends {
import com.facebook.utils.*;
public class FriendsCollection extends FacebookArrayCollection {
public function FriendsCollection(){
super(null, FriendsData);
}
}
}//package com.facebook.data.friends
Section 56
//FriendsData (com.facebook.data.friends.FriendsData)
package com.facebook.data.friends {
public class FriendsData {
public var uid1:Number;
public var uid2:Number;
public var are_friends:Boolean;
}
}//package com.facebook.data.friends
Section 57
//GetAppUserData (com.facebook.data.friends.GetAppUserData)
package com.facebook.data.friends {
import com.facebook.data.*;
public class GetAppUserData extends FacebookData {
public var uids:Array;
}
}//package com.facebook.data.friends
Section 58
//GetFriendsData (com.facebook.data.friends.GetFriendsData)
package com.facebook.data.friends {
import com.facebook.data.*;
import com.facebook.data.users.*;
public class GetFriendsData extends FacebookData {
public var friends:FacebookUserCollection;
}
}//package com.facebook.data.friends
Section 59
//GetListsData (com.facebook.data.friends.GetListsData)
package com.facebook.data.friends {
import com.facebook.data.*;
public class GetListsData extends FacebookData {
public var lists:Array;
}
}//package com.facebook.data.friends
Section 60
//ListsData (com.facebook.data.friends.ListsData)
package com.facebook.data.friends {
public class ListsData {
public var flid:Number;
public var name:String;
}
}//package com.facebook.data.friends
Section 61
//GetGroupData (com.facebook.data.groups.GetGroupData)
package com.facebook.data.groups {
import com.facebook.data.*;
public class GetGroupData extends FacebookData {
public var groups:GroupCollection;
}
}//package com.facebook.data.groups
Section 62
//GetMemberData (com.facebook.data.groups.GetMemberData)
package com.facebook.data.groups {
import com.facebook.data.*;
public class GetMemberData extends FacebookData {
public var admins:Array;
public var members:Array;
public var notReplied:Array;
public var officers:Array;
}
}//package com.facebook.data.groups
Section 63
//GroupCollection (com.facebook.data.groups.GroupCollection)
package com.facebook.data.groups {
import com.facebook.utils.*;
public class GroupCollection extends FacebookArrayCollection {
public function GroupCollection(){
super(null, GroupData);
}
public function addGroup(_arg1:GroupData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.groups
Section 64
//GroupData (com.facebook.data.groups.GroupData)
package com.facebook.data.groups {
import com.facebook.data.*;
public class GroupData {
public var gid:String;
public var update_time:Date;
public var privacy:String;
public var nid:Number;
public var pic:String;
public var name:String;
public var pic_big:String;
public var website:String;
public var group_type:String;
public var office:String;
public var pic_small:String;
public var creator:String;
public var venue:FacebookLocation;
public var recent_news:String;
public var group_subtype:String;
public var description:String;
}
}//package com.facebook.data.groups
Section 65
//GetNotesData (com.facebook.data.notes.GetNotesData)
package com.facebook.data.notes {
import com.facebook.data.*;
public class GetNotesData extends FacebookData {
public var notesCollection:NotesCollection;
}
}//package com.facebook.data.notes
Section 66
//NoteData (com.facebook.data.notes.NoteData)
package com.facebook.data.notes {
public class NoteData {
public var note_id:String;
public var created_time:Date;
public var updated_time:Date;
public var title:String;
public var content:String;
public var uid:String;
}
}//package com.facebook.data.notes
Section 67
//NotesCollection (com.facebook.data.notes.NotesCollection)
package com.facebook.data.notes {
import com.facebook.utils.*;
public class NotesCollection extends FacebookArrayCollection {
public function NotesCollection(){
super(null, NoteData);
}
}
}//package com.facebook.data.notes
Section 68
//GetNotificationData (com.facebook.data.notifications.GetNotificationData)
package com.facebook.data.notifications {
import com.facebook.data.*;
public class GetNotificationData extends FacebookData {
public var group_invites:Array;
public var notificationCollection:NotificationCollection;
public var friendsRequests:Array;
public var event_invites:Array;
}
}//package com.facebook.data.notifications
Section 69
//NotificationCollection (com.facebook.data.notifications.NotificationCollection)
package com.facebook.data.notifications {
import com.facebook.utils.*;
public class NotificationCollection extends FacebookArrayCollection {
public function NotificationCollection(){
super(null, null);
}
}
}//package com.facebook.data.notifications
Section 70
//NotificationMessageData (com.facebook.data.notifications.NotificationMessageData)
package com.facebook.data.notifications {
public class NotificationMessageData {
public var most_recent:Number;
public var unread:Number;
}
}//package com.facebook.data.notifications
Section 71
//NotificationPokeData (com.facebook.data.notifications.NotificationPokeData)
package com.facebook.data.notifications {
public class NotificationPokeData {
public var most_recent:Number;
public var unread:Number;
}
}//package com.facebook.data.notifications
Section 72
//NotificationShareData (com.facebook.data.notifications.NotificationShareData)
package com.facebook.data.notifications {
public class NotificationShareData {
public var most_recent:Number;
public var unread:Number;
}
}//package com.facebook.data.notifications
Section 73
//GetPageInfoData (com.facebook.data.pages.GetPageInfoData)
package com.facebook.data.pages {
import com.facebook.data.*;
public class GetPageInfoData extends FacebookData {
public var pageInfoCollection:PageInfoCollection;
}
}//package com.facebook.data.pages
Section 74
//PageInfoCollection (com.facebook.data.pages.PageInfoCollection)
package com.facebook.data.pages {
import com.facebook.utils.*;
public class PageInfoCollection extends FacebookArrayCollection {
public function PageInfoCollection(){
super(null, PageInfoData);
}
public function addPageInfo(_arg1:PageInfoData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.pages
Section 75
//PageInfoData (com.facebook.data.pages.PageInfoData)
package com.facebook.data.pages {
import flash.events.*;
import com.facebook.data.*;
public class PageInfoData extends EventDispatcher {
public var starring:String;
public var genre:String;
public var season:String;
public var bio:String;
public var name:String;
public var pic_small:String;
public var schedule:String;
public var website:String;
public var founded:String;
public var influences:String;
public var hours:String;
public var record_label:String;
public var band_members:String;
public var location:FacebookLocation;
public var mission:String;
public var directed_by:String;
public var type:String;
public var awards:String;
public var pic_large:String;
public var page_id:Number;
public var network:String;
public var pic_big:String;
public var studio:String;
public var release_date:String;
public var products:String;
public var hometown:String;
public var pic_square:String;
public var produced_by:String;
public var company_overview:String;
public var plot_outline:String;
public var has_added_app:Boolean;
public var written_by:String;
}
}//package com.facebook.data.pages
Section 76
//AlbumCollection (com.facebook.data.photos.AlbumCollection)
package com.facebook.data.photos {
import com.facebook.utils.*;
public class AlbumCollection extends FacebookArrayCollection {
public function AlbumCollection(){
super(null, AlbumData);
}
public function addAlbum(_arg1:AlbumData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.photos
Section 77
//AlbumData (com.facebook.data.photos.AlbumData)
package com.facebook.data.photos {
public class AlbumData {
public var cover_pid:String;
public var size:Number;
public var modified:Date;
public var modified_major:Date;
public var name:String;
public var aid:String;
public var type:String;
public var edit_link:String;
public var created:Date;
public var visible:String;
public var owner:String;
public var location:String;
public var link:String;
public var description:String;
}
}//package com.facebook.data.photos
Section 78
//FacebookPhoto (com.facebook.data.photos.FacebookPhoto)
package com.facebook.data.photos {
import com.facebook.data.*;
public class FacebookPhoto extends FacebookData {
public var src_small:String;
public var pid:String;
public var tags:Array;
public var src:String;
public var src_big:String;
public var created:Date;
public var caption:String;
public var owner:Number;
public var link:String;
public var aid:String;
public function FacebookPhoto(){
tags = [];
super();
}
}
}//package com.facebook.data.photos
Section 79
//GetAlbumsData (com.facebook.data.photos.GetAlbumsData)
package com.facebook.data.photos {
import com.facebook.data.*;
public class GetAlbumsData extends FacebookData {
public var albumCollection:AlbumCollection;
}
}//package com.facebook.data.photos
Section 80
//GetCreateAlbumData (com.facebook.data.photos.GetCreateAlbumData)
package com.facebook.data.photos {
import com.facebook.data.*;
public class GetCreateAlbumData extends FacebookData {
public var albumData:AlbumData;
}
}//package com.facebook.data.photos
Section 81
//GetPhotosData (com.facebook.data.photos.GetPhotosData)
package com.facebook.data.photos {
import com.facebook.data.*;
public class GetPhotosData extends FacebookData {
public var photoCollection:PhotoCollection;
}
}//package com.facebook.data.photos
Section 82
//GetTagsData (com.facebook.data.photos.GetTagsData)
package com.facebook.data.photos {
import com.facebook.data.*;
public class GetTagsData extends FacebookData {
public var photoTagsCollection:PhotoTagCollection;
}
}//package com.facebook.data.photos
Section 83
//PhotoCollection (com.facebook.data.photos.PhotoCollection)
package com.facebook.data.photos {
import com.facebook.utils.*;
public class PhotoCollection extends FacebookArrayCollection {
public function PhotoCollection(){
super(null, PhotoData);
}
public function addPhoto(_arg1:PhotoData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.photos
Section 84
//PhotoData (com.facebook.data.photos.PhotoData)
package com.facebook.data.photos {
public class PhotoData {
public var src:String;
public var src_big:String;
public var pid:String;
public var src_small:String;
public var caption:String;
public var owner:String;
public var created:Date;
public var link:String;
public var aid:String;
}
}//package com.facebook.data.photos
Section 85
//PhotoTagCollection (com.facebook.data.photos.PhotoTagCollection)
package com.facebook.data.photos {
import com.facebook.utils.*;
public class PhotoTagCollection extends FacebookArrayCollection {
public function PhotoTagCollection(_arg1:Array=null){
super(_arg1, TagData);
}
public function addPhotoTag(_arg1:TagData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.photos
Section 86
//TagData (com.facebook.data.photos.TagData)
package com.facebook.data.photos {
public class TagData {
protected var _actualText:String;
public var pid:String;
protected var _actualY:Number;
protected var _actualX:Number;
public var created:Date;
public var tag_uid:String;
public var subject:String;
public function set y(_arg1:Number):void{
_actualY = _arg1;
}
public function set text(_arg1:String):void{
_actualText = _arg1;
}
public function get ycoord():Number{
return (_actualY);
}
public function set tag_text(_arg1:String):void{
_actualText = _arg1;
}
public function get text():String{
return (_actualText);
}
public function set x(_arg1:Number):void{
_actualX = _arg1;
}
public function get tag_text():String{
return (_actualText);
}
public function set ycoord(_arg1:Number):void{
_actualY = _arg1;
}
public function get y():Number{
return (_actualY);
}
public function set xcoord(_arg1:Number):void{
_actualX = _arg1;
}
public function get xcoord():Number{
return (_actualX);
}
public function get x():Number{
return (_actualX);
}
}
}//package com.facebook.data.photos
Section 87
//GetStatusData (com.facebook.data.status.GetStatusData)
package com.facebook.data.status {
import com.facebook.data.*;
public class GetStatusData extends FacebookData {
public var status:Array;
}
}//package com.facebook.data.status
Section 88
//Status (com.facebook.data.status.Status)
package com.facebook.data.status {
public class Status {
public var message:String;
public var status_id:String;
public var time:Date;
public var uid:String;
public var source:String;
}
}//package com.facebook.data.status
Section 89
//ActionLinkData (com.facebook.data.stream.ActionLinkData)
package com.facebook.data.stream {
public class ActionLinkData {
public var href:String;
public var text:String;
}
}//package com.facebook.data.stream
Section 90
//AttachmentData (com.facebook.data.stream.AttachmentData)
package com.facebook.data.stream {
public class AttachmentData {
public var name:String;
public var title:String;
public var body:String;
public var media:Array;
public var caption:String;
public var href:String;
public var text:String;
public var properties:Array;
public var label:String;
public var icon:String;
public var description:String;
}
}//package com.facebook.data.stream
Section 91
//CommentsData (com.facebook.data.stream.CommentsData)
package com.facebook.data.stream {
public class CommentsData {
public var posts:Array;
public var can_post:Boolean;
public var count:uint;
public var can_remove:Boolean;
}
}//package com.facebook.data.stream
Section 92
//FlashMedia (com.facebook.data.stream.FlashMedia)
package com.facebook.data.stream {
public class FlashMedia {
public var source_url:String;
public var preview_img:String;
}
}//package com.facebook.data.stream
Section 93
//GetCommentsData (com.facebook.data.stream.GetCommentsData)
package com.facebook.data.stream {
import com.facebook.data.*;
public class GetCommentsData extends FacebookData {
public var comments:Array;
}
}//package com.facebook.data.stream
Section 94
//GetFiltersData (com.facebook.data.stream.GetFiltersData)
package com.facebook.data.stream {
import com.facebook.data.*;
public class GetFiltersData extends FacebookData {
public var filters:StreamFilterCollection;
}
}//package com.facebook.data.stream
Section 95
//GetStreamData (com.facebook.data.stream.GetStreamData)
package com.facebook.data.stream {
import com.facebook.data.*;
import com.facebook.data.photos.*;
public class GetStreamData extends FacebookData {
public var profiles:ProfileCollection;
public var albums:AlbumCollection;
public var stories:StreamStoryCollection;
}
}//package com.facebook.data.stream
Section 96
//LikesData (com.facebook.data.stream.LikesData)
package com.facebook.data.stream {
public class LikesData {
public var can_like:Boolean;
public var user_likes:Boolean;
public var href:String;
public var count:uint;
public var friends:Array;
public var sample:Array;
}
}//package com.facebook.data.stream
Section 97
//MusicMedia (com.facebook.data.stream.MusicMedia)
package com.facebook.data.stream {
public class MusicMedia {
public var title:String;
public var source_url:String;
public var artist:String;
}
}//package com.facebook.data.stream
Section 98
//PhotoMedia (com.facebook.data.stream.PhotoMedia)
package com.facebook.data.stream {
public class PhotoMedia {
public var pid:String;
public var index:uint;
public var owner:String;
public var aid:String;
}
}//package com.facebook.data.stream
Section 99
//PostCommentData (com.facebook.data.stream.PostCommentData)
package com.facebook.data.stream {
public class PostCommentData {
public var fromid:String;
public var text:String;
public var time:Date;
public var id:String;
}
}//package com.facebook.data.stream
Section 100
//ProfileCollection (com.facebook.data.stream.ProfileCollection)
package com.facebook.data.stream {
import com.facebook.utils.*;
public class ProfileCollection extends FacebookArrayCollection {
public function ProfileCollection(){
super(null, ProfileData);
}
}
}//package com.facebook.data.stream
Section 101
//ProfileData (com.facebook.data.stream.ProfileData)
package com.facebook.data.stream {
public class ProfileData {
public var name:String;
public var url:String;
public var pic_square:String;
public var id:String;
}
}//package com.facebook.data.stream
Section 102
//StreamFilterCollection (com.facebook.data.stream.StreamFilterCollection)
package com.facebook.data.stream {
import com.facebook.utils.*;
public class StreamFilterCollection extends FacebookArrayCollection {
public function StreamFilterCollection(){
super(null, StreamFilterData);
}
}
}//package com.facebook.data.stream
Section 103
//StreamFilterData (com.facebook.data.stream.StreamFilterData)
package com.facebook.data.stream {
public class StreamFilterData {
public var icon_url:String;
public var name:String;
public var rank:uint;
public var uid:String;
public var value:String;
public var filter_key:String;
public var type:String;
public var is_visible:Boolean;
}
}//package com.facebook.data.stream
Section 104
//StreamMediaData (com.facebook.data.stream.StreamMediaData)
package com.facebook.data.stream {
public class StreamMediaData {
public var src:String;
public var music:MusicMedia;
public var alt:String;
public var href:String;
public var flash:FlashMedia;
public var photo:PhotoMedia;
public var type:String;
public var video:VideoMedia;
public function toString():String{
return ([("type: " + type), ("href: " + href), ("src: " + src), ("alt: " + alt), ("photo: " + photo), ("video: " + video), ("flash: " + flash)].join(": "));
}
}
}//package com.facebook.data.stream
Section 105
//StreamStoryCollection (com.facebook.data.stream.StreamStoryCollection)
package com.facebook.data.stream {
import com.facebook.utils.*;
public class StreamStoryCollection extends FacebookArrayCollection {
public function StreamStoryCollection(){
super(null, StreamStoryData);
}
}
}//package com.facebook.data.stream
Section 106
//StreamStoryData (com.facebook.data.stream.StreamStoryData)
package com.facebook.data.stream {
public class StreamStoryData {
public var comments:CommentsData;
public var created_time:Date;
public var target_id:String;
public var sourceXML:XML;
public var message:String;
public var updated_time:Date;
public var source_id:String;
public var filter_key:String;
public var post_id:String;
public var action_links:Array;
public var privacy:String;
public var attachment:AttachmentData;
public var actor_id:String;
public var is_hidden:Boolean;
public var viewer_id:String;
public var permalink:String;
public var metadata:Object;
public var app_id:String;
public var type:uint;
public var likes:LikesData;
public var attribution:String;
}
}//package com.facebook.data.stream
Section 107
//VideoMedia (com.facebook.data.stream.VideoMedia)
package com.facebook.data.stream {
public class VideoMedia {
public var permalink:String;
public var preview_img:String;
public var display_url:String;
public var owner:String;
public var source_url:String;
}
}//package com.facebook.data.stream
Section 108
//AffiliationCollection (com.facebook.data.users.AffiliationCollection)
package com.facebook.data.users {
import com.facebook.utils.*;
public class AffiliationCollection extends FacebookArrayCollection {
public function AffiliationCollection(){
super(null, AffiliationData);
}
public function addAffiliation(_arg1:AffiliationData):void{
this.addItem(_arg1);
}
}
}//package com.facebook.data.users
Section 109
//AffiliationData (com.facebook.data.users.AffiliationData)
package com.facebook.data.users {
public class AffiliationData {
public var nid:Number;
public var name:String;
public var status:String;
public var type:String;
public var year:String;
}
}//package com.facebook.data.users
Section 110
//FacebookUser (com.facebook.data.users.FacebookUser)
package com.facebook.data.users {
import com.facebook.data.*;
public class FacebookUser extends FacebookData {
public var isLoggedInUser:Boolean;
public var status:StatusData;
public var education_history:Array;
public var pic_big_with_logo:String;
public var notes_count:int;
public var pic_small:String;
public var has_added_app:Boolean;
public var pic_with_logo:String;
public var music:String;
public var religion:String;
public var significant_other_id:int;
public var email_hashes:Array;
public var hs2_name:String;
public var movies:String;
public var uid:String;
public var hometown_location:FacebookLocation;
public var wall_count:int;
public var proxied_email:String;
public var meeting_sex:Array;
public var sex:String;
public var work_history:Array;
public var hs_info:String;
public var pic_square:String;
public var hs1_id:int;
public var quotes:String;
public var locale:String;
public var birthday:String;
public var tv:String;
public var affiliations:Array;
public var interests:String;
public var pic:String;
public var name:String;// = ""
public var grad_year:String;
public var about_me:String;
public var last_name:String;// = ""
public var pic_small_with_logo:String;
public var is_app_user:Boolean;
public var hs1_name:String;
public var books:String;
public var first_name:String;// = ""
public var current_location:FacebookLocation;
public var meeting_for:Array;
public var pic_big:String;
public var networkAffiliations:Array;
public var birthdayDate:Date;
public var hs2_id:int;
public var relationship_status:String;
public var profile_url:String;
public var profile_update_time:Date;
public var pic_square_with_logo:String;
public var timezone:int;
public var activities:String;
public var political:String;
public function FacebookUser():void{
name = "";
first_name = "";
last_name = "";
super();
}
}
}//package com.facebook.data.users
Section 111
//FacebookUserCollection (com.facebook.data.users.FacebookUserCollection)
package com.facebook.data.users {
import com.facebook.utils.*;
public class FacebookUserCollection extends FacebookArrayCollection {
public function FacebookUserCollection(){
super(null, FacebookUser);
}
public function getUserById(_arg1:String):FacebookUser{
return ((findItemByProperty("uid", _arg1) as FacebookUser));
}
public function addUser(_arg1:FacebookUser):void{
addItem(_arg1);
}
}
}//package com.facebook.data.users
Section 112
//GetInfoData (com.facebook.data.users.GetInfoData)
package com.facebook.data.users {
import com.facebook.data.*;
public class GetInfoData extends FacebookData {
public var userCollection:FacebookUserCollection;
}
}//package com.facebook.data.users
Section 113
//GetStandardInfoData (com.facebook.data.users.GetStandardInfoData)
package com.facebook.data.users {
import com.facebook.data.*;
public class GetStandardInfoData extends FacebookData {
public var userCollection:UserCollection;
}
}//package com.facebook.data.users
Section 114
//HasAppPermissionValues (com.facebook.data.users.HasAppPermissionValues)
package com.facebook.data.users {
public class HasAppPermissionValues {
public static const CREATE_LISTING:String = "create_listing";
public static const EMAIL:String = "email";
public static const OFFLINE_ACCESS:String = "offline_access";
public static const PHOTO_UPLOAD:String = "photo_upload";
public static const PUBLISH_STREAM:String = "publish_stream";
public static const STATUS_UPDATE:String = "status_update";
public static const CREATE_EVENT:String = "create_event";
public static const SMS:String = "sms";
public static const SHARE_ITEM:String = "share_item";
public static const RSVP_EVENT:String = "rsvp_event";
}
}//package com.facebook.data.users
Section 115
//StatusData (com.facebook.data.users.StatusData)
package com.facebook.data.users {
public class StatusData {
public var message:String;
public var time:Date;
}
}//package com.facebook.data.users
Section 116
//UserCollection (com.facebook.data.users.UserCollection)
package com.facebook.data.users {
import com.facebook.utils.*;
public class UserCollection extends FacebookArrayCollection {
public function UserCollection(_arg1:Array=null){
super(null, UserData);
}
}
}//package com.facebook.data.users
Section 117
//UserData (com.facebook.data.users.UserData)
package com.facebook.data.users {
public class UserData {
public var affiations:AffiliationCollection;
public var name:String;
public var uid:String;
public var timezone:Number;
public var first_name:String;
public var last_name:String;
public function toString():String{
return ((((((((((((("[ UserData uid: " + uid) + " affiation:") + affiations) + " first_name:") + first_name) + " last_name:") + last_name) + " name:") + name) + " timezone: ") + timezone) + "]"));
}
}
}//package com.facebook.data.users
Section 118
//ArrayResultData (com.facebook.data.ArrayResultData)
package com.facebook.data {
public class ArrayResultData extends FacebookData {
public var arrayResult:Array;
}
}//package com.facebook.data
Section 119
//BooleanResultData (com.facebook.data.BooleanResultData)
package com.facebook.data {
public class BooleanResultData extends FacebookData {
public var value:Boolean;
}
}//package com.facebook.data
Section 120
//FacebookData (com.facebook.data.FacebookData)
package com.facebook.data {
import flash.events.*;
public class FacebookData extends EventDispatcher {
public var rawResult:String;
}
}//package com.facebook.data
Section 121
//FacebookEducationInfo (com.facebook.data.FacebookEducationInfo)
package com.facebook.data {
public class FacebookEducationInfo {
public var concentrations:Array;
public var name:String;
public var degree:String;
public var year:String;
public function FacebookEducationInfo(){
concentrations = [];
}
}
}//package com.facebook.data
Section 122
//FacebookErrorCodes (com.facebook.data.FacebookErrorCodes)
package com.facebook.data {
public class FacebookErrorCodes {
public static const API_EC_VERSION:Number = 12;
public static const API_EC_PERMISSION_DENIED:Number = 10;
public static const API_EC_HOST_UP:Number = 7;
public static const API_EC_SERVICE:Number = 2;
public static const API_EC_RATE:Number = 9;
public static const API_EC_METHOD:Number = 3;
public static const API_EC_HOST_API:Number = 6;
public static const API_EC_SUCCESS:Number = 0;
public static const SERVER_ERROR:Number = -1;
public static const API_EC_UNKNOWN:Number = 1;
public static const API_EC_DEPRECATED:Number = 11;
public static const API_EC_SECURE:Number = 8;
public static const API_EC_TOO_MANY_CALLS:Number = 4;
public static const API_EC_BAD_IP:Number = 5;
}
}//package com.facebook.data
Section 123
//FacebookLocation (com.facebook.data.FacebookLocation)
package com.facebook.data {
public class FacebookLocation extends FacebookData {
public var street:String;
public var country:String;
public var state:String;
public var zip:String;
public var city:String;
}
}//package com.facebook.data
Section 124
//FacebookNetwork (com.facebook.data.FacebookNetwork)
package com.facebook.data {
public class FacebookNetwork {
public var nid:int;
public var name:String;
public var status:String;
public var type:String;
public var year:String;
}
}//package com.facebook.data
Section 125
//FacebookWorkInfo (com.facebook.data.FacebookWorkInfo)
package com.facebook.data {
public class FacebookWorkInfo {
public var position:String;
public var start_date:Date;
public var company_name:String;
public var location:FacebookLocation;
public var end_date:Date;
public var description:String;
}
}//package com.facebook.data
Section 126
//JSONResultData (com.facebook.data.JSONResultData)
package com.facebook.data {
public class JSONResultData extends FacebookData {
public var result:Object;
}
}//package com.facebook.data
Section 127
//NumberResultData (com.facebook.data.NumberResultData)
package com.facebook.data {
public class NumberResultData extends FacebookData {
public var value:Number;
}
}//package com.facebook.data
Section 128
//StringResultData (com.facebook.data.StringResultData)
package com.facebook.data {
public class StringResultData extends FacebookData {
public var value:String;
}
}//package com.facebook.data
Section 129
//XMLDataParser (com.facebook.data.XMLDataParser)
package com.facebook.data {
import flash.events.*;
import com.facebook.errors.*;
import com.adobe.serialization.json.*;
import com.facebook.data.fbml.*;
import com.facebook.data.photos.*;
import com.facebook.data.users.*;
import com.facebook.utils.*;
import com.facebook.data.status.*;
import com.facebook.data.data.*;
import com.facebook.data.notes.*;
import com.facebook.commands.data.*;
import com.facebook.data.application.*;
import com.facebook.data.feed.*;
import com.facebook.data.admin.*;
import com.facebook.data.events.*;
import com.facebook.data.friends.*;
import com.facebook.data.pages.*;
import com.facebook.data.notifications.*;
import com.facebook.data.groups.*;
import com.facebook.data.auth.*;
import com.facebook.data.batch.*;
public class XMLDataParser implements IFacebookResultParser {
protected var fb_namespace:Namespace;
public function XMLDataParser(){
fb_namespace = new Namespace("http://api.facebook.com/1.0/");
}
protected function parseGetPhotos(_arg1:XML):GetPhotosData{
var _local2:GetPhotosData;
var _local3:PhotoCollection;
var _local4:*;
var _local5:PhotoData;
_local2 = new GetPhotosData();
_local3 = new PhotoCollection();
for each (_local4 in _arg1..fb_namespace::photo) {
_local5 = new PhotoData();
_local5.pid = _local4.fb_namespace::pid;
_local5.aid = _local4.fb_namespace::aid;
_local5.owner = _local4.fb_namespace::owner;
_local5.src = _local4.fb_namespace::src;
_local5.src_big = _local4.fb_namespace::src_big;
_local5.src_small = _local4.fb_namespace::src_small;
_local5.caption = _local4.fb_namespace::caption;
_local5.created = FacebookXMLParserUtils.toDate(_local4.fb_namespace::created);
_local3.addPhoto(_local5);
};
_local2.photoCollection = _local3;
return (_local2);
}
protected function parseGetNotifications(_arg1:XML):GetNotificationData{
var _local2:GetNotificationData;
var _local3:NotificationCollection;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:NotificationMessageData;
var _local8:NotificationPokeData;
var _local9:NotificationShareData;
_local2 = new GetNotificationData();
_local3 = new NotificationCollection();
for each (_local4 in _arg1.fb_namespace::messages) {
_local7 = new NotificationMessageData();
_local7.unread = _local4.fb_namespace::unread;
_local7.most_recent = _local4.fb_namespace::most_recent;
_local3.addItem(_local7);
};
for each (_local5 in _arg1.fb_namespace::pokes) {
_local8 = new NotificationPokeData();
_local8.unread = _local5.fb_namespace::unread;
_local8.most_recent = _local5.fb_namespace::most_recent;
_local3.addItem(_local8);
};
for each (_local6 in _arg1.fb_namespace::shares) {
_local9 = new NotificationShareData();
_local9.unread = _local6.fb_namespace::unread;
_local9.most_recent = _local6.fb_namespace::most_recent;
_local3.addItem(_local9);
};
_local2.friendsRequests = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::friend_requests[0]);
_local2.group_invites = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::group_invites[0]);
_local2.event_invites = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::event_invites[0]);
_local2.notificationCollection = _local3;
return (_local2);
}
public function createFacebookError(_arg1:Object, _arg2:String):FacebookError{
var _local3:FacebookError;
_local3 = new FacebookError();
_local3.rawResult = _arg2;
_local3.errorCode = FacebookErrorCodes.SERVER_ERROR;
if ((_arg1 is Error)){
_local3.error = (_arg1 as Error);
} else {
_local3.errorEvent = (_arg1 as ErrorEvent);
};
return (_local3);
}
protected function parseSendEmail(_arg1:XML):ArrayResultData{
var _local2:ArrayResultData;
_local2 = new ArrayResultData();
_local2.arrayResult = FacebookXMLParserUtils.toArray(_arg1);
return (_local2);
}
protected function getAffiliation(_arg1:XML):AffiliationCollection{
var _local2:AffiliationCollection;
var _local3:*;
var _local4:AffiliationData;
_local2 = new AffiliationCollection();
for each (_local3 in _arg1..fb_namespace::afflication) {
_local4 = new AffiliationData();
_local4.nid = _local3.fb_namespace::nid;
_local4.name = _local3.fb_namespace::name;
_local4.type = _local3.fb_namespace::type;
_local4.status = _local3.fb_namespace::status;
_local4.year = _local3.fb_namespace::year;
_local2.addAffiliation(_local4);
};
return (_local2);
}
protected function parseGetUserPreferences(_arg1:XML):GetUserPreferencesData{
var _local2:GetUserPreferencesData;
var _local3:PreferenceCollection;
var _local4:*;
var _local5:PreferenceData;
_local2 = new GetUserPreferencesData();
_local3 = new PreferenceCollection();
for each (_local4 in _arg1..fb_namespace::preference) {
_local5 = new PreferenceData();
_local5.pref_id = _local4.fb_namespace::pref_id;
_local5.value = _local4.fb_namespace::value;
_local3.addItem(_local5);
};
_local2.perferenceCollection = _local3;
return (_local2);
}
protected function parseGetStandardInfo(_arg1:XML):GetStandardInfoData{
var _local2:GetStandardInfoData;
var _local3:UserCollection;
var _local4:*;
var _local5:UserData;
_local2 = new GetStandardInfoData();
_local3 = new UserCollection();
for each (_local4 in _arg1..fb_namespace::user) {
_local5 = new UserData();
_local5.uid = _local4.fb_namespace::uid;
_local5.affiations = getAffiliation(XML(_local4.fb_namespace::affiliations.toXMLString()));
_local5.first_name = _local4.fb_namespace::first_name;
_local5.last_name = _local4.fb_namespace::last_name;
_local5.name = _local4.fb_namespace::name;
_local5.timezone = _local4.fb_namespace::timezone;
_local3.addItem(_local5);
};
_local2.userCollection = _local3;
return (_local2);
}
protected function parseGetAppProperties(_arg1:XML):GetAppPropertiesData{
var _local2:GetAppPropertiesData;
_local2 = new GetAppPropertiesData();
_local2.appProperties = JSON.decode(_arg1.toString());
return (_local2);
}
protected function parseGetRegisteredTemplateBundles(_arg1:XML):GetRegisteredTemplateBundleData{
var _local2:GetRegisteredTemplateBundleData;
var _local3:TemplateBundleCollection;
var _local4:TemplateCollection;
var _local5:*;
_local2 = new GetRegisteredTemplateBundleData();
_local3 = new TemplateBundleCollection();
_local4 = new TemplateCollection();
for each (_local5 in _arg1..fb_namespace::template_bundle) {
getTemplate(_local5.fb_namespace::one_line_story_template, _local4);
getTemplate(_local5.fb_namespace::short_story_templates, _local4);
getTemplate(_local5.fb_namespace::full_story_template, _local4);
_local4.template_bundle_id = _local5.fb_namespace::template_bundle_id;
_local4.time_created = FacebookXMLParserUtils.toDate(_local5.fb_namespace::time_created);
};
_local2.bundleCollection = _local4;
return (_local2);
}
protected function parseGetRegisteredTemplateBundleByID(_arg1:XML):GetRegisteredTemplateBundleByIDData{
var _local2:GetRegisteredTemplateBundleByIDData;
var _local3:TemplateCollection;
_local2 = new GetRegisteredTemplateBundleByIDData();
_local3 = new TemplateCollection();
getTemplate(_arg1.fb_namespace::one_line_story_template, _local3);
getTemplate(_arg1.fb_namespace::short_story_templates, _local3);
getTemplate(_arg1.fb_namespace::full_story_template, _local3);
_local3.template_bundle_id = _arg1.fb_namespace::template_bundle_id;
_local3.time_created = FacebookXMLParserUtils.toDate(_arg1.fb_namespace::time_created);
_local2.templateCollection = _local3;
return (_local2);
}
protected function responseNodeNameToMethodName(_arg1:String):String{
var _local2:Array;
_local2 = _arg1.split("_");
_local2.pop();
return (_local2.join("."));
}
protected function parseGetObjectTypes(_arg1:XML):GetObjectTypesData{
var _local2:GetObjectTypesData;
var _local3:ObjectTypesCollection;
var _local4:*;
var _local5:ObjectTypesData;
_local2 = new GetObjectTypesData();
_local3 = new ObjectTypesCollection();
for each (_local4 in _arg1..fb_namespace::object_type_info) {
_local5 = new ObjectTypesData();
_local5.name = _local4.fb_namespace::name;
_local5.object_class = _local4.fb_namespace::object_class;
_local3.addItem(_local5);
};
_local2.objectTypeCollection = _local3;
return (_local2);
}
protected function parseFacebookPhoto(_arg1:XML):FacebookPhoto{
var _local2:FacebookPhoto;
_local2 = new FacebookPhoto();
_local2.pid = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::pid[0]);
_local2.aid = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::aid[0]);
_local2.owner = FacebookXMLParserUtils.toNumber(_arg1.fb_namespace::owner[0]);
_local2.src = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::src[0]);
_local2.src_big = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::src_big[0]);
_local2.src_small = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::src_small[0]);
_local2.link = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::link[0]);
_local2.caption = FacebookXMLParserUtils.toStringValue(_arg1.fb_namespace::caption[0]);
return (_local2);
}
protected function parseGetObjectType(_arg1:XML):GetObjectTypeData{
var _local2:GetObjectTypeData;
_local2 = new GetObjectTypeData();
_local2.name = _arg1.fb_namespace::name;
_local2.data_type = _arg1.fb_namespace::data_type;
_local2.index_type = _arg1.fb_namespace::index_type;
return (_local2);
}
protected function createTagObject(_arg1:XML, _arg2:Array){
var _local3:Number;
var _local4:String;
var _local5:AbstractTagData;
var _local6:Number;
var _local7:Object;
_local3 = _arg1.children().length();
_local4 = _arg1.children()[0].toLowerCase();
if (_local4 == "leaf"){
_local5 = new LeafTagData(null, null, null, null, null);
(_local5 as LeafTagData).fbml = _arg1.children()[9];
} else {
_local5 = new ContainerTagData(null, null, null, null, null, null, null);
(_local5 as ContainerTagData).open_tag_fbml = _arg1.children()[2];
(_local5 as ContainerTagData).close_tag_fbml = _arg1.children()[4];
};
_local6 = 0;
while (_local6 < _local3) {
_local7 = _arg1.children()[_local6];
switch (_arg2[_local6]){
case "name":
case "type":
case "description":
case "is_public":
case "header_fbml":
case "footer_fbml":
_local5[_arg2[_local6]] = _local7.text();
break;
case "attributes":
if ((_local7.children() is XMLList)){
if (_local7.children().length() == 0){
_local5[_arg2[_local6]] = null;
};
};
break;
};
_local6++;
};
return (_local5);
}
protected function parseGetNotes(_arg1:XML):GetNotesData{
var _local2:GetNotesData;
var _local3:NotesCollection;
var _local4:*;
var _local5:NoteData;
_local2 = new GetNotesData();
_local3 = new NotesCollection();
for each (_local4 in _arg1..fb_namespace::note) {
_local5 = new NoteData();
_local5.note_id = _local4.fb_namespace::note_id;
_local5.title = _local4.fb_namespace::title;
_local5.content = _local4.fb_namespace::content;
_local5.created_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::created_time);
_local5.updated_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::updated_time);
_local5.uid = _local4.fb_namespace::uid;
_local3.addItem(_local5);
};
_local2.notesCollection = _local3;
return (_local2);
}
protected function parseGetMetrics(_arg1:XML):GetMetricsData{
var _local2:GetMetricsData;
var _local3:MetricsDataCollection;
var _local4:*;
var _local5:MetricsData;
_local2 = new GetMetricsData();
_local3 = new MetricsDataCollection();
for each (_local4 in _arg1..fb_namespace::metrics) {
_local5 = new MetricsData();
_local5.end_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::end_time);
_local5.active_users = _local4.fb_namespace::active_users;
_local5.canvas_page_views = _local4.fb_namespace::canvas_page_views;
_local3.addItem(_local5);
};
_local2.metricsCollection = _local3;
return (_local2);
}
protected function parsePageGetInfo(_arg1:XML):GetPageInfoData{
var _local2:GetPageInfoData;
var _local3:PageInfoCollection;
var _local4:XMLList;
var _local5:Object;
var _local6:PageInfoData;
_local2 = new GetPageInfoData();
_local3 = new PageInfoCollection();
_local4 = _arg1.fb_namespace::page;
for each (_local5 in _local4) {
_local6 = new PageInfoData();
_local6.page_id = _local5.fb_namespace::page_id;
_local6.name = _local5.fb_namespace::name;
_local6.pic_small = _local5.fb_namespace::pic_small;
_local6.pic_big = _local5.fb_namespace::pic_big;
_local6.pic_square = _local5.fb_namespace::pic_square;
_local6.pic_large = _local5.fb_namespace::pic_large;
_local6.type = _local5.fb_namespace::type;
_local6.website = _local5.fb_namespace::website;
_local6.location = FacebookXMLParserUtils.createLocation(_local5.fb_namespace::location[0], fb_namespace);
_local6.hours = _local5.fb_namespace::hours;
_local6.band_members = _local5.fb_namespace::band_members;
_local6.bio = _local5.fb_namespace::bio;
_local6.hometown = _local5.fb_namespace::hometown;
_local6.genre = FacebookXMLParserUtils.toStringValue(_local5.fb_namespace::genre[0]);
_local6.record_label = _local5.fb_namespace::record_label;
_local6.influences = _local5.fb_namespace::influences;
_local6.has_added_app = FacebookXMLParserUtils.toBoolean(_local5.fb_namespace::has_added_app[0]);
_local6.founded = _local5.fb_namespace::founded;
_local6.company_overview = _local5.fb_namespace::company_overview;
_local6.mission = _local5.fb_namespace::mission;
_local6.products = _local5.fb_namespace::products;
_local6.release_date = _local5.fb_namespace::release_date;
_local6.starring = _local5.fb_namespace::starring;
_local6.written_by = _local5.fb_namespace::written_by;
_local6.directed_by = _local5.fb_namespace::directed_by;
_local6.produced_by = _local5.fb_namespace::produced_by;
_local6.studio = _local5.fb_namespace::studio;
_local6.awards = _local5.fb_namespace::awards;
_local6.plot_outline = _local5.fb_namespace::plot_outline;
_local6.network = _local5.fb_namespace::network;
_local6.season = _local5.fb_namespace::season;
_local6.schedule = _local5.fb_namespace::schedule;
_local3.addPageInfo(_local6);
};
_local2.pageInfoCollection = _local3;
return (_local2);
}
protected function parseGetTags(_arg1:XML):GetTagsData{
var _local2:GetTagsData;
var _local3:PhotoTagCollection;
var _local4:*;
var _local5:TagData;
_local2 = new GetTagsData();
_local3 = new PhotoTagCollection();
for each (_local4 in _arg1..fb_namespace::photo_tag) {
_local5 = new TagData();
_local5.text = _local4.fb_namespace::text;
_local5.pid = _local4.fb_namespace::pid;
_local5.subject = _local4.fb_namespace::subject;
_local5.xcoord = _local4.fb_namespace::xcoord;
_local5.ycoord = _local4.fb_namespace::ycoord;
_local5.created = FacebookXMLParserUtils.toDate(_local4.fb_namespace::created);
_local3.addPhotoTag(_local5);
};
_local2.photoTagsCollection = _local3;
return (_local2);
}
protected function parseGetGroupMembers(_arg1:XML):GetMemberData{
var _local2:GetMemberData;
_local2 = new GetMemberData();
_local2.members = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::members[0]);
_local2.admins = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::admins[0]);
_local2.officers = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::officers[0]);
_local2.notReplied = FacebookXMLParserUtils.toUIDArray(_arg1.fb_namespace::not_replied[0]);
return (_local2);
}
protected function parseGetGroups(_arg1:XML):GetGroupData{
var _local2:GetGroupData;
var _local3:GroupCollection;
var _local4:*;
var _local5:GroupData;
_local2 = new GetGroupData();
_local3 = new GroupCollection();
for each (_local4 in _arg1..fb_namespace::group) {
_local5 = new GroupData();
_local5.gid = _local4.fb_namespace::gid;
_local5.name = _local4.fb_namespace::name;
_local5.nid = _local4.fb_namespace::nid;
_local5.description = _local4.fb_namespace::description;
_local5.group_type = _local4.fb_namespace::group_type;
_local5.group_subtype = _local4.fb_namespace::group_subtype;
_local5.recent_news = _local4.fb_namespace::recent_news;
_local5.pic = _local4.fb_namespace::pic;
_local5.pic_big = _local4.fb_namespace::pic_big;
_local5.pic_small = _local4.fb_namespace::pic_small;
_local5.creator = _local4.fb_namespace::creator;
_local5.update_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::update_time);
_local5.office = _local4.fb_namespace::office;
_local5.website = _local4.fb_namespace::website;
_local5.venue = FacebookXMLParserUtils.createLocation(_local4.fb_namespace::venue[0], fb_namespace);
_local5.privacy = _local4.fb_namespace::privacy;
_local3.addGroup(_local5);
};
_local2.groups = _local3;
return (_local2);
}
protected function parseCreateAlbum(_arg1:XML):GetCreateAlbumData{
var _local2:GetCreateAlbumData;
var _local3:AlbumData;
_local2 = new GetCreateAlbumData();
_local3 = new AlbumData();
_local3.aid = _arg1.fb_namespace::aid;
_local3.cover_pid = _arg1.fb_namespace::cover_pid;
_local3.owner = _arg1.fb_namespace::owner;
_local3.name = _arg1.fb_namespace::name;
_local3.created = FacebookXMLParserUtils.toDate(_arg1.fb_namespace::created);
_local3.modified = FacebookXMLParserUtils.toDate(_arg1.fb_namespace::modified);
_local3.description = _arg1.fb_namespace::description;
_local3.location = _arg1.fb_namespace::location;
_local3.link = _arg1.fb_namespace::link;
_local3.size = _arg1.fb_namespace::size;
_local3.visible = _arg1.fb_namespace::visible;
_local2.albumData = _local3;
return (_local2);
}
protected function parseGetAllocation(_arg1:XML):GetAllocationData{
var _local2:GetAllocationData;
_local2 = new GetAllocationData();
_local2.allocationLimit = Number(_arg1.toString());
return (_local2);
}
protected function parseGetCookies(_arg1:XML):GetCookiesData{
var _local2:GetCookiesData;
_local2 = new GetCookiesData();
_local2.uid = _arg1.fb_namespace::uid;
_local2.name = _arg1.fb_namespace::name;
_local2.value = _arg1.fb_namespace::value;
_local2.expires = _arg1.fb_namespace::expires;
_local2.path = _arg1.fb_namespace::path;
return (_local2);
}
protected function parseGetCustomTags(_arg1:XML):GetCustomTagsData{
var _local2:Array;
var _local3:GetCustomTagsData;
var _local4:TagCollection;
var _local5:*;
_local2 = ["type", "name", "open_tag_fbml", "description", "close_tag_fbml", "is_public", "attributes", "header_fbml", "footer_fbml", "fbml"];
_local3 = new GetCustomTagsData();
_local4 = new TagCollection();
for each (_local5 in _arg1..fb_namespace::custom_tag) {
_local4.addItem(createTagObject(_local5, _local2));
};
_local3.tagCollection = _local4;
return (_local3);
}
protected function parseGetAlbums(_arg1:XML):GetAlbumsData{
var _local2:GetAlbumsData;
_local2 = new GetAlbumsData();
_local2.albumCollection = FacebookXMLParserUtils.createAlbumCollection(_arg1, fb_namespace);
return (_local2);
}
protected function parseGetInfo(_arg1:XML):GetInfoData{
var _local2:FacebookUserCollection;
var _local3:XMLList;
var _local4:uint;
var _local5:uint;
var _local6:GetInfoData;
var _local7:FacebookUser;
_local2 = new FacebookUserCollection();
_local3 = _arg1..fb_namespace::user;
_local4 = _local3.length();
_local5 = 0;
while (_local5 < _local4) {
_local7 = FacebookUserXMLParser.createFacebookUser(_local3[_local5], fb_namespace);
_local2.addItem(_local7);
_local5++;
};
_local6 = new GetInfoData();
_local6.userCollection = _local2;
return (_local6);
}
protected function parseGetLists(_arg1:XML):GetListsData{
var _local2:GetListsData;
var _local3:Array;
var _local4:*;
var _local5:ListsData;
_local2 = new GetListsData();
_local3 = [];
for each (_local4 in _arg1..fb_namespace::friendlist) {
_local5 = new ListsData();
_local5.flid = _local4.fb_namespace::flid;
_local5.name = _local4.fb_namespace::name;
_local3.push(_local5);
};
_local2.lists = _local3;
return (_local2);
}
public function parse(_arg1:String, _arg2:String):FacebookData{
var _local3:FacebookData;
var _local4:XML;
_local4 = new XML(_arg1);
switch (_arg2){
case "application.getPublicInfo":
_local3 = parseGetPublicInfo(_local4);
break;
case "data.getCookies":
_local3 = parseGetCookies(_local4);
break;
case "admin.getAllocation":
_local3 = parseGetAllocation(_local4);
break;
case "admin.getAppProperties":
_local3 = parseGetAppProperties(_local4);
break;
case "admin.getMetrics":
_local3 = parseGetMetrics(_local4);
break;
case "auth.getSession":
_local3 = new GetSessionData();
(_local3 as GetSessionData).expires = FacebookXMLParserUtils.toDate(_local4.fb_namespace::expires);
(_local3 as GetSessionData).uid = FacebookXMLParserUtils.toStringValue(_local4.fb_namespace::uid[0]);
(_local3 as GetSessionData).session_key = _local4.fb_namespace::session_key.toString();
(_local3 as GetSessionData).secret = String(_local4.fb_namespace::secret);
break;
case "feed.getRegisteredTemplateBundles":
_local3 = parseGetRegisteredTemplateBundles(_local4);
break;
case "friends.areFriends":
_local3 = parseAreFriends(_local4);
break;
case "notes.get":
_local3 = parseGetNotes(_local4);
break;
case "friends.get":
_local3 = parseGetFriends(_local4);
break;
case "friends.getAppUsers":
_local3 = parseGetAppUsersData(_local4);
break;
case "friends.getLists":
_local3 = parseGetLists(_local4);
break;
case "groups.get":
_local3 = parseGetGroups(_local4);
break;
case "data.getAssociationDefinitions":
_local3 = new FacebookData();
break;
case "data.getAssociationDefinition":
_local3 = new FacebookData();
break;
case "data.getObject":
case "data.getObjects":
_local3 = new FacebookData();
break;
case "groups.getMembers":
_local3 = parseGetGroupMembers(_local4);
break;
case "users.getInfo":
_local3 = parseGetInfo(_local4);
break;
case "data.createObject":
case "data.setHashValue":
case "connect.getUnconnectedFriendsCount":
case "feed.registerTemplateBundle":
_local3 = new NumberResultData();
(_local3 as NumberResultData).value = FacebookXMLParserUtils.toNumber(_local4);
break;
case "notifications.get":
_local3 = parseGetNotifications(_local4);
break;
case "feed.getRegisteredTemplateBundleByID":
_local3 = parseGetRegisteredTemplateBundleByID(_local4);
break;
case "users.getStandardInfo":
_local3 = parseGetStandardInfo(_local4);
break;
case "feed.getRegisteredTemplateBundles":
_local3 = parseGetRegisteredTemplateBundles(_local4);
break;
case "data.getUserPreferences":
_local3 = parseGetUserPreferences(_local4);
break;
case "users.isAppUser":
case "users.hasAppPermission":
case "users.setStatus":
case "pages.isFan":
case "pages.isAppAdded":
case "pages.isAdmin":
case "admin.setAppProperties":
case "auth.expireSession":
case "auth.revokeAuthorization":
case "events.cancel":
case "events.edit":
case "events.rsvp":
case "liveMessage.send":
case "data.undefineAssociation":
case "data.defineAssociation":
case "data.removeHashKeys":
case "data.removeHashKey":
case "data.incHashValue":
case "data.updateObject":
case "data.deleteObject":
case "data.deleteObjects":
case "data.renameAssociation":
case "data.setObjectProperty":
case "profile.setInfo":
case "profile.setInfoOptions":
case "feed.deactivateTemplateBundleByID":
case "feed.publishTemplatizedAction":
case "admin.setRestrictionInfo":
case "data.setCookie":
case "data.createObjectType":
case "notes.delete":
case "notes.edit":
case "data.setUserPreference":
case "data.dropObjectType":
case "data.renameObjectType":
case "fbml.registerCustomTags":
case "fbml.deleteCustomTags":
case "fbml.refreshRefUrl":
case "fbml.refreshImgSrc":
case "fbml.setRefHandle":
case "data.setUserPreferences":
case "data.defineObjectProperty":
case "photos.addTag":
case "stream.addLike":
case "stream.removeLike":
case "stream.removeComment":
case "sms.canSend":
_local3 = new BooleanResultData();
(_local3 as BooleanResultData).value = FacebookXMLParserUtils.toBoolean(_local4);
break;
case "feed.publishUserAction":
_local3 = new BooleanResultData();
(_local3 as BooleanResultData).value = FacebookXMLParserUtils.toBoolean(_local4.children()[0]);
break;
case "notifications.sendEmail":
_local3 = parseSendEmail(_local4);
break;
case "data.getObjectTypes":
_local3 = parseGetObjectTypes(_local4);
break;
case "users.getStandardInfo":
_local3 = parseGetStandardInfo(_local4);
break;
case "data.getObjectType":
_local3 = parseGetObjectType(_local4);
break;
case "events.get":
_local3 = parseGetEvent(_local4);
break;
case "events.getMembers":
_local3 = parseGetMembers(_local4);
break;
case "fql.multiquery":
_local3 = new FacebookData();
break;
case "fql.query":
_local3 = new FacebookData();
break;
case "photos.createAlbum":
_local3 = parseCreateAlbum(_local4);
break;
case "photos.get":
_local3 = parseGetPhotos(_local4);
break;
case "photos.getTags":
_local3 = parseGetTags(_local4);
break;
case "photos.getAlbums":
_local3 = parseGetAlbums(_local4);
break;
case "photos.upload":
_local3 = parseFacebookPhoto(_local4);
break;
case "pages.getInfo":
_local3 = parsePageGetInfo(_local4);
break;
case "batch.run":
_local3 = parseBatchRun(_local4);
break;
case "fbml.getCustomTags":
_local3 = parseGetCustomTags(_local4);
break;
case "connect.unregisterUsers":
case "connect.registerUsers":
_local3 = new ArrayResultData();
(_local3 as ArrayResultData).arrayResult = FacebookXMLParserUtils.toArray(_local4);
break;
case "status.get":
_local3 = parseGetStatus(_local4);
break;
case "stream.get":
_local3 = FacebookStreamXMLParser.createStream(_local4, fb_namespace);
break;
case "stream.getComments":
_local3 = FacebookStreamXMLParser.createGetCommentsData(_local4, fb_namespace);
break;
case "stream.getFilters":
_local3 = FacebookStreamXMLParser.createStreamFilterCollection(_local4, fb_namespace);
break;
case "auth.createToken":
case "events.create":
case "links.post":
case "auth.promoteSession":
case "admin.getRestrictionInfo":
case "data.getObjectProperty":
case "notifications.send":
case "notes.create":
case "data.getUserPreference":
case "profile.setFBML":
case "users.getLoggedInUser":
case "stream.addComment":
default:
_local3 = new StringResultData();
(_local3 as StringResultData).value = FacebookXMLParserUtils.toStringValue(_local4);
break;
};
_local3.rawResult = _arg1;
return (_local3);
}
protected function parseGetAppUsersData(_arg1:XML):GetAppUserData{
var _local2:Array;
var _local3:GetAppUserData;
_local2 = FacebookXMLParserUtils.toUIDArray(_arg1);
_local3 = new GetAppUserData();
_local3.uids = _local2;
return (_local3);
}
protected function parseGetStatus(_arg1:XML):GetStatusData{
var _local2:GetStatusData;
var _local3:Array;
var _local4:XMLList;
var _local5:uint;
var _local6:uint;
var _local7:XML;
var _local8:Status;
_local2 = new GetStatusData();
_local3 = [];
_local4 = _arg1.children();
_local5 = _local4.length();
_local6 = 0;
while (_local6 < _local5) {
_local7 = _local4[_local6];
_local8 = new Status();
_local8.uid = FacebookXMLParserUtils.toStringValue(_local7.fb_namespace::uid[0]);
_local8.status_id = FacebookXMLParserUtils.toStringValue(_local7.fb_namespace::status_id[0]);
_local8.time = FacebookXMLParserUtils.toDate(_local7.fb_namespace::time[0]);
_local8.source = FacebookXMLParserUtils.toStringValue(_local7.fb_namespace::source[0]);
_local8.message = FacebookXMLParserUtils.toStringValue(_local7.fb_namespace::message[0]);
_local3.push(_local8);
_local6++;
};
_local2.status = _local3;
return (_local2);
}
protected function parseGetMembers(_arg1:XML):GetMembersData{
var _local2:GetMembersData;
_local2 = new GetMembersData();
_local2.attending = FacebookXMLParserUtils.toUIDArray(_arg1..fb_namespace::attending[0]);
_local2.unsure = FacebookXMLParserUtils.toUIDArray(_arg1..fb_namespace::unsure[0]);
_local2.declined = FacebookXMLParserUtils.toUIDArray(_arg1..fb_namespace::declined[0]);
_local2.not_replied = FacebookXMLParserUtils.toUIDArray(_arg1..fb_namespace::not_replied[0]);
return (_local2);
}
protected function parseGetEvent(_arg1:XML):GetEventsData{
var _local2:GetEventsData;
var _local3:EventCollection;
var _local4:*;
var _local5:EventData;
_local2 = new GetEventsData();
_local3 = new EventCollection();
for each (_local4 in _arg1..fb_namespace::event) {
_local5 = new EventData();
_local5.eid = _local4.fb_namespace::eid;
_local5.name = _local4.fb_namespace::name;
_local5.tagline = _local4.fb_namespace::tagline;
_local5.nid = _local4.fb_namespace::nid;
_local5.pic = _local4.fb_namespace::pic;
_local5.pic_big = _local4.fb_namespace::pic_big;
_local5.pic_small = _local4.fb_namespace::pic_small;
_local5.host = _local4.fb_namespace::host;
_local5.description = _local4.fb_namespace::description;
_local5.event_type = _local4.fb_namespace::event_type;
_local5.event_subtype = _local4.fb_namespace::event_subtype;
_local5.start_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::start_time);
_local5.end_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::end_time);
_local5.creator = _local4.fb_namespace::end_time;
_local5.update_time = FacebookXMLParserUtils.toDate(_local4.fb_namespace::update_time);
_local5.location = _local4.fb_namespace::location;
_local5.venue = FacebookXMLParserUtils.createLocation(_local4.fb_namespace::venue[0], fb_namespace);
_local3.addItem(_local5);
};
_local2.eventCollection = _local3;
return (_local2);
}
protected function parseGetFriends(_arg1:XML):GetFriendsData{
var _local2:GetFriendsData;
var _local3:FacebookUserCollection;
var _local4:*;
var _local5:FacebookUser;
_local2 = new GetFriendsData();
_local3 = new FacebookUserCollection();
for each (_local4 in _arg1..fb_namespace::uid) {
_local5 = new FacebookUser();
_local5.uid = _local4;
_local3.addItem(_local5);
};
_local2.friends = _local3;
return (_local2);
}
protected function parseGetPublicInfo(_arg1:XML):GetPublicInfoData{
var _local2:GetPublicInfoData;
_local2 = new GetPublicInfoData();
_local2.app_id = _arg1.fb_namespace::app_id;
_local2.api_key = _arg1.fb_namespace::api_key;
_local2.canvas_name = _arg1.fb_namespace::canvas_name;
_local2.display_name = _arg1.fb_namespace::display_name;
_local2.icon_url = _arg1.fb_namespace::icon_url;
_local2.logo_url = _arg1.fb_namespace::logo_url;
_local2.developers = _arg1.fb_namespace::developers;
_local2.company_name = _arg1.fb_namespace::company_name;
_local2.developers = _arg1.fb_namespace::developers;
_local2.daily_active_users = _arg1.fb_namespace::daily_active_users;
_local2.weekly_active_users = _arg1.fb_namespace::weekly_active_users;
_local2.monthly_active_users = _arg1.fb_namespace::monthly_active_users;
_local2.description = _arg1.fb_namespace::description;
return (_local2);
}
protected function parseAreFriends(_arg1:XML):AreFriendsData{
var _local2:AreFriendsData;
var _local3:FriendsCollection;
var _local4:*;
var _local5:FriendsData;
_local2 = new AreFriendsData();
_local3 = new FriendsCollection();
for each (_local4 in _arg1..fb_namespace::friend_info) {
_local5 = new FriendsData();
_local5.uid1 = _local4.fb_namespace::uid1;
_local5.uid2 = _local4.fb_namespace::uid2;
_local5.are_friends = FacebookXMLParserUtils.toBoolean(XML(_local4.fb_namespace::are_friends.toXMLString()));
_local3.addItem(_local5);
};
_local2.friendsCollection = _local3;
return (_local2);
}
public function validateFacebookResponce(_arg1:String):FacebookError{
var error:FacebookError;
var xml:XML;
var xmlError:Error;
var hasXMLError:Boolean;
var result = _arg1;
error = null;
hasXMLError = false;
try {
xml = new XML(result);
} catch(e) {
xmlError = e;
hasXMLError = true;
};
if (hasXMLError == false){
if (xml.localName() == "error_response"){
error = new FacebookError();
error.rawResult = result;
error.errorCode = Number(xml.fb_namespace::error_code);
error.errorMsg = xml.fb_namespace::error_msg;
error.requestArgs = FacebookXMLParserUtils.xmlToUrlVariables(xml..arg);
};
return (error);
};
if (hasXMLError == true){
error = new FacebookError();
error.error = xmlError;
error.errorCode = -1;
};
return (error);
}
protected function parseBatchRun(_arg1:XML):FacebookData{
var _local2:XMLList;
var _local3:uint;
var _local4:Array;
var _local5:uint;
var _local6:BatchResult;
var _local7:String;
var _local8:XML;
var _local9:FacebookError;
var _local10:String;
var _local11:FacebookData;
_local2 = _arg1..fb_namespace::batch_run_response_elt;
_local3 = _local2.length();
_local4 = [];
_local5 = 0;
while (_local5 < _local3) {
_local7 = _local2[_local5].toString();
_local8 = new XML(_local7);
_local9 = validateFacebookResponce(_local7);
if (_local9 === null){
_local10 = responseNodeNameToMethodName(_local8.localName().toString());
_local11 = parse(_local7, _local10);
_local4.push(_local11);
} else {
_local4.push(_local9);
};
_local5++;
};
_local6 = new BatchResult();
_local6.results = _local4;
return (_local6);
}
protected function getTemplate(_arg1:XMLList, _arg2:TemplateCollection):void{
var _local3:*;
var _local4:TemplateData;
for each (_local3 in _arg1) {
_local4 = new TemplateData();
_local4.type = _local3.localName();
_local4.template_body = _local3.fb_namespace::template_body;
_local4.template_title = _local3.fb_namespace::template_title;
_arg2.addTemplateData(_local4);
};
}
}
}//package com.facebook.data
Section 130
//AbstractFileUploadDelegate (com.facebook.delegates.AbstractFileUploadDelegate)
package com.facebook.delegates {
import flash.events.*;
import flash.utils.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.utils.*;
import com.facebook.session.*;
public class AbstractFileUploadDelegate extends WebDelegate {
protected var ba:ByteArray;
public function AbstractFileUploadDelegate(_arg1:FacebookCall, _arg2:WebSession){
super(_arg1, _arg2);
ba = new ByteArray();
}
override protected function onDataComplete(_arg1:Event):void{
var _local2:ByteArray;
var _local3:String;
_local2 = (_arg1.target.data as ByteArray);
if (_local2 == null){
super.onDataComplete(_arg1);
} else {
_local3 = _local2.readUTFBytes(_local2.length);
_local2.length = 0;
_local2 = null;
handleResult(_local3);
};
}
protected function getContentType():String{
return (null);
}
protected function uploadByteArray(_arg1:ByteArray):void{
var _local2:PostRequest;
var _local3:String;
var _local4:URLRequest;
_local2 = new PostRequest();
for (_local3 in call.args) {
if (_local3 != "data"){
_local2.writePostData(_local3, call.args[_local3]);
};
};
_local2.writeFileData(((("fn" + call.args["call_id"]) + ".") + getExt()), _arg1, getContentType());
_local2.close();
_local4 = new URLRequest();
_local4.method = URLRequestMethod.POST;
_local4.contentType = ("multipart/form-data; boundary=" + _local2.boundary);
_local4.data = _local2.getPostData();
_local4.url = _session.rest_url;
createURLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(_local4);
}
protected function getExt():String{
return (null);
}
protected function onFileRefComplete(_arg1:Event):void{
fileRef = (call.args.data as FileReference);
uploadByteArray(fileRef["data"]);
}
}
}//package com.facebook.delegates
Section 131
//DesktopDelegate (com.facebook.delegates.DesktopDelegate)
package com.facebook.delegates {
import com.facebook.net.*;
import com.facebook.session.*;
public class DesktopDelegate extends WebDelegate {
public function DesktopDelegate(_arg1:FacebookCall, _arg2:DesktopSession){
super(_arg1, _arg2);
}
override protected function addOptionalArguments():void{
}
}
}//package com.facebook.delegates
Section 132
//IFacebookCallDelegate (com.facebook.delegates.IFacebookCallDelegate)
package com.facebook.delegates {
import flash.events.*;
import com.facebook.net.*;
import com.facebook.session.*;
public interface IFacebookCallDelegate extends IEventDispatcher {
function set session(_arg1:IFacebookSession):void;
function get session():IFacebookSession;
function close():void;
function set call(_arg1:FacebookCall):void;
function get call():FacebookCall;
}
}//package com.facebook.delegates
Section 133
//JSDelegate (com.facebook.delegates.JSDelegate)
package com.facebook.delegates {
import flash.events.*;
import com.facebook.net.*;
import com.facebook.data.*;
import com.facebook.errors.*;
import com.adobe.serialization.json.*;
import com.facebook.utils.*;
import com.facebook.session.*;
import com.facebook.*;
import flash.external.*;
public class JSDelegate extends EventDispatcher implements IFacebookCallDelegate {
protected var _session:JSSession;
protected var _call:FacebookCall;
protected static var externalInterfaceCalls:Object = {};
protected static var externalInterfaceCallId:Number = 0;
public function JSDelegate(_arg1:FacebookCall, _arg2:JSSession){
this.call = _arg1;
this.session = _arg2;
execute();
}
public function set session(_arg1:IFacebookSession):void{
this._session = (_arg1 as JSSession);
}
protected function onReceiveStatus(_arg1:StatusEvent):void{
var _local2:FacebookError;
switch ((_arg1.level == "error")){
case "error":
_local2 = new FacebookError();
_local2.rawResult = _arg1.level;
var _local3 = call;
_local3.facebook_internal::handleError(_local2);
break;
case "warning":
case "status":
break;
};
}
public function get session():IFacebookSession{
return (_session);
}
protected function onReceiveError(_arg1:ErrorEvent):void{
var _local2:FacebookError;
_local2 = new FacebookError();
_local2.errorEvent = _arg1;
var _local3 = call;
_local3.facebook_internal::handleError(_local2);
}
public function get call():FacebookCall{
return (_call);
}
protected function buildCall():String{
var _local1:String;
var _local2:Object;
var _local3:String;
var _local4:String;
_local1 = ("bridgeFacebookCall_" + externalInterfaceCallId);
RequestHelper.formatRequest(call);
_local2 = {};
for (_local3 in call.args) {
_local2[_local3] = call.args[_local3];
};
_local4 = (((((((((((((((("function " + _local1) + "() { ") + "FB.Facebook.apiClient.callMethod(\"") + call.method) + "\", ") + JavascriptRequestHelper.formatURLVariables(call.args)) + ", ") + "function(result, exception) {") + "document.") + (_session as JSSession).as_swf_name) + ".bridgeFacebookReply(result, exception, ") + externalInterfaceCallId) + ")") + "}") + ");") + "}");
return (_local4);
}
protected function execute():void{
var _local1:Array;
var _local2:Object;
var _local3:String;
_local1 = [];
for each (_local2 in call.args) {
_local1.push(_local2);
};
var _local4 = ++externalInterfaceCallId;
externalInterfaceCalls[_local4] = call;
_local3 = buildCall();
ExternalInterface.addCallback("bridgeFacebookReply", postBridgeAsyncReply);
ExternalInterface.call(_local3);
}
protected function postBridgeAsyncReply(_arg1:Object, _arg2:Object, _arg3:uint):void{
var _local4:FacebookCall;
var _local5:JSONResultData;
var _local6:FacebookError;
_local4 = externalInterfaceCalls[_arg3];
if (_arg1){
_local5 = new JSONResultData();
_local5.result = _arg1;
var _local7 = _local4;
_local7.facebook_internal::handleResult(_local5);
} else {
_local6 = new FacebookError();
_local6.rawResult = JSON.encode(_arg2);
_local7 = _local4;
_local7.facebook_internal::handleError(_local6);
};
delete externalInterfaceCalls[_arg3];
}
public function set call(_arg1:FacebookCall):void{
this._call = _arg1;
}
public function close():void{
}
}
}//package com.facebook.delegates
Section 134
//RequestHelper (com.facebook.delegates.RequestHelper)
package com.facebook.delegates {
import flash.display.*;
import flash.utils.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.session.*;
import com.adobe.crypto.*;
public class RequestHelper {
protected static var callID:int = 0;
public static function formatRequest(_arg1:FacebookCall):void{
var _local2:IFacebookSession;
var _local3:String;
_local2 = _arg1.session;
_arg1.setRequestArgument("v", _local2.api_version);
if (_local2.api_key != null){
_arg1.setRequestArgument("api_key", _local2.api_key);
};
if (((!((_local2.session_key == null))) && (_arg1.useSession))){
_arg1.setRequestArgument("session_key", _local2.session_key);
};
_local3 = (new Date().time.toString() + callID++.toString());
_arg1.setRequestArgument("call_id", _local3);
_arg1.setRequestArgument("method", _arg1.method);
_arg1.setRequestArgument("sig", formatSig(_arg1));
}
public static function formatSig(_arg1:FacebookCall):String{
var _local2:IFacebookSession;
var _local3:Array;
var _local4:String;
var _local5:String;
var _local6:*;
_local2 = _arg1.session;
_local3 = [];
for (_local4 in _arg1.args) {
_local6 = _arg1.args[_local4];
if (((((((((!((_local4 === "sig"))) && (!((_local6 is ByteArray))))) && (!((_local6 is FileReference))))) && (!((_local6 is BitmapData))))) && (!((_local6 is Bitmap))))){
_local3.push(((_local4 + "=") + _local6.toString()));
};
};
_local3.sort();
_local5 = _local3.join("");
if (_local2.secret != null){
_local5 = (_local5 + _local2.secret);
};
return (MD5.hash(_local5));
}
}
}//package com.facebook.delegates
Section 135
//WebDelegate (com.facebook.delegates.WebDelegate)
package com.facebook.delegates {
import flash.events.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.data.*;
import com.facebook.errors.*;
import com.facebook.session.*;
import com.facebook.events.*;
public class WebDelegate extends EventDispatcher implements IFacebookCallDelegate {
protected var loader:URLLoader;
protected var _session:WebSession;
protected var parser:XMLDataParser;
protected var fileRef:FileReference;
protected var _call:FacebookCall;
public function WebDelegate(_arg1:FacebookCall, _arg2:WebSession){
this.call = _arg1;
this.session = _arg2;
parser = new XMLDataParser();
execute();
}
protected function addOptionalArguments():void{
call.setRequestArgument("ss", true);
}
protected function clean():void{
if (loader == null){
return;
};
loader.removeEventListener(Event.COMPLETE, onDataComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
}
protected function handleResult(_arg1:String):void{
var _local2:FacebookError;
var _local3:FacebookData;
clean();
_local2 = parser.validateFacebookResponce(_arg1);
if (_local2 == null){
_local3 = parser.parse(_arg1, call.method);
call.handleResult(_local3);
} else {
call.handleError(_local2);
};
}
public function get session():IFacebookSession{
return (_session);
}
protected function onDataComplete(_arg1:Event):void{
handleResult((_arg1.target.data as String));
}
public function get call():FacebookCall{
return (_call);
}
protected function post():void{
addOptionalArguments();
RequestHelper.formatRequest(call);
sendRequest();
}
protected function execute():void{
if (call == null){
throw (new Error("No call defined."));
};
post();
}
protected function sendRequest():void{
var _local1:URLRequest;
createURLLoader();
_local1 = new URLRequest(_session.rest_url);
_local1.contentType = "application/x-www-form-urlencoded";
_local1.method = URLRequestMethod.POST;
_local1.data = call.args;
trace(((_local1.url + "?") + unescape(call.args.toString())));
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.load(_local1);
}
protected function createURLLoader():void{
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onDataComplete);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
}
protected function onError(_arg1:ErrorEvent):void{
var _local2:FacebookError;
clean();
_local2 = parser.createFacebookError(_arg1, loader.data);
call.handleError(_local2);
dispatchEvent(new FacebookEvent(FacebookEvent.COMPLETE, false, false, false, null, _local2));
}
public function set session(_arg1:IFacebookSession):void{
_session = (_arg1 as WebSession);
}
public function close():void{
try {
loader.close();
} catch(e) {
};
}
protected function onHTTPStatus(_arg1:HTTPStatusEvent):void{
}
public function set call(_arg1:FacebookCall):void{
_call = _arg1;
}
}
}//package com.facebook.delegates
Section 136
//WebImageUploadDelegate (com.facebook.delegates.WebImageUploadDelegate)
package com.facebook.delegates {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import com.adobe.images.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.utils.*;
import com.facebook.session.*;
import com.facebook.commands.photos.*;
public class WebImageUploadDelegate extends AbstractFileUploadDelegate {
public function WebImageUploadDelegate(_arg1:FacebookCall, _arg2:WebSession){
super(_arg1, _arg2);
}
override protected function getContentType():String{
return ("Content-Type: image/jpg");
}
override protected function sendRequest():void{
var _local1:ByteArray;
var _local2:URLRequest;
var _local3:Object;
var _local4:JPGEncoder;
_local2 = new URLRequest(_session.rest_url);
_local3 = call.args.data;
if (_local3 == null){
super.sendRequest();
return;
};
if ((((PlayerUtils.majorVersion == 9)) && ((_local3 is FileReference)))){
throw (new TypeError("Uploading FileReference with Player 9 is unsupported. Use either an BitmapData or ByteArray."));
};
if ((_local3 is Bitmap)){
_local3 = (_local3 as Bitmap).bitmapData;
};
if ((((PlayerUtils.majorVersion == 10)) && ((_local3 is FileReference)))){
_local1 = (_local3 as FileReference)["load"]();
fileRef = (_local3 as FileReference);
fileRef.addEventListener(Event.COMPLETE, onFileRefComplete);
} else {
if ((_local3 is ByteArray)){
uploadByteArray((_local3 as ByteArray));
} else {
if ((_local3 is BitmapData)){
switch ((call as UploadPhoto).uploadType){
case UploadPhotoTypes.JPEG:
_local4 = new JPGEncoder((call as UploadPhoto).uploadQuality);
ba = _local4.encode((_local3 as BitmapData));
break;
case UploadPhotoTypes.PNG:
ba = PNGEncoder.encode((_local3 as BitmapData));
break;
};
uploadByteArray(ba);
} else {
throw (new Error((("Error data type " + call.args.data) + " is not supported. Please use one of the following types: FileReference, ByteArray, BitmapData or Bitmap.")));
};
};
};
}
override protected function getExt():String{
return ((((call as IUploadPhoto).uploadType == UploadPhotoTypes.JPEG)) ? "jpeg" : "png");
}
}
}//package com.facebook.delegates
Section 137
//VideoUploadDelegate (com.facebook.delegates.VideoUploadDelegate)
package com.facebook.delegates {
import flash.events.*;
import flash.utils.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.utils.*;
import com.facebook.session.*;
import com.facebook.commands.video.*;
public class VideoUploadDelegate extends AbstractFileUploadDelegate {
public function VideoUploadDelegate(_arg1:FacebookCall, _arg2:WebSession){
super(_arg1, _arg2);
}
override protected function getContentType():String{
return (("Content-Type: video/" + (call as UploadVideo).ext));
}
override protected function sendRequest():void{
var _local1:ByteArray;
var _local2:URLRequest;
var _local3:Object;
_local2 = new URLRequest(_session.rest_url);
_local3 = call.args.data;
if ((((PlayerUtils.majorVersion == 9)) && ((_local3 is FileReference)))){
throw (new TypeError("Uploading FileReference with Player 9 is unsupported. Use ByteArray."));
};
if ((((PlayerUtils.majorVersion == 10)) && ((_local3 is FileReference)))){
_local1 = (_local3 as FileReference)["load"]();
fileRef = (_local3 as FileReference);
fileRef.addEventListener(Event.COMPLETE, onFileRefComplete);
} else {
if ((_local3 is ByteArray)){
uploadByteArray((_local3 as ByteArray));
} else {
throw (new Error((("Error data type " + call.args.data) + " is not supported. Please use one of the following types: FileReference or ByteArray.")));
};
};
}
override protected function getExt():String{
return ((call as UploadVideo).ext);
}
}
}//package com.facebook.delegates
Section 138
//FacebookError (com.facebook.errors.FacebookError)
package com.facebook.errors {
import flash.events.*;
import flash.net.*;
import com.facebook.data.*;
public class FacebookError extends FacebookData {
public var reason:String;
public var error:Error;
public var requestArgs:URLVariables;
public var errorCode:Number;
public var errorMsg:String;
public var errorEvent:ErrorEvent;
}
}//package com.facebook.errors
Section 139
//FacebookEvent (com.facebook.events.FacebookEvent)
package com.facebook.events {
import flash.events.*;
import com.facebook.data.*;
import com.facebook.errors.*;
public class FacebookEvent extends Event {
public var success:Boolean;
public var permission:String;
public var error:FacebookError;
public var hasPermission:Boolean;
public var data:FacebookData;
public static const PERMISSIONS_LOADED:String = "permissionsLoaded";
public static const LOGOUT:String = "logout";
public static const CONNECT:String = "connect";
public static const VERIFYING_SESSION:String = "verifyingSession";
public static const WAITING_FOR_LOGIN:String = "waitingForLogin";
public static const PERMISSION_CHANGE:String = "permissionChanged";
public static const PERMISSION_STATUS:String = "permissionStatus";
public static const LOGIN_SUCCESS:String = "loginSuccess";
public static const ERROR:String = "facebookEventError";
public static const PERMISSIONS_WINDOW_SHOW:String = "permissionsWindowShow";
public static const LOGIN_FAILURE:String = "loginFailure";
public static const LOGIN_WINDOW_SHOW:String = "loginWindoShow";
public static const COMPLETE:String = "complete";
public function FacebookEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false, _arg5:FacebookData=null, _arg6:FacebookError=null, _arg7:String="", _arg8:Boolean=false){
this.success = _arg4;
this.data = _arg5;
this.error = _arg6;
this.permission = _arg7;
this.hasPermission = _arg8;
super(_arg1, _arg2, _arg3);
}
override public function clone():Event{
return (new FacebookEvent(type, bubbles, cancelable, success, data, error));
}
override public function toString():String{
return (formatToString("FacebookEvent", "type", "success", "data", "error"));
}
}
}//package com.facebook.events
Section 140
//FacebookCall (com.facebook.net.FacebookCall)
package com.facebook.net {
import flash.events.*;
import flash.net.*;
import com.facebook.data.*;
import com.facebook.errors.*;
import com.facebook.delegates.*;
import com.facebook.session.*;
import com.facebook.events.*;
import com.facebook.*;
public class FacebookCall extends EventDispatcher {
public var success:Boolean;// = false
public var delegate:IFacebookCallDelegate;
public var error:FacebookError;
public var session:IFacebookSession;
public var result:FacebookData;
public var method:String;
public var args:URLVariables;
public var useSession:Boolean;// = true
public function FacebookCall(_arg1:String="no_method_required", _arg2:URLVariables=null){
success = false;
useSession = true;
super();
this.method = _arg1;
this.args = ((_arg2)!=null) ? _arg2 : new URLVariables();
}
facebook_internal function clearRequestArguments():void{
this.args = new URLVariables();
}
facebook_internal function initialize():void{
}
facebook_internal function handleError(_arg1:FacebookError):void{
this.error = _arg1;
success = false;
dispatchEvent(new FacebookEvent(FacebookEvent.COMPLETE, false, false, false, null, _arg1));
}
facebook_internal function setRequestArgument(_arg1:String, _arg2:Object):void{
if ((((_arg2 is Number)) && (isNaN((_arg2 as Number))))){
return;
};
if (((((_arg1) && (!((_arg2 == null))))) && ((String(_arg2).length > 0)))){
this.args[_arg1] = _arg2;
};
}
protected function applySchema(_arg1:Array, ... _args):void{
var _local3:uint;
var _local4:uint;
_local3 = _arg1.length;
_local4 = 0;
while (_local4 < _local3) {
setRequestArgument(_arg1[_local4], _args[_local4]);
_local4++;
};
}
facebook_internal function handleResult(_arg1:FacebookData):void{
this.result = _arg1;
success = true;
dispatchEvent(new FacebookEvent(FacebookEvent.COMPLETE, false, false, true, _arg1));
}
}
}//package com.facebook.net
Section 141
//IUploadPhoto (com.facebook.net.IUploadPhoto)
package com.facebook.net {
public interface IUploadPhoto {
function set data(_arg1:Object):void;
function set uploadType(_arg1:String):void;
function get data():Object;
function get uploadType():String;
function set uploadQuality(_arg1:uint):void;
function get uploadQuality():uint;
}
}//package com.facebook.net
Section 142
//IUploadVideo (com.facebook.net.IUploadVideo)
package com.facebook.net {
public interface IUploadVideo {
function set title(_arg1:String):void;
function set ext(_arg1:String):void;
function get title():String;
function get ext():String;
function get description():String;
function set description(_arg1:String):void;
}
}//package com.facebook.net
Section 143
//DesktopSession (com.facebook.session.DesktopSession)
package com.facebook.session {
import com.facebook.net.*;
import flash.net.*;
import com.facebook.data.*;
import com.facebook.errors.*;
import com.facebook.delegates.*;
import com.facebook.events.*;
import com.facebook.data.auth.*;
import com.facebook.*;
import com.facebook.commands.users.*;
import com.facebook.commands.auth.*;
public class DesktopSession extends WebSession implements IFacebookSession {
protected var _waiting_for_login:Boolean;// = false
protected var _auth_token:String;
protected var _offline_access:Boolean;// = false
protected var loginRequest:IFacebookCallDelegate;
public function DesktopSession(_arg1:String, _arg2:String=null, _arg3:String=null){
_waiting_for_login = false;
_offline_access = false;
super(_arg1, null);
this._is_connected = false;
this._secret = _arg2;
if (_arg3){
this._session_key = _arg3;
};
}
override public function get waiting_for_login():Boolean{
return (_waiting_for_login);
}
protected function onVerifyLogin(_arg1:FacebookEvent):void{
var _local2:FacebookEvent;
_local2 = new FacebookEvent(FacebookEvent.CONNECT);
_local2.success = _arg1.success;
if (_arg1.success){
facebook_internal::_uid = (_arg1.data as StringResultData).value;
_local2.data = _arg1.data;
_is_connected = true;
} else {
_local2.error = _arg1.error;
_is_connected = false;
};
dispatchEvent(_local2);
}
override public function post(_arg1:FacebookCall):IFacebookCallDelegate{
rest_url = REST_URL;
if ((_arg1 is IUploadPhoto)){
return (new WebImageUploadDelegate(_arg1, this));
};
if ((_arg1 is IUploadVideo)){
rest_url = VIDEO_URL;
return (new VideoUploadDelegate(_arg1, this));
};
return (new DesktopDelegate(_arg1, this));
}
protected function validateSessionReply(_arg1:FacebookEvent):void{
var _local2:GetSessionData;
if (_arg1.success){
_local2 = (_arg1.data as GetSessionData);
facebook_internal::_uid = _local2.uid;
this._session_key = _local2.session_key;
this._expires = _local2.expires;
this._secret = ((((_local2.secret == null)) || ((_local2.secret == "")))) ? this._secret : _local2.secret;
_is_connected = true;
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, true, _local2));
} else {
onConnectionError(_arg1.error);
};
}
protected function tokenCreated():void{
navigateToURL(new URLRequest(login_url));
}
override public function refreshSession():void{
var _local1:GetSession;
_waiting_for_login = false;
_local1 = new GetSession(_auth_token);
_local1.session = this;
var _local2 = _local1;
_local2.facebook_internal::initialize();
_local1.addEventListener(FacebookEvent.COMPLETE, validateSessionReply);
post(_local1);
}
protected function onLogin(_arg1:FacebookEvent):void{
var _local2:URLRequest;
var _local3:String;
_arg1.target.removeEventListener(FacebookEvent.COMPLETE, onLogin);
if (_arg1.success){
_auth_token = (_arg1.data as StringResultData).value;
_local2 = new URLRequest();
_local3 = "?";
if (_offline_access){
_local3 = (_local3 + "ext_perm=offline_access&");
};
_local2.url = (((((((login_url + _local3) + "api_key=") + api_key) + "&v=") + api_version) + "&auth_token=") + _auth_token);
navigateToURL(_local2, "_blank");
_waiting_for_login = true;
dispatchEvent(new FacebookEvent(FacebookEvent.WAITING_FOR_LOGIN));
} else {
onConnectionError(_arg1.error);
};
}
override public function verifySession():void{
var _local1:FacebookCall;
if (_session_key){
_local1 = new GetLoggedInUser();
_local1.session = this;
var _local2 = _local1;
_local2.facebook_internal::initialize();
_local1.addEventListener(FacebookEvent.COMPLETE, onVerifyLogin, false, 0, true);
post(_local1);
dispatchEvent(new FacebookEvent(FacebookEvent.VERIFYING_SESSION));
} else {
_is_connected = false;
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT));
};
}
override public function login(_arg1:Boolean):void{
var _local2:FacebookCall;
_offline_access = _arg1;
_session_key = null;
_local2 = new CreateToken();
_local2.session = this;
var _local3 = _local2;
_local3.facebook_internal::initialize();
_local2.addEventListener(FacebookEvent.COMPLETE, onLogin);
post(_local2);
}
protected function onConnectionError(_arg1:FacebookError):void{
_is_connected = false;
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, false, null, _arg1));
}
}
}//package com.facebook.session
Section 144
//IFacebookSession (com.facebook.session.IFacebookSession)
package com.facebook.session {
import flash.events.*;
import com.facebook.net.*;
import com.facebook.delegates.*;
public interface IFacebookSession extends IEventDispatcher {
function get rest_url():String;
function get waiting_for_login():Boolean;
function get api_key():String;
function get is_connected():Boolean;
function get uid():String;
function set rest_url(_arg1:String):void;
function verifySession():void;
function set secret(_arg1:String):void;
function post(_arg1:FacebookCall):IFacebookCallDelegate;
function login(_arg1:Boolean):void;
function set session_key(_arg1:String):void;
function get secret():String;
function get expires():Date;
function get session_key():String;
function get api_version():String;
function refreshSession():void;
}
}//package com.facebook.session
Section 145
//JSSession (com.facebook.session.JSSession)
package com.facebook.session {
import flash.events.*;
import com.facebook.net.*;
import com.facebook.delegates.*;
import com.facebook.events.*;
import com.facebook.*;
import com.facebook.commands.users.*;
public class JSSession extends EventDispatcher implements IFacebookSession {
public var _api_key:String;
public var as_swf_name:String;
protected var _session_key:String;
public function JSSession(_arg1:String, _arg2:String){
this._api_key = _arg1;
this.as_swf_name = _arg2;
}
public function get rest_url():String{
return (null);
}
public function set rest_url(_arg1:String):void{
}
public function get waiting_for_login():Boolean{
return (true);
}
protected function onVerifyLogin(_arg1:FacebookEvent):void{
if (_arg1.success){
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, true));
} else {
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, false));
};
}
public function get is_sessionless():Boolean{
return (true);
}
public function post(_arg1:FacebookCall):IFacebookCallDelegate{
return (new JSDelegate(_arg1, this));
}
public function get secret():String{
return (null);
}
public function get api_version():String{
return ("1.0");
}
public function get is_connected():Boolean{
return (true);
}
public function get session_key():String{
return (_session_key);
}
public function get api_key():String{
return (_api_key);
}
public function get expires():Date{
return (null);
}
public function get uid():String{
return (null);
}
public function refreshSession():void{
}
public function verifySession():void{
var _local1:FacebookCall;
_local1 = new GetLoggedInUser();
_local1.addEventListener(FacebookEvent.COMPLETE, onVerifyLogin);
_local1.session = this;
var _local2 = _local1;
_local2.facebook_internal::initialize();
post(_local1);
}
public function set secret(_arg1:String):void{
}
public function login(_arg1:Boolean):void{
}
public function set session_key(_arg1:String):void{
_session_key = _arg1;
}
}
}//package com.facebook.session
Section 146
//WebSession (com.facebook.session.WebSession)
package com.facebook.session {
import flash.events.*;
import com.facebook.net.*;
import com.facebook.delegates.*;
import com.facebook.events.*;
import com.facebook.*;
public class WebSession extends EventDispatcher implements IFacebookSession {
protected var _api_key:String;
protected var _api_version:String;// = "1.0"
facebook_internal var _uid:String;
protected var _is_connected:Boolean;// = false
public var login_url:String;// = "http://www.facebook.com/login.php"
protected var _secret:String;
protected var _rest_url:String;// = "http://api.facebook.com/restserver.php"
protected var _expires:Date;
protected var _session_key:String;
public static const VIDEO_URL:String = "http://api-video.facebook.com/restserver.php";
public static const REST_URL:String = "http://api.facebook.com/restserver.php";
public function WebSession(_arg1:String, _arg2:String, _arg3:String=null){
_api_version = "1.0";
_is_connected = false;
_rest_url = REST_URL;
login_url = "http://www.facebook.com/login.php";
super();
this._api_key = _arg1;
this._session_key = _arg3;
this.secret = _arg2;
}
public function get rest_url():String{
return (_rest_url);
}
public function set rest_url(_arg1:String):void{
_rest_url = _arg1;
}
public function get waiting_for_login():Boolean{
return (false);
}
public function post(_arg1:FacebookCall):IFacebookCallDelegate{
rest_url = REST_URL;
if ((_arg1 is IUploadPhoto)){
return (new WebImageUploadDelegate(_arg1, this));
};
if ((_arg1 is IUploadVideo)){
rest_url = VIDEO_URL;
return (new VideoUploadDelegate(_arg1, this));
};
return (new WebDelegate(_arg1, this));
}
public function get secret():String{
return (_secret);
}
public function get api_version():String{
return (this._api_version);
}
public function get is_connected():Boolean{
return (_is_connected);
}
public function get session_key():String{
return (_session_key);
}
public function get api_key():String{
return (_api_key);
}
public function get expires():Date{
return (_expires);
}
public function get uid():String{
return (facebook_internal::_uid);
}
public function refreshSession():void{
}
public function verifySession():void{
if (_session_key){
_is_connected = true;
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, true));
} else {
_is_connected = false;
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, false));
};
}
public function set secret(_arg1:String):void{
_secret = _arg1;
}
public function set api_version(_arg1:String):void{
this._api_version = _arg1;
}
public function login(_arg1:Boolean):void{
}
public function set session_key(_arg1:String):void{
_session_key = _arg1;
}
}
}//package com.facebook.session
Section 147
//FacebookArrayCollection (com.facebook.utils.FacebookArrayCollection)
package com.facebook.utils {
import flash.events.*;
import flash.utils.*;
public class FacebookArrayCollection extends EventDispatcher {
protected var _source:Array;
protected var _type:Class;
protected var hash:Dictionary;
public function FacebookArrayCollection(_arg1:Array=null, _arg2:Class=null){
reset();
_type = _arg2;
initilizeSource(_arg1);
}
public function indexOf(_arg1:Object):int{
return (_source.indexOf(_arg1));
}
public function reset():void{
hash = new Dictionary(true);
_source = [];
}
public function findItemByProperty(_arg1:String, _arg2:Object, _arg3:Boolean=false):Object{
var _local4:Object;
for (_local4 in hash) {
if (((((_arg3) && ((_arg1 in _local4)))) && ((_local4[_arg1] === _arg2)))){
return (_local4);
};
if (((((!(_arg3)) && ((_arg1 in _local4)))) && ((_local4[_arg1] == _arg2)))){
return (_local4);
};
};
return (null);
}
public function get source():Array{
return (_source);
}
public function toArray():Array{
var _local1:Array;
var _local2:uint;
var _local3:uint;
_local1 = [];
_local2 = length;
_local3 = 0;
while (_local3 < _local2) {
_local1.push(getItemAt(_local3));
_local3++;
};
return (_local1);
}
public function contains(_arg1:Object):Boolean{
return ((hash[_arg1] === true));
}
protected function verifyIndex(_arg1:uint):void{
if (_source.length < _arg1){
throw (new RangeError((("Index: " + _arg1) + ", is out of range.")));
};
}
public function removeItemAt(_arg1:uint):void{
var _local2:Object;
verifyIndex(_arg1);
_local2 = _source[_arg1];
delete hash[_local2];
_source.splice(_arg1, 1);
}
public function addItem(_arg1:Object):void{
addItemAt(_arg1, length);
}
public function get length():int{
return (_source.length);
}
public function addItemAt(_arg1:Object, _arg2:uint):void{
if (hash[_arg1] != null){
throw (new Error("Item already exists."));
};
if (((!((_type === null))) && (!((_arg1 is _type))))){
throw (new TypeError((("This collection requires " + _type) + " as the type.")));
};
hash[_arg1] = true;
_source.splice(_arg2, 0, _arg1);
}
public function getItemAt(_arg1:uint):Object{
verifyIndex(_arg1);
return (_source[_arg1]);
}
override public function toString():String{
return (_source.join(", "));
}
public function get type():Class{
return (_type);
}
protected function initilizeSource(_arg1:Array):void{
var _local2:uint;
var _local3:uint;
_source = [];
if (_arg1 == null){
return;
};
_local2 = _arg1.length;
_local3 = 0;
while (_local3 < _local2) {
addItem(_arg1[_local3]);
_local3++;
};
}
}
}//package com.facebook.utils
Section 148
//FacebookDataUtils (com.facebook.utils.FacebookDataUtils)
package com.facebook.utils {
import com.adobe.serialization.json.*;
public class FacebookDataUtils {
public static function toJSONValuesArray(_arg1:Array):String{
var _local2:Array;
var _local3:Number;
var _local4:Number;
if (_arg1 == null){
return (null);
};
_local2 = [];
_local3 = _arg1.length;
_local4 = 0;
while (_local4 < _local3) {
_local2.push(JSON.encode(_arg1[_local4]));
_local4++;
};
return (_local2.join(","));
}
public static function formatDate(_arg1:String):Date{
var _local2:Date;
var _local3:Array;
var _local4:Array;
var _local5:Array;
if ((((_arg1 == "")) || ((_arg1 == null)))){
return (null);
};
_local2 = new Date();
_local3 = _arg1.split(" ");
if (_local3.length == 2){
_local4 = _local3[0].split("-");
_local5 = _local3[1].split(":");
_local2.setFullYear(_local4[0]);
_local2.setMonth((_local4[1] - 1));
_local2.setDate(_local4[2]);
_local2.setHours(_local5[0]);
_local2.setMinutes(_local5[1]);
_local2.setSeconds(_local5[2]);
} else {
_local2.setTime((parseInt(_arg1) * 1000));
};
return (_local2);
}
public static function facebookCollectionToJSONArray(_arg1:FacebookArrayCollection):String{
if (_arg1 == null){
return (null);
};
return (JSON.encode(_arg1.toArray()));
}
public static function toDateString(_arg1:Date):String{
if (_arg1 == null){
return (null);
};
_arg1.setDate((_arg1.date + 1));
return (((_arg1 == null)) ? null : _arg1.getTime().toString().slice(0, 10));
}
public static function supplantString(_arg1:String, _arg2:Object):String{
var _local3:String;
var _local4:String;
_local3 = _arg1;
for (_local4 in _arg2) {
_local3 = _local3.replace(new RegExp((("\\{" + _local4) + "\\}"), "g"), _arg2[_local4]);
};
return (_local3);
}
public static function toArrayString(_arg1:Array):String{
return (((_arg1 == null)) ? null : _arg1.join(","));
}
}
}//package com.facebook.utils
Section 149
//FacebookSessionUtil (com.facebook.utils.FacebookSessionUtil)
package com.facebook.utils {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import com.facebook.session.*;
import com.facebook.events.*;
import com.facebook.*;
import flash.system.*;
public class FacebookSessionUtil extends EventDispatcher {
public var facebook:Facebook;
protected var loaderInfo:LoaderInfo;
protected var secret:String;
protected var _activeSession:IFacebookSession;
protected var session_key:String;
protected var api_key:String;
public function FacebookSessionUtil(_arg1:String, _arg2:String, _arg3:LoaderInfo){
var _local4:SharedObject;
var _local5:Object;
super();
this.secret = ((_arg2 == null)) ? _arg3.parameters.fb_sig_ss : _arg2;
this.api_key = _arg1;
this.loaderInfo = _arg3;
_local4 = getStoredSession();
if (_local4.data.session_key){
session_key = _local4.data.session_key;
};
_local5 = ((_arg3)!=null) ? _arg3.parameters : {};
if (_local5.fb_sig_session_key != null){
session_key = _local5.fb_sig_session_key;
};
if ((((_arg3.url.slice(0, 5) == "file:")) || ((Capabilities.playerType == "Desktop")))){
_activeSession = new DesktopSession(_arg1, this.secret);
} else {
if (((((_local5.fb_sig_ss) && (_local5.fb_sig_api_key))) && (_local5.fb_sig_session_key))){
_activeSession = new WebSession(_local5.fb_sig_api_key, _local5.fb_sig_ss, _local5.fb_sig_session_key);
(_activeSession as WebSession).facebook_internal::_uid = _local5.fb_sig_user;
} else {
if (_local5.as_app_name){
_activeSession = new JSSession(_arg1, _local5.as_app_name);
} else {
_activeSession = new DesktopSession(_arg1, _arg2);
};
};
};
_activeSession.session_key = session_key;
_activeSession.addEventListener(FacebookEvent.VERIFYING_SESSION, onVerifyingSession);
facebook = new Facebook();
facebook.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, handleWaitingForLogin);
facebook.addEventListener(FacebookEvent.CONNECT, onFacebookReady);
facebook.startSession(_activeSession);
}
protected function handleWaitingForLogin(_arg1:FacebookEvent):void{
dispatchEvent(_arg1);
}
public function onVerifyingSession(_arg1:FacebookEvent):void{
dispatchEvent(_arg1);
}
protected function onVerifyLogin(_arg1:FacebookEvent):void{
_activeSession.removeEventListener(FacebookEvent.CONNECT, onVerifyLogin);
if (_arg1.success){
onFacebookReady(null);
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, true));
} else {
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, false));
};
}
public function logout():void{
getStoredSession().clear();
getStoredSession().flush();
facebook.logout();
}
public function verifySession():void{
_activeSession.verifySession();
}
protected function onFacebookReady(_arg1:FacebookEvent):void{
var _local2:SharedObject;
if (facebook.session_key){
_local2 = getStoredSession();
_local2.data.session_key = facebook.session_key;
_local2.data.stored_secret = facebook.secret;
_local2.flush(3000);
};
if (_arg1){
dispatchEvent(_arg1);
};
}
public function login(_arg1:Boolean=true):void{
facebook.login(_arg1);
}
protected function onWaitingForLogin(_arg1:FacebookEvent):void{
dispatchEvent(_arg1);
}
public function get activeSession():IFacebookSession{
return (_activeSession);
}
public function validateLogin():void{
facebook.refreshSession();
}
protected function getStoredSession():SharedObject{
return (SharedObject.getLocal((api_key + "_stored_session")));
}
}
}//package com.facebook.utils
Section 150
//FacebookStreamXMLParser (com.facebook.utils.FacebookStreamXMLParser)
package com.facebook.utils {
import com.facebook.data.stream.*;
public class FacebookStreamXMLParser {
public static function createCommentsArray(_arg1:XMLList, _arg2:Namespace):Array{
var _local3:Array;
var _local4:uint;
var _local5:uint;
var _local6:XML;
var _local7:PostCommentData;
_local3 = [];
_local4 = _arg1.length();
_local5 = 0;
while (_local5 < _local4) {
_local6 = _arg1[_local5];
_local7 = new PostCommentData();
_local7.fromid = FacebookXMLParserUtils.toStringValue(_local6._arg2::fromid[0]);
_local7.id = FacebookXMLParserUtils.toStringValue(_local6._arg2::id[0]);
_local7.text = FacebookXMLParserUtils.toStringValue(_local6._arg2::text[0]);
_local7.time = FacebookXMLParserUtils.toDate(_local6._arg2::time[0]);
_local3.push(_local7);
_local5++;
};
return (_local3);
}
protected static function createMediaArray(_arg1:XML, _arg2:Namespace):Array{
var _local3:Array;
var _local4:XMLList;
var _local5:uint;
var _local6:uint;
var _local7:XML;
var _local8:StreamMediaData;
if (_arg1 == null){
return (null);
};
_local3 = [];
_local4 = _arg1.children();
_local5 = _local4.length();
_local6 = 0;
while (_local6 < _local5) {
_local7 = _local4[_local6];
_local8 = new StreamMediaData();
_local8.type = FacebookXMLParserUtils.toStringValue(_local7._arg2::type[0]);
_local8.alt = FacebookXMLParserUtils.toStringValue(_local7._arg2::alt[0]);
_local8.href = FacebookXMLParserUtils.toStringValue(_local7._arg2::href[0]);
_local8.src = FacebookXMLParserUtils.toStringValue(_local7._arg2::src[0]);
_local8.video = createVideoMedia(_local7._arg2::video[0], _arg2);
_local8.photo = createPhotoMedia(_local7._arg2::photo[0], _arg2);
_local8.flash = createFlashMedia(_local7._arg2::swf[0], _arg2);
_local8.music = createMusicMedia(_local7._arg2::music[0], _arg2);
_local3.push(_local8);
_local6++;
};
return (_local3);
}
public static function createStreamFilterCollection(_arg1:XML, _arg2:Namespace):GetFiltersData{
var _local3:GetFiltersData;
var _local4:StreamFilterCollection;
var _local5:XMLList;
var _local6:uint;
var _local7:uint;
var _local8:XML;
var _local9:StreamFilterData;
_local3 = new GetFiltersData();
_local4 = new StreamFilterCollection();
_local5 = _arg1.._arg2::stream_filter;
_local6 = _local5.length();
_local7 = 0;
while (_local7 < _local6) {
_local8 = _local5[_local7];
_local9 = new StreamFilterData();
_local9.filter_key = FacebookXMLParserUtils.toStringValue(_local8._arg2::filter_key[0]);
_local9.icon_url = FacebookXMLParserUtils.toStringValue(_local8._arg2::icon_url[0]);
_local9.is_visible = FacebookXMLParserUtils.toBoolean(_local8._arg2::is_visible[0]);
_local9.name = FacebookXMLParserUtils.toStringValue(_local8._arg2::name[0]);
_local9.rank = FacebookXMLParserUtils.toNumber(_local8._arg2::rank[0]);
_local9.type = FacebookXMLParserUtils.toStringValue(_local8._arg2::type[0]);
_local9.uid = FacebookXMLParserUtils.toStringValue(_local8._arg2::uid[0]);
_local9.value = FacebookXMLParserUtils.toStringValue(_local8._arg2::value[0]);
_local4.addItem(_local9);
_local7++;
};
_local3.filters = _local4;
return (_local3);
}
protected static function createVideoMedia(_arg1:XML, _arg2:Namespace):VideoMedia{
var _local3:VideoMedia;
if (_arg1 == null){
return (null);
};
_local3 = new VideoMedia();
_local3.display_url = FacebookXMLParserUtils.toStringValue(_arg1._arg2::display_url[0]);
_local3.owner = FacebookXMLParserUtils.toStringValue(_arg1._arg2::owner[0]);
_local3.permalink = FacebookXMLParserUtils.toStringValue(_arg1._arg2::permalink[0]);
_local3.source_url = FacebookXMLParserUtils.toStringValue(_arg1._arg2::source_url[0]);
_local3.preview_img = FacebookXMLParserUtils.toStringValue(_arg1._arg2::preview_img[0]);
return (_local3);
}
protected static function createFlashMedia(_arg1:XML, _arg2:Namespace):FlashMedia{
var _local3:FlashMedia;
if (_arg1 == null){
return (null);
};
_local3 = new FlashMedia();
_local3.source_url = FacebookXMLParserUtils.toStringValue(_arg1._arg2::source_url[0]);
_local3.preview_img = FacebookXMLParserUtils.toStringValue(_arg1._arg2::preview_img[0]);
return (_local3);
}
public static function createGetCommentsData(_arg1:XML, _arg2:Namespace):GetCommentsData{
var _local3:XMLList;
var _local4:GetCommentsData;
_local3 = _arg1.._arg2::comment;
_local4 = new GetCommentsData();
_local4.comments = createCommentsArray(_local3, _arg2);
return (_local4);
}
protected static function createActionLinksArray(_arg1:XML, _arg2:Namespace):Array{
var _local3:Array;
var _local4:XMLList;
var _local5:uint;
var _local6:uint;
var _local7:XML;
var _local8:ActionLinkData;
if (_arg1 == null){
return (null);
};
_local3 = [];
_local4 = _arg1.children();
_local5 = _local4.length();
_local6 = 0;
while (_local6 < _local5) {
_local7 = _local4[_local6];
_local8 = new ActionLinkData();
_local8.text = FacebookXMLParserUtils.toStringValue(_local7._arg2::text[0]);
_local8.href = FacebookXMLParserUtils.toStringValue(_local7._arg2::href[0]);
_local3.push(_local8);
_local6++;
};
return (_local3);
}
protected static function createMusicMedia(_arg1:XML, _arg2:Namespace):MusicMedia{
var _local3:MusicMedia;
if (_arg1 == null){
return (null);
};
_local3 = new MusicMedia();
_local3.source_url = FacebookXMLParserUtils.toStringValue(_arg1._arg2::source_url[0]);
_local3.artist = FacebookXMLParserUtils.toStringValue(_arg1._arg2::artist[0]);
_local3.title = FacebookXMLParserUtils.toStringValue(_arg1._arg2::title[0]);
return (_local3);
}
public static function createStream(_arg1:XML, _arg2:Namespace):GetStreamData{
var _local3:GetStreamData;
var _local4:StreamStoryCollection;
var _local5:ProfileCollection;
var _local6:uint;
var _local7:uint;
var _local8:XMLList;
var _local9:XMLList;
var _local10:XML;
var _local11:StreamStoryData;
var _local12:XML;
var _local13:AttachmentData;
var _local14:LikesData;
var _local15:XML;
var _local16:XML;
var _local17:ProfileData;
var _local18:XML;
_local3 = new GetStreamData();
_local4 = new StreamStoryCollection();
_local5 = new ProfileCollection();
_local3.stories = _local4;
_local3.profiles = _local5;
_local8 = _arg1._arg2::posts.children();
_local6 = _local8.length();
_local7 = 0;
while (_local7 < _local6) {
_local10 = _local8[_local7];
_local11 = new StreamStoryData();
_local11.sourceXML = _local10;
_local12 = _local10._arg2::attachment[0];
_local13 = new AttachmentData();
_local13.name = FacebookXMLParserUtils.toStringValue(_local12._arg2::name[0]);
_local13.text = FacebookXMLParserUtils.toStringValue(_local12._arg2::text[0]);
_local13.body = FacebookXMLParserUtils.toStringValue(_local12._arg2::body[0]);
_local13.icon = FacebookXMLParserUtils.toStringValue(_local12._arg2::icon[0]);
_local13.label = FacebookXMLParserUtils.toStringValue(_local12._arg2::label[0]);
_local13.media = createMediaArray(_local12._arg2::media[0], _arg2);
_local13.title = FacebookXMLParserUtils.toStringValue(_local12._arg2::title[0]);
_local13.href = FacebookXMLParserUtils.toStringValue(_local12._arg2::href[0]);
_local13.caption = FacebookXMLParserUtils.toStringValue(_local12._arg2::caption[0]);
_local13.description = FacebookXMLParserUtils.toStringValue(_local12._arg2::description[0]);
_local13.properties = FacebookXMLParserUtils.xmlListToObjectArray(_local12.._arg2::stream_property);
_local11.attachment = _local13;
_local11.actor_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::actor_id[0]);
_local11.comments = createComments(_local10._arg2::comments[0], _arg2);
_local14 = new LikesData();
_local15 = _local10._arg2::likes[0];
_local14.can_like = FacebookXMLParserUtils.toBoolean(_local15._arg2::can_like[0]);
_local14.user_likes = FacebookXMLParserUtils.toBoolean(_local15._arg2::user_likes[0]);
_local14.count = FacebookXMLParserUtils.toNumber(_local15._arg2::count[0]);
_local14.friends = FacebookXMLParserUtils.toUIDArray(_local15._arg2::friends[0]);
_local14.sample = FacebookXMLParserUtils.toUIDArray(_local15._arg2::sample[0]);
_local14.href = FacebookXMLParserUtils.toStringValue(_local15._arg2::href[0]);
_local11.likes = _local14;
_local11.attribution = FacebookXMLParserUtils.toStringValue(_local10._arg2::attribution[0]);
_local11.app_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::app_id[0]);
_local11.metadata = FacebookXMLParserUtils.nodeToObject(_local10._arg2::metadata);
_local11.message = FacebookXMLParserUtils.toStringValue(_local10._arg2::message[0]);
_local11.source_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::source_id[0]);
_local11.target_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::target_id[0]);
_local11.post_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::post_id[0]);
_local11.updated_time = FacebookXMLParserUtils.toDate(_local10._arg2::updated_time[0]);
_local11.created_time = FacebookXMLParserUtils.toDate(_local10._arg2::created_time[0]);
_local11.type = FacebookXMLParserUtils.toNumber(_local10._arg2::type[0]);
_local11.viewer_id = FacebookXMLParserUtils.toStringValue(_local10._arg2::viewer_id[0]);
_local16 = _local10._arg2::privacy[0];
_local11.privacy = FacebookXMLParserUtils.toStringValue(_local16._arg2::value[0]);
_local11.filter_key = FacebookXMLParserUtils.toStringValue(_local10._arg2::filter_key[0]);
_local11.permalink = FacebookXMLParserUtils.toStringValue(_local10._arg2::permalink[0]);
_local11.is_hidden = FacebookXMLParserUtils.toBoolean(_local10._arg2::is_hidden[0]);
_local11.action_links = createActionLinksArray(_local10._arg2::action_links[0], _arg2);
_local4.addItem(_local11);
_local7++;
};
_local9 = _arg1._arg2::profiles.children();
_local6 = _local9.length();
_local7 = 0;
while (_local7 < _local6) {
_local17 = new ProfileData();
_local18 = _local9[_local7];
_local17.id = FacebookXMLParserUtils.toStringValue(_local18._arg2::id[0]);
_local17.name = FacebookXMLParserUtils.toStringValue(_local18._arg2::name[0]);
_local17.pic_square = FacebookXMLParserUtils.toStringValue(_local18._arg2::pic_square[0]);
_local17.url = FacebookXMLParserUtils.toStringValue(_local18._arg2::url[0]);
_local5.addItem(_local17);
_local7++;
};
_local3.albums = FacebookXMLParserUtils.createAlbumCollection(_arg1._arg2::albums[0], _arg2);
return (_local3);
}
protected static function createPhotoMedia(_arg1:XML, _arg2:Namespace):PhotoMedia{
var _local3:PhotoMedia;
if (_arg1 == null){
return (null);
};
_local3 = new PhotoMedia();
_local3.aid = FacebookXMLParserUtils.toStringValue(_arg1._arg2::aid[0]);
_local3.index = FacebookXMLParserUtils.toNumber(_arg1._arg2::index[0]);
_local3.owner = FacebookXMLParserUtils.toStringValue(_arg1._arg2::owner[0]);
_local3.pid = FacebookXMLParserUtils.toStringValue(_arg1._arg2::pid[0]);
return (_local3);
}
protected static function createComments(_arg1:XML, _arg2:Namespace):CommentsData{
var _local3:CommentsData;
var _local4:XMLList;
_local3 = new CommentsData();
_local3.can_remove = FacebookXMLParserUtils.toBoolean(_arg1._arg2::can_remove[0]);
_local3.can_post = FacebookXMLParserUtils.toBoolean(_arg1._arg2::can_post[0]);
_local3.count = FacebookXMLParserUtils.toNumber(_arg1._arg2::count[0]);
_local4 = _arg1._arg2::comment_list.children();
_local3.posts = createCommentsArray(_local4, _arg2);
return (_local3);
}
}
}//package com.facebook.utils
Section 151
//FacebookUserXMLParser (com.facebook.utils.FacebookUserXMLParser)
package com.facebook.utils {
import com.facebook.data.*;
import com.facebook.data.users.*;
public class FacebookUserXMLParser {
protected static function parseWorkHistory(_arg1:XML, _arg2:Namespace):Array{
var _local3:Array;
var _local4:XMLList;
var _local5:Object;
var _local6:FacebookWorkInfo;
_local3 = [];
_local4 = _arg1.children();
for each (_local5 in _local4) {
_local6 = new FacebookWorkInfo();
_local6.location = FacebookXMLParserUtils.createLocation(_local5._arg2::location[0], _arg2);
_local6.company_name = String(_local5._arg2::company_name);
_local6.description = String(_local5._arg2::description);
_local6.position = String(_local5._arg2::position);
_local6.start_date = FacebookDataUtils.formatDate(_local5._arg2::start_date);
_local6.end_date = FacebookDataUtils.formatDate(_local5._arg2::end_date);
_local3.push(_local6);
};
return (_local3);
}
protected static function createStatus(_arg1:XML, _arg2:Namespace):StatusData{
var _local3:StatusData;
_local3 = new StatusData();
_local3.message = String(_arg1._arg2::message);
_local3.time = FacebookDataUtils.formatDate(String(_arg1._arg2::time));
return (_local3);
}
protected static function parseEducationHistory(_arg1:XML, _arg2:Namespace):Array{
var _local3:Array;
var _local4:XMLList;
var _local5:Object;
var _local6:FacebookEducationInfo;
var _local7:XML;
_local3 = [];
_local4 = _arg1.children();
for each (_local5 in _local4) {
_local6 = new FacebookEducationInfo();
_local6.name = String(_local5._arg2::name);
_local6.year = String(_local5._arg2::year);
_local6.degree = String(_local5._arg2::degree);
_local6.concentrations = [];
for each (_local7 in _local5.concentration) {
_local6.concentrations.push(_local7);
};
_local3.push(_local6);
};
return (_local3);
}
public static function createFacebookUser(_arg1:XML, _arg2:Namespace):FacebookUser{
var _local3:FacebookUser;
var _local4:XMLList;
var _local5:uint;
var _local6:XML;
var _local7:String;
var _local8:uint;
_local3 = new FacebookUser();
_local4 = _arg1.children();
_local5 = _local4.length();
_local8 = 0;
while (_local8 < _local5) {
_local6 = _local4[_local8];
_local7 = _local6.localName().toString();
switch (_local7){
case "status":
_local3[_local7] = createStatus(_local6, _arg2);
break;
case "affiliations":
_local3[_local7] = createAffiliations(_local6.children(), _arg2);
break;
case "hometown_location":
case "current_location":
_local3[_local7] = FacebookXMLParserUtils.createLocation(_local6, _arg2);
break;
case "profile_update_time":
_local3[_local7] = FacebookDataUtils.formatDate(_local6.toString());
break;
case "hs_info":
_local3.hs1_id = parseInt(_local6._arg2::hs1_id);
_local3.hs1_name = String(_local6._arg2::hs1_name);
_local3.hs2_id = parseInt(_local6._arg2::hs2_id);
_local3.hs2_name = String(_local6._arg2::hs2_name);
_local3.grad_year = String(_local6._arg2::grad_year);
break;
case "education_history":
_local3[_local7] = parseEducationHistory(_local6, _arg2);
break;
case "work_history":
_local3[_local7] = parseWorkHistory(_local6, _arg2);
break;
case "timezone":
case "notes_count":
case "wall_count":
_local3[_local7] = Number(_local6.toString());
break;
case "has_added_app":
case "is_app_user":
_local3[_local7] = FacebookXMLParserUtils.toBoolean(_local6);
break;
case "meeting_sex":
case "meeting_for":
case "email_hashes":
_local3[_local7] = toArray(_local6, _arg2);
break;
default:
if ((_local7 in _local3)){
_local3[_local7] = String(_local6);
};
};
_local8++;
};
return (_local3);
}
protected static function toArray(_arg1:XML, _arg2:Namespace):Array{
var _local3:Array;
var _local4:XMLList;
var _local5:uint;
var _local6:uint;
_local3 = [];
_local4 = _arg1.children();
_local5 = _local4.length();
_local6 = 0;
while (_local6 < _local5) {
_local3.push(_local4[_local6].toString());
_local6++;
};
return (_local3);
}
protected static function createAffiliations(_arg1:XMLList, _arg2:Namespace):Array{
var _local3:Array;
var _local4:*;
var _local5:FacebookNetwork;
_local3 = [];
for each (_local4 in _arg1) {
_local5 = new FacebookNetwork();
_local5.nid = parseInt(_local4._arg2::nid);
_local5.name = String(_local4._arg2::name);
_local5.type = String(_local4._arg2::type);
_local5.status = String(_local4._arg2::status);
_local5.year = String(_local4._arg2::year);
_local3.push(_local5);
};
return (_local3);
}
}
}//package com.facebook.utils
Section 152
//FacebookXMLParserUtils (com.facebook.utils.FacebookXMLParserUtils)
package com.facebook.utils {
import flash.net.*;
import com.facebook.data.*;
import com.facebook.data.photos.*;
public class FacebookXMLParserUtils {
public static function createAlbumCollection(_arg1:XML, _arg2:Namespace):AlbumCollection{
var _local3:AlbumCollection;
var _local4:*;
var _local5:AlbumData;
_local3 = new AlbumCollection();
for each (_local4 in _arg1.._arg2::album) {
_local5 = new AlbumData();
_local5.aid = FacebookXMLParserUtils.toStringValue(_local4._arg2::aid[0]);
_local5.cover_pid = FacebookXMLParserUtils.toStringValue(_local4._arg2::cover_pid[0]);
_local5.owner = _local4._arg2::owner;
_local5.name = _local4._arg2::name;
_local5.created = FacebookXMLParserUtils.toDate(_local4._arg2::created);
_local5.modified = FacebookXMLParserUtils.toDate(_local4._arg2::modified);
_local5.description = _local4._arg2::description;
_local5.location = _local4._arg2::location;
_local5.link = _local4._arg2::link;
_local5.size = _local4._arg2::size;
_local5.visible = _local4._arg2::visible;
_local5.modified_major = FacebookXMLParserUtils.toDate(_local4._arg2::modified_major);
_local5.edit_link = _local4._arg2::edit_link;
_local5.type = _local4._arg2::type;
_local3.addAlbum(_local5);
};
return (_local3);
}
public static function toNumber(_arg1:XML):Number{
if (_arg1 == null){
return (NaN);
};
return (Number(_arg1.toString()));
}
public static function toStringValue(_arg1:XML):String{
if (_arg1 == null){
return (null);
};
return (_arg1.toString());
}
public static function toDate(_arg1:String):Date{
var _local2:String;
var _local3:Date;
if (_arg1 == null){
return (null);
};
_local2 = _arg1;
while (_local2.length < 13) {
_local2 = (_local2 + "0");
};
_local3 = new Date(Number(_local2));
return (_local3);
}
public static function xmlListToObjectArray(_arg1:XMLList):Array{
var _local2:Array;
var _local3:uint;
var _local4:uint;
_local2 = [];
if (_arg1 == null){
return (_local2);
};
_local3 = _arg1.length();
_local4 = 0;
while (_local4 < _local3) {
_local2.push(xmlToObject(_arg1[_local4]));
_local4++;
};
return (_local2);
}
public static function toUIDArray(_arg1:XML):Array{
var _local2:Array;
var _local3:XMLList;
var _local4:uint;
var _local5:uint;
_local2 = [];
if (_arg1 == null){
return (_local2);
};
_local3 = _arg1.children();
_local4 = _local3.length();
_local5 = 0;
while (_local5 < _local4) {
_local2.push(toNumber(_local3[_local5]));
_local5++;
};
return (_local2);
}
public static function toBoolean(_arg1:XML):Boolean{
if (_arg1 == null){
return (false);
};
return ((_arg1.toString() == "1"));
}
public static function createLocation(_arg1:XML, _arg2:Namespace):FacebookLocation{
var _local3:FacebookLocation;
_local3 = new FacebookLocation();
if (_arg1 == null){
return (_local3);
};
_local3.city = String(_arg1._arg2::city);
_local3.state = String(_arg1._arg2::state);
_local3.country = String(_arg1._arg2::country);
_local3.zip = String(_arg1._arg2::zip);
_local3.street = String(_arg1._arg2::street);
return (_local3);
}
public static function xmlToObject(_arg1:XML):Object{
var _local2:Object;
var _local3:XMLList;
var _local4:uint;
var _local5:uint;
var _local6:XML;
_local2 = {};
_local3 = _arg1.children();
_local4 = _local3.length();
_local5 = 0;
while (_local5 < _local4) {
_local6 = _local3[_local5];
_local2[_local6.localName()] = _local6.toString();
_local5++;
};
return (_local2);
}
public static function xmlToUrlVariables(_arg1:XMLList):URLVariables{
var _local2:URLVariables;
var _local3:XML;
_local2 = new URLVariables();
for each (_local3 in _arg1) {
_local2[_local3.key.valueOf()] = _local3.value.valueOf();
};
return (_local2);
}
public static function nodeToObject(_arg1:XMLList):Object{
var _local2:Object;
var _local3:XML;
_local2 = {};
for each (_local3 in _arg1) {
_local2[_local3.key.valueOf()] = _local3.value.valueOf();
};
return (_local2);
}
public static function toArray(_arg1:XML):Array{
if (_arg1 == null){
return (null);
};
return (_arg1.toString().split(","));
}
}
}//package com.facebook.utils
Section 153
//IFacebookResultParser (com.facebook.utils.IFacebookResultParser)
package com.facebook.utils {
import com.facebook.data.*;
import com.facebook.errors.*;
public interface IFacebookResultParser {
function parse(_arg1:String, _arg2:String):FacebookData;
function validateFacebookResponce(_arg1:String):FacebookError;
}
}//package com.facebook.utils
Section 154
//JavascriptRequestHelper (com.facebook.utils.JavascriptRequestHelper)
package com.facebook.utils {
import flash.utils.*;
import flash.net.*;
public class JavascriptRequestHelper {
public static function objectToString(_arg1:Object):String{
var _local2:Array;
var _local3:String;
_local2 = [];
for (_local3 in _arg1) {
_local2.push((((_local3 + ": ") + quote(_arg1[_local3])) + ""));
};
return ((("{" + _local2.join(", ")) + " }"));
}
public static function quote(_arg1:String):String{
var _local2:RegExp;
_local2 = /[\\"\r\n]/g;
return ((("\"" + _arg1.replace(_local2, _quote)) + "\""));
}
public static function formatParams(_arg1:Array):String{
var _local2:Array;
var _local3:uint;
var _local4:uint;
var _local5:Object;
var _local6:String;
_local2 = [];
_local3 = _arg1.length;
_local4 = 0;
while (_local4 < _local3) {
_local5 = _arg1[_local4];
_local6 = getQualifiedClassName(_local5);
switch (_local6){
case "Array":
_local5 = (("[" + _local5.join(", ")) + "]");
break;
case "Object":
_local5 = objectToString(_local5);
break;
case "String":
default:
_local5 = (("\"" + _local5) + "\"");
break;
};
_local2.push(_local5);
_local4++;
};
return (_local2.join(", "));
}
protected static function _quote(_arg1:String, ... _args):String{
switch (_arg1){
case "\\":
return ("\\\\");
case "\r":
return ("\\r");
case "\n":
return ("\\n");
case "\"":
return ("\\\"");
};
return (null);
}
public static function formatURLVariables(_arg1:URLVariables):String{
var _local2:Object;
var _local3:Boolean;
var _local4:Object;
var _local5:String;
_local2 = {method:true, sig:true, api_key:true, call_id:true};
_local3 = false;
_local4 = {};
for (_local5 in _arg1) {
if (_local2[_local5]){
} else {
_local3 = true;
_local4[_local5] = _arg1[_local5];
};
};
return ((_local3) ? objectToString(_local4) : "null");
}
}
}//package com.facebook.utils
Section 155
//PlayerUtils (com.facebook.utils.PlayerUtils)
package com.facebook.utils {
import flash.system.*;
public class PlayerUtils {
protected static var versionObj:Object;
public static function get internalBuildNumber():Number{
return (parseVersionString().internalBuildNumber);
}
public static function get platform():String{
return (parseVersionString().platform);
}
public static function get buildNumber():Number{
return (parseVersionString().buildNumber);
}
public static function get minorVersion():Number{
return (parseVersionString().minorVersion);
}
public static function parseVersionString():Object{
var _local1:String;
var _local2:Array;
if (versionObj != null){
return (versionObj);
};
_local1 = Capabilities.version;
versionObj = {};
_local2 = _local1.split(" ");
versionObj.platform = _local2[0];
_local2.shift();
_local2 = _local2[0].split(",");
versionObj.majorVersion = Number(_local2[0]);
versionObj.minorVersion = Number(_local2[1]);
versionObj.buildNumber = Number(_local2[2]);
versionObj.internalBuildNumber = Number(_local2[3]);
return (versionObj);
}
public static function get majorVersion():Number{
return (parseVersionString().majorVersion);
}
}
}//package com.facebook.utils
Section 156
//PostRequest (com.facebook.utils.PostRequest)
package com.facebook.utils {
import flash.utils.*;
public class PostRequest {
protected var postData:ByteArray;
protected var _boundary:String;// = "-----"
public function PostRequest(){
_boundary = "-----";
super();
createPostData();
}
public function getPostData():ByteArray{
postData.position = 0;
return (postData);
}
protected function writeDoubleDash():void{
postData.writeShort(0x2D2D);
}
public function writeFileData(_arg1:String, _arg2:ByteArray, _arg3:String):void{
var _local4:String;
var _local5:Number;
writeBoundary();
writeLineBreak();
_local4 = "Content-Disposition: form-data; filename=\"";
_local5 = 0;
while (_local5 < _local4.length) {
postData.writeByte(_local4.charCodeAt(_local5));
_local5++;
};
postData.writeUTFBytes(_arg1);
writeQuotationMark();
writeLineBreak();
_local4 = _arg3;
_local5 = 0;
while (_local5 < _local4.length) {
postData.writeByte(_local4.charCodeAt(_local5));
_local5++;
};
writeLineBreak();
writeLineBreak();
_arg2.position = 0;
postData.writeBytes(_arg2, 0, _arg2.length);
writeLineBreak();
}
public function createPostData():void{
postData = new ByteArray();
postData.endian = Endian.BIG_ENDIAN;
}
public function writePostData(_arg1:String, _arg2:String):void{
var _local3:String;
var _local4:uint;
var _local5:Number;
writeBoundary();
writeLineBreak();
_local3 = (("Content-Disposition: form-data; name=\"" + _arg1) + "\"");
_local4 = _local3.length;
_local5 = 0;
while (_local5 < _local4) {
postData.writeByte(_local3.charCodeAt(_local5));
_local5++;
};
writeLineBreak();
writeLineBreak();
postData.writeUTFBytes(_arg2);
writeLineBreak();
}
protected function writeBoundary():void{
var _local1:Number;
writeDoubleDash();
_local1 = 0;
while (_local1 < boundary.length) {
postData.writeByte(boundary.charCodeAt(_local1));
_local1++;
};
}
protected function writeLineBreak():void{
postData.writeShort(3338);
}
public function get boundary():String{
return (_boundary);
}
public function close():void{
writeBoundary();
writeDoubleDash();
}
protected function writeQuotationMark():void{
postData.writeByte(34);
}
public function set boundary(_arg1:String):void{
_boundary = _arg1;
}
}
}//package com.facebook.utils
Section 157
//Facebook (com.facebook.Facebook)
package com.facebook {
import flash.events.*;
import com.facebook.net.*;
import flash.net.*;
import com.facebook.delegates.*;
import com.facebook.session.*;
import com.facebook.events.*;
import com.facebook.commands.auth.*;
public class Facebook extends EventDispatcher {
public var waiting_for_login:Boolean;
public var connectionErrorMessage:String;
protected var _currentSession:IFacebookSession;
public function Facebook():void{
}
public function get api_version():String{
return ((_currentSession) ? this._currentSession.api_version : null);
}
public function get expires():Date{
return ((_currentSession) ? this._currentSession.expires : new Date());
}
public function get uid():String{
return ((_currentSession) ? this._currentSession.uid : null);
}
public function grantPermission(_arg1:Boolean):void{
var _local2:String;
_local2 = ((("http://www.facebook.com/login.php?return_session=" + (_arg1) ? 1 : 0) + "&api_key=") + api_key);
navigateToURL(new URLRequest(_local2), "_blank");
}
public function refreshSession():void{
_currentSession.refreshSession();
}
public function logout():void{
var _local1:ExpireSession;
_local1 = new ExpireSession();
_local1.addEventListener(FacebookEvent.COMPLETE, onLoggedOut, false, 0, true);
post(_local1);
}
public function startSession(_arg1:IFacebookSession):void{
_currentSession = _arg1;
if (_currentSession.is_connected){
dispatchEvent(new FacebookEvent(FacebookEvent.CONNECT, false, false, true));
} else {
_currentSession.addEventListener(FacebookEvent.CONNECT, onSessionConnected);
_currentSession.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitingForLogin);
};
}
protected function onLoggedOut(_arg1:FacebookEvent):void{
if (_arg1.success == true){
_currentSession.session_key = null;
};
dispatchEvent(new FacebookEvent(FacebookEvent.LOGOUT, false, false, _arg1.success, _arg1.data, _arg1.error));
}
public function post(_arg1:FacebookCall):FacebookCall{
var _local2:IFacebookCallDelegate;
if (_currentSession){
_arg1.session = _currentSession;
_arg1.initialize();
_local2 = _currentSession.post(_arg1);
_arg1.delegate = _local2;
} else {
throw (new Error("Cannot post a call; no session has been set."));
};
return (_arg1);
}
protected function onSessionConnected(_arg1:FacebookEvent):void{
var _local2:IFacebookSession;
_local2 = (_arg1.target as IFacebookSession);
dispatchEvent(_arg1);
}
public function grantExtendedPermission(_arg1:String):void{
navigateToURL(new URLRequest(((((("http://www.facebook.com/authorize.php?api_key=" + api_key) + "&v=") + api_version) + "&ext_perm=") + _arg1)), "_blank");
}
public function login(_arg1:Boolean):void{
_currentSession.login(_arg1);
}
protected function onWaitingForLogin(_arg1:FacebookEvent):void{
waiting_for_login = true;
dispatchEvent(new FacebookEvent(FacebookEvent.WAITING_FOR_LOGIN));
}
public function get secret():String{
return ((_currentSession) ? this._currentSession.secret : null);
}
public function get session_key():String{
return ((_currentSession) ? this._currentSession.session_key : null);
}
public function get api_key():String{
return ((_currentSession) ? this._currentSession.api_key : null);
}
public function get is_connected():Boolean{
return ((_currentSession) ? this._currentSession.is_connected : false);
}
}
}//package com.facebook
Section 158
//facebook_internal (com.facebook.facebook_internal)
package com.facebook {
public namespace facebook_internal = "http://api.facebook.com/1.0/";
}//package com.facebook
Section 159
//AwardsService (com.spilgames.api.AwardsService)
package com.spilgames.api {
public class AwardsService {
public static function submitAward(_arg1:String, _arg2:Function=null):int{
return (SpilGamesServices.getInstance().send("Awards", "submitAward", _arg2, {tag:_arg1, userName:User.getUserName(), userHash:User.getUserHash()}));
}
}
}//package com.spilgames.api
Section 160
//ScoreService (com.spilgames.api.ScoreService)
package com.spilgames.api {
public class ScoreService {
public static function submitScore(_arg1:int, _arg2:Function=null):int{
return (SpilGamesServices.getInstance().send("Score", "submitScore", _arg2, {score:_arg1, userName:User.getUserName(), userHash:User.getUserHash()}));
}
}
}//package com.spilgames.api
Section 161
//SpilGamesServices (com.spilgames.api.SpilGamesServices)
package com.spilgames.api {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
public class SpilGamesServices extends MovieClip {
private const DEFAULT_CONNECTION_LOCATION:String = "http://www8.agame.com/games/flash/services/ServicesConnection.swf";
private var _alwaysInFront:Boolean;// = false
private var _loader:Loader;
private var _request:URLRequest;
private var _connecting:Boolean;// = false
private var _servicesConnection;// = null
private var _connected:Boolean;// = false
private var currentDelay:Number;// = 0
private var previousFrameTime:Number;
private var _numConnectionLoadTries:uint;// = 0
public static const INVALID_ID:int = -1;
public static const CONFIGURATION_FAILED:String = "configurationFailure";
private static const MAX_CONNECTION_LOAD_RETRIES:uint = 99;
public static const INVALID_DOMAIN:String = "invalidDomain";
private static var _instance:SpilGamesServices = null;
public function SpilGamesServices(_arg1:Private=null){
_servicesConnection = null;
_connecting = false;
_connected = false;
_numConnectionLoadTries = 0;
_alwaysInFront = false;
currentDelay = 0;
super();
if (!_arg1){
throw (new Error("Cannot instantiate this class, use SpilGamesServices.getInstance"));
};
}
public function get alwaysInFront():Boolean{
return (_alwaysInFront);
}
public function get version():String{
return ("1.1");
}
private function handleRemovedFromStage(_arg1:Event):void{
trace("WARNING: please do not remove SpilGamesServices from the stage");
}
private function handleIOError(_arg1:IOErrorEvent):void{
_numConnectionLoadTries++;
if (_numConnectionLoadTries > MAX_CONNECTION_LOAD_RETRIES){
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_connecting = false;
trace("ERROR: SpilGamesServices failed to load the connection object");
if (hasEventListener(_arg1.type)){
dispatchEvent(_arg1);
};
} else {
trace(("WARN: SpilGamesServices failed to load the connection object, retry #" + _numConnectionLoadTries));
previousFrameTime = getTimer();
addEventListener(Event.ENTER_FRAME, updateConnectionRetry);
};
}
public function allowDomain(_arg1:String):void{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
}
private function updateConnectionRetry(_arg1:Event):void{
var _local2:Number;
var _local3:Number;
_local2 = getTimer();
_local3 = ((_local2 - previousFrameTime) / 1000);
currentDelay = (currentDelay + _local3);
if (currentDelay >= 2){
trace(("WARN: SpilGamesServices trying to reconnect after: " + currentDelay));
_loader.load(_request);
removeEventListener(Event.ENTER_FRAME, updateConnectionRetry);
currentDelay = 0;
};
previousFrameTime = _local2;
}
public function getItemID():int{
if (_servicesConnection != null){
return (_servicesConnection.getItemID());
};
return (INVALID_ID);
}
public function bringToFront(_arg1:Event=null):void{
var e = _arg1;
if (parent){
try {
parent.setChildIndex(this, (parent.numChildren - 1));
} catch(e:Error) {
removeEventListener(Event.ENTER_FRAME, bringToFront);
};
};
}
private function handleLoadComplete(_arg1:Event):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_servicesConnection = LoaderInfo(_arg1.target).content;
_servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.addEventListener("serviceError", handleServiceError);
addChild(_servicesConnection);
}
public function send(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null):int{
if (isReady()){
return (_servicesConnection.send(_arg1, _arg2, _arg3, _arg4));
};
return (INVALID_ID);
}
public function getSiteID():int{
if (_servicesConnection != null){
return (_servicesConnection.getSiteID());
};
return (INVALID_ID);
}
public function isReady():Boolean{
return (((!((_servicesConnection == null))) && (_servicesConnection.isReady())));
}
public function isDomainAllowed():Boolean{
return (((!((_servicesConnection == null))) && (_servicesConnection.isDomainValid())));
}
public function getChannelID():int{
if (_servicesConnection != null){
return (_servicesConnection.getChannelID());
};
return (INVALID_ID);
}
private function handleServicesReady(_arg1:Event):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_connected = true;
_connecting = false;
dispatchEvent(new Event("servicesReady"));
}
private function handleServiceError(_arg1:Event):void{
var _local2:String;
if (hasEventListener("serviceError")){
_local2 = "";
if ((_arg1 is ErrorEvent)){
_local2 = ErrorEvent(_arg1).text;
} else {
_local2 = _arg1.toString();
};
dispatchEvent(new ErrorEvent("serviceError", false, false, _local2));
};
}
public function disconnect():void{
if (_servicesConnection){
_servicesConnection.removeEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.removeEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.removeEventListener("serviceError", handleServiceError);
if (_connected){
_servicesConnection.disconnect();
};
removeChild(_servicesConnection);
};
_servicesConnection = null;
if (_loader){
try {
_loader.close();
} catch(e:Error) {
} finally {
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
};
_loader = null;
};
removeEventListener(Event.ENTER_FRAME, bringToFront);
removeEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage);
if (parent){
parent.removeChild(this);
};
_connected = (_connecting = false);
}
public function get connecting():Boolean{
return (_connecting);
}
private function handleServicesFailed(_arg1:ErrorEvent):void{
_servicesConnection.addEventListener(Event.COMPLETE, handleServicesReady);
_servicesConnection.addEventListener(ErrorEvent.ERROR, handleServicesFailed);
_servicesConnection.addEventListener("serviceError", handleServiceError);
_connecting = false;
if (hasEventListener("servicesFailed")){
dispatchEvent(new ErrorEvent("servicesFailed", false, false, _arg1.text));
};
}
public function get connection(){
return (_servicesConnection);
}
public function isServiceAvailable(_arg1:String):Boolean{
return (((isReady()) && (_servicesConnection.isServiceAvailable(_arg1))));
}
public function set alwaysInFront(_arg1:Boolean):void{
if (_alwaysInFront != _arg1){
_alwaysInFront = _arg1;
if (_alwaysInFront){
addEventListener(Event.ENTER_FRAME, bringToFront);
} else {
removeEventListener(Event.ENTER_FRAME, bringToFront);
};
};
}
public function connect(_arg1:DisplayObjectContainer, ... _args):void{
var _local3:String;
var _local4:URLVariables;
var _local5:Date;
if (((!(_connecting)) && (!(_connected)))){
if (!_arg1.stage){
throw (new Error("The given clip must be present in the display list (added to stage)"));
};
_connecting = true;
_arg1.stage.addChild(this);
addEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage);
if (((root.loaderInfo.parameters["servicesLoc"]) && ((root.loaderInfo.parameters["servicesLoc"].length > 0)))){
_local3 = root.loaderInfo.parameters["servicesLoc"];
_request = new URLRequest(_local3);
} else {
_local3 = DEFAULT_CONNECTION_LOCATION;
_local4 = new URLVariables();
_local5 = new Date();
_local4.nocache = ((((_local5.fullYear * 12) + (_local5.month + 1)) * 31) + _local5.day);
_request = new URLRequest(_local3);
_request.data = _local4;
};
allowDomain(_local3);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
_loader.load(_request);
};
}
public static function getInstance():SpilGamesServices{
if (!_instance){
_instance = new SpilGamesServices(new Private());
};
return (_instance);
}
}
}//package com.spilgames.api
class Private {
private function Private(){
}
}
Section 162
//User (com.spilgames.api.User)
package com.spilgames.api {
import flash.display.*;
public class User {
public static function getUserName():String{
var _local1:*;
_local1 = SpilGamesServices.getInstance().connection;
if (_local1 != null){
return (_local1.getUserName());
};
return ("");
}
public static function isGuest():Boolean{
var _local1:*;
var _local2:DisplayObject;
var _local3:Object;
_local1 = SpilGamesServices.getInstance().connection;
if (_local1 != null){
return (_local1.isGuest());
};
_local2 = SpilGamesServices.getInstance().root;
if (_local2.loaderInfo != null){
_local3 = _local2.loaderInfo.parameters;
return (((((((!(_local3.username)) || ((_local3.username == "")))) || (!(_local3.hash)))) || ((_local3.hash == ""))));
};
return (false);
}
public static function getUserHash():String{
var _local1:*;
_local1 = SpilGamesServices.getInstance().connection;
if (_local1 != null){
return (_local1.getUserHash());
};
return ("");
}
}
}//package com.spilgames.api
Section 163
//flag_icon_94 (MagneticDrawFlash_fla.flag_icon_94)
package MagneticDrawFlash_fla {
import flash.display.*;
public dynamic class flag_icon_94 extends MovieClip {
public function flag_icon_94(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package MagneticDrawFlash_fla
Section 164
//l_br_96 (MagneticDrawFlash_fla.l_br_96)
package MagneticDrawFlash_fla {
import flash.display.*;
import flash.text.*;
public dynamic class l_br_96 extends MovieClip {
public var text:TextField;
public var flag:MovieClip;
}
}//package MagneticDrawFlash_fla
Section 165
//Brand (spill.localisation.Brand)
package spill.localisation {
import flash.xml.*;
public class Brand {
public var domain:String;
public var useGoogleAnalitics:Boolean;// = true
public var emailPage:String;
public var name:String;
public var site_id:uint;
public var isExternal:Boolean;// = false
public var id:Number;
public var hostingDomain:String;// = ""
public var preferedLanguage:String;// = ""
public var moreLink:String;// = ""
public var hasSendToFriendLink:Boolean;// = true
public var portalGroup:uint;
public var emailLink:String;// = "game"
private static const topLevelDoubles:String = ((((((((((((((("ac.cn,ac.jp,ac.uk,ad.jp,adm.br,adv.br,agr.br," + "ah.cn,am.br,arq.br,art.br,asn.au,ato.br,av.tr,bel.tr,bio.br,biz.tr,bj.cn,bmd.br,") + "cim.br,cng.br,cnt.br,co.at,co.jp,co.uk,com.au,com.br,com.cn,com.eg,com.hk,com.mx,") + "com.ru,com.tr,com.tw,conf.au,cq.cn,csiro.au,dr.tr,ecn.br,edu.au,edu.br,edu.tr,") + "emu.id.au,eng.br,esp.br,etc.br,eti.br,eun.eg,far.br,fj.cn,fm.br,fnd.br,fot.br,") + "fst.br,g12.br,gb.com,gb.net,gd.cn,gen.tr,ggf.br,gob.mx,gov.au,gov.br,gov.cn,") + "gov.hk,gov.tr,gr.jp,gs.cn,gx.cn,gz.cn,ha.cn,hb.cn,he.cn,hi.cn,hk.cn,hl.cn,hn.cn,") + "id.au,idv.tw,imb.br,ind.br,inf.br,info.au,info.tr,jl.cn,jor.br,js.cn,jx.cn,k12.tr,") + "lel.br,ln.cn,ltd.uk,mat.br,me.uk,med.br,mil.br,mil.tr,mo.cn,mus.br,name.tr,ne.jp,") + "net.au,net.br,net.cn,net.eg,net.hk,net.lu,net.mx,net.ru,net.tr,net.tw,net.uk,") + "nm.cn,no.com,nom.br,not.br,ntr.br,nx.cn,odo.br,oop.br,or.at,or.jp,org.au,org.br,") + "org.cn,org.hk,org.lu,org.ru,org.tr,org.tw,org.uk,plc.uk,pol.tr,pp.ru,ppg.br,pro.br,") + "psc.br,psi.br,qh.cn,qsl.br,rec.br,sc.cn,sd.cn,se.com,se.net,sh.cn,slg.br,sn.cn,") + "srv.br,sx.cn,tel.tr,tj.cn,tmp.br,trd.br,tur.br,tv.br,tw.cn,uk.com,uk.net,vet.br,") + "wattle.id.au,web.tr,xj.cn,xz.cn,yn.cn,zj.cn,zlg.br,co.nr,co.nz,com.fr,com.ph,com.ar,") + "com.id,com.in");
public function Brand(){
moreLink = "";
emailLink = "game";
useGoogleAnalitics = true;
hasSendToFriendLink = true;
preferedLanguage = "";
isExternal = false;
hostingDomain = "";
super();
}
public function exportXML():XML{
var _local1:XML;
var _local2:XML;
var _local3:XML;
_local1 = <portal/>
;
_local1.@id = site_id;
_local1.@language = preferedLanguage;
_local1.@channel = portalGroup;
_local2 = <domain/>
;
_local2.appendChild(new XMLNode(3, domain));
_local1.appendChild(_local2);
if (moreLink){
_local3 = <more_games_path/>
;
_local3.appendChild(new XMLNode(3, moreLink));
_local1.appendChild(_local3);
};
_local2 = <game_path/>
;
_local2.appendChild(new XMLNode(3, emailLink));
_local1.appendChild(_local2);
if (!useGoogleAnalitics){
_local1.attributes.noGoogleAnalitics = true;
};
if (!hasSendToFriendLink){
_local1.attributes.noSendToFriendLink = true;
};
return (_local1);
}
private function get utm_source():String{
return (("utm_source=brandedgames_" + (isExternal) ? "external" : "internal"));
}
public function getMoreGamesLink(_arg1:String, _arg2:Boolean, _arg3:String="", _arg4:String=""):String{
var _local5:String;
_local5 = ("http://" + domain);
_local5 = (_local5 + ("/" + moreLink));
if (useGoogleAnalitics){
_local5 = (_local5 + ("?utm_medium=brandedgames_" + (_arg2) ? "external" : "internal"));
_local5 = (_local5 + ("&utm_campaign=" + _arg1));
_arg3 = stripSubDomain(_arg3);
if (_arg3 == "localhost"){
_arg3 = "offline_play";
};
_local5 = (_local5 + ("&utm_source=" + _arg3));
if (((!((_arg4 == ""))) && (!((_arg4 == null))))){
_local5 = (_local5 + ("&utm_content=" + _arg4));
};
};
return (_local5);
}
private function get utm_campaign():String{
if (isExternal){
return (("utm_campaign=" + hostingDomain));
};
return ("");
}
public function get backgroundColor():uint{
return (PortalGroup.backgroundColors[portalGroup]);
}
public function getPromotionLink(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:String="", _arg5:String=""):String{
var _local6:String;
_local6 = ("http://" + domain);
_local6 = (_local6 + ((("/" + emailLink) + "/") + _arg2));
if (useGoogleAnalitics){
_local6 = (_local6 + ("?utm_medium=brandedgames_" + (_arg3) ? "external" : "internal"));
_local6 = (_local6 + ("&utm_campaign=" + _arg1));
_arg4 = stripSubDomain(_arg4);
trace(_arg4);
if (_arg4 == "localhost"){
_arg4 = "offline_play";
};
_local6 = (_local6 + ("&utm_source=" + _arg4));
if (((!((_arg5 == ""))) && (!((_arg5 == null))))){
_local6 = (_local6 + ("&utm_content=" + _arg5));
};
};
return (_local6);
}
private function get utm_term():String{
return ("utm_term=");
}
public function importXML(_arg1:XMLNode):void{
}
public function getSendToFriendLink(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:String=""):String{
var _local5:String;
if (!hasSendToFriendLink){
return (getMoreGamesLink(_arg1, _arg3));
};
_local5 = ("http://" + domain);
_local5 = (_local5 + ((("/" + emailLink) + "/") + _arg2));
if (useGoogleAnalitics){
_local5 = (_local5 + ("?utm_medium=brandedgames_" + (_arg3) ? "external" : "internal"));
_local5 = (_local5 + ("&utm_campaign=" + _arg1));
_arg4 = stripSubDomain(_arg4);
if (_arg4 == "localhost"){
_arg4 = "offline_play";
};
_local5 = (_local5 + ("&utm_source=" + _arg4));
_local5 = (_local5 + "&utm_content=send_to_friend");
};
return (_local5);
}
public static function stripSubDomain(_arg1:String):String{
var _local2:Array;
if (!_arg1){
return ("");
};
_local2 = _arg1.split(".");
if (_local2.length <= 2){
return (_arg1);
};
_local2 = _local2.reverse();
if (topLevelDoubles.indexOf((((_local2[1] + ".") + _local2[0]) + ",")) > 0){
return (((((_local2[2] + ".") + _local2[1]) + ".") + _local2[0]));
};
return (((_local2[1] + ".") + _local2[0]));
}
}
}//package spill.localisation
Section 166
//BrandingLogo (spill.localisation.BrandingLogo)
package spill.localisation {
import flash.display.*;
import flash.events.*;
public class BrandingLogo extends MovieClip {
public function BrandingLogo(){
addFrameScript(0, frame1);
super();
stop();
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
if (stage){
added();
};
brandingChanged();
}
private function added(_arg1:Event=null):void{
SpilGame.addEventListener("brandingChanged", brandingChanged, false, 0, true);
brandingChanged();
}
private function brandingChanged(_arg1:Event=null):void{
if (SpilGame.currentBranding){
gotoAndStop(SpilGame.currentBranding.domain);
};
}
function frame1(){
stop();
}
private function removed(_arg1:Event):void{
SpilGame.removeEventListener("brandingChanged", brandingChanged);
}
}
}//package spill.localisation
Section 167
//Brandings (spill.localisation.Brandings)
package spill.localisation {
public class Brandings {
private static var brands_by_id:Object = new Object();
private static var brands_by_domain:Object = new Object();
public static function getBrandByID(_arg1:Number):Brand{
return (brands_by_id[_arg1]);
}
public static function getBrandsArray():Array{
var _local1:Array;
var _local2:Brand;
_local1 = new Array();
for each (_local2 in brands_by_domain) {
_local1.push(_local2);
};
return (_local1);
}
private static function addBrand(_arg1:Brand):Brand{
if (brands_by_domain[_arg1.domain]){
trace(("ERROR: Attempting to add duplicate brand by domain: " + _arg1.domain));
} else {
brands_by_domain[_arg1.domain] = _arg1;
};
if (brands_by_id[_arg1.site_id]){
trace(("ERROR: Attempting to add duplicate brand by id: " + _arg1.site_id));
} else {
brands_by_id[_arg1.site_id] = _arg1;
};
return (_arg1);
}
public static function initialize():void{
var _local1:Brand;
_local1 = new Brand();
_local1.site_id = 79;
_local1.domain = "www.agame.com";
_local1.preferedLanguage = "en_us";
_local1.portalGroup = PortalGroup.TEENS;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 88;
_local1.domain = "www.gamesgames.com";
_local1.preferedLanguage = "en_us";
_local1.portalGroup = PortalGroup.FAMILY;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 90;
_local1.domain = "www.girlsgogames.com";
_local1.preferedLanguage = "en_us";
_local1.portalGroup = PortalGroup.GIRL;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 45;
_local1.domain = "www.a10.com";
_local1.preferedLanguage = "en_us";
_local1.portalGroup = PortalGroup.YOUNG_ADULTS;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 92;
_local1.domain = "www.games.co.uk";
_local1.preferedLanguage = "en_uk";
_local1.portalGroup = PortalGroup.FAMILY;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 107;
_local1.domain = "www.agame.co.uk";
_local1.preferedLanguage = "en_uk";
_local1.portalGroup = PortalGroup.TEENS;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 102;
_local1.domain = "www.girlsgogames.co.uk";
_local1.preferedLanguage = "en_uk";
_local1.portalGroup = PortalGroup.GIRL;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 2;
_local1.domain = "www.game.com.cn";
_local1.moreLink = "moregames/";
_local1.preferedLanguage = "cn";
_local1.portalGroup = PortalGroup.NONE;
_local1.useGoogleAnalitics = false;
_local1.hasSendToFriendLink = false;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 25;
_local1.domain = "www.spel.nl";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "nl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 1;
_local1.domain = "www.spelletjes.nl";
_local1.emailLink = "spel";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "nl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 93;
_local1.domain = "www.girlsgogames.nl";
_local1.emailLink = "spel";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "nl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 12;
_local1.domain = "www.jeu.fr";
_local1.emailLink = "jeu";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "fr";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 95;
_local1.domain = "www.girlsgogames.fr";
_local1.emailLink = "jeu";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "fr";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 11;
_local1.domain = "www.jeux.fr";
_local1.emailLink = "jeu";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "fr";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 26;
_local1.domain = "www.spielen.com";
_local1.emailLink = "spiel";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "de";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 94;
_local1.domain = "www.girlsgogames.de";
_local1.emailLink = "spiel";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "de";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 5;
_local1.domain = "www.jetztspielen.de";
_local1.emailLink = "spiel";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "de";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 109;
_local1.domain = "www.minigry.pl";
_local1.emailLink = "gra";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "pl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 16;
_local1.domain = "www.gry.pl";
_local1.emailLink = "gra";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "pl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 98;
_local1.domain = "www.girlsgogames.pl";
_local1.emailLink = "gra";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "pl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 108;
_local1.domain = "www.spel.se";
_local1.emailLink = "spel_";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "se";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 100;
_local1.domain = "www.girlsgogames.se";
_local1.emailLink = "spel_";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "se";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 44;
_local1.domain = "www.spela.se";
_local1.emailLink = "spel_";
_local1.preferedLanguage = "se";
_local1.portalGroup = PortalGroup.FAMILY;
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 106;
_local1.domain = "www.giocaregratis.it";
_local1.emailLink = "gioco";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "it";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 15;
_local1.domain = "www.gioco.it";
_local1.emailLink = "gioco";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "it";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 99;
_local1.domain = "www.girlsgogames.it";
_local1.emailLink = "gioco";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "it";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 97;
_local1.domain = "www.zapjuegos.com";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 86;
_local1.domain = "www.juegos.com";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 96;
_local1.domain = "www.juegosdechicas.com";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 122;
_local1.domain = "www.girlsgogames.es";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 125;
_local1.domain = "www.juegos.mx";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 126;
_local1.domain = "www.juegosdechicas.mx";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 127;
_local1.domain = "www.juegos.com.ar";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 128;
_local1.domain = "www.juegosdechicas.com.ar";
_local1.emailLink = "juego";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "es";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 91;
_local1.domain = "www.clickjogos.com";
_local1.emailLink = "jogo";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "br";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 101;
_local1.domain = "www.girlsgogames.com.br";
_local1.emailLink = "jogo";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "br";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 50;
_local1.domain = "www.ojogos.com.br";
_local1.emailLink = "jogo";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "br";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 55;
_local1.domain = "www.games.co.id";
_local1.emailLink = "permainanme";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "id";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 105;
_local1.domain = "www.flashgames.ru";
_local1.emailLink = "igra";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "ru";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 104;
_local1.domain = "www.girlsgogames.ru";
_local1.emailLink = "igra";
_local1.portalGroup = PortalGroup.GIRL;
_local1.preferedLanguage = "ru";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 103;
_local1.domain = "www.ourgames.ru";
_local1.emailLink = "igra";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "ru";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 24;
_local1.domain = "www.game.co.in";
_local1.emailLink = "game";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "in";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 87;
_local1.domain = "www.ojogos.pt";
_local1.emailLink = "jogo";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "pt";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 120;
_local1.domain = "www.egames.jp";
_local1.emailLink = "game";
_local1.portalGroup = PortalGroup.TEENS;
_local1.preferedLanguage = "jp";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 121;
_local1.domain = "www.dailygame.com";
_local1.emailLink = "/game/";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "en_us";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 123;
_local1.domain = "www.zapapa.com";
_local1.emailLink = "game";
_local1.portalGroup = PortalGroup.ZAPAPA;
_local1.preferedLanguage = "en_us";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 124;
_local1.domain = "www.zapapa.nl";
_local1.emailLink = "game";
_local1.portalGroup = PortalGroup.HYVES;
_local1.preferedLanguage = "nl";
addBrand(_local1);
_local1 = new Brand();
_local1.site_id = 0;
_local1.domain = "gamedev.dev.spilgames.com";
_local1.portalGroup = PortalGroup.FAMILY;
_local1.preferedLanguage = "en_us";
addBrand(_local1);
}
public static function exportXML():XML{
var _local1:XML;
var _local2:Brand;
_local1 = <portals/>
;
for each (_local2 in brands_by_domain) {
_local1.appendChild(_local2.exportXML());
};
return (_local1);
}
public static function getBrandByDomain(_arg1:String):Brand{
return (brands_by_domain[_arg1]);
}
public static function hasDomain(_arg1:String):Boolean{
return (!((brands_by_domain[_arg1] == null)));
}
}
}//package spill.localisation
Section 168
//Language (spill.localisation.Language)
package spill.localisation {
import flash.xml.*;
public class Language {
public var references:Array;
public var name:String;
public var embedInputFonts:Boolean;// = true
public var forceFont:String;// = null
public var id:uint;
public var portal_groups:Array;
public var textLanguage:String;
public var bwcId:int;
public var embedFonts:Boolean;// = true
public var displayName:String;// = ""
public var dname:String;
public function Language(_arg1:String, _arg2:String=null){
embedFonts = true;
embedInputFonts = true;
forceFont = null;
references = [];
displayName = "";
super();
name = _arg1;
dname = _arg2;
portal_groups = new Array();
}
public function exportXML():XMLNode{
var _local1:XMLNode;
var _local2:XMLNode;
var _local3:Array;
var _local4:Array;
var _local5:int;
_local1 = new XMLNode(1, "language");
_local1.attributes.name = name;
if (textLanguage != null){
_local1.attributes.textLanguage = textLanguage;
};
if (references.length){
_local1.attributes.references = references.toString();
};
_local1.attributes.id = bwcId;
_local2 = new XMLNode(1, "display_name");
_local2.firstChild = new XMLNode(3, displayName);
_local1.appendChild(_local2);
_local3 = [];
_local4 = PortalGroup.channelNames;
_local5 = 0;
while (_local5 < _local4.length) {
_local3.push(Brandings.getBrandByDomain(portal_groups[_local5]).site_id);
_local5++;
};
_local1.attributes.channels = _local3.join(",");
return (_local1);
}
public function get p_teen():String{
return (portal_groups[PortalGroup.YOUNG_ADULTS]);
}
public function set p_hyves(_arg1:String):void{
portal_groups[PortalGroup.HYVES] = _arg1;
}
public function set p_teen(_arg1:String):void{
portal_groups[PortalGroup.YOUNG_ADULTS] = _arg1;
}
public function get p_tween():String{
return (portal_groups[PortalGroup.TEENS]);
}
public function get p_family():String{
return (portal_groups[PortalGroup.FAMILY]);
}
public function get p_girl():String{
trace("Language", portal_groups[PortalGroup.GIRL]);
return (portal_groups[PortalGroup.GIRL]);
}
public function get p_hyves():String{
return (portal_groups[PortalGroup.HYVES]);
}
public function set p_girl(_arg1:String):void{
portal_groups[PortalGroup.GIRL] = _arg1;
}
public function set p_zapapa(_arg1:String):void{
portal_groups[PortalGroup.ZAPAPA] = _arg1;
}
public function get displayAcronim():String{
return ((dname) ? dname : name);
}
public function set p_family(_arg1:String):void{
portal_groups[PortalGroup.FAMILY] = _arg1;
}
public function set p_tween(_arg1:String):void{
portal_groups[PortalGroup.TEENS] = _arg1;
}
public function get p_zapapa():String{
return (portal_groups[PortalGroup.ZAPAPA]);
}
}
}//package spill.localisation
Section 169
//Languages (spill.localisation.Languages)
package spill.localisation {
import flash.xml.*;
public class Languages {
public static var languages:Object = new Object();
private static var _init:Boolean = false;
public static function initialize():void{
var _local1:Language;
if (_init){
return;
};
_init = true;
_local1 = new Language("nl");
_local1.displayName = "Nederlands";
_local1.p_family = "www.spelletjes.nl";
_local1.p_tween = "www.spel.nl";
_local1.p_girl = "www.girlsgogames.nl";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.p_hyves = "www.zapapa.nl";
_local1.bwcId = 3;
addLanguage(_local1);
_local1 = new Language("es");
_local1.displayName = "Español";
_local1.p_family = "www.juegos.com";
_local1.p_tween = "www.zapjuegos.com";
_local1.p_girl = "www.girlsgogames.es";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 9;
addLanguage(_local1);
_local1 = new Language("pl");
_local1.displayName = "Polski";
_local1.p_family = "www.gry.pl";
_local1.p_tween = "www.gry.pl";
_local1.p_girl = "www.girlsgogames.pl";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 6;
addLanguage(_local1);
_local1 = new Language("fr");
_local1.displayName = "Français";
_local1.p_family = "www.jeux.fr";
_local1.p_tween = "www.jeu.fr";
_local1.p_girl = "www.girlsgogames.fr";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 4;
addLanguage(_local1);
_local1 = new Language("en_us", "us");
_local1.displayName = "English";
_local1.p_family = "www.gamesgames.com";
_local1.p_tween = "www.agame.com";
_local1.p_girl = "www.girlsgogames.com";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 1;
addLanguage(_local1);
addReference(_local1, "en");
_local1 = new Language("id");
_local1.displayName = "Bahasa Ind.";
_local1.p_family = "www.games.co.id";
_local1.p_tween = "www.games.co.id";
_local1.p_girl = "www.games.co.id";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 11;
addLanguage(_local1);
_local1 = new Language("ru");
_local1.displayName = "Русский";
_local1.p_family = "www.ourgames.ru";
_local1.p_tween = "www.flashgames.ru";
_local1.p_girl = "www.girlsgogames.ru";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 12;
addLanguage(_local1);
_local1 = new Language("se");
_local1.displayName = "Svenska";
_local1.p_family = "www.spela.se";
_local1.p_tween = "www.spel.se";
_local1.p_girl = "www.girlsgogames.se";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 7;
addLanguage(_local1);
addReference(_local1, "sv");
_local1 = new Language("it");
_local1.displayName = "Italiano";
_local1.p_family = "www.gioco.it";
_local1.p_tween = "www.gioco.it";
_local1.p_girl = "www.girlsgogames.it";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 8;
addLanguage(_local1);
_local1 = new Language("en_uk", "uk");
_local1.displayName = "English";
_local1.p_family = "www.games.co.uk";
_local1.p_tween = "www.agame.com";
_local1.p_girl = "www.girlsgogames.co.uk";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 13;
addLanguage(_local1);
_local1 = new Language("cn");
_local1.displayName = "中文";
_local1.p_family = "www.game.com.cn";
_local1.p_tween = "www.game.com.cn";
_local1.p_girl = "www.game.com.cn";
_local1.p_teen = "www.game.com.cn";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 2;
_local1.embedInputFonts = false;
addLanguage(_local1);
addReference(_local1, "zh-CN");
addReference(_local1, "zh-TW");
_local1 = new Language("pt");
_local1.displayName = "Português";
_local1.p_family = "www.ojogos.pt";
_local1.p_tween = "www.ojogos.pt";
_local1.p_girl = "www.ojogos.pt";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 17;
addLanguage(_local1);
_local1 = new Language("in");
_local1.displayName = "English";
_local1.p_family = "www.game.co.in";
_local1.p_tween = "www.game.co.in";
_local1.p_girl = "www.game.co.in";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.textLanguage = "en_uk";
_local1.bwcId = 14;
addLanguage(_local1);
_local1 = new Language("de");
_local1.displayName = "Deutsch";
_local1.p_family = "www.jetztspielen.de";
_local1.p_tween = "www.spielen.com";
_local1.p_girl = "www.girlsgogames.de";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 5;
addLanguage(_local1);
_local1 = new Language("br");
_local1.displayName = "Português (BR)";
_local1.p_family = "www.ojogos.com.br";
_local1.p_tween = "www.clickjogos.com";
_local1.p_girl = "www.girlsgogames.com.br";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 10;
addLanguage(_local1);
_local1 = new Language("jp");
_local1.displayName = "日本語";
_local1.p_family = "www.egames.jp";
_local1.p_tween = "www.egames.jp";
_local1.p_girl = "www.egames.jp";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.embedInputFonts = false;
_local1.bwcId = 19;
addLanguage(_local1);
addReference(_local1, "ja");
_local1 = new Language("ar");
_local1.displayName = "English";
_local1.p_family = "www.dailygame.com";
_local1.p_tween = "www.dailygame.com";
_local1.p_girl = "www.dailygame.com";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
_local1.bwcId = 20;
addLanguage(_local1);
addReference(_local1, "ar");
_local1 = new Language("es_mx", "mx");
_local1.displayName = "Español (mx)";
_local1.p_family = "www.juegos.mx";
_local1.p_tween = "www.juegos.mx";
_local1.p_girl = "www.juegosdechicas.mx";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
addLanguage(_local1);
addReference(_local1, "mx");
_local1 = new Language("es_ar", "arg");
_local1.displayName = "Español (ar)";
_local1.p_family = "www.juegos.com.ar";
_local1.p_tween = "www.juegos.com.ar";
_local1.p_girl = "www.juegosdechicas.com.ar";
_local1.p_teen = "www.a10.com";
_local1.p_zapapa = "www.zapapa.com";
addLanguage(_local1);
addReference(_local1, "arg");
}
public static function exportXML():XMLNode{
var _local1:Array;
var _local2:XMLNode;
var _local3:Language;
_local1 = getLanguagesArray();
_local2 = new XMLNode(1, "languages");
for each (_local3 in _local1) {
_local2.appendChild(_local3.exportXML());
};
return (_local2);
}
public static function getLanguagesArray():Array{
var _local1:Array;
var _local2:Object;
var _local3:Language;
_local1 = new Array();
_local2 = new Object();
for each (_local3 in languages) {
if (!_local2[_local3.name]){
_local1.push(_local3);
_local2[_local3.name] = true;
};
};
return (_local1);
}
public static function getLanguage(_arg1:String):Language{
return (languages[_arg1]);
}
private static function addLanguage(_arg1:Language):void{
languages[_arg1.name] = _arg1;
}
private static function addReference(_arg1:Language, _arg2:String):void{
languages[_arg2] = _arg1;
_arg1.references.push(_arg2);
}
public static function getLanguageByOldID(_arg1:int):Language{
var _local2:Language;
for each (_local2 in languages) {
if (_local2.bwcId == _arg1){
return (_local2);
};
};
return (null);
}
}
}//package spill.localisation
Section 170
//LanguageSelectBox (spill.localisation.LanguageSelectBox)
package spill.localisation {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class LanguageSelectBox extends MovieClip {
private var flag:MovieClip;
private var mc:MovieClip;
private var popup:MovieClip;
private var languageName_text:TextField;
public function LanguageSelectBox(){
trace("new langselecbox");
super();
if (numChildren > 0){
removeChildAt(0);
};
addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
addEventListener(MouseEvent.MOUSE_OVER, mouseOver, false, 0, true);
addEventListener(MouseEvent.MOUSE_OUT, mouseOut, false, 0, true);
Languages.initialize();
popup = new LanguageSelectPopup_mc();
x = Math.round(x);
y = Math.round(y);
popup.y = (-(Math.floor(popup.height)) + 1);
popup.visible = false;
addChild(popup);
mc = new LanguageSelectBox_mc();
addChild(mc);
flag = mc.flag;
languageName_text = mc.languageName_text;
if (stage){
added();
};
init();
languageChanged();
}
private function added(_arg1:Event=null):void{
trace("addedselebnox");
SpilGame.addEventListener("languageChanged", languageChanged, false, 0, true);
}
public function set popupLocation(_arg1:String):void{
trace(("popupLocation = " + _arg1));
if (_arg1 == "bottom"){
popup.y = Math.floor(mc.height);
} else {
popup.y = (-(Math.floor(mc.height)) + 1);
};
}
public function init():void{
var _local1:Array;
var _local2:int;
var _local3:MovieClip;
var _local4:Language;
trace("initselectbox");
_local1 = new Array(popup.l_br, popup.l_de, popup.l_en_us, popup.l_fr, popup.l_in, popup.l_jp, popup.l_pt, popup.l_ru, popup.l_ar, popup.l_cn, popup.l_en_uk, popup.l_es, popup.l_id, popup.l_it, popup.l_nl, popup.l_pl, popup.l_se, popup.l_es_mx, popup.l_es_ar);
_local2 = 0;
while (_local2 < _local1.length) {
_local3 = MovieClip(_local1[_local2]);
if (_local3){
_local3.addEventListener(MouseEvent.CLICK, itemClicked, true, 0, true);
_local3.flag.gotoAndStop(_local3.name.substr(2));
_local3.flag.mouseEnabled = false;
_local3.text.mouseEnabled = false;
_local4 = Languages.getLanguage(_local3.name.substr(2));
if (_local4){
_local3.text.text = _local4.displayAcronim;
} else {
trace((("Error, '" + _local3.name.substr(2)) + "' language not found"));
};
} else {
trace((((("Error, btn number '" + _local2) + "' is not a MovieClip or there is no button '") + _local1[_local2]) + "'"));
};
_local2++;
};
}
private function mouseOver(_arg1:MouseEvent):void{
popup.visible = true;
}
private function languageChanged(_arg1:Event=null):void{
if (SpilGame.currentLanguage){
if ((((SpilGame.portalGroup == PortalGroup.HYVES)) && ((SpilGame.currentLanguage.name == "nl")))){
this.visible = false;
return;
};
this.visible = true;
flag.gotoAndStop(SpilGame.currentLanguage.name);
languageName_text.text = SpilGame.currentLanguage.displayName;
languageName_text.embedFonts = SpilGame.currentLanguage.embedInputFonts;
};
}
private function mouseOut(_arg1:MouseEvent):void{
popup.visible = false;
}
private function removed(_arg1:Event):void{
SpilGame.removeEventListener("languageChanged", languageChanged);
}
private function itemClicked(_arg1:MouseEvent):void{
SpilGame.changeLanguage(_arg1.currentTarget.name.substr(2));
popup.visible = false;
}
}
}//package spill.localisation
Section 171
//LanguageSelectBox_mc (spill.localisation.LanguageSelectBox_mc)
package spill.localisation {
import flash.display.*;
import flash.text.*;
public dynamic class LanguageSelectBox_mc extends MovieClip {
public var flag:MovieClip;
public var languageName_text:TextField;
}
}//package spill.localisation
Section 172
//LanguageSelectPopup_mc (spill.localisation.LanguageSelectPopup_mc)
package spill.localisation {
import flash.display.*;
public dynamic class LanguageSelectPopup_mc extends MovieClip {
public var l_se:MovieClip;
public var l_ar:MovieClip;
public var l_br:MovieClip;
public var l_in:MovieClip;
public var l_cn:MovieClip;
public var l_de:MovieClip;
public var l_es_mx:MovieClip;
public var l_es:MovieClip;
public var l_en_uk:MovieClip;
public var l_fr:MovieClip;
public var l_en_us:MovieClip;
public var l_pl:MovieClip;
public var l_pt:MovieClip;
public var l_nl:MovieClip;
public var l_id:MovieClip;
public var l_es_ar:MovieClip;
public var l_it:MovieClip;
public var l_jp:MovieClip;
public var l_ru:MovieClip;
}
}//package spill.localisation
Section 173
//LocalizedTextField (spill.localisation.LocalizedTextField)
package spill.localisation {
import flash.events.*;
public class LocalizedTextField extends TextFieldFit {
private var regex:RegExp;
private var originalText:String;
public function LocalizedTextField(){
regex = /{([^{}]*)}/g;
super();
addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
added();
}
private function languageChanged(_arg1:Event):void{
text = originalText;
updateProperties();
}
override public function set text(_arg1:String):void{
originalText = _arg1;
if ((_arg1 is String)){
super.text = _arg1.replace(regex, replaceFn);
} else {
super.text = "";
};
trace(super.text);
}
private function removed(_arg1:Event):void{
SpilGame.removeEventListener("languageChanged", languageChanged);
}
private function replaceFn():String{
var _local2:String;
_local2 = SpilGame.getString(arguments[1]);
if (((!(_local2)) || ((_local2 == "")))){
return ((("{" + arguments[1]) + "}"));
};
return (_local2);
}
private function added(_arg1:Event=null):void{
SpilGame.addEventListener("languageChanged", languageChanged, false, 0, true);
text = originalText;
}
}
}//package spill.localisation
Section 174
//PortalGroup (spill.localisation.PortalGroup)
package spill.localisation {
import flash.xml.*;
public class PortalGroup {
public static const YOUNG_ADULTS:uint = 3;
public static const FAMILY:uint = 0;
public static const channelNames:Array = ["family", "tween", "girl", "teen", "zapapa", "hyves"];
public static const ZAPAPA:uint = 4;
public static const HYVES:uint = 5;
public static const TEENS:uint = 1;
public static const GIRL:uint = 2;
public static const backgroundColors:Array = [0xFFFFFF, 0xFFFFFF, 16742331, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF];
public static const NONE:uint = 6;
public static function getName(_arg1:int):String{
return (channelNames[_arg1]);
}
public static function exportXML():XMLNode{
var _local1:XMLNode;
var _local2:int;
var _local3:XMLNode;
_local1 = new XMLNode(1, "channels");
_local2 = 0;
while (_local2 < 5) {
_local3 = new XMLNode(1, "channel");
_local3.attributes.name = channelNames[_local2];
_local3.attributes.id = _local2;
_local1.appendChild(_local3);
_local2++;
};
return (_local1);
}
}
}//package spill.localisation
Section 175
//spil_internal (spill.localisation.spil_internal)
package spill.localisation {
public namespace spil_internal = "spill.localisation";
}//package spill.localisation
Section 176
//SpilGame (spill.localisation.SpilGame)
package spill.localisation {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.net.*;
import flash.ui.*;
import flash.system.*;
import flash.external.*;
public class SpilGame {
private static const cookieName:String = "spilgames_language_v100";
private static const cookiePath:String = "/";
private static const cookieLanguageVar:String = "savedLang";
public static const LANGUAGE_CHANGED:String = "languageChanged";
public static const BRANDING_CHANGED:String = "brandingChanged";
private static var strings:Object = new Object();
public static var currentBranding:Brand;
private static var contexMenuItem:ContextMenuItem;
spil_internal static var gameName:String;
spil_internal static var debugHostDomain:String = "";
private static var localDomains:Object = new Object();
spil_internal static var emailPage:String;
private static var channelLock:Boolean = false;
spil_internal static var debugEmbedDomain:String = "";
private static var eventDispatcher:EventDispatcher;
private static var _init:Boolean = false;
public static var currentLanguage:Language;
spil_internal static var portalGroup:uint;
private static var stage:Sprite;
public static function getSpilCompanyLink():String{
var _local1:String;
_local1 = "http://www.gameportal.net/";
_local1 = (_local1 + ("?utm_medium=brandedgames_" + (isExternal) ? "external" : "internal"));
_local1 = (_local1 + ("&utm_campaign=" + gameName));
_local1 = (_local1 + ("&utm_source=" + Brand.stripSubDomain((embedDomain) ? embedDomain : hostingDomain)));
_local1 = (_local1 + "&utm_content=Branding_Link");
return (_local1);
}
public static function getPromotionLink(_arg1:String="feature_promotion"):String{
var _local2:String;
_local2 = (embedDomain) ? embedDomain : hostingDomain;
return (currentBranding.getPromotionLink(gameName, emailPage, isExternal, _local2, _arg1));
}
public static function traceAllBrands():void{
trace(outputAllBrands());
}
public static function getString(_arg1:String):String{
var _local2:Object;
_local2 = strings[_arg1];
if (_local2){
if (currentLanguage.textLanguage){
return (_local2[currentLanguage.textLanguage]);
};
if (_local2[currentLanguage.name]){
return (_local2[currentLanguage.name]);
};
return (_local2["en_us"]);
//unresolved jump
};
return ("");
}
public static function initialize(_arg1:String, _arg2:int, _arg3:String, _arg4:Sprite, _arg5:Boolean=false):void{
stage = _arg4;
if (_init){
trace("ERROR: LocalisationManager already initialised");
return;
};
_init = true;
localDomains["localhost"] = true;
localDomains["www8.agame.com"] = true;
localDomains["gamedev.dev.spilgames.com"] = true;
localDomains["stg.spel.nl"] = true;
localDomains["stg.girlsgogames.nl"] = true;
localDomains["stg.pl.spel.nl"] = true;
localDomains["stg.pl.girlsgogames.nl"] = true;
trace(localDomains["stg.girlsgogames.nl"]);
Brandings.initialize();
Languages.initialize();
initContexMenu(_arg4);
channelLock = _arg5;
gameName = _arg1.replace(" ", "_");
portalGroup = _arg2;
emailPage = _arg3;
chooseLanguage();
chooseBranding();
if (portalGroup == PortalGroup.HYVES){
changeLanguage("nl");
};
}
public static function get isExternal():Boolean{
return (((((!(Brandings.hasDomain(embedDomain))) && (!(localDomains[embedDomain])))) && (!(isStagingDomain))));
}
private static function initContexMenu(_arg1:Sprite):void{
contexMenuItem = new ContextMenuItem("");
_arg1.contextMenu = new ContextMenu();
_arg1.contextMenu.customItems.push(contexMenuItem);
contexMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contexMenuClicked);
}
private static function replaceFn():String{
var _local2:String;
_local2 = SpilGame.getString(arguments[1]);
if (((!(_local2)) || ((_local2 == "")))){
return ((("{" + arguments[1]) + "}"));
};
return (_local2);
}
spil_internal static function get hostingDomain():String{
var _local1:LocalConnection;
if (debugHostDomain != ""){
return (debugHostDomain);
};
_local1 = new LocalConnection();
return (_local1.domain);
}
spil_internal static function chooseLanguage():void{
if (cookieLanguage != null){
currentLanguage = cookieLanguage;
} else {
if (isExternal){
currentLanguage = systemLanguage;
} else {
currentLanguage = portalLanguage;
if (!currentLanguage){
currentLanguage = systemLanguage;
};
};
};
if (!currentLanguage){
trace("Unable to determine language, using 'English US'");
currentLanguage = Languages.getLanguage("en_us");
};
TextFieldFit.embedFonts = currentLanguage.embedFonts;
TextFieldFit.forceFont = currentLanguage.forceFont;
dispatchEvent(new Event(LANGUAGE_CHANGED));
}
private static function contexMenuClicked(_arg1:ContextMenuEvent):void{
navigateToURL(new URLRequest(getMoreGamesLink("Contex_Menu")));
}
public static function initTextField(_arg1:TextField):void{
var _local2:TextFormat;
trace(_arg1.text);
_arg1.text = _arg1.text.replace(/{([^{}]*)}/g, replaceFn);
trace(_arg1.text);
_arg1.embedFonts = currentLanguage.embedFonts;
if (currentLanguage.forceFont != ""){
_local2 = new TextFormat();
_local2.font = currentLanguage.forceFont;
_arg1.setTextFormat(_local2);
};
}
public static function importXMLv2(_arg1:XML):void{
var _local2:XML;
var _local3:Object;
var _local4:XML;
for each (_local2 in _arg1.children()) {
_local3 = (strings[_local2.attribute("identifier")] = new Object());
for each (_local4 in _local2.children()) {
if (_local4.children().length() > 0){
_local3[_local4.name()] = _local4.children()[0].toString();
} else {
_local3[_local4.name()] = "";
};
};
};
}
spil_internal static function changeLanguage(_arg1:String):void{
var _local2:Language;
_local2 = Languages.getLanguage(_arg1);
if (!_local2){
trace("ERROR: Supplied language string does not have a matching language");
} else {
cookieLanguage = _local2;
currentLanguage = _local2;
};
TextFieldFit.embedFonts = currentLanguage.embedFonts;
TextFieldFit.forceFont = currentLanguage.forceFont;
chooseBranding();
dispatchEvent(new Event(LANGUAGE_CHANGED));
}
public static function getSendToFriendLink():String{
return (currentBranding.getSendToFriendLink(gameName, emailPage, isExternal, embedDomain));
}
spil_internal static function chooseBranding():void{
currentBranding = Brandings.getBrandByDomain(currentLanguage.portal_groups[portalGroup]);
if (!(currentBranding is Brand)){
currentBranding = Brandings.getBrandByDomain("www.agame.com");
};
contexMenuItem.caption = ("More Games: " + currentBranding.domain);
dispatchEvent(new Event(BRANDING_CHANGED));
}
spil_internal static function get systemLanguage():Language{
return (Languages.getLanguage(Capabilities.language));
}
spil_internal static function set cookieLanguage(_arg1:Language):void{
var _local2:SharedObject;
_local2 = SharedObject.getLocal(cookieName, cookiePath);
if (_arg1 == null){
_local2.data[cookieLanguageVar] = null;
} else {
_local2.data[cookieLanguageVar] = _arg1.name;
};
_local2.flush();
}
public static function importXML(_arg1:XML):void{
var _local2:XML;
var _local3:Object;
var _local4:XML;
for each (_local2 in _arg1.children()) {
_local3 = (strings[_local2.identifier] = new Object());
for each (_local4 in _local2.children()) {
_local3[_local4.name()] = _local4.children()[0].toString();
};
};
}
spil_internal static function dispatchEvent(_arg1:Event):void{
if (!eventDispatcher){
eventDispatcher = new EventDispatcher();
};
eventDispatcher.dispatchEvent(_arg1);
}
private static function getDomain(_arg1:String):String{
var _local2:String;
var _local3:uint;
if (_arg1.indexOf("file") == 0){
return ("offline_play");
};
_local2 = new String();
_local3 = 7;
while (_local3 < _arg1.length) {
if (_arg1.charAt(_local3) == "/"){
break;
};
_local2 = (_local2 + _arg1.charAt(_local3));
_local3++;
};
if (_local2 == "localhost"){
_local2 = "offline_play";
};
return (_local2);
}
public static function exportXML():XML{
var _local1:XML;
_local1 = <spil_games/>
;
_local1.appendChild(Brandings.exportXML());
_local1.appendChild(Languages.exportXML());
_local1.appendChild(PortalGroup.exportXML());
return (_local1);
}
public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (!eventDispatcher){
eventDispatcher = new EventDispatcher();
};
eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
}
public static function outputAllBrands():String{
var _local1:Array;
var _local2:String;
var _local3:Brand;
_local1 = Brandings.getBrandsArray();
_local2 = "";
for each (_local3 in _local1) {
_local2 = (_local2 + (_local3.getSendToFriendLink(gameName, emailPage, isExternal, embedDomain) + "\n"));
};
return (_local2);
}
public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
if (!eventDispatcher){
eventDispatcher = new EventDispatcher();
};
eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public static function getMoreGamesLink(_arg1:String=""):String{
var _local2:String;
_local2 = (embedDomain) ? embedDomain : hostingDomain;
return (currentBranding.getMoreGamesLink(gameName, isExternal, _local2, _arg1));
}
public static function get isStagingDomain():Boolean{
var _local1:String;
_local1 = ("http://" + embedDomain);
return ((_local1.indexOf("http://stg.") >= 0));
}
spil_internal static function get cookieLanguage():Language{
var _local1:SharedObject;
var _local2:String;
_local1 = SharedObject.getLocal(cookieName, cookiePath);
_local2 = String(_local1.data[cookieLanguageVar]);
return (Languages.getLanguage(_local2));
}
private static function get portalLanguage():Language{
var _local1:Brand;
var _local2:String;
var _local3:Language;
if (isExternal){
return (null);
};
if (!embedDomain){
return (null);
};
_local1 = Brandings.getBrandByDomain(embedDomain);
if (!_local1){
return (null);
};
_local2 = _local1.preferedLanguage;
if (!_local2){
return (null);
};
_local3 = Languages.getLanguage(_local2);
if (!_local3){
return (null);
};
return (_local3);
}
spil_internal static function get embedDomain():String{
var loc:String;
if (debugEmbedDomain != ""){
return (debugEmbedDomain);
};
if (ExternalInterface.available){
try {
loc = ExternalInterface.call("window.location.href.toString");
if (((!((loc == ""))) && (!((loc == null))))){
trace(("embed domain = " + getDomain(loc)));
return (getDomain(loc));
};
} catch(e:SecurityError) {
trace(("Security Error connecting to external interface, error = " + e));
} catch(e:Error) {
trace(("Error connecting to external interface, error = " + e));
};
};
return (null);
}
}
}//package spill.localisation
Section 177
//SpilGamesLink (spill.localisation.SpilGamesLink)
package spill.localisation {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class SpilGamesLink extends SimpleButton {
public function SpilGamesLink(){
addEventListener(MouseEvent.CLICK, buttonClicked);
}
private function buttonClicked(_arg1:MouseEvent):void{
navigateToURL(new URLRequest(SpilGame.getSpilCompanyLink()), "_blank");
}
}
}//package spill.localisation
Section 178
//TextFieldFit (spill.localisation.TextFieldFit)
package spill.localisation {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
import flash.filters.*;
public class TextFieldFit extends MovieClip {
protected var _text:String;// = "default"
protected var _textSize:Number;// = 12
protected var _embedFonts:Boolean;// = true
protected var _glowColor:uint;// = 0
private var h:Number;
protected var _antiAliasType:String;// = "advanced"
private var w:Number;
protected var _numLines:uint;// = 1
protected var _useGlowFilter:Boolean;// = false
protected var _hAlign:String;// = "left"
protected var _textColor:uint;// = 0
protected var _glowStrength:Number;// = 5
protected var _glowBlur:Number;// = 3
private var field:TextField;
protected var _gridFitType:String;// = "pixel"
protected var _glowQuality:Number;// = 1
private var debugBounding:Sprite;
protected var _disableWordwrap:Boolean;// = false
protected var _multiline:Boolean;// = false
protected var _font:String;// = ""
protected var _underline:Boolean;// = false
protected var _vAlign:String;// = "top"
protected var _italic:Boolean;// = false
protected var _bold:Boolean;// = false
private var sizeChanged:Boolean;// = true
private var embeddedFonts:Array;
protected var _selectable:Boolean;// = false
private var format:TextFormat;
private var valid:Boolean;// = true
private static const gutter:Number = 2;
spil_internal static var embedFonts:Boolean = true;
spil_internal static var forceAAType:String = null;
spil_internal static var forceFont:String = null;
public static var alwaysCheckWidth:Boolean = false;
public function TextFieldFit(){
var _local1:Boolean;
var _local2:Number;
var _local3:Number;
sizeChanged = true;
valid = true;
_text = "default";
_textColor = 0;
_textSize = 12;
_multiline = false;
_numLines = 1;
_disableWordwrap = false;
_hAlign = "left";
_vAlign = "top";
_bold = false;
_underline = false;
_italic = false;
_selectable = false;
_font = "";
_embedFonts = true;
_antiAliasType = "advanced";
_gridFitType = "pixel";
_useGlowFilter = false;
_glowBlur = 3;
_glowColor = 0;
_glowStrength = 5;
_glowQuality = 1;
super();
_local1 = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")));
_local2 = width;
_local3 = height;
if (numChildren > 0){
removeChildAt(0);
};
if (!field){
field = new TextField();
addChild(field);
};
field.border = false;
field.background = false;
field.type = TextFieldType.DYNAMIC;
mouseEnabled = false;
mouseChildren = false;
format = new TextFormat();
embeddedFonts = Font.enumerateFonts(false);
setSize(_local2, _local3);
validate();
if (stage){
addEventListener(Event.RENDER, init);
stage.invalidate();
};
init();
}
private function resizeText(_arg1:Boolean=false):void{
if (!doesTextFit()){
format.size = Object((Number(format.size) - 1));
if (format.size <= 3){
trace("WARNING: Text resised to 3px, either an error occured or the text just wont fit");
return;
};
field.setTextFormat(format);
resizeText(true);
} else {
if (_arg1 == false){
while (doesTextFit()) {
if (format.size <= textSize){
format.size = Object((Number(format.size) + 1));
field.setTextFormat(format);
if (!doesTextFit()){
format.size = Object((Number(format.size) - 1));
field.setTextFormat(format);
break;
};
} else {
break;
};
};
};
};
}
public function get italic():Boolean{
return (_italic);
}
public function set numLines(_arg1:uint):void{
_numLines = _arg1;
invalidate();
}
public function get textColor():uint{
return (_textColor);
}
public function get vAlign():String{
return (_vAlign);
}
public function get useGlowFilter():Boolean{
return (_useGlowFilter);
}
public function get selectable():Boolean{
return (_selectable);
}
public function set italic(_arg1:Boolean):void{
_italic = _arg1;
invalidate();
}
public function set text(_arg1:String):void{
_text = _arg1;
invalidate();
}
public function set vAlign(_arg1:String):void{
_vAlign = _arg1;
invalidate();
}
public function get font():String{
return (_font);
}
public function set textColor(_arg1:uint):void{
_textColor = _arg1;
invalidate();
}
public function get antiAliasType():String{
return (_antiAliasType);
}
public function get bold():Boolean{
return (_bold);
}
public function set useGlowFilter(_arg1:Boolean):void{
_useGlowFilter = _arg1;
invalidate();
}
public function set selectable(_arg1:Boolean):void{
_selectable = _arg1;
invalidate();
}
public function get multiline():Boolean{
return (_multiline);
}
public function set disableWordwrap(_arg1:Boolean):void{
_disableWordwrap = _arg1;
invalidate();
}
public function get glowQuality():Number{
return (_glowQuality);
}
public function get embedFonts():Boolean{
return (_embedFonts);
}
public function get gridFitType():String{
return (_gridFitType);
}
public function set font(_arg1:String):void{
_font = _arg1;
invalidate();
}
public function get underline():Boolean{
return (_underline);
}
public function get textSize():Number{
return (_textSize);
}
public function set antiAliasType(_arg1:String):void{
_antiAliasType = _arg1;
invalidate();
}
protected function updateProperties():void{
var _local1:Boolean;
var _local2:Font;
field.text = _text;
field.multiline = ((((_text.indexOf(" ") < 0)) && ((_text.length < 14)))) ? false : _multiline;
field.wordWrap = ((field.multiline) && (!(_disableWordwrap)));
field.selectable = _selectable;
field.antiAliasType = (forceAAType) ? forceAAType : _antiAliasType;
field.gridFitType = _gridFitType;
embeddedFonts = Font.enumerateFonts(false);
if (((((_embedFonts) && (!((_font == ""))))) && (TextFieldFit.embedFonts))){
_local1 = false;
for each (_local2 in embeddedFonts) {
if (_font == _local2.fontName){
_local1 = true;
break;
};
};
field.embedFonts = _local1;
if (!_local1){
trace(((("WARNING: Embedded font '" + _font) + "' not found, disabling embedding of fonts, text = ") + _text));
} else {
trace((("Found Embedded font '" + _font) + "' using font"));
};
} else {
field.embedFonts = false;
};
if (TextFieldFit.forceFont){
format.font = TextFieldFit.forceFont;
} else {
format.font = _font;
};
if (sizeChanged){
format.size = _textSize;
};
format.color = _textColor;
format.align = _hAlign;
format.bold = _bold;
format.italic = _italic;
format.underline = _underline;
format.leftMargin = 0;
format.rightMargin = 0;
field.setTextFormat(format);
if (_useGlowFilter){
filters = [new GlowFilter(_glowColor, 1, _glowBlur, _glowBlur, _glowStrength, _glowQuality)];
} else {
filters = [];
};
}
private function doesTextFit():Boolean{
if (((!(field.multiline)) || (alwaysCheckWidth))){
if (((((field.textHeight + (gutter * 2)) > h)) || (((field.textWidth + (gutter * 2)) > w)))){
return (false);
};
} else {
if (field.multiline){
if (field.numLines > _numLines){
return (false);
};
};
};
return (true);
}
public function get glowStrength():Number{
return (_glowStrength);
}
public function set hAlign(_arg1:String):void{
_hAlign = _arg1;
invalidate();
}
private function init(_arg1:Event=null):void{
removeEventListener(Event.RENDER, init);
updateProperties();
layoutText();
}
public function set bold(_arg1:Boolean):void{
_bold = _arg1;
invalidate();
}
public function get numLines():uint{
return (_numLines);
}
private function validate(_arg1:Event=null):void{
updateProperties();
layoutText();
removeEventListener(Event.ENTER_FRAME, validate);
valid = true;
}
public function get text():String{
return (_text);
}
public function set glowBlur(_arg1:Number):void{
_glowBlur = _arg1;
invalidate();
}
private function invalidate():void{
if (valid){
addEventListener(Event.ENTER_FRAME, validate);
if (stage){
stage.invalidate();
};
valid = false;
};
}
public function set embedFonts(_arg1:Boolean):void{
_embedFonts = _arg1;
invalidate();
}
public function set multiline(_arg1:Boolean):void{
_multiline = _arg1;
invalidate();
}
public function get disableWordwrap():Boolean{
return (_disableWordwrap);
}
public function set glowQuality(_arg1:Number):void{
_glowQuality = _arg1;
invalidate();
}
private function layoutText():void{
resizeText();
field.height = (field.textHeight + (gutter * 2));
if (vAlign == "top"){
field.y = 0;
} else {
if (vAlign == "middle"){
field.y = ((h - field.height) / 2);
} else {
if (vAlign == "bottom"){
field.y = (h - field.height);
};
};
};
}
public function get hAlign():String{
return (_hAlign);
}
public function setSize(_arg1:Number, _arg2:Number):void{
w = _arg1;
h = _arg2;
scaleX = (scaleY = 1);
field.width = w;
field.height = h;
invalidate();
}
public function set gridFitType(_arg1:String):void{
_gridFitType = _arg1;
invalidate();
}
public function set underline(_arg1:Boolean):void{
_underline = _arg1;
invalidate();
}
public function get glowBlur():Number{
return (_glowBlur);
}
public function set textSize(_arg1:Number):void{
_textSize = _arg1;
sizeChanged = true;
invalidate();
}
public function set glowColor(_arg1:uint):void{
_glowColor = _arg1;
invalidate();
}
public function get textField():TextField{
return (field);
}
public function get glowColor():uint{
return (_glowColor);
}
public function set glowStrength(_arg1:Number):void{
_glowStrength = _arg1;
invalidate();
}
}
}//package spill.localisation
Section 179
//Awards (Awards)
package {
public class Awards {
public static const ENDURANCE:String = "award1";
public static const POST_ON_FACEBOOK:String = "award3";
public static const PRINTED_FILE:String = "award2";
}
}//package
Section 180
//BackgroundBitmap (BackgroundBitmap)
package {
import flash.display.*;
public dynamic class BackgroundBitmap extends BitmapData {
public function BackgroundBitmap(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 181
//BG (BG)
package {
import flash.display.*;
public dynamic class BG extends MovieClip {
}
}//package
Section 182
//BlueBox (BlueBox)
package {
import flash.display.*;
public dynamic class BlueBox extends Sprite {
}
}//package
Section 183
//BodyBitmap (BodyBitmap)
package {
import flash.display.*;
public dynamic class BodyBitmap extends BitmapData {
public function BodyBitmap(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 184
//Brush (Brush)
package {
import flash.display.*;
import flash.geom.*;
public class Brush extends Sprite {
protected var _brushType:String;
private var startPosition:Point;
private var sprite:Sprite;
public function Brush(_arg1:Class){
sprite = new (_arg1);
this.addChild(sprite);
this.mouseChildren = false;
}
public function disableBrush(){
resetPosition();
this.mouseEnabled = true;
}
public function setStartPosition(_arg1:int, _arg2:int){
startPosition = new Point(_arg1, _arg2);
this.x = _arg1;
this.y = _arg2;
}
public function enableBrush(){
this.parent.setChildIndex(this, (this.parent.numChildren - 1));
this.mouseEnabled = false;
}
public function resetPosition(){
this.x = startPosition.x;
this.y = startPosition.y;
}
public function get brushType():String{
return (_brushType);
}
public function getSprite():Sprite{
return (sprite);
}
public function setSprite(_arg1:Class){
if (sprite){
sprite.parent.removeChild(sprite);
};
sprite = new (_arg1);
this.addChild(sprite);
}
}
}//package
Section 185
//BrushPen (BrushPen)
package {
import flash.display.*;
public class BrushPen extends Brush {
private var _penSize:uint;
private var pickupSpriteClass:Class;
private var placeHolder:Sprite;
private var decorationClass:Class;
public function BrushPen(_arg1:Class, _arg2:uint, _arg3:Class=null, _arg4:Sprite=null){
super(_arg1);
this.decorationClass = _arg1;
this.placeHolder = _arg4;
_brushType = "pen";
_penSize = _arg2;
this.pickupSpriteClass = _arg3;
}
override public function disableBrush(){
super.disableBrush();
this.setSprite(decorationClass);
if (placeHolder){
placeHolder.visible = true;
};
}
override public function enableBrush(){
super.enableBrush();
if (pickupSpriteClass){
this.setSprite(pickupSpriteClass);
};
if (placeHolder){
placeHolder.visible = false;
};
}
public function get penSize():uint{
return (_penSize);
}
public function setPlaceHolder(_arg1:Sprite){
placeHolder = _arg1;
}
}
}//package
Section 186
//BrushShape (BrushShape)
package {
import flash.display.*;
public class BrushShape extends Brush {
private var brushTip:BitmapData;
public function BrushShape(_arg1:Class, _arg2:BitmapData){
_brushType = "shape";
super(_arg1);
brushTip = _arg2;
}
public function getBrushTip():BitmapData{
return (brushTip);
}
}
}//package
Section 187
//circle_stamp (circle_stamp)
package {
import flash.display.*;
public dynamic class circle_stamp extends BitmapData {
public function circle_stamp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 188
//circleStampSprite (circleStampSprite)
package {
import flash.display.*;
public dynamic class circleStampSprite extends Sprite {
}
}//package
Section 189
//diamond_stamp (diamond_stamp)
package {
import flash.display.*;
public dynamic class diamond_stamp extends BitmapData {
public function diamond_stamp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 190
//diamondStampSprite (diamondStampSprite)
package {
import flash.display.*;
public dynamic class diamondStampSprite extends Sprite {
}
}//package
Section 191
//DrawField (DrawField)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class DrawField {
private const FILL_COLOR:uint = 0x777777;
private const ERASER_THICKNESS:uint = 28;
private const BLANK_COLOR:uint = 4294967295;
private var y:uint;
private var currentBrush:Brush;
private var shapeDrawn:Boolean;// = false
private var target:DisplayObjectContainer;
private var previousPosition:Point;
private var currentPosition:Point;
private var graphiteData:BitmapData;
private var mouseIsDown:Boolean;// = false
private var whiteLayerData:BitmapData;
private var eraserx:int;// = 0
private var whiteLayerContainer:Sprite;
private var whiteLayerBitmap:Bitmap;
private var x:uint;
public function DrawField(_arg1:DisplayObjectContainer, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:Class){
var _local7:Bitmap;
whiteLayerContainer = new Sprite();
mouseIsDown = false;
previousPosition = new Point();
currentPosition = new Point();
shapeDrawn = false;
eraserx = 0;
super();
this.target = _arg1;
this.x = _arg2;
this.y = _arg3;
graphiteData = new BitmapData(_arg4, _arg5);
graphiteData = new graphiteBitmapData(_arg4, _arg5);
_local7 = new Bitmap(graphiteData);
_local7.width = _arg4;
_local7.height = _arg5;
_local7.x = _arg2;
_local7.y = _arg3;
_arg1.addChild(_local7);
whiteLayerContainer.x = _arg2;
whiteLayerContainer.y = _arg3;
_arg1.addChild(whiteLayerContainer);
whiteLayerData = new BitmapData(_arg4, _arg5, true, BLANK_COLOR);
whiteLayerBitmap = new Bitmap(whiteLayerData, "auto", true);
whiteLayerContainer.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
whiteLayerContainer.stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
_arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);
update();
}
private function clearErasorLine():void{
var _local1:uint;
var _local2:uint;
_local1 = 0;
while (_local1 < 3) {
_local2 = 0;
while (_local2 < whiteLayerData.height) {
whiteLayerData.setPixel32(((eraserx + 10) + _local1), _local2, 4294967295);
_local2++;
};
_local1++;
};
}
private function adjustPixel(_arg1:uint, _arg2:uint, _arg3:Point):void{
var _local4:int;
var _local5:int;
_local4 = ((_arg1 >> 24) & 0xFF);
_local5 = (_arg2 & 0xFF);
_local4 = (_local4 - _local5);
if (_local4 < 0){
_local4 = 0;
};
whiteLayerData.setPixel32(_arg3.x, _arg3.y, ((_local4 << 24) | 0xFFFFFF));
}
private function draw(_arg1:Point){
if (currentBrush){
switch (currentBrush.brushType){
case "shape":
if (!shapeDrawn){
drawShape(_arg1);
};
break;
case "pen":
drawLine();
break;
default:
trace("unknown brush type");
};
};
}
private function getTargetPixel(_arg1:MouseEvent):Point{
var _local2:Point;
_local2 = new Point();
_local2.x = (_arg1.stageX - x);
_local2.y = (_arg1.stageY - y);
return (_local2);
}
private function mMove(_arg1:MouseEvent):void{
currentPosition = new Point(target.mouseX, target.mouseY);
if (mouseIsDown){
draw(getTargetPixel(_arg1));
};
if (currentBrush){
currentBrush.x = _arg1.stageX;
currentBrush.y = _arg1.stageY;
};
previousPosition = currentPosition;
}
public function setBrush(_arg1:Brush){
currentBrush = _arg1;
}
public function erase(_arg1:EraserEvents){
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:uint;
_local2 = Math.min(_arg1.xPositionStart, _arg1.xPositionEnd);
_local3 = Math.max(_arg1.xPositionStart, _arg1.xPositionEnd);
_local4 = _local2;
while (_local4 < (_local3 + ERASER_THICKNESS)) {
_local5 = 0;
while (_local5 < whiteLayerData.height) {
_local6 = whiteLayerData.getPixel(_local4, _local5);
whiteLayerData.setPixel32(_local4, _local5, BLANK_COLOR);
_local5++;
};
_local4++;
};
eraserx = (((_arg1.target as Eraser).x - x) - 10);
}
private function drawLine(){
var _local1:uint;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:uint;
var _local9:uint;
var _local10:Sprite;
var _local11:BitmapData;
_local1 = (currentBrush as BrushPen).penSize;
_local2 = (previousPosition.x - currentPosition.x);
_local3 = (previousPosition.y - currentPosition.y);
_local4 = 0;
_local5 = 0;
_local6 = Math.min(previousPosition.x, currentPosition.x);
_local7 = Math.min(previousPosition.y, currentPosition.y);
_local8 = Math.abs(_local2);
_local9 = Math.abs(_local3);
if (_local2 < 0){
_local4 = (_local4 + -(_local2));
_local2 = 0;
};
if (_local3 < 0){
_local5 = (_local5 + -(_local3));
_local3 = 0;
};
_local10 = new Sprite();
_local10.x = 1000;
_local11 = new BitmapData((_local8 + _local1), (_local9 + _local1));
_local10.graphics.lineStyle(_local1, 0);
_local10.graphics.moveTo((_local2 + (_local1 / 2)), (_local3 + (_local1 / 2)));
_local10.graphics.lineTo((_local4 + (_local1 / 2)), (_local5 + (_local1 / 2)));
whiteLayerData.draw(_local10, new Matrix(1, 0, 0, 1, (_local6 - x), (_local7 - y)), null, "erase");
clearErasorLine();
}
private function mUp(_arg1:MouseEvent):void{
shapeDrawn = false;
mouseIsDown = false;
}
public function update(){
if (whiteLayerBitmap.parent){
whiteLayerBitmap.parent.removeChild(whiteLayerBitmap);
};
whiteLayerBitmap = new Bitmap(whiteLayerData);
whiteLayerContainer.addChild(whiteLayerBitmap);
}
private function mDown(_arg1:MouseEvent):void{
mouseIsDown = true;
draw(getTargetPixel(_arg1));
}
private function drawShape(_arg1:Point){
var _local2:Bitmap;
var _local3:uint;
var _local4:uint;
var _local5:*;
var _local6:*;
var _local7:uint;
var _local8:uint;
shapeDrawn = true;
_local2 = new Bitmap((currentBrush as BrushShape).getBrushTip());
_local3 = 0;
while (_local3 < _local2.height) {
_local4 = 0;
while (_local4 < _local2.width) {
_local5 = new Point();
_local5.x = ((_arg1.x - (_local2.width / 2)) + _local4);
_local5.y = ((_arg1.y - (_local2.height / 2)) + _local3);
_local6 = new Point();
_local6.x = _local4;
_local6.y = _local3;
_local7 = (whiteLayerData.getPixel32(_local5.x, _local5.y) as uint);
_local8 = (_local2.bitmapData.getPixel(_local6.x, _local6.y) as uint);
adjustPixel(_local7, _local8, _local5);
_local4++;
};
_local3++;
};
clearErasorLine();
}
}
}//package
Section 192
//DropZone (DropZone)
package {
import flash.display.*;
public class DropZone extends Sprite {
public function DropZone(_arg1:int, _arg2:int, _arg3:int, _arg4:int){
this.x = _arg1;
this.y = _arg2;
this.graphics.beginFill(0xFF);
this.graphics.drawRect((0 - (_arg3 / 2)), (0 - (_arg4 / 2)), _arg3, _arg4);
this.alpha = 0;
}
}
}//package
Section 193
//Eraser (Eraser)
package {
import flash.display.*;
import flash.events.*;
public class Eraser extends EventDispatcher {
private var previousMousePositionX:uint;
private var minScrollPosition:uint;
private var maxScrollPosition:uint;
private var isSliding:Boolean;
private var decoration:Sprite;
public function Eraser(_arg1:DisplayObjectContainer, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:Class){
this.decoration = new (_arg5);
this.decoration.x = _arg2;
this.decoration.y = _arg3;
this.maxScrollPosition = _arg4;
this.minScrollPosition = _arg2;
this.decoration.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
_arg1.stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
_arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);
_arg1.addChild(this.decoration);
}
private function mMove(_arg1:MouseEvent):void{
if (isSliding){
slide();
};
previousMousePositionX = decoration.stage.mouseX;
}
private function mUp(_arg1:MouseEvent):void{
isSliding = false;
}
private function mDown(_arg1:MouseEvent):void{
isSliding = true;
_arg1 = new MouseEvent(MouseEvent.CLICK);
dispatchEvent(_arg1);
}
private function slide(){
var _local1:EraserEvents;
if (decoration.stage.mouseX > maxScrollPosition){
decoration.x = maxScrollPosition;
} else {
if (decoration.stage.mouseX < minScrollPosition){
decoration.x = minScrollPosition;
} else {
decoration.x = decoration.stage.mouseX;
};
};
_local1 = new EraserEvents(EraserEvents.ERASE_EVENT, (previousMousePositionX - minScrollPosition), (decoration.stage.mouseX - minScrollPosition));
dispatchEvent(_local1);
}
public function get x():int{
return (decoration.x);
}
}
}//package
Section 194
//EraserEvents (EraserEvents)
package {
import flash.events.*;
public class EraserEvents extends Event {
public var xPositionStart:uint;
public var xPositionEnd:uint;
public static const ERASE_EVENT:String = "eraseEvent";
public function EraserEvents(_arg1:String, _arg2:uint, _arg3:uint){
super(_arg1, bubbles, cancelable);
this.xPositionStart = _arg2;
this.xPositionEnd = _arg3;
}
override public function toString():String{
return (formatToString("ErasorEvents", "type", "bubbles", "cancelable", "eventPhase"));
}
}
}//package
Section 195
//EraserSlider (EraserSlider)
package {
import flash.display.*;
public dynamic class EraserSlider extends MovieClip {
}
}//package
Section 196
//FacebookButton (FacebookButton)
package {
import flash.display.*;
public dynamic class FacebookButton extends MovieClip {
}
}//package
Section 197
//FacebookUploader (FacebookUploader)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import com.facebook.data.*;
import com.facebook.data.users.*;
import com.facebook.utils.*;
import com.facebook.events.*;
import com.facebook.data.auth.*;
import com.facebook.commands.photos.*;
import com.facebook.*;
import com.facebook.commands.users.*;
public class FacebookUploader extends EventDispatcher {
private var uploadPhotoButton:Sprite;
private var waitTimer:Timer;
private var session:FacebookSessionUtil;
private var facebookPhotoAlbums:FacebookArrayCollection;
private var uploadBitmapData:BitmapData;
private var prompedPremissions:Boolean;// = false
private var loaderInfo:LoaderInfo;
private var facebook:Facebook;
public function FacebookUploader(_arg1:LoaderInfo){
waitTimer = new Timer(500);
prompedPremissions = false;
super();
this.loaderInfo = _arg1;
}
private function checkLogin(_arg1:TimerEvent):void{
session.validateLogin();
}
private function onConnectToFacebook(_arg1:FacebookEvent):void{
if (_arg1.success){
waitTimer.stop();
waitTimer.removeEventListener(TimerEvent.TIMER, checkLogin);
getPremissions();
};
}
public function executeUpload(_arg1:Event=null, _arg2:String="this image was create with the 'Magnetic draw ap'"){
var _local3:UploadPhoto;
_local3 = new UploadPhoto(uploadBitmapData, null, _arg2);
_local3.addEventListener(FacebookEvent.COMPLETE, onPhotoUploadStatus, false, 0, true);
session.facebook.post(_local3);
}
private function getPremissions(_arg1:Event=null){
var _local2:HasAppPermission;
_local2 = new HasAppPermission(HasAppPermissionValues.PHOTO_UPLOAD);
_local2.addEventListener(FacebookEvent.COMPLETE, onPermissionDisclosed, false, 0, true);
session.facebook.post(_local2);
}
private function onPermissionDisclosed(_arg1:FacebookEvent):void{
var _local2:UploadEvent;
if (((_arg1.success) && ((_arg1.data as BooleanResultData).value))){
waitTimer.removeEventListener(TimerEvent.TIMER, getPremissions);
_local2 = new UploadEvent(UploadEvent.READY_FOR_CONFRIMATION);
dispatchEvent(_local2);
} else {
if (!prompedPremissions){
session.facebook.grantExtendedPermission(ExtendedPermissionValues.PHOTO_UPLOAD);
waitTimer = new Timer(500, 0);
waitTimer.addEventListener(TimerEvent.TIMER, getPremissions);
waitTimer.start();
prompedPremissions = true;
};
};
}
public function uploadImage(_arg1:BitmapData){
uploadBitmapData = _arg1;
session = new FacebookSessionUtil("877fd782d41ccbc54b9722b5557b71fb", "c9695197d41da60893dd8d2b53f590cb", loaderInfo);
facebook = session.facebook;
session.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitingForLogin);
session.addEventListener(FacebookEvent.CONNECT, onConnectToFacebook);
session.login();
}
private function onWaitingForLogin(_arg1:FacebookEvent):void{
waitTimer = new Timer(500);
waitTimer.addEventListener(TimerEvent.TIMER, checkLogin);
waitTimer.start();
}
private function onPhotoUploadStatus(_arg1:FacebookEvent):void{
var _local2:UploadEvent;
if (_arg1.success){
_local2 = new UploadEvent(UploadEvent.UPLOAD_COMPLETE);
dispatchEvent(_local2);
};
}
}
}//package
Section 198
//graphiteBitmapData (graphiteBitmapData)
package {
import flash.display.*;
public dynamic class graphiteBitmapData extends BitmapData {
public function graphiteBitmapData(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 199
//HoneyCones (HoneyCones)
package {
import flash.display.*;
public dynamic class HoneyCones extends MovieClip {
}
}//package
Section 200
//MagneticDrawGame (MagneticDrawGame)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.printing.*;
public class MagneticDrawGame {
private const PRINT_MARGIN:int = 50;
private var popupConnectionStatus:PopupConnection;
private var printButton:Sprite;
private var currentBrush:Brush;
private var eraser:Eraser;
private var penSprite:Sprite;
private var target:Sprite;
private var drawField:DrawField;
private var popupEnterText:PopupEnterText;
private var facebookButton:Sprite;
private var brushes:Array;
private var background:Bitmap;
private var uploader:FacebookUploader;
private var printInPortraitMode:Boolean;
private var sponsorSprite:Sprite;
public function MagneticDrawGame(_arg1:Sprite, _arg2:Sprite){
var _local3:Bitmap;
var _local4:*;
var _local5:*;
var _local6:Brush;
var _local7:uint;
brushes = new Array();
super();
this.target = _arg1;
background = new Bitmap(new BackgroundBitmap(0, 0));
_local3 = new Bitmap(new BodyBitmap(0, 0));
_arg1.addChild(background);
_arg1.addChild(_local3);
drawField = new DrawField(_arg1, 123, 51, 452, 340, null);
_arg1.addChild(_arg2);
setupDropZones();
penSprite = new PenSprite();
penSprite.x = 70;
penSprite.y = 198;
_arg1.addChild(penSprite);
_local4 = new BrushPen(PenButton3M, 3, PenSprite3M, penSprite);
_local5 = new BrushPen(PenButton6M, 6, PenSprite6M, penSprite);
_local4.setStartPosition(70, 198);
brushes.push(_local4);
_local5.setStartPosition(70, 198);
brushes.push(_local5);
_local6 = new BrushShape(circleStampSprite, new circle_stamp(0, 0));
_local6.setStartPosition(629, 92);
brushes.push(_local6);
_local6 = new BrushShape(diamondStampSprite, new diamond_stamp(0, 0));
_local6.setStartPosition(631, 180);
brushes.push(_local6);
_local6 = new BrushShape(triangleStampSprite, new triangle_stamp(0, 0));
_local6.setStartPosition(632, 268);
brushes.push(_local6);
_local6 = new BrushShape(starStampSprite, new star_stamp(0, 0));
_local6.setStartPosition(629, 349);
brushes.push(_local6);
_local7 = 0;
while (_local7 < brushes.length) {
_local6 = brushes[_local7];
_arg1.addChild(_local6);
_local7++;
};
eraser = new Eraser(_arg1, 135, 430, 562, EraserSlider);
eraser.addEventListener(EraserEvents.ERASE_EVENT, drawField.erase);
eraser.addEventListener(MouseEvent.CLICK, dropBrush);
printButton = new PrintButton();
printButton.x = 70;
printButton.y = 358;
_arg1.addChild(printButton);
facebookButton = new FacebookButton();
facebookButton.x = 70;
facebookButton.y = 408;
popupEnterText = new PopupEnterText();
popupEnterText.x = (_arg1.stage.width / 2);
popupEnterText.y = (_arg1.stage.height / 2);
popupEnterText.getCancelButton().addEventListener(MouseEvent.CLICK, cancelUpload);
popupConnectionStatus = new PopupConnection();
popupConnectionStatus.x = (_arg1.stage.width / 2);
popupConnectionStatus.y = (_arg1.stage.height / 2);
popupConnectionStatus.getCancelButton().addEventListener(MouseEvent.CLICK, cancelUpload);
enableDrawButtons();
}
private function startUpload(_arg1:MouseEvent){
var _local2:BitmapData;
disableDrawButtons();
facebookButton.removeEventListener(MouseEvent.CLICK, executeUpload);
dropBrush(_arg1);
_local2 = new BitmapData(target.width, target.height, false);
_local2.draw(target);
uploader = new FacebookUploader(target.stage.loaderInfo);
uploader.addEventListener(UploadEvent.READY_FOR_CONFRIMATION, readyToUpload);
uploader.uploadImage(_local2);
popupConnectionStatus.getTopText().htmlText = "<b>connecting to facebook...</b>";
target.addChild(popupConnectionStatus);
}
public function dropBrush(_arg1:MouseEvent){
if (currentBrush){
currentBrush.mouseEnabled = true;
currentBrush.disableBrush();
currentBrush = null;
drawField.setBrush(currentBrush);
};
}
public function disableDrawButtons(){
var _local1:uint;
var _local2:Brush;
_local1 = 0;
while (_local1 < brushes.length) {
_local2 = brushes[_local1];
_local2.removeEventListener(MouseEvent.CLICK, selectBrush);
_local1++;
};
printButton.removeEventListener(MouseEvent.CLICK, print);
facebookButton.removeEventListener(MouseEvent.CLICK, startUpload);
}
public function enableDrawButtons(){
var _local1:uint;
var _local2:Brush;
_local1 = 0;
while (_local1 < brushes.length) {
_local2 = brushes[_local1];
_local2.addEventListener(MouseEvent.CLICK, selectBrush);
_local1++;
};
printButton.addEventListener(MouseEvent.CLICK, print);
facebookButton.addEventListener(MouseEvent.CLICK, startUpload);
}
private function setupDropZones(){
var _local1:Array;
var _local2:uint;
var _local3:Sprite;
_local1 = new Array();
_local1.push(new DropZone(631, 92, 60, 60));
_local1.push(new DropZone(631, 180, 60, 60));
_local1.push(new DropZone(631, 268, 60, 60));
_local1.push(new DropZone(631, 349, 60, 60));
_local1.push(new DropZone(69, 190, 40, 280));
_local2 = 0;
while (_local2 < _local1.length) {
_local3 = _local1[_local2];
target.addChild(_local3);
_local3.addEventListener(MouseEvent.CLICK, dropBrush);
_local2++;
};
}
private function executeUpload(_arg1:MouseEvent){
popupEnterText.getUploadButton().removeEventListener(MouseEvent.CLICK, executeUpload);
popupEnterText.getCancelButton().removeEventListener(MouseEvent.CLICK, cancelUpload);
uploader.addEventListener(UploadEvent.UPLOAD_COMPLETE, uploadComplete);
uploader.executeUpload(_arg1, popupEnterText.getInputField().text);
popupEnterText.getTopText().text = "<b>sending...</b>";
popupEnterText.getUploadButton().alpha = 0.5;
popupEnterText.getCancelButton().alpha = 0.5;
}
public function selectBrush(_arg1:MouseEvent){
dropBrush(_arg1);
currentBrush = (_arg1.target as Brush);
currentBrush.enableBrush();
currentBrush.x = _arg1.stageX;
currentBrush.y = _arg1.stageY;
drawField.setBrush(currentBrush);
}
private function uploadComplete(_arg1:UploadEvent){
uploader.removeEventListener(UploadEvent.UPLOAD_COMPLETE, uploadComplete);
target.removeChild(popupEnterText);
popupEnterText.getTopText().text = "fill in the text below to ad it to the photo";
popupEnterText.getUploadButton().alpha = 1;
popupEnterText.getCancelButton().alpha = 1;
enableDrawButtons();
}
private function readyToUpload(_arg1:UploadEvent){
uploader.removeEventListener(UploadEvent.READY_FOR_CONFRIMATION, readyToUpload);
target.removeChild(popupConnectionStatus);
target.addChild(popupEnterText);
popupEnterText.getTopText().htmlText = "<b>photo description</b>";
popupEnterText.getUploadButton().alpha = 1;
popupEnterText.getUploadButton().addEventListener(MouseEvent.CLICK, executeUpload);
popupEnterText.getInputField().text = "This picture is created with Magnetic draw";
}
private function cancelUpload(_arg1:MouseEvent){
uploader.removeEventListener(UploadEvent.READY_FOR_CONFRIMATION, readyToUpload);
uploader.removeEventListener(UploadEvent.UPLOAD_COMPLETE, uploadComplete);
popupEnterText.getUploadButton().removeEventListener(MouseEvent.CLICK, executeUpload);
popupEnterText.getCancelButton().removeEventListener(MouseEvent.CLICK, cancelUpload);
if (popupEnterText.parent){
target.removeChild(popupEnterText);
};
if (popupConnectionStatus.parent){
target.removeChild(popupConnectionStatus);
};
enableDrawButtons();
}
private function print(_arg1:MouseEvent){
var _local2:PrintJobOptions;
var _local3:PrintJob;
var _local4:Boolean;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Rectangle;
dropBrush(_arg1);
_local2 = new PrintJobOptions();
_local2.printAsBitmap = true;
_local3 = new PrintJob();
_local4 = _local3.start();
if (_local4){
_local5 = (_local3.paperWidth / target.width);
target.scaleX = _local5;
target.scaleY = _local5;
background.visible = false;
_local6 = ((_local3.paperWidth - target.width) / 2);
_local7 = ((_local3.paperHeight - target.height) / 2);
_local8 = new Rectangle(-(_local6), -(_local7), 1000, 1000);
_local3.addPage(target, _local8, _local2, 0);
target.scaleX = 1;
target.scaleY = 1;
background.visible = true;
_local3.send();
SpilSingleton.instance.getAward(Awards.PRINTED_FILE);
};
}
}
}//package
Section 201
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import spill.localisation.*;
import flash.utils.*;
import flash.net.*;
public class Main extends Sprite {
private const EDURANCE_TIME:int = 900000;
private var eduranceTimer:Timer;
private var splashMenu:SplashSprite;
private var preloaderText:TextField;
private var game:MagneticDrawGame;
public function Main(){
splashMenu = new SplashSprite();
super();
startPreloader();
}
private function handleSpilGamesButtonClicked(_arg1:MouseEvent):void{
navigateToURL(new URLRequest(SpilGame.getSpilCompanyLink()));
}
public function init(){
var _local1:BrandingLogo;
var _local2:SpilGamesLink;
var _local3:LanguageSelectBox;
SpilSingleton.instance.target = this;
addChild(splashMenu);
splashMenu.x = (stage.stageWidth / 2);
splashMenu.y = (stage.stageHeight / 2);
SpilGame.initialize("Magnetic Draw", PortalGroup.FAMILY, "info@triangle-studios.com", this, true);
_local1 = new BrandingLogo();
_local1.x = 132;
_local1.y = 16;
_local1.mouseEnabled = (_local1.buttonMode = (_local1.useHandCursor = true));
_local1.addEventListener(MouseEvent.CLICK, handleBrandingLogoClicked);
_local2 = new SpilGamesLink();
_local2.x = -71;
_local2.y = 126;
_local2.addEventListener(MouseEvent.CLICK, handleSpilGamesButtonClicked);
splashMenu.addChild(_local2);
_local3 = new LanguageSelectBox();
_local3.x = 180;
_local3.y = -220;
splashMenu.addChild(_local3);
_local3.popupLocation = "bottom";
splashMenu.startGame_btn.addEventListener(MouseEvent.CLICK, startGame);
}
public function startPreloader(){
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, PL_LOADING);
preloaderText = new TextField();
preloaderText.x = (this.width / 2);
preloaderText.y = (this.height / 2);
this.addChild(preloaderText);
}
private function enduranceComplete(_arg1:TimerEvent):void{
SpilSingleton.instance.getAward(Awards.ENDURANCE);
eduranceTimer.stop();
eduranceTimer.removeEventListener(TimerEvent.TIMER, enduranceComplete);
}
private function startGame(_arg1:Event=null){
var _local2:HoneyCones;
removeChild(splashMenu);
_local2 = new HoneyCones();
_local2.mouseEnabled = false;
_local2.x = 114;
_local2.y = 24;
game = new MagneticDrawGame(this, _local2);
eduranceTimer = new Timer(EDURANCE_TIME, 1);
eduranceTimer.addEventListener(TimerEvent.TIMER, enduranceComplete);
eduranceTimer.start();
}
private function handleBrandingLogoClicked(_arg1:MouseEvent):void{
navigateToURL(new URLRequest(SpilGame.getMoreGamesLink("Mainscreen")), "_blank");
}
function PL_LOADING(_arg1:ProgressEvent):void{
var _local2:Number;
_local2 = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100);
preloaderText.text = (_local2 + "%");
if (_local2 == 100){
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, PL_LOADING);
this.removeChild(preloaderText);
init();
};
}
}
}//package
Section 202
//NoButton (NoButton)
package {
import flash.display.*;
public dynamic class NoButton extends Sprite {
}
}//package
Section 203
//PenButton3M (PenButton3M)
package {
import flash.display.*;
public dynamic class PenButton3M extends Sprite {
}
}//package
Section 204
//PenButton6M (PenButton6M)
package {
import flash.display.*;
public dynamic class PenButton6M extends Sprite {
}
}//package
Section 205
//PenSprite (PenSprite)
package {
import flash.display.*;
public dynamic class PenSprite extends Sprite {
}
}//package
Section 206
//PenSprite3M (PenSprite3M)
package {
import flash.display.*;
public dynamic class PenSprite3M extends Sprite {
}
}//package
Section 207
//PenSprite6M (PenSprite6M)
package {
import flash.display.*;
public dynamic class PenSprite6M extends Sprite {
}
}//package
Section 208
//PopupConnection (PopupConnection)
package {
import flash.display.*;
import flash.text.*;
public class PopupConnection extends Sprite {
public var topText:TextField;
public var cancelButton:NoButton;
public function getTopText():TextField{
return (topText);
}
public function getCancelButton():Sprite{
return (cancelButton);
}
}
}//package
Section 209
//PopupEnterText (PopupEnterText)
package {
import flash.display.*;
import flash.text.*;
public class PopupEnterText extends Sprite {
public var topText:TextField;
public var cancelButton:NoButton;
public var inputField:TextField;
public var uploadButton:YesButton;
public function getTopText():TextField{
return (topText);
}
public function getUploadButton():Sprite{
return (uploadButton);
}
public function getInputField():TextField{
return (inputField);
}
public function getCancelButton():Sprite{
return (cancelButton);
}
}
}//package
Section 210
//PrintButton (PrintButton)
package {
import flash.display.*;
public dynamic class PrintButton extends MovieClip {
}
}//package
Section 211
//ShareBitmapData (ShareBitmapData)
package {
import flash.display.*;
public dynamic class ShareBitmapData extends BitmapData {
public function ShareBitmapData(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 212
//ShareButton (ShareButton)
package {
import flash.display.*;
public dynamic class ShareButton extends MovieClip {
}
}//package
Section 213
//SpilSingleton (SpilSingleton)
package {
import flash.display.*;
import flash.events.*;
import com.spilgames.api.*;
public class SpilSingleton {
private var _spilGamesServices:SpilGamesServices;
private var awardString:String;
private var _target:DisplayObjectContainer;
private var scoreInt:int;
private static var _instance:SpilSingleton;
private static var allowInstalation:Boolean = false;
public function SpilSingleton(){
if (allowInstalation){
} else {
trace("instalation not allowed");
};
}
public function set target(_arg1:DisplayObjectContainer){
_target = _arg1;
}
private function submitAward(_arg1:Event=null){
trace("submitting award");
if (_spilGamesServices.isDomainAllowed()){
AwardsService.submitAward(awardString);
};
}
private function onServicesReady(_arg1:Event):void{
trace("The Submitter is ready to be used.");
trace(_spilGamesServices.isDomainAllowed());
}
private function onServicesFailed(_arg1:Event):void{
trace("Submitter failed to load");
trace(_spilGamesServices.isDomainAllowed());
}
public function connect(_arg1:Function=null, _arg2:Function=null){
if (_arg1 == null){
_arg1 = onServicesReady;
};
if (_arg2 == null){
_arg2 = onServicesFailed;
};
_spilGamesServices = SpilGamesServices.getInstance();
_spilGamesServices.addEventListener("servicesReady", _arg1);
_spilGamesServices.addEventListener("servicesFailed", _arg2);
_spilGamesServices.connect(_target);
}
public function placeScore(_arg1:int){
scoreInt = _arg1;
connect(submitScore);
}
private function submitScore(_arg1:Event=null){
trace("submitting score");
if (_spilGamesServices.isDomainAllowed()){
ScoreService.submitScore(scoreInt);
};
}
public function getAward(_arg1:String){
trace("getting award");
awardString = _arg1;
connect(submitAward);
}
public static function get instance():SpilSingleton{
if (!_instance){
allowInstalation = true;
_instance = new (SpilSingleton);
allowInstalation = false;
};
return (_instance);
}
}
}//package
Section 214
//SpilSprite (SpilSprite)
package {
import flash.display.*;
public dynamic class SpilSprite extends MovieClip {
}
}//package
Section 215
//SplashSprite (SplashSprite)
package {
import flash.display.*;
public dynamic class SplashSprite extends Sprite {
public var startGame_btn:MovieClip;
}
}//package
Section 216
//star_stamp (star_stamp)
package {
import flash.display.*;
public dynamic class star_stamp extends BitmapData {
public function star_stamp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 217
//starStampSprite (starStampSprite)
package {
import flash.display.*;
public dynamic class starStampSprite extends MovieClip {
}
}//package
Section 218
//triangle_stamp (triangle_stamp)
package {
import flash.display.*;
public dynamic class triangle_stamp extends BitmapData {
public function triangle_stamp(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 219
//triangleStampSprite (triangleStampSprite)
package {
import flash.display.*;
public dynamic class triangleStampSprite extends Sprite {
}
}//package
Section 220
//UploadEvent (UploadEvent)
package {
import flash.events.*;
public class UploadEvent extends Event {
public static const READY_FOR_CONFRIMATION:String = "connectedToFacebook";
public static const UPLOAD_COMPLETE:String = "uploadComplete";
public function UploadEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("UploadEvent", "type", "bubbles", "cancelable", "eventPhase"));
}
override public function clone():Event{
return (new UploadEvent(type, bubbles, cancelable));
}
}
}//package
Section 221
//YesButton (YesButton)
package {
import flash.display.*;
public dynamic class YesButton extends Sprite {
}
}//package