Frame 1
function init() {
videoInt = setInterval(this, "trackVideo", 200, false);
playMovie(movieQueue);
var _local3 = {};
_local3.onSearch = function (resObj) {
trace("received: " + resObj.searchResult[0]);
if (resObj.searchResult[0] == "censor") {
parentRef.movieQueue.push(new Array("censor"));
} else if ((resObj.searchResult[0] == "") || (resObj.searchResult[0] == undefined)) {
parentRef.movieQueue.push(new Array("unrecognized"));
} else {
var _local2 = 0;
while (_local2 < resObj.searchResult.length) {
if (parentRef.movieQueue.length < 1) {
parentRef.movieQueue.push(resObj.searchResult[_local2]);
trace("pushing: " + resObj.searchResult[0]);
} else {
parentRef.movieQueue.splice(parentRef.movieQueue.length - 1, parentRef.movieQueue.length);
parentRef.movieQueue[0] = resObj.searchResult[_local2];
}
_local2++;
}
trace(parentRef.movieQueue);
}
if (parentRef.movieQueue.length >= 4) {
parentRef.movieQueue = new Array();
}
trace("movie queue: " + parentRef.movieQueue);
parentRef.playMovie(parentRef.movieQueue);
};
tammy.addEventListener("onSearch", _local3);
}
function initTimer() {
initTime++;
trace("timer");
if (initTime > 1) {
init();
clearInterval(myInt);
}
}
function playMovie(queue) {
if ((videoStatus == "stopped") || (is_idle)) {
videoStatus = "playing";
is_idle = false;
trace("");
trace("CURRENT SEQUENCE: " + queue[0][0]);
trace("");
if (((queue[0] == null) || (queue[0] == undefined)) || (queue[0].length == 0)) {
trace("playing idle");
return(playIdleSequence());
}
if ((queue[0][0].substr(queue[0][0].length - 3, queue[0][0].length) != "flv") && (queue[0][0] != "censor")) {
netStream.play("idle/shrug.flv");
} else if ((queue[0][0] != null) && (queue[0][0] != "censor")) {
netStream.play(queue[0][0]);
} else if (queue[0][0] == "censor") {
netStream.play("censor/wagFinger.flv");
}
netStream.setBufferTime(1);
queue[0].splice(0, 1);
if (queue[0][0] == undefined) {
queue.splice(0, 1);
}
return(undefined);
}
}
function trackVideo(idle) {
if (videoStatus == "stopped") {
playMovie(movieQueue);
}
}
function buffetCheck(movieName) {
netStream.play(movieName);
}
function playIdleSequence() {
is_idle = true;
switch (idleCount) {
case 0 :
var _local2 = Math.round(Math.random() * 2);
trace(_local2);
if (_local2 == 0) {
netStream.play("enter/enterRight.flv");
_root.movie.text = "enter/enterRight.flv";
}
if (_local2 == 1) {
netStream.play("enter/enterLeftCamera.flv");
_root.movie.text = "enter/enterLeftCamera.flv";
}
if (_local2 == 2) {
netStream.play("enter/enterLeft.flv");
_root.movie.text = "enter/enterLeft.flv";
}
idleCount = 1;
break;
case 1 :
trace("playing drum fingers");
netStream.play("idle/drumFingers.flv");
_root.movie.text = "idle/drumFingers.flv";
_local2 = Math.round(Math.random() * 5);
idleCount = ((_local2 == 0) ? 1 : (_local2));
break;
case 2 :
trace("playing drum fingers");
netStream.play("idle/patientlySmiles.flv");
_root.movie.text = "idle/patientlySmiles.flv";
_local2 = Math.round(Math.random() * 5);
idleCount = ((_local2 == 0) ? 1 : (_local2));
break;
case 3 :
netStream.play("idle/checkWatch.flv");
_root.movie.text = "idle/checkWatch.flv";
idleCount = 1;
break;
case 4 :
netStream.play("idle/checkWatch.flv");
_root.movie.text = "idle/checkWatch.flv";
idleCount = 1;
break;
case 5 :
netStream.play("idle/ImpatientlyWaiting.flv");
_root.movie.text = "idle/ImpatientlyWaiting.flv";
idleCount = 1;
}
}
_global.tammy = new com.D3.NLPBot.Main("bot_01_v01a.xml", "bot_01_v01a_acts.xml");
var firstTimeActive = true;
var is_idle = false;
var videoStatus = "stopped";
var movieQueue = new Array();
var idleCount = 0;
var initTime = 0;
var sequenceCount;
var parentRef = this;
var netConn = new NetConnection();
netConn.connect(null);
var netStream = new NetStream(netConn);
netStream.setBufferTime(1);
_root.vTammy.attachVideo(netStream);
netStream.onStatus = function (infoObject) {
if (infoObject.code == "NetStream.Play.Stop") {
videoStatus = "stopped";
}
};
var botListener = {};
botListener.onBotReady = function (success) {
if (success) {
parentRef.init();
}
};
tammy.addEventListener("onBotReady", botListener);
var textFieldListner = {};
textFieldListner.onSetFocus = function (oldFocus, newFocus) {
if (newFocus == _root.original) {
if (firstTimeActive) {
firstTimeActive = false;
_root.original.text = "";
}
}
};
Selection.addListener(textFieldListner);
var keyListener = {};
keyListener.parent = this;
keyListener.onKeyDown = function () {
if (Key.isDown(13)) {
if (Selection.getFocus() == "_level0.original") {
tammy.search(_root.original.text);
_root.original.text = "";
}
}
};
Key.addListener(keyListener);
Symbol 9 MovieClip [text4] Frame 22
stop();
Symbol 13 MovieClip [text3] Frame 22
stop();
Symbol 17 MovieClip [text2] Frame 22
stop();
Symbol 22 MovieClip [text1] Frame 22
stop();
Symbol 29 Button
on (release) {
tammy.search(_root.original.text);
_root.original.text = "";
Selection.setFocus("_level0.original");
}
Symbol 36 Button
on (press) {
getURL ("http://www.beer.com/beerdotcom/portlets/specialEvents/virtualSignUp/VirtualSignUpController.jpf", "_blank");
}
Symbol 37 MovieClip [__Packages.com.D3.NLPBot.Main] Frame 0
class com.D3.NLPBot.Main
{
var lex, actionListener, lexiconListener, actionList, searchBot;
function Main (lexiconLocation, actionLoc) {
mx.events.EventDispatcher.initialize(this);
lex = new com.D3.NLPBot.LexiconManager(lexiconLocation);
actionListener = {};
lexiconListener = {};
actionList = new com.D3.NLPBot.ActionCollection(actionLoc);
init();
}
function init() {
var parent = this;
lexiconListener.onLexiconLoaded = function (lexiconObj) {
parent.lexicon = lexiconObj.lexicon;
parent.actionListener.onActionListLoaded = function (obj) {
parent.actionList.removeEventListener("onActionListLoaded", parent.actionListener);
parent.actions = obj.actions;
parent.searchBot = new com.D3.NLPBot.Search(parent.lexicon, parent.actions);
var _local2 = {target:this, type:"onBotReady"};
_local2.success = true;
parent.dispatchEvent(_local2);
};
parent.actionList.addEventListener("onActionListLoaded", parent.actionListener);
parent.actionList.openActionList();
};
lex.addEventListener("onLexiconLoaded", lexiconListener);
lex.openLexicon();
}
function search(query) {
var _local5 = "";
var _local2 = {};
_local2.parent = this;
_local2.onSearchResult = function (resObj) {
this.parent.searchBot.removeEventListener("onSearchResult", this);
var _local2 = {target:this, type:"onSearch"};
_local2.searchResult = resObj.searchResult;
this.parent.dispatchEvent(_local2);
};
searchBot.addEventListener("onSearchResult", _local2);
searchBot.searchQuery(query, 0);
}
var wordCount = 0;
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 38 MovieClip [__Packages.com.D3.NLPBot.Grammar] Frame 0
class com.D3.NLPBot.Grammar
{
var NP, VP, PP, relClause, sentence;
function Grammar () {
NP = new Array();
VP = new Array();
PP = new Array();
relClause = new Array();
sentence = new Array();
}
function grammarDefinition() {
NP[0] = new Array("pronoun");
NP[1] = new Array("name");
NP[2] = new Array("noun");
NP[3] = new Array("article", "noun");
NP[4] = new Array(NP, PP);
NP[5] = new Array(NP, relClause);
VP[0] = new Array("verb");
VP[1] = new Array(VP, NP);
VP[2] = new Array(VP, "adjective");
VP[3] = new Array(VP, PP);
VP[4] = new Array(NP, "adverb");
PP[0] = new Array("preposition", NP);
relClause = new Array("that", VP);
}
function grammarCheck() {
}
function assumption() {
return("verb");
}
}
Symbol 39 MovieClip [__Packages.com.D3.NLPBot.LexiconManager] Frame 0
class com.D3.NLPBot.LexiconManager
{
var lexicon, lexiconLocation, lexiconXML, xmlParser, lexiconListener;
function LexiconManager (lexiconLoc) {
mx.events.EventDispatcher.initialize(this);
lexicon = {};
lexiconLocation = lexiconLoc;
lexiconXML = new XML();
xmlParser = new com.D3.utils.XMLHandler();
}
function openLexicon() {
var parent = this;
lexiconXML.ignoreWhite = true;
lexiconXML.onLoad = function (success) {
parent.parseLexicon(this);
};
lexiconXML.load(lexiconLocation);
}
function parseLexicon(lexiconXML) {
var receiveCount = 0;
lexiconListener = {};
var parent = this;
lexiconListener.onXMLNodeSearch = function (searchObj) {
switch (searchObj.node.nodeName) {
case "noun" :
parent.lexicon.noun = new Array();
var _local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.noun[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.noun[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "pronoun" :
parent.lexicon.pronoun = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.pronoun[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.pronoun[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "verb" :
parent.lexicon.verb = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.verb[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.verb[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "adverb" :
parent.lexicon.adverb = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.adverb[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.adverb[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "preposition" :
parent.lexicon.preposition = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.preposition[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.preposition[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "interjection" :
parent.lexicon.interjection = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.interjection[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.interjection[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "conjunction" :
parent.lexicon.conjunction = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.conjunction[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.conjunction[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "glueList" :
parent.lexicon.glueList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "ignoreList" :
parent.lexicon.ignoreList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "censorList" :
parent.lexicon.censorList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "endNode" :
receiveCount++;
if (receiveCount != 9) {
break;
}
var _local6 = {target:this, type:"onLexiconLoaded"};
_local6.lexicon = parent.lexicon;
parent.dispatchEvent(_local6);
}
};
xmlParser.addEventListener("onXMLNodeSearch", lexiconListener);
xmlParser.findXMLNode(lexiconXML, "noun");
xmlParser.findXMLNode(lexiconXML, "pronoun");
xmlParser.findXMLNode(lexiconXML, "verb");
xmlParser.findXMLNode(lexiconXML, "adverb");
xmlParser.findXMLNode(lexiconXML, "preposition");
xmlParser.findXMLNode(lexiconXML, "interjection");
xmlParser.findXMLNode(lexiconXML, "conjunction");
xmlParser.findXMLNode(lexiconXML, "glueList");
xmlParser.findXMLNode(lexiconXML, "ignoreList");
xmlParser.findXMLNode(lexiconXML, "censorList");
}
function getLexicon() {
return(lexicon);
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 40 MovieClip [__Packages.com.D3.utils.XMLHandler] Frame 0
class com.D3.utils.XMLHandler
{
function XMLHandler () {
mx.events.EventDispatcher.initialize(this);
trace("XMLHandler created");
}
function findXMLNode(XMLFile, XMLnodeName) {
while (XMLFile.nodeType == 1) {
if (XMLFile.nodeName == XMLnodeName) {
var _local5 = {target:this, type:"onXMLNodeSearch"};
_local5.node = XMLFile;
dispatchEvent(_local5);
} else {
if (XMLFile.firstChild.nodeType == 1) {
return(findXMLNode(XMLFile.firstChild, XMLnodeName));
}
if (XMLFile.parentNode.nextSibling.nodeType == 1) {
return(findXMLNode(XMLFile.parentNode.nextSibling, XMLnodeName));
}
}
XMLFile = XMLFile.nextSibling;
}
var _local5 = {target:this, type:"onXMLNodeSearch"};
var _local4 = new XML("<endNode></endNode>");
_local4.nodeName = "endNode";
_local5.node = _local4;
dispatchEvent(_local5);
}
function findXMLNodeByAttribute(XMLFile, XMLnodeName, XMLAttribute, XMLAttributeValue) {
while (XMLFile.nodeType == 1) {
if (XMLFile.nodeName == XMLnodeName) {
if (XMLFile.attributes[XMLAttribute] == XMLAttributeValue) {
var _local3 = {target:this, type:"onXMLNodeAttributeSearch"};
_local3.node = XMLFile;
_local3.searchAttribute = XMLAttributeValue;
dispatchEvent(_local3);
}
} else if (XMLFile.firstChild.nodeType == 1) {
findXMLNodeByAttribute(XMLFile.firstChild, XMLnodeName, XMLAttribute, XMLAttributeValue);
}
XMLFile = XMLFile.nextSibling;
}
}
function returnAsType(typeToReturn) {
}
function toString() {
return("XMLFetcher component version 0.8");
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 41 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1};
}
Symbol 42 MovieClip [__Packages.com.D3.NLPBot.ActionCollection] Frame 0
class com.D3.NLPBot.ActionCollection
{
var clipLocation, clipList, clipXML, xmlParser;
function ActionCollection (clipLoc) {
mx.events.EventDispatcher.initialize(this);
clipLocation = clipLoc;
clipList = new Array();
clipXML = new XML();
xmlParser = new com.D3.utils.XMLHandler();
}
function openActionList() {
var parent = this;
clipXML.ignoreWhite = true;
clipXML.onLoad = function (success) {
return(parent.parseActionList(this));
};
clipXML.load(clipLocation);
}
function parseActionList(XMLObj) {
var _local6 = {};
var parent = this;
_local6.onXMLNodeSearch = function (obj) {
var _local4 = obj.node.childNodes;
var _local2 = 0;
while (_local2 < _local4.length) {
parent.clipList[_local2] = new Array();
parent.clipList[_local2].object = _local4[_local2].firstChild.firstChild.attributes.value;
parent.clipList[_local2].action = _local4[_local2].firstChild.firstChild.nextSibling.attributes.value;
parent.clipList[_local2].location = _local4[_local2].firstChild.firstChild.nextSibling.nextSibling.attributes.value;
parent.clipList[_local2].relation = _local4[_local2].firstChild.firstChild.nextSibling.nextSibling.nextSibling.attributes.value;
parent.clipList[_local2].directory = _local4[_local2].firstChild.nextSibling.attributes.value;
parent.clipList[_local2].names = new Array();
parent.clipList[_local2].followup = new Array();
var _local3 = 0;
while (_local3 < _local4[_local2].firstChild.nextSibling.nextSibling.childNodes.length) {
parent.clipList[_local2].names[_local3] = _local4[_local2].firstChild.nextSibling.nextSibling.childNodes[_local3].attributes.value;
parent.clipList[_local2].followup[_local3] = _local4[_local2].firstChild.nextSibling.nextSibling.childNodes[_local3].attributes.followup;
_local3++;
}
_local2++;
}
var _local5 = {target:this, type:"onActionListLoaded"};
_local5.actions = parent.clipList;
parent.dispatchEvent(_local5);
};
xmlParser.addEventListener("onXMLNodeSearch", _local6);
xmlParser.findXMLNode(XMLObj, "botActions");
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 43 MovieClip [__Packages.com.D3.NLPBot.Search] Frame 0
class com.D3.NLPBot.Search
{
var memory, lexiconReference, clipReference, conjunctionCount, assumption, selectRandom, wordJump, extractedArray, words, phraseStructure, actionQueue, returnArray, searchCategories, broadcastActionPool;
function Search (lexicon, clips) {
mx.events.EventDispatcher.initialize(this);
memory = new com.D3.NLPBot.Memory();
lexiconReference = lexicon;
clipReference = clips;
conjunctionCount = 0;
assumption = "verb";
selectRandom = false;
wordJump = 1;
}
function getTerminalSymbols(query) {
if (query != "hockey night at beer.com") {
trace("here's what you typed: " + query);
var _local3 = 0;
query = query.toLowerCase();
if (extractedArray == undefined) {
extractedArray = new Array();
}
while (_local3 <= query.length) {
if ((((query.charCodeAt(_local3) > 122) || (query.charCodeAt(_local3) < 97)) && (query.charCodeAt(_local3) != 46)) || (_local3 == query.length)) {
if (((query.charCodeAt(0) >= 97) && (query.charCodeAt(0) <= 122)) || (query.charCodeAt(_local3) == 46)) {
var _local4 = query.substr(0, _local3 - 0);
if (!checkForIgnoreWords(_local4)) {
if (checkForCensoredWords(_local4)) {
var _local6 = {target:this, type:"onSearchResult"};
var _local7 = new Array("censor");
_local6.searchResult = _local7;
dispatchEvent(_local6);
return(null);
}
if (_local4.length > 1) {
extractedArray.push(_local4);
}
if (_local3 == query.length) {
var _local5 = searchForGlues(extractedArray);
delete extractedArray;
return(_local5);
}
}
}
if (query.charAt(_local3) != undefined) {
return(getTerminalSymbols(query.substr(_local3 + 1, query.length - _local3)));
}
}
_local3++;
}
} else {
var _local6 = {target:this, type:"onSearchResult"};
var _local7 = new Array(new Array("fight/hockeyFight.flv", "enter/enterRight.flv"));
_local6.searchResult = _local7;
return(dispatchEvent(_local6));
}
}
function searchQuery(sentence, index) {
wordJump = 1;
if (words == undefined) {
words = getTerminalSymbols(sentence);
}
if (phraseStructure == undefined) {
phraseStructure = new Array();
}
if (actionQueue == undefined) {
actionQueue = new Array();
}
if (((words != null) && (words != undefined)) && (words != "")) {
var _local2 = lexiconSearch(words[index], assumption);
var _local3 = lexiconSearch(words[index + 1], assumption);
} else {
return(undefined);
}
if (_local2[0] == "verb") {
if (_local3[0] == "verb") {
phraseStructure.object = _local2[1];
phraseStructure.action = _local3[1];
} else {
phraseStructure.action = _local2[1];
}
assumption = "noun";
} else if (_local2[0] == "adverb") {
phraseStructure.object = _local2[1];
assumption = "verb";
} else if (_local2[0] == "noun") {
phraseStructure.object = _local2[1];
assumption = "verb";
} else if (_local2[0] == "pronoun") {
phraseStructure.relation = _local2[1];
assumption = "verb";
} else if (_local2[0] == "preposition") {
assumption = "noun";
if ((_local3[0] == "pronoun") || (_local3[0] == "noun")) {
if (_local2[1] == "relation") {
phraseStructure.relation = _local3[1];
} else {
phraseStructure.location = _local3[1];
}
wordJump = 2;
}
} else if (_local2[0] == "interjection") {
phraseStructure.action = _local2[1];
} else if (_local2[0] == "conjunction") {
actionQueue.push(phraseStructure);
if (words[index] == "or") {
selectRandom = true;
}
delete phraseStructure;
conjunctionCount++;
}
if ((index >= (words.length - 1)) || (conjunctionCount == 2)) {
assumption = "verb";
actionQueue.push(phraseStructure);
conjunctionCount = 0;
var _local5 = actionQueue;
delete phraseStructure;
delete words;
delete actionQueue;
return(searchClips(_local5, selectRandom));
}
return(searchQuery(sentence, index + wordJump));
}
function lexiconSearch(node, assumption) {
var _local3 = assumption;
var _local7 = 0;
if (returnArray == undefined) {
returnArray = new Array();
}
if ((searchCategories == undefined) || (searchCategories.length == 0)) {
searchCategories = new Array();
for (var _local6 in lexiconReference) {
if (((_local6 != "ignoreList") && (_local6 != "glueList")) && (_local6 != "censorList")) {
searchCategories.push(_local6);
}
}
}
while (searchCategories.length > 0) {
for (var _local6 in lexiconReference[_local3]) {
if (lexiconReference[_local3][_local6].length > 0) {
if ((node == _local6) || (node.substr(0, node.length - 1) == _local6)) {
returnArray[0] = _local3;
returnArray[1] = _local6;
} else {
var _local4 = 0;
while (_local4 < lexiconReference[_local3][_local6].length) {
if ((node == lexiconReference[_local3][_local6][_local4]) || ((node.substr(0, node.length - 1) == lexiconReference[_local3][_local6][_local4]) && (node.substr(node.length - 1, node.length) == "s"))) {
returnArray[0] = _local3;
returnArray[1] = _local6;
}
_local4++;
}
}
} else if ((node == _local6) || ((node.substr(0, node.length - 1) == _local6) && (node.substr(node.length - 1, node.length) == "s"))) {
returnArray[0] = _local3;
returnArray[1] = _local6;
}
}
if (returnArray[0] != undefined) {
var _local5 = returnArray;
delete returnArray;
delete searchCategories;
return(_local5);
}
var _local4 = 0;
while (_local4 < searchCategories.length) {
if (searchCategories[_local4] == _local3) {
searchCategories.splice(_local4, 1);
if (searchCategories[0] != undefined) {
_local3 = searchCategories[0];
}
}
_local4++;
}
_local7++;
}
}
function searchClips(queue, ran) {
var _local4 = 0;
var _local11 = clipReference.length;
var _local5 = 0;
var _local3;
if (broadcastActionPool == undefined) {
broadcastActionPool = new Array();
}
if (ran) {
_local3 = new Array();
_local3.push(queue[Math.round(Math.random() * (queue.length - 1))]);
} else {
_local3 = queue;
}
var _local2 = 0;
while (_local2 < _local3.length) {
var _local6 = new Array();
var _local7 = 1;
trace("---------------------------");
trace("current: " + _local2);
trace("object: " + _local3[_local2].object);
trace("action: " + _local3[_local2].action);
trace("relation:" + _local3[_local2].relation);
trace("location: " + _local3[_local2].location);
trace("---------------------------");
while (_local4 < _local11) {
if ((_local3[_local2].object == clipReference[_local4].object) && (_local3[_local2].object != undefined)) {
_local5 = _local5 + 55;
_local7++;
}
if ((_local3[_local2].action == clipReference[_local4].action) && (_local3[_local2].action != undefined)) {
if (((_local3[_local2].action == "give") || (_local3[_local2].action == "make")) || (_local3[_local2].action == "perform")) {
_local5 = _local5 + 5;
} else {
_local5 = _local5 + 30;
}
_local7++;
}
if ((_local3[_local2].relation == clipReference[_local4].relation) && (_local3[_local2].relation != undefined)) {
_local5 = _local5 + 5;
_local7++;
}
if ((_local3[_local2].location == clipReference[_local4].location) && (_local3[_local2].location != undefined)) {
_local5 = _local5 + 10;
_local7++;
}
if ((_local5 >= 30) && (_local5 < 100)) {
_local6.push(new Array(clipReference[_local4], _local5));
} else if (_local5 == 100) {
var _local9 = memory.memorySearch(_local3[_local2]);
var _local8;
if (_local9 >= clipReference[_local4].names.length) {
memory.clearMemoryBlock(clipReference[_local4]);
var _local10 = clipReference[_local4].names[0];
_local8 = clipReference[_local4].followup[0];
} else {
var _local10 = clipReference[_local4].names[_local9];
_local8 = clipReference[_local4].followup[_local9];
}
_local5 = 0;
if (_local8 != undefined) {
broadcastActionPool.push(new Array(_local10, _local8));
} else {
broadcastActionPool.push(new Array(_local10));
}
break;
}
_local7 = 0;
_local4++;
_local5 = 0;
}
_local4 = 0;
if (_local6.length > 0) {
_local6 = sortClipByValue(_local6);
var _local9 = memory.memorySearch(_local6[0][0]);
if (_local9 >= _local6[0][0].names.length) {
memory.clearMemoryBlock(_local6[0][0]);
var _local10 = _local6[0][0].names[0];
var _local8 = _local6[0][0].followup[0];
} else {
var _local10 = _local6[0][0].names[_local9];
var _local8 = _local6[0][0].followup[_local9];
}
trace("followup value: " + _local8);
if (_local8 != undefined) {
broadcastActionPool.push(new Array(_local10, _local8));
} else {
trace("NO FOLLOWUP FOUND");
broadcastActionPool.push(new Array(_local10));
}
}
_local2++;
}
var _local13 = broadcastActionPool;
delete broadcastActionPool;
var _local12 = {target:this, type:"onSearchResult"};
_local12.searchResult = _local13;
return(dispatchEvent(_local12));
}
function sortClipByValue(clipArray) {
var _local6 = false;
var _local2 = clipArray;
var _local3 = _local2.length;
while (_local3 > 0) {
var _local1 = _local3;
_local1 = 0;
while (_local1 < _local3) {
if (_local2[_local1][1] > _local2[_local1 - 1][1]) {
var _local4 = _local2[_local1 - 1];
_local2[_local1 - 1] = _local2[_local1];
_local2[_local1] = _local4;
}
_local1++;
}
_local3--;
}
var _local5 = 0;
while (_local5 < _local2.length) {
_local5++;
}
return(_local2);
}
function searchForGlues(terminals) {
var _local2 = 0;
var _local4 = 0;
while (_local2 < terminals.length) {
while (_local4 < lexiconReference.glueList.length) {
if ((((terminals[_local2] + " ") + terminals[_local2 + 1]) == lexiconReference.glueList[_local4]) || (((terminals[_local2] + " ") + terminals[_local2 + 1]).substr(0, ((terminals[_local2] + " ") + terminals[_local2 + 1]).length - 1) == lexiconReference.glueList[_local4])) {
terminals.splice(_local2, 2, lexiconReference.glueList[_local4]);
}
_local4++;
}
_local4 = 0;
_local2++;
}
return(terminals);
}
function checkForIgnoreWords(word) {
var _local2 = 0;
while ((_local2++) < lexiconReference.ignoreList.length) {
if (word == lexiconReference.ignoreList[_local2]) {
return(true);
}
}
return(false);
}
function checkForCensoredWords(word) {
var _local2 = 0;
while ((_local2++) < lexiconReference.censorList.length) {
if (word == lexiconReference.censorList[_local2]) {
return(true);
}
}
return(false);
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 44 MovieClip [__Packages.com.D3.NLPBot.Memory] Frame 0
class com.D3.NLPBot.Memory
{
var memoryBlocks;
function Memory () {
memoryBlocks = new Array();
}
function memorySearch(keywordBreakdown) {
var _local2 = 0;
while (_local2 < memoryBlocks.length) {
trace((((((("CURRENT BLOCK: " + memoryBlocks[_local2].object) + "|") + memoryBlocks[_local2].action) + "|") + memoryBlocks[_local2].relation) + "|") + memoryBlocks[_local2].location);
if ((((memoryBlocks[_local2].object == keywordBreakdown.object) && (memoryBlocks[_local2].action == keywordBreakdown.action)) && (memoryBlocks[_local2].relation == keywordBreakdown.relation)) && (memoryBlocks[_local2].location == keywordBreakdown.location)) {
memoryBlocks[_local2].count++;
return(memoryBlocks[_local2].count);
}
_local2++;
}
var _local4 = memoryBlocks.length;
memoryBlocks[_local4] = new Array();
memoryBlocks[_local4].object = keywordBreakdown.object;
memoryBlocks[_local4].action = keywordBreakdown.action;
memoryBlocks[_local4].relation = keywordBreakdown.relation;
memoryBlocks[_local4].location = keywordBreakdown.location;
memoryBlocks[_local4].count = 0;
return(0);
}
function clearMemoryBlock(pattern) {
var _local2 = 0;
while (_local2 < memoryBlocks.length) {
if ((((memoryBlocks[_local2].object == pattern.object) && (memoryBlocks[_local2].action == pattern.action)) && (memoryBlocks[_local2].relation == pattern.relation)) && (memoryBlocks[_local2].location == pattern.location)) {
memoryBlocks.splice(_local2, 1);
}
_local2++;
}
}
}