Section 1
//btnMoreVideos (btnMoreVideos)
package {
import flash.events.*;
import flash.display.*;
import flash.system.*;
public class btnMoreVideos extends SimpleButton {
public function btnMoreVideos(){
Security.allowDomain("*");
useHandCursor = true;
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(_arg1:MouseEvent):void{
linksManager.navigateToTDS("more", 1);
}
}
}//package
Section 2
//configManager (configManager)
package {
import flash.events.*;
import flash.net.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
public class configManager extends MovieClip {
var showonload:String;// = null
var popupurl:String;// = ""
var areas:Dictionary;
var areacontent:Dictionary;
var gid:String;
public var values:Array;
var ver:uint;
var configXML:XML;
public function configManager(_arg1:String, _arg2:uint, _arg3:Stage):void{
configXML = <config></config>
;
areas = new Dictionary(true);
areacontent = new Dictionary(true);
values = [];
super();
gid = _arg1;
ver = _arg2;
var _local4:URLLoader = new URLLoader();
configureListeners(_local4);
_local4.addEventListener(Event.COMPLETE, loadXML);
_local4.load(new URLRequest(((((((((tdsOptions.get_config_url + "?gameid=") + _arg1) + "&version=") + _arg2) + "&player=") + Capabilities.version) + "&referer=") + tdsOptions.referer)));
}
private function securityErrorHandler(_arg1:SecurityErrorEvent):void{
trace(("securityErrorHandler: " + _arg1));
}
function getContent(_arg1:String, _arg2:uint, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String):void{
var loadcontent:Function;
var id = _arg1;
var arrid = _arg2;
var loc = _arg3;
var x = _arg4;
var y = _arg5;
var href = _arg6;
loadcontent = function (_arg1:Event):void{
var bannerid:uint;
var e = _arg1;
if (areacontent[id] == undefined){
areacontent[id] = [];
};
e.target.content.x = x;
e.target.content.y = y;
e.target.content.href = href;
e.target.content.gameid = gid;
e.target.content.version = ver;
areacontent[id][arrid] = e.target.content;
if (showonload == id){
bannerid = int((Math.random() * areacontent[id].length));
areas[id].addChild(areacontent[id][bannerid]);
if (areacontent[id][bannerid].href != ""){
areacontent[id][bannerid].addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
navigateToURL(new URLRequest(areacontent[id][bannerid].href), "_blank");
});
};
};
trace("content loaded");
trace(("LOADED_" + id));
dispatchEvent(new Event(("LOADED_" + id)));
};
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadcontent);
loader.load(new URLRequest(loc));
}
public function addArea(_arg1:String, _arg2:MovieClip):void{
var bannerid:uint;
var i:uint;
var k:uint;
var id = _arg1;
var area = _arg2;
if (areas[id] == undefined){
areas[id] = area;
if (areacontent[id] == undefined){
areacontent[id] = [];
i = 0;
while (i < configXML.stages.stage.length()) {
if (String(configXML.stages.stage[i].@name) == id){
k = 0;
while (k < configXML.stages.stage[i].banners.banner.length()) {
getContent(configXML.stages.stage[i].@name, k, configXML.stages.stage[i].banners.banner[k].@location, configXML.stages.stage[i].banners.banner[k].@x, configXML.stages.stage[i].banners.banner[k].@y, configXML.stages.stage[i].banners.banner[k].@href);
k = (k + 1);
};
};
i = (i + 1);
};
};
};
bannerid = int((Math.random() * areacontent[id].length));
if (((((!((areacontent[id][bannerid] == null))) && (!((areacontent[id][bannerid] == undefined))))) && (!(area.contains(areacontent[id][bannerid]))))){
area.addChild(areacontent[id][bannerid]);
dispatchEvent(new Event(("LOADED_" + id)));
if (areacontent[id][bannerid].href != ""){
areacontent[id][bannerid].addEventListener(MouseEvent.CLICK, function (_arg1:Event):void{
navigateToURL(new URLRequest(areacontent[id][bannerid].href), "_blank");
});
};
} else {
showonload = id;
};
trace((("start " + id) + " area"));
}
private function httpStatusHandler(_arg1:HTTPStatusEvent):void{
}
function loadXML(_arg1:Event):void{
var _local3:uint;
configXML = new XML(_arg1.target.data);
if (configXML.settings.secured_redirect != ""){
tdsOptions.secured_redirect = ((configXML.settings.secured_redirect)=="true") ? true : false;
};
var _local2:uint;
while (_local2 < configXML.stages.stage.length()) {
_local3 = 0;
while (_local3 < configXML.stages.stage[_local2].banners.banner.length()) {
if (configXML.stages.stage[_local2].banners.banner[_local3].@autoload == "true"){
trace(((("get content " + configXML.stages.stage[_local2].@name) + " loc:") + configXML.stages.stage[_local2].banners.banner[_local3].@location));
getContent(configXML.stages.stage[_local2].@name, _local3, configXML.stages.stage[_local2].banners.banner[_local3].@location, configXML.stages.stage[_local2].banners.banner[_local3].@x, configXML.stages.stage[_local2].banners.banner[_local3].@y, configXML.stages.stage[_local2].banners.banner[_local3].@href);
};
_local3++;
};
_local2++;
};
_local2 = 0;
while (_local2 < configXML.values.value.length()) {
if (String(configXML.values.value[_local2].@stagename).length > 0){
values[configXML.values.value[_local2].@name] = [configXML.values.value[_local2].@stagename, configXML.values.value[_local2].@text];
} else {
values[String(configXML.values.value[_local2].@name)] = String(configXML.values.value[_local2].@value);
};
_local2++;
};
dispatchEvent(new Event("CONFIGLOADED"));
trace("config loaded\n\n");
}
private function completeHandler(_arg1:Event):void{
}
private function progressHandler(_arg1:ProgressEvent):void{
trace(((("progressHandler loaded:" + _arg1.bytesLoaded) + " total: ") + _arg1.bytesTotal));
}
private function openHandler(_arg1:Event):void{
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
trace(("ioErrorHandler: " + _arg1));
tdsOptions.alive = false;
}
private function configureListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, completeHandler);
_arg1.addEventListener(Event.OPEN, openHandler);
_arg1.addEventListener(ProgressEvent.PROGRESS, progressHandler);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
}
}//package
Section 3
//linksManager (linksManager)
package {
import flash.events.*;
import flash.net.*;
import flash.display.*;
public class linksManager {
public static function getRequest(_arg1:String, _arg2:String=""):URLRequest{
var _local3:URLRequest = new URLRequest(_arg1);
_local3.method = URLRequestMethod.POST;
return (_local3);
}
private static function navigateToSpareURL(_arg1:int=-1):void{
if ((((((_arg1 == -1)) || ((_arg1 < 1)))) || ((_arg1 > tdsOptions.spare_links.length)))){
_arg1 = Math.ceil((Math.random() * (tdsOptions.spare_links.length - 1)));
} else {
_arg1--;
};
navigateToURL(tdsOptions.spare_links[_arg1], "_blank");
}
private static function openHandler(_arg1:Event):void{
}
private static function ioErrorHandler(_arg1:IOErrorEvent):void{
navigateToSpareURL();
}
private static function securityErrorHandler(_arg1:SecurityErrorEvent):void{
}
private static function httpStatusHandler(_arg1:HTTPStatusEvent):void{
}
public static function navigateToTDSLink(_arg1:String, _arg2:int=-1):void{
if (tdsOptions.alive == true){
navigateToURL(getRequest(getLinkToTDS(_arg1)));
} else {
navigateToSpareURL(_arg2);
};
}
public static function navigateToTDS(_arg1:String, _arg2:int=-1):void{
if (tdsOptions.secured_redirect){
navigateToSecuredTDSLink(_arg1, _arg2);
} else {
navigateToTDSLink(_arg1, _arg2);
};
}
private static function completeHandler(_arg1:Event):void{
}
private static function configureListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, completeHandler);
_arg1.addEventListener(Event.OPEN, openHandler);
_arg1.addEventListener(ProgressEvent.PROGRESS, progressHandler);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
public static function navigateToSecuredTDSLink(_arg1:String, _arg2:int=-1):void{
var loader:URLLoader;
var action = _arg1;
var spare_url_id = _arg2;
if (tdsOptions.alive == true){
var navigateToLink:Function = function (_arg1:Event):void{
var _local2:XML = <config></config>
;
_local2 = new XML(_arg1.target.data);
navigateToURL(getRequest(_local2.redirect_url, _local2.referer), "_blank");
};
loader = new URLLoader();
configureListeners(loader);
loader.addEventListener(Event.COMPLETE, navigateToLink);
loader.load(getRequest(getLinkToTDS(action, true)));
} else {
navigateToSpareURL(spare_url_id);
};
}
private static function progressHandler(_arg1:ProgressEvent):void{
}
private static function getLinkToTDS(_arg1:String, _arg2:Boolean=false):String{
return ((((((((((tdsOptions.redirect_url + "?gameid=") + tdsOptions.gameid) + "&version=") + tdsOptions.version) + "&action=") + _arg1) + "&referer=") + tdsOptions.referer) + ((_arg2)==true) ? "&secured=true" : ""));
}
}
}//package
Section 4
//Main (Main)
package {
import flash.events.*;
import flash.net.*;
import flash.display.*;
import flash.text.*;
import flash.system.*;
public class Main extends MovieClip {
public var config:configManager;
private var MemC:MemoryController;
public var gameWin:Boolean;// = false
public var loader:URLLoader;
public var gameLoaded:Boolean;// = false
public var gameOver:Boolean;// = false
public var config_loaded:Boolean;// = false
public var ProgressBarMC:MovieClip;
public var canPlay:Boolean;// = true
private var progressBar:Sprite;
public var gameStarted:Boolean;// = false
public var caption:TextField;
public var g_width:Number;// = 640
public var g_height:Number;// = 480
public static var Application:Main;
public function Main(){
stop();
Application = this;
Security.allowDomain("*");
MemC = new MemoryController(3000, ((0x0400 * 0x0400) * 28), ((0x0400 * 0x0400) * 30));
tdsOptions.setReferer(loaderInfo.url, loaderInfo.loaderURL);
config = new configManager(tdsOptions.gameid, tdsOptions.version, stage);
config.addEventListener("CONFIGLOADED", cfgLoaded);
stage.showDefaultContextMenu = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
progressBar = (getChildByName("ProgressBarMC") as Sprite);
progressBar.scaleX = 0;
addEventListener(Event.ENTER_FRAME, Update);
if ((((loaderInfo.bytesLoaded == loaderInfo.bytesTotal)) && (!((gameLoaded == true))))){
gotoAndStop(1, "Game");
Init();
return;
};
loaderInfo.addEventListener(Event.COMPLETE, loadingComplite);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderUpdate);
}
public function cfgLoaded(_arg1:Event):void{
config_loaded = true;
}
public function loadingComplite(_arg1:Event):void{
if (gameLoaded == true){
return;
};
gotoAndStop(1, "Game");
Init();
}
private function Update(_arg1:Event):void{
if (gameLoaded == false){
return;
};
}
function Init():void{
if (gameLoaded == true){
return;
};
gameLoaded = true;
}
public function loaderUpdate(_arg1:ProgressEvent):void{
var _local2:Number = Math.floor(((_arg1.bytesLoaded * 100) / _arg1.bytesTotal));
progressBar.scaleX = (_local2 / 100);
if (_local2 == 100){
gotoAndStop(1, "Game");
Init();
};
}
}
}//package
Section 5
//MemoryController (MemoryController)
package {
import flash.net.*;
import flash.utils.*;
import flash.geom.*;
import flash.system.*;
public class MemoryController {
private var mWarningFunction:Function;
private var mForcedCleanInterval:int;
private var mForcedIterationsNum:int;
private var mWarningMemoryLimit:int;
private var mInterval:int;
private var mCriticalMemoryLimit:int;
private var mAbortFunction:Function;
private var mIsAbleToForce:Boolean;
public function MemoryController(_arg1:int=1000, _arg2:int=62914560, _arg3:int=104857600, _arg4:int=60000, _arg5:int=1, _arg6:Function=null, _arg7:Function=null):void{
mInterval = _arg1;
mWarningMemoryLimit = _arg2;
mCriticalMemoryLimit = _arg3;
mAbortFunction = _arg6;
mWarningFunction = _arg7;
mForcedIterationsNum = _arg5;
mForcedCleanInterval = _arg4;
mIsAbleToForce = true;
setInterval(checkMemoryUsage, mInterval);
}
private function doForcedClean():void{
if (!mIsAbleToForce){
return;
};
var i:int;
i = 0;
while (i < mForcedIterationsNum) {
try {
new LocalConnection().connect("Crio");
new LocalConnection().connect("Crio");
} catch(e) {
};
i = (i + 1);
};
mIsAbleToForce = false;
setTimeout(MakeAbleToForce, mForcedCleanInterval);
}
private function doSimpleClean():void{
var _local1:Point = new Point();
_local1 = null;
var _local2:String = new String("1234567812345678");
_local2 = null;
var _local3:Array = new Array();
var _local4:int;
_local4 = 0;
while (_local4 < 0x0100) {
_local3.push(new String("a"));
_local4++;
};
_local4 = 0;
while (_local4 < 0x0100) {
delete _local3[_local4];
_local4++;
};
_local3 = null;
}
private function MakeAbleToForce():void{
mIsAbleToForce = true;
}
private function checkMemoryUsage():void{
if (System.totalMemory > mWarningMemoryLimit){
doForcedClean();
if (mWarningFunction != null){
mWarningFunction();
};
} else {
if (System.totalMemory > mCriticalMemoryLimit){
if (mAbortFunction != null){
mAbortFunction();
};
doForcedClean();
};
};
}
}
}//package
Section 6
//tdsOptions (tdsOptions)
package {
public class tdsOptions {
public static const redirect_url:String = (("http://" + host) + "/redirect.php");
public static const gameid:String = "3d_promo";
public static const version:uint = 1;
public static const host:String = "tds.myhornybunny.com";
public static const link_count_url:String = (("http://" + host) + "/countLink.php");
public static const get_config_url:String = (("http://" + host) + "/getConfig.php");
public static var alive:Boolean = true;
public static var secured_redirect:Boolean = true;
public static var spare_links:Array = new Array("http://www.3dsupermodels.com/?t=202102,2,10,0&x=promo", "http://www.3dteensluts.com/?t=202102,2,14,0&x=promo");
public static var country:String;
public static var language:String;
public static var referer:String;
public static function setReferer(_arg1:String, _arg2:String):void{
if ((((_arg1 == null)) || ((_arg1 == "")))){
_arg1 = _arg2;
};
referer = "";
if (_arg1 == null){
referer = "empty";
} else {
if (_arg1.substr(0, 7) == "file://"){
referer = "local";
};
};
if (referer != ""){
return;
};
if (_arg1.indexOf("http://") != -1){
_arg1 = _arg1.substr(7);
};
if (_arg1.indexOf("/") != -1){
_arg1 = _arg1.substr(0, _arg1.indexOf("/"));
};
referer = _arg1;
}
}
}//package