home *** CD-ROM | disk | FTP | other *** search
- // Copyright 1998,1999 Macromedia, Inc. All rights reserved.
-
- //*************** GLOBALS *****************
-
- var HELP_DOC = '';
-
- var W = ''; //wizard object
- var PERSISTANCE = ''; // the global persistance object
- var PAGE = '';
-
- var ID_defaultInt = "G01";
-
- // Argument constants
-
- //interaction args
- var ARG_intSelf = 0;
- var ARG_intJudgeOnSel = 1;
- var ARG_intAllowMultiSel = 2;
- var ARG_intAllThatApply = 3;
- var ARG_intUnknownIsCorrect = 4;
- var ARG_intDisabled = 5;
- var ARG_intTriesLimit = 6;
- var ARG_intTimeLimit = 7;
- var ARG_intIntId = 8;
- var ARG_intTObjId = 9;
- var ARG_intTType = 10;
- var ARG_intTWeight = 11;
- var ARG_intDoTracking = 12;
- var ARG_dontCare0 = "";
-
- //element args
- var ARG_elementName = 1;
- var ARG_elementInitialValue = 2;
- var ARG_elementExpectedValue = 3;
- var ARG_elementIsCorrect = 4;
- var ARG_elementScore = 5;
-
- var ARG_ibtnIsToggle = 6;
- var ARG_ibtnStateMask = 7;
-
- var ARG_timrNumberOfFrames = 3;
- var ARG_timrTimeLimit = 4;
- var ARG_timrReverseFrames = 5;
-
- var ARG_sldrIValue = 2;
- var ARG_sldrMin = 3;
- var ARG_sldrMax = 4;
- var ARG_sldrUseFloat = 5;
- var ARG_sldrIsVertical = 6;
-
- var ARG_dragIsDraggable = 3;
- var ARG_dragIsTarget = 4;
- var ARG_dragSnapsOnMiss = 5;
- var ARG_dragSnapsOnIncorrect = 6;
-
- //choice args
- var ARG_choiceName = 2;
- var ARG_choiceExpectedValue = 3;
- var ARG_choiceIsCorrect = 4;
- var ARG_choiceScore = 5;
-
- var ARG_textCompMatchCase = 6;
- var ARG_textCompMatchAll = 7;
-
- var ARG_dragTargElement = 1;
- var ARG_dragTargTarget = 2;
- var ARG_dragTargIsCorrect = 3;
- var ARG_dragTargScore = 4;
- var ARG_dragTargTolerance = 5;
- var ARG_dragTargAlignment = 6;
- var ARG_dragTargOffset = 7;
- var ARG_dragTargSnapsTo = 8;
-
- var ARG_actionMgrType = 0;
- var ARG_actionMgrName = 1;
- var ARG_actionMgrData = 2;
-
-
- // Extension Constants
- var EXT_sldrHorz = "_hor";
- var EXT_sldrVert = "_ver";
- var EXT_sldrThumb = "_thm";
- var EXT_sldrTrack = "_trk";
-
- var EXT_ibtnSel = "_sel";
- var EXT_ibtnHlt = "_hlt";
- var EXT_ibtnDis = "_dis";
- var EXT_ibtnSelHlt = "_sel_hlt";
- var EXT_ibtnSelDis = "_sel_dis";
-
- var EXT_thumbnail = "_tnail";
-
-
- // Function Name Constants
- var FN_intName = "new MM_interaction";
- var FN_elemName = "add";
- var FN_actionMgrName = "am";
- var FN_callStart = "(";
- var FN_callEnd = ");";
- var FN_callQuote = "'";
-
-
- // Tag Name Constants
- var TAGNAME_defaultElem = "elem";
- var TAGNAME_imageCode = "Img";
- var TAGNAME_sldrThumbCode = "Thm";
- var TAGNAME_sldrTrackCode = "Trk";
- var TAGNAME_buttonCode = "Btn"
- var TAGNAME_inputCode = "Inp";
- var TAGNAME_inputRadioCode = "RadioInp";
-
- // Menu data arrays
- var MENUDATA_SnapTo = new Array('Center','Left','Right','Top','Bottom');
- var MENUDATA_ChoiceIs = new Array('null',1,0);
-
- // Action Manager constants
- var MENUDATA_amAddType = new Array("segm", "cond", "else", "stop");
-
-
-
- //******************* API **********************
-
- function commandButtons(){
- return new Array(BTN_OK,"wizardOk()",
- BTN_Cancel,"wizardCancel()",
- BTN_Help,"displayHelp()");
- }
-
-
- function wizardOk() {
- window.close();
- W.finish();
- PAGE.insertBehaviorFns(W.src);
- PAGE.removeRedundantFns();
- PAGE.removeEmptyAttainObjs();
- W.setSelection();
- PERSISTANCE.save(); // save the persistance values
- //W = null; // causes onBlur problems on the Mac
- garbageCollect(false);
- }
-
-
- function wizardCancel() {
- window.close();
- if (W) {
- W.finish();
- PERSISTANCE.save(); // save the persistance values
- W.revert();
- }
- //W = null; // causes onBlur problems on the Mac
- garbageCollect(false);
- }
-
-
- function canAcceptCommand() {
- var retVal = false;
- if (DWAext.GALLERY_PAGE) {
- retVal = true;
- } else {
- retVal = (getEnclosingAttainObj() != null);
- }
- return retVal;
- }
-
-
- //improve performance, this hardcodes the expected window size. Without
- //this fn, or if WIZARDSIZE_Autosize is false, DW will render the UI dynamically.
- //IMPORTANT: for internationalization and other UI changes, update the globals.
-
- function WindowDimensions(platform) {
- if (!WIZARDSIZE_Autosize) {
- if (platform.charAt(0) == "m" || platform.charAt(0) == "M") //if Mac
- return WIZARDSIZE_Mac;
- else //else Windows 95 or NT
- return WIZARDSIZE_Win;
- }
- return false;
- }
-
- //***************** LOCAL FUNCTIONS ******************
-
- function initializeUI() {
- var attainObj, theSel;
- var docDOM = dw.getDocumentDOM();
-
- if (!regCheck()) {
- window.close();
- return;
- }
-
- setNewline(); //ensure NEWLINE global matches page
-
- // create and load the global persistance object
- PERSISTANCE = new Persistance(FILE_persist);
- PERSISTANCE.load();
-
- // create the page object
- PAGE = new AttainDOM();
-
- // Initialize the wizard
- W = new AoWizard();
- //Define new layers. Pass the layer name, and adds that name as a hash to the W.p array.
- //These names can then be placed in the order arrays.
- W.p['gallery'] = new pgGallery('gallery');
- W.p['inptInt'] = new pgInt('inptInt');
- W.p['dragInt'] = new pgInt('dragInt');
- W.p['hotaInt'] = new pgInt('hotaInt');
- W.p['textInt'] = new pgInt('textInt');
- W.p['timrInt'] = new pgInt('timrInt');
- W.p['sldrInt'] = new pgInt('sldrInt');
- W.p['ibtnInt'] = new pgInt('ibtnInt');
- W.p['actnInt'] = new pgInt('actnInt');
- W.p['inptElements'] = new pgElements('inptElements');
- W.p['ibt2Elements'] = new pgElements('ibt2Elements');
- W.p['dragElements'] = new pgElements('dragElements');
- W.p['hotaElements'] = new pgElements('hotaElements');
- W.p['textChoices'] = new pgElements('textChoices');
- W.p['timrChoices'] = new pgElements('timrChoices');
- W.p['sldrChoices'] = new pgElements('sldrChoices');
- W.p['dragChoices'] = new pgChoices('dragChoices');
- W.p['checkbox'] = new pgInt('checkbox');
- W.p['actionMgr'] = new pgActionMgr('actionMgr');
- W.p['intTrack'] = new pgTrack('intTrack');
- //Create new orderings for walking through the wizard.
- //Templates request which ordering to be used by setting their ELEMTYPE
- //attribut to one of the following:
- // - inpt (form buttons, radios, and checkboxes)
- // - ibtn (image buttons and images)
- // - hota (hot area layers)
- // - text (form text input)
- // - sldr (slider layers)
- // - timr (timers - visible or invisible)
- // - drag (drag and drop layers)
- // - actn (action manager only - no elements)
- //Type "gall" is the dummy until a template has been read in.
- W.order['gall'] = new Array("gallery");
- W.order['inpt'] = new Array("gallery", "inptInt", "inptElements","actionMgr");
- W.order['ibt2'] = new Array("gallery", "inptInt", "ibt2Elements", "actionMgr");
- W.order['drag'] = new Array("gallery", "dragInt", "dragElements", "dragChoices", "actionMgr");
- W.order['hota'] = new Array("gallery", "hotaInt", "hotaElements", "actionMgr");
- W.order['text'] = new Array("gallery", "textInt", "textChoices", "actionMgr");
- W.order['timr'] = new Array("gallery", "timrInt", "timrChoices", "actionMgr");
- W.order['sldr'] = new Array("gallery", "sldrInt", "sldrChoices", "actionMgr");
- W.order['ibtn'] = new Array("gallery", "ibtnInt", "actionMgr");
- W.order['actn'] = new Array("gallery", "actnInt", "actionMgr");
-
- if (!DWAext.GALLERY_PAGE) {
- attainObj = getEnclosingAttainObj();
- theSel = docDOM.nodeToOffsets(attainObj);
- W.editSelection(theSel);
- } else {
- if (!isValidIp()) {
- alert(MSG_invalidIP);
- window.close();
- return;
- }
- DWAext.GALLERY_PAGE = false;
- W.loadGallery();
- }
- W.start();
- }
-
- function isValidIp() {
- var docSel, currElem, retVal = false;
- var docDOM = dw.getDocumentDOM();
- docSel = docDOM.getSelection();
- currElem = docDOM.offsetsToNode(docSel[0],docSel[1]);
- while (currElem != null && !retVal) {
- retVal = (currElem.nodeType == Node.ELEMENT &&
- currElem.tagName == "BODY");
- currElem = currElem.parentNode;
- }
- return retVal;
- }
-
-
- function getResource(resCode, p1, p2, p3, p4, p5, p6, p7, p8, p9) {
- var retVal = false;
-
- if (resCode == "TAG_newImage")
- retVal = "<IMG NAME=\"%1\" SRC=\"%2\"" + (PREF_imageAttributes?" ":"") +
- PREF_imageAttributes + ">";
- else if (resCode == "NAME_newElem")
- retVal = PREF_newElemName + "%1";
- else if (resCode == "VALUE_defaultTriesLimit")
- retVal = PREF_defaultTriesLimit.toString();
- else if (resCode == "VALUE_defaultTimeLimit")
- retVal = PREF_defaultTimeLimit.toString();
- else if (resCode == "VALUE_defaultJudgeBtnName")
- retVal = PREF_defaultJudgeBtnName;
- else if (resCode == "VALUE_defaultResetBtnName")
- retVal = PREF_defaultResetBtnName;
- else if (resCode == "ATTR_layerStyle")
- retVal = "position:absolute;" + (PREF_layerStyle?" ":"") + PREF_layerStyle;
- else if (resCode == "TAG_newBackdropLayer")
- retVal = "<DIV id=\"%1\" style=\"position:absolute;" +
- (PREF_backdropLayerStyle?" ":"") + PREF_backdropLayerStyle + "\">" +
- NEWLINE + "<IMG NAME=\"%2\" SRC=\"%3\"></DIV>";
- else if (resCode == "FN_newAmTree")
- retVal = "am(\'segm\',\'Segment\',1,0)";
- else if (resCode == "FN_newAmCond")
- retVal = "am(\'cond\',\'Condition\',\'\',0)";
- else if (resCode == "FN_newAmElse")
- retVal = "am(\'cond\',\'else\',\'true\',0)";
- else if (resCode == "FN_newAmStop")
- retVal = "am(\'actn\',\'stop\',\'stop\',\'\')";
- else if (resCode == "FN_newAmActn")
- retVal = "am(\'actn\',\'Action\',\'\',\'\')";
- else if (resCode == "FN_newAmEnd")
- retVal = "am(\'end\')";
- else if (resCode == "FN_newElemDistCond")
- retVal = "G01.e[\\'%1\\'].selected == true";
- else if (resCode == "FN_newChoiceDistCond")
- retVal = "G01.e[\\'%1\\'].c[\\'%2\\'].selected == true";
- else if (resCode == "FN_newDistractor")
- retVal = " G01.am(\'segm\',\'Segment: %1 Feedback\',%3,0);"+NEWLINE+
- " G01.am(\'cond\',\'%1 Selected\',\'%2\',0);"+NEWLINE+
- " G01.am(\'end\');"+NEWLINE;
- else if (resCode == "FN_newDragPair")
- retVal = " G01.add(\'dragTarg\',\'Drag1\',\'Target1\',null,0,75,\'Center\',\'0:0\',1);"+NEWLINE;
- else if (resCode == "FN_indent")
- retVal = " ";
- else if (resCode == "TAG_newJudgeBtn")
- retVal = '<INPUT NAME="%1" TYPE="button" VALUE="' +
- PREF_defaultJudgeBtnName + '" onClick="MM_judgeInt(\'%2\')">';
- else if (resCode == "TAG_newResetBtn")
- retVal = '<INPUT NAME="%1" TYPE="button" VALUE="' +
- PREF_defaultResetBtnName + '" onClick="MM_resetInt(\'%2\',\'reset\')">';
- else if (resCode == "TAG_newControlFrm")
- retVal = '<FORM NAME="%1"></FORM>';
- else if (resCode == "TAG_newBackdropImg")
- retVal = '<IMG NAME="%1" SRC="%2">';
- else if (resCode == "NAME_newJudgeBtn")
- retVal = '%1judge';
- else if (resCode == "NAME_newResetBtn")
- retVal = '%1reset';
- else if (resCode == "NAME_newControlFrm")
- retVal = '%1controls';
- else if (resCode == "NAME_newBackdropImg")
- retVal = '%1backdropImg';
- else if (resCode == "NAME_newBackdropLayer")
- retVal = '%1backdrop';
- else if (resCode == "NAME_newQuestionCnt")
- retVal = '%1question';
-
- retVal = replaceSub(retVal, "%1", p1?p1:"");
- retVal = replaceSub(retVal, "%2", p2?p2:"");
- retVal = replaceSub(retVal, "%3", p3?p3:"");
- retVal = replaceSub(retVal, "%4", p4?p4:"");
- retVal = replaceSub(retVal, "%5", p5?p5:"");
- retVal = replaceSub(retVal, "%6", p6?p6:"");
- retVal = replaceSub(retVal, "%7", p7?p7:"");
- retVal = replaceSub(retVal, "%8", p8?p8:"");
- retVal = replaceSub(retVal, "%9", p9?p9:"");
-
- return retVal
- }
-
-
- function setResource(resCode) {
- var retVal = false;
- return retVal
- }
-
-
-
-