// Copyright 1998,1999 Macromedia, Inc. All rights reserved. //Constructs a hot area element function MM_hota(theParent, theName, theInitialValue, theExpectedValue, theIsCorrect, theScore) { // properties this.initialValue = theInitialValue; this.value = ''; this.disabled = false; this.expectedValue = theExpectedValue; this.isCorrect = theIsCorrect; this.score = theScore; this.selected = false; this._parent = theParent; this._name = theName; this._self = theParent._self+".e['"+theName+"']"; this._obj = ''; this.c = new Array(this); // NOTE: choice info stored on the element. // member functions this.reset = MM_hotaReset; this.init = MM_hotaInit; this.initBackdrop = MM_hotaInitBackdrop; this.enable = MM_hotaEnable; this.disable = MM_hotaDisable; this.setDisabled = MM_hotaSetDisabled; this.update = MM_hotaUpdate; this.validValue = MM_hotaValidValue; this.changeValue = MM_hotaChangeValue; this.setValue = MM_hotaSetValue; this.setSelected = MM_hotaSetSelected; } //Resets the element function MM_hotaReset() { var isChanged = ''; if (this._obj) with (this) { isChanged = (value != initialValue); value = initialValue; disabled = _parent.disabled; validValue(); if (isChanged && this.onChange != null) onChange(_parent._self+_name, value); } } function MM_hotaInit() { with (this) { _obj = MM_intFindObject(_parent._self + _name); //find slider layer object if (_obj) if (_parent.browserIsIE && _parent.osIsMac) { _obj.style.width = ""; _obj.style.height = ""; } MM_dragLayer(_parent._self + _name,'',0,0,0,0,false,false,0,0,0,0,false,false,0,_self + '.update()',true); initBackdrop(); } } function MM_hotaInitBackdrop() { var theObj; if (this._parent.bdInited == null) with (this) { _parent.bdInited = true; theObj = MM_intFindObject(_parent._self + "backdrop"); // find backdrop layer object if (theObj) { if (_parent.browserIsIE && _parent.osIsMac) { theObj.style.width = ""; theObj.style.height = ""; } document.allLayers = null; MM_dragLayer(_parent._self + "backdrop",'',0,0,0,0,false,false,0,0,0,0,false,false,0, "MM_hotaUpdateBackdrop(" + _parent._self + ")",true); } } } //Enables the element function MM_hotaEnable() { if (this._obj) with (this) { disabled = false; } } //Disables the element function MM_hotaDisable() { this.disabled = true; } //Calls the approppriate disable or enable function function MM_hotaSetDisabled(theDisabled) { if (theDisabled) this.disable(); else this.enable(); } //Called by onClick event to update this elements value function MM_hotaUpdate() { if (!this.disabled) with (this) { changeValue((_parent.allowMultiSel) ? !value : true); _parent.update(); // call the parent's update } } function MM_hotaValidValue() { this.selected = (this.value == this.expectedValue); return this.selected; } function MM_hotaChangeValue(theValue) { var i, isChanged = '', isReset = ''; with (this) { isChanged = (value != theValue); if (!_parent.allowMultiSel) { value = theValue; for (i in _parent.e) if (i != 'length') with (_parent) { if (e[i] != this) { isReset = (e[i].value != false); e[i].value = false; } e[i].validValue(); if (e[i] != this && isReset && e[i].onChange != null) e[i].onChange(e[i]._parent._self+e[i]._name, e[i].value); } } else { value = theValue; validValue(); } if (isChanged && this.onChange != null) onChange(_parent._self+_name, value); } } function MM_hotaSetValue(theValue) { with (this) { changeValue(theValue); _parent.update(true); // update int, but don't judge } } function MM_hotaSetSelected(theSelected) { if (theSelected) this.setValue(this.expectedValue); else this.setValue(!this.expectedValue); } function MM_hotaUpdateBackdrop(theParent) { if (!theParent.allowMultiSel) { theParent.resetElems(); theParent.update(); } }