Parcourir la source

Remove old Hotspot library - refs #7705

Angel Fernando Quiroz Campos il y a 9 ans
Parent
commit
bfb797c5a4

+ 0 - 112
main/exercice/admin.php

@@ -347,118 +347,6 @@ $htmlHeadXtra[] = api_get_js('d3/jquery.xcolor.js');
 $htmlHeadXtra[] = '<link rel="stylesheet" href="' . api_get_path(WEB_LIBRARY_JS_PATH) . 'hotspot/css/hotspot.css">';
 $htmlHeadXtra[] = '<script src="' . api_get_path(WEB_LIBRARY_JS_PATH) . 'hotspot/js/hotspot.js"></script>';
 
-$htmlHeadXtra[] = "<script type=\"text/javascript\" src=\"../plugin/hotspot/JavaScriptFlashGateway.js\"></script>
-<script language=\"JavaScript\" type=\"text/javascript\">
-<!--
-// -----------------------------------------------------------------------------
-// Globals
-// Major version of Flash required
-var requiredMajorVersion = 7;
-// Minor version of Flash required
-var requiredMinorVersion = 0;
-// Minor version of Flash required
-var requiredRevision = 0;
-// the version of javascript supported
-var jsVersion = 1.0;
-// -----------------------------------------------------------------------------
-// -->
-</script>
-<script language=\"VBScript\" type=\"text/vbscript\">
-<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
-Function VBGetSwfVer(i)
-  on error resume next
-  Dim swControl, swVersion
-  swVersion = 0
-
-  set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
-  if (IsObject(swControl)) then
-    swVersion = swControl.GetVariable(\"\$version\")
-  end if
-  VBGetSwfVer = swVersion
-End Function
-// -->
-</script>
-
-<script language=\"JavaScript1.1\" type=\"text/javascript\">
-<!-- // Detect Client Browser type
-var isIE  = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;
-var isWin = (navigator.appVersion.toLowerCase().indexOf(\"win\") != -1) ? true : false;
-var isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1) ? true : false;
-jsVersion = 1.1;
-// JavaScript helper required to detect Flash Player PlugIn version information
-function JSGetSwfVer(i){
-	// NS/Opera version >= 3 check for Flash plugin in plugin array
-	if (navigator.plugins != null && navigator.plugins.length > 0) {
-		if (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]) {
-			var swVer2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
-      		var flashDescription = navigator.plugins[\"Shockwave Flash\" + swVer2].description;
-			descArray = flashDescription.split(\" \");
-			tempArrayMajor = descArray[2].split(\".\");
-			versionMajor = tempArrayMajor[0];
-			versionMinor = tempArrayMajor[1];
-			if ( descArray[3] != \"\" ) {
-				tempArrayMinor = descArray[3].split(\"r\");
-			} else {
-				tempArrayMinor = descArray[4].split(\"r\");
-			}
-      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
-            flashVer = versionMajor + \".\" + versionMinor + \".\" + versionRevision;
-      	} else {
-			flashVer = -1;
-		}
-	}
-	// MSN/WebTV 2.6 supports Flash 4
-	else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.6\") != -1) flashVer = 4;
-	// WebTV 2.5 supports Flash 3
-	else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.5\") != -1) flashVer = 3;
-	// older WebTV supports Flash 2
-	else if (navigator.userAgent.toLowerCase().indexOf(\"webtv\") != -1) flashVer = 2;
-	// Can't detect in all other cases
-	else {
-
-		flashVer = -1;
-	}
-	return flashVer;
-}
-// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
-function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
-{
- 	reqVer = parseFloat(reqMajorVer + \".\" + reqRevision);
-   	// loop backwards through the versions until we find the newest version
-	for (i=25;i>0;i--) {
-		if (isIE && isWin && !isOpera) {
-			versionStr = VBGetSwfVer(i);
-		} else {
-			versionStr = JSGetSwfVer(i);
-		}
-		if (versionStr == -1 ) {
-			return false;
-		} else if (versionStr != 0) {
-			if(isIE && isWin && !isOpera) {
-				tempArray         = versionStr.split(\" \");
-				tempString        = tempArray[1];
-				versionArray      = tempString .split(\",\");
-			} else {
-				versionArray      = versionStr.split(\".\");
-			}
-			versionMajor      = versionArray[0];
-			versionMinor      = versionArray[1];
-			versionRevision   = versionArray[2];
-
-			versionString     = versionMajor + \".\" + versionRevision;   // 7.0r24 == 7.24
-			versionNum        = parseFloat(versionString);
-        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
-			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
-				return true;
-			} else {
-				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
-			}
-		}
-	}
-}
-// -->
-</script>";
-
 Display::display_header($nameTools,'Exercise');
 /*
 if ($objExercise->exercise_was_added_in_lp) {

+ 1 - 111
main/exercice/exercise.class.php

@@ -2101,117 +2101,7 @@ class Exercise
      */
     public function show_lp_javascript()
     {
-        return "<script type=\"text/javascript\" src=\"../plugin/hotspot/JavaScriptFlashGateway.js\"></script>
-                <script language=\"JavaScript\" type=\"text/javascript\">
-                <!--
-                // -----------------------------------------------------------------------------
-                // Globals
-                // Major version of Flash required
-                var requiredMajorVersion = 7;
-                // Minor version of Flash required
-                var requiredMinorVersion = 0;
-                // Minor version of Flash required
-                var requiredRevision = 0;
-                // the version of javascript supported
-                var jsVersion = 1.0;
-                // -----------------------------------------------------------------------------
-                // -->
-                </script>
-                <script language=\"VBScript\" type=\"text/vbscript\">
-                <!-- // Visual basic helper required to detect Flash Player ActiveX control version information
-                Function VBGetSwfVer(i)
-                  on error resume next
-                  Dim swControl, swVersion
-                  swVersion = 0
-
-                  set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
-                  if (IsObject(swControl)) then
-                    swVersion = swControl.GetVariable(\"\$version\")
-                  end if
-                  VBGetSwfVer = swVersion
-                End Function
-                // -->
-                </script>
-
-                <script language=\"JavaScript1.1\" type=\"text/javascript\">
-                <!-- // Detect Client Browser type
-                var isIE  = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;
-                var isWin = (navigator.appVersion.toLowerCase().indexOf(\"win\") != -1) ? true : false;
-                var isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1) ? true : false;
-                jsVersion = 1.1;
-                // JavaScript helper required to detect Flash Player PlugIn version information
-                function JSGetSwfVer(i){
-                    // NS/Opera version >= 3 check for Flash plugin in plugin array
-                    if (navigator.plugins != null && navigator.plugins.length > 0) {
-                        if (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]) {
-                            var swVer2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
-                            var flashDescription = navigator.plugins[\"Shockwave Flash\" + swVer2].description;
-                            descArray = flashDescription.split(\" \");
-                            tempArrayMajor = descArray[2].split(\".\");
-                            versionMajor = tempArrayMajor[0];
-                            versionMinor = tempArrayMajor[1];
-                            if ( descArray[3] != \"\" ) {
-                                tempArrayMinor = descArray[3].split(\"r\");
-                            } else {
-                                tempArrayMinor = descArray[4].split(\"r\");
-                            }
-                            versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
-                            flashVer = versionMajor + \".\" + versionMinor + \".\" + versionRevision;
-                        } else {
-                            flashVer = -1;
-                        }
-                    }
-                    // MSN/WebTV 2.6 supports Flash 4
-                    else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.6\") != -1) flashVer = 4;
-                    // WebTV 2.5 supports Flash 3
-                    else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.5\") != -1) flashVer = 3;
-                    // older WebTV supports Flash 2
-                    else if (navigator.userAgent.toLowerCase().indexOf(\"webtv\") != -1) flashVer = 2;
-                    // Can't detect in all other cases
-                    else {
-
-                        flashVer = -1;
-                    }
-                    return flashVer;
-                }
-                // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
-                function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
-                {
-                    reqVer = parseFloat(reqMajorVer + \".\" + reqRevision);
-                    // loop backwards through the versions until we find the newest version
-                    for (i=25;i>0;i--) {
-                        if (isIE && isWin && !isOpera) {
-                            versionStr = VBGetSwfVer(i);
-                        } else {
-                            versionStr = JSGetSwfVer(i);
-                        }
-                        if (versionStr == -1 ) {
-                            return false;
-                        } else if (versionStr != 0) {
-                            if(isIE && isWin && !isOpera) {
-                                tempArray         = versionStr.split(\" \");
-                                tempString        = tempArray[1];
-                                versionArray      = tempString .split(\",\");
-                            } else {
-                                versionArray      = versionStr.split(\".\");
-                            }
-                            versionMajor      = versionArray[0];
-                            versionMinor      = versionArray[1];
-                            versionRevision   = versionArray[2];
-
-                            versionString     = versionMajor + \".\" + versionRevision;   // 7.0r24 == 7.24
-                            versionNum        = parseFloat(versionString);
-                            // is the major.revision >= requested major.revision AND the minor version >= requested minor
-                            if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
-                                return true;
-                            } else {
-                                return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
-                            }
-                        }
-                    }
-                }
-                // -->
-                </script>";
+        return "";
     }
 
     /**

+ 0 - 3
main/exercice/export/scorm/scorm_classes.php

@@ -566,9 +566,6 @@ class ScormAnswerHotspot extends Answer
 	{
 		if ($this->standalone) {
 			$header = '<script type="text/javascript" language="javascript">';
-			$header .= file_get_contents('../plugin/hotspot/JavaScriptFlashGateway.js');
-			$header .= '</script>';
-			$header .= '<script type="text/javascript" language="javascript">';
 			$header .= file_get_contents('../inc/lib/javascript/hotspot/js/hotspot.js');
 			$header .= '</script>';
 			//because this header closes so many times the <script> tag, we have to reopen our own

+ 0 - 455
main/plugin/hotspot/JavaScriptFlashGateway.js

@@ -1,455 +0,0 @@
-/*
-Macromedia(r) Flash(r) JavaScript Integration Kit License
-
-
-Copyright (c) 2005 Macromedia, inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-3. The end-user documentation included with the redistribution, if any, must
-include the following acknowledgment:
-
-"This product includes software developed by Macromedia, Inc.
-(http://www.macromedia.com)."
-
-Alternately, this acknowledgment may appear in the software itself, if and
-wherever such third-party acknowledgments normally appear.
-
-4. The name Macromedia must not be used to endorse or promote products derived
-from this software without prior written permission. For written permission,
-please contact devrelations@macromedia.com.
-
-5. Products derived from this software may not be called "Macromedia" or
-"Macromedia Flash", nor may "Macromedia" or "Macromedia Flash" appear in their
-name.
-
-THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MACROMEDIA OR
-ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
---
-
-This code is part of the Flash / JavaScript Integration Kit:
-http://www.macromedia.com/go/flashjavascript/
-
-Created by:
-
-Christian Cantrell
-http://weblogs.macromedia.com/cantrell/
-mailto:cantrell@macromedia.com
-
-Mike Chambers
-http://weblogs.macromedia.com/mesh/
-mailto:mesh@macromedia.com
-
-Macromedia
-*/
-
-/**
- * Create a new Exception object.
- * name: The name of the exception.
- * message: The exception message.
- */
-function Exception(name, message)
-{
-    if (name)
-        this.name = name;
-    if (message)
-        this.message = message;
-}
-
-/**
- * Set the name of the exception. 
- */
-Exception.prototype.setName = function(name)
-{
-    this.name = name;
-}
-
-/**
- * Get the exception's name. 
- */
-Exception.prototype.getName = function()
-{
-    return this.name;
-}
-
-/**
- * Set a message on the exception. 
- */
-Exception.prototype.setMessage = function(msg)
-{
-    this.message = msg;
-}
-
-/**
- * Get the exception message. 
- */
-Exception.prototype.getMessage = function()
-{
-    return this.message;
-}
-
-/**
- * Generates a browser-specific Flash tag. Create a new instance, set whatever
- * properties you need, then call either toString() to get the tag as a string, or
- * call write() to write the tag out.
- */
-
-/**
- * Creates a new instance of the FlashTag.
- * src: The path to the SWF file.
- * width: The width of your Flash content.
- * height: the height of your Flash content.
- */
-function FlashTag(src, width, height)
-{
-    this.src       = src;
-    this.width     = width;
-    this.height    = height;
-    this.version   = '7,0,14,0';
-    this.id        = null;
-    this.bgcolor   = 'ffffff';
-    this.flashVars = null;
-}
-
-/**
- * Sets the Flash version used in the Flash tag.
- */
-FlashTag.prototype.setVersion = function(v)
-{
-    this.version = v;
-}
-
-/**
- * Sets the ID used in the Flash tag.
- */
-FlashTag.prototype.setId = function(id)
-{
-    this.id = id;
-}
-
-/**
- * Sets the background color used in the Flash tag.
- */
-FlashTag.prototype.setBgcolor = function(bgc)
-{
-    this.bgcolor = bgc;
-}
-
-/**
- * Sets any variables to be passed into the Flash content. 
- */
-FlashTag.prototype.setFlashvars = function(fv)
-{
-    this.flashVars = fv;
-}
-
-/**
- * Get the Flash tag as a string. 
- */
-FlashTag.prototype.toString = function()
-{
-    var ie = (navigator.appName.indexOf ("Microsoft") != -1) ? 1 : 0;
-    var flashTag = new String();
-    if (ie)
-    {
-        flashTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
-        if (this.id != null)
-        {
-            flashTag += 'id="'+this.id+'" ';
-        }
-        flashTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.version+'" ';
-        flashTag += 'width="'+this.width+'" ';
-        flashTag += 'height="'+this.height+'">';
-        flashTag += '<param name="movie" value="'+this.src+'"/>';
-        flashTag += '<param name="quality" value="high"/>';
-        flashTag += '<param name="bgcolor" value="#'+this.bgcolor+'"/>';
-        if (this.flashVars != null)
-        {
-            flashTag += '<param name="flashvars" value="'+this.flashVars+'"/>';
-        }
-        flashTag += '</object>';
-    }
-    else
-    {
-        flashTag += '<embed src="'+this.src+'" ';
-        flashTag += 'quality="high" '; 
-        flashTag += 'bgcolor="#'+this.bgcolor+'" ';
-        flashTag += 'width="'+this.width+'" ';
-        flashTag += 'height="'+this.height+'" ';
-        flashTag += 'type="application/x-shockwave-flash" ';
-        if (this.flashVars != null)
-        {
-            flashTag += 'flashvars="'+this.flashVars+'" ';
-        }
-        if (this.id != null)
-        {
-            flashTag += 'name="'+this.id+'" ';
-        }
-        flashTag += 'pluginspage="http://www.macromedia.com/go/getflashplayer">';
-        flashTag += '</embed>';
-    }
-    return flashTag;
-}
-
-/**
- * Write the Flash tag out. Pass in a reference to the document to write to. 
- */
-FlashTag.prototype.write = function(doc)
-{
-    doc.write(this.toString());
-}
-
-/**
- * The FlashSerializer serializes JavaScript variables of types object, array, string,
- * number, date, boolean, null or undefined into XML. 
- */
-
-/**
- * Create a new instance of the FlashSerializer.
- * useCdata: Whether strings should be treated as character data. If false, strings are simply XML encoded.
- */
-function FlashSerializer(useCdata)
-{
-    this.useCdata = useCdata;
-}
-
-/**
- * Serialize an array into a format that can be deserialized in Flash. Supported data types are object,
- * array, string, number, date, boolean, null, and undefined. Returns a string of serialized data.
- */
-FlashSerializer.prototype.serialize = function(args)
-{
-    var qs = new String();
-
-    for (var i = 0; i < args.length; ++i)
-    {
-        switch(typeof(args[i]))
-        {
-            case 'undefined':
-                qs += 't'+(i)+'=undf';
-                break;
-            case 'string':
-                qs += 't'+(i)+'=str&d'+(i)+'='+escape(args[i]);
-                break;
-            case 'number':
-                qs += 't'+(i)+'=num&d'+(i)+'='+escape(args[i]);
-                break;
-            case 'boolean':
-                qs += 't'+(i)+'=bool&d'+(i)+'='+escape(args[i]);
-                break;
-            case 'object':
-                if (args[i] == null)
-                {
-                    qs += 't'+(i)+'=null';
-                }
-                else if (args[i] instanceof Date)
-                {
-                    qs += 't'+(i)+'=date&d'+(i)+'='+escape(args[i].getTime());
-                }
-                else // array or object
-                {
-                    try
-                    {
-                        qs += 't'+(i)+'=xser&d'+(i)+'='+escape(this._serializeXML(args[i]));
-                    }
-                    catch (exception)
-                    {
-                        throw new Exception("FlashSerializationException",
-                                            "The following error occurred during complex object serialization: " + exception.getMessage());
-                    }
-                }
-                break;
-            default:
-                throw new Exception("FlashSerializationException",
-                                    "You can only serialize strings, numbers, booleans, dates, objects, arrays, nulls, and undefined.");
-        }
-
-        if (i != (args.length - 1))
-        {
-            qs += '&';
-        }
-    }
-
-    return qs;
-}
-
-/**
- * Private
- */
-FlashSerializer.prototype._serializeXML = function(obj)
-{
-    var doc = new Object();
-    doc.xml = '<fp>'; 
-    this._serializeNode(obj, doc, null);
-    doc.xml += '</fp>'; 
-    return doc.xml;
-}
-
-/**
- * Private
- */
-FlashSerializer.prototype._serializeNode = function(obj, doc, name)
-{
-    switch(typeof(obj))
-    {
-        case 'undefined':
-            doc.xml += '<undf'+this._addName(name)+'/>';
-            break;
-        case 'string':
-            doc.xml += '<str'+this._addName(name)+'>'+this._escapeXml(obj)+'</str>';
-            break;
-        case 'number':
-            doc.xml += '<num'+this._addName(name)+'>'+obj+'</num>';
-            break;
-        case 'boolean':
-            doc.xml += '<bool'+this._addName(name)+' val="'+obj+'"/>';
-            break;
-        case 'object':
-            if (obj == null)
-            {
-                doc.xml += '<null'+this._addName(name)+'/>';
-            }
-            else if (obj instanceof Date)
-            {
-                doc.xml += '<date'+this._addName(name)+'>'+obj.getTime()+'</date>';
-            }
-            else if (obj instanceof Array)
-            {
-                doc.xml += '<array'+this._addName(name)+'>';
-                for (var i = 0; i < obj.length; ++i)
-                {
-                    this._serializeNode(obj[i], doc, null);
-                }
-                doc.xml += '</array>';
-            }
-            else
-            {
-                doc.xml += '<obj'+this._addName(name)+'>';
-                for (var n in obj)
-                {
-                    if (typeof(obj[n]) == 'function')
-                        continue;
-                    this._serializeNode(obj[n], doc, n);
-                }
-                doc.xml += '</obj>';
-            }
-            break;
-        default:
-            throw new Exception("FlashSerializationException",
-                                "You can only serialize strings, numbers, booleans, objects, dates, arrays, nulls and undefined");
-            break;
-    }
-}
-
-/**
- * Private
- */
-FlashSerializer.prototype._addName= function(name)
-{
-    if (name != null)
-    {
-        return ' name="'+name+'"';
-    }
-    return '';
-}
-
-/**
- * Private
- */
-FlashSerializer.prototype._escapeXml = function(str)
-{
-    if (this.useCdata)
-        return '<![CDATA['+str+']]>';
-    else
-        return str.replace(/&/g,'&amp;').replace(/</g,'&lt;');
-}
-
-/**
- * The FlashProxy object is what proxies function calls between JavaScript and Flash.
- * It handles all argument serialization issues.
- */
-
-/**
- * Instantiates a new FlashProxy object. Pass in a uniqueID and the name (including the path)
- * of the Flash proxy SWF. The ID is the same ID that needs to be passed into your Flash content as lcId.
- */
-function FlashProxy(uid, proxySwfName)
-{
-    this.uid = uid;
-    this.proxySwfName = proxySwfName;
-    this.flashSerializer = new FlashSerializer(false);
-}
-
-/**
- * Call a function in your Flash content.  Arguments should be:
- * 1. ActionScript function name to call,
- * 2. any number of additional arguments of type object,
- *    array, string, number, boolean, date, null, or undefined. 
- */
-FlashProxy.prototype.call = function()
-{
-
-    if (arguments.length == 0)
-    {
-        throw new Exception("Flash Proxy Exception",
-                            "The first argument should be the function name followed by any number of additional arguments.");
-    }
-
-    var qs = 'lcId=' + escape(this.uid) + '&functionName=' + escape(arguments[0]);
-
-    if (arguments.length > 1)
-    {
-        var justArgs = new Array();
-        for (var i = 1; i < arguments.length; ++i)
-        {
-            justArgs.push(arguments[i]);
-        }
-        qs += ('&' + this.flashSerializer.serialize(justArgs));
-    }
-
-    var divName = '_flash_proxy_' + this.uid;
-    if(!document.getElementById(divName))
-    {
-        var newTarget = document.createElement("div");
-        newTarget.id = divName;
-        document.body.appendChild(newTarget);
-    }
-    var target = document.getElementById(divName);
-    var ft = new FlashTag(this.proxySwfName, 1, 1);
-    ft.setVersion('6,0,65,0');
-    ft.setFlashvars(qs);
-    target.innerHTML = ft.toString();
-}
-
-/**
- * This is the function that proxies function calls from Flash to JavaScript.
- * It is called implicitly.
- */
-FlashProxy.callJS = function()
-{
-    var functionToCall = eval(arguments[0]);
-    var argArray = new Array();
-    for (var i = 1; i < arguments.length; ++i)
-    {
-        argArray.push(arguments[i]);
-    }
-    functionToCall.apply(functionToCall, argArray);
-}
-

BIN
main/plugin/hotspot/JavaScriptFlashGateway.swf


+ 0 - 199
main/plugin/hotspot/com/macromedia/javascript/JavaScriptProxy.as

@@ -1,199 +0,0 @@
-/*
-	JavaScriptProxy.as
-	
-	Part of the Flash / JavaScript Integration Kit
-	http://www.macromedia.com/go/flashjavascript
-	
-	Created by:
-	
-	Mike Chambers
-	http://weblogs.macromedia.com/mesh/
-	mesh@macromedia.com
-	
-	Christian Cantrell
-	http://weblogs.macromedia.com/cantrell/
-	cantrell@macromedia.com
-	
-	----
-	Macromedia(r) Flash(r)./ JavaScript Integration Kit License
-
-
-	Copyright (c) 2005 Macromedia, inc. All rights reserved.
-
-	Redistribution and use in source and binary forms, with or without modification,
-	are permitted provided that the following conditions are met:
-
-	1. Redistributions of source code must retain the above copyright notice, this 
-	list of conditions and the following disclaimer.
-
-	2. Redistributions in binary form must reproduce the above copyright notice, 
-	this list of conditions and the following disclaimer in the documentation and/or
-	other materials provided with the distribution.
-
-	3. The end-user documentation included with the redistribution, if any, must 
-	include the following acknowledgment:
-
-    "This product includes software developed by Macromedia, Inc. 
-    (http://www.macromedia.com)."
-
-	Alternately, this acknowledgment may appear in the software itself, if and 
-	wherever such third-party acknowledgments normally appear.
-
-	4. The name Macromedia must not be used to endorse or promote products derived
-	from this software without prior written permission. For written permission,
-	please contact devrelations@macromedia.com.
-
-	5. Products derived from this software may not be called "Macromedia" or 
-	“Macromedia Flash”, nor may "Macromedia" or “Macromedia Flash” appear in their
-	 name.
-
-	THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, 
-	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-	FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MACROMEDIA OR
-	ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
-	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-	OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-	OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 
-	DAMAGE.
-	
-*/
-
-//import the serializer class
-import com.macromedia.javascript.JavaScriptSerializer;
-
-class com.macromedia.javascript.JavaScriptProxy
-{
-	private var instance:Object;
-	private var lcId:String;
-	private var receiving_lc:LocalConnection
-	
-	
-	/*
-		Constructor for Class
-		Public
-		
-		Takes two arguments.
-		
-		lcId : REQUIRED : an id passed in from HTML / Javascript that is used to 
-				communicate with the gateway swf. The same id must be passed into 
-				the gateway swf.		
-		
-		instance : the object / class instance that function call will be proxied to.
-					This is required if function calls will be made from JavaScript 
-					to Flash
-						
-	*/
-	function JavaScriptProxy(lcId:String, instance:Object)
-	{
-		
-		//if either argument is undefined, JavaScript to Flash calls won't work.
-		//So we just return.
-		//
-		//Flash to JavaScript calls will still work
-		if(lcId == undefined || instance == undefined)
-		{
-			return;
-		}
-
-		this.instance = instance;
-
-		this.lcId = lcId;
-		
-		receiving_lc = new LocalConnection();
-		
-		//the incoming function call will occur in the scope of receiving_lc, so we have
-		//to set a property to let us get back to the correct scope.
-		receiving_lc.controller = this;
-		
-		receiving_lc.callFlash = callFlash;
-		
-		//listen for incoming function calls
-		receiving_lc.connect(this.lcId);
-	}
-	
-	/*
-		callFlash
-		Private
-		
-		This is called by the FlashProxy in JavaScript to make a functon call into
-		the Flash content.
-	*/
-	private function callFlash(args:Array):Void
-	{
-		//get a reference to the correct scope (this method is called in the scope
-		//of the local connection object)
-		var con:Object = this["controller"];
-		
-		var functionName:Object = args.shift();
-		
-		var f:Function = con.instance[functionName];
-
-		//call the function in the correct scope, passing the arguments
-		f.apply(con.instance, args);
-	}
-	
-	/*
-		This proxies function calls to the server, which allows you to call JavaScript
-		functions as if they were functions on JavaScriptProxy instance.
-		
-		i.e.
-		
-		var j:JavaScriptProxy = new JavaScriptProxy();
-		
-		j.jsFunction("foo", [1, 2]);
-	*/
-	public function __resolve(functionName:String):Function
-	{		
-		var f:Function = function()
-		{
-			arguments.splice(0,0, functionName);
-			var f:Function = call;
-			f.apply(this, arguments);		
-		};
-		
-		return f;
-	}
-	
-	/*
-		call
-		public
-		
-		This is used to call functions within JavaScript.
-		
-		functionName : A string of the name of the function being called in JavaScript.
-		
-		a1, a2 ... an : subsequesnt arguments will be passed to the JavaScript function.
-		
-		Example:
-		
-		var j:JavaScriptProxy = new JavaScriptProxy();
-		
-		j.call("jsFunction", "foo", [1, 2]);
-	*/
-	public function call(functionName:String):Void
-	{
-		var len:Number = arguments.length;
-		
-		var argsString:String = "";
-		
-		//Serialize the arguments
-		for(var i:Number = 0; i < len; i++)
-		{
-			argsString += JavaScriptSerializer.serializeItem(arguments[i]);
-			
-			if(i != len - 1)
-			{
-				argsString += ",";
-			}
-		}
-		
-		//Created the javascript URL
-		var callString:String = "javascript:FlashProxy.callJS(" + argsString + ");";
-
-		//call out into the HTML / JavaScript environment
-		getURL(callString);
-	}	
-	
-}

+ 0 - 478
main/plugin/hotspot/com/macromedia/javascript/JavaScriptSerializer.as

@@ -1,478 +0,0 @@
-/*
-	JavaScriptSerializer.as
-	
-	Part of the Flash / JavaScript Integration Kit
-	http://www.macromedia.com/go/flashjavascript
-	
-	Created by:
-	
-	Mike Chambers
-	http://weblogs.macromedia.com/mesh/
-	mesh@macromedia.com
-	
-	Christian Cantrell
-	http://weblogs.macromedia.com/cantrell/
-	cantrell@macromedia.com
-	
-	----
-	Macromedia(r) Flash(r)./ JavaScript Integration Kit License
-
-
-	Copyright (c) 2005 Macromedia, inc. All rights reserved.
-
-	Redistribution and use in source and binary forms, with or without modification,
-	are permitted provided that the following conditions are met:
-
-	1. Redistributions of source code must retain the above copyright notice, this 
-	list of conditions and the following disclaimer.
-
-	2. Redistributions in binary form must reproduce the above copyright notice, 
-	this list of conditions and the following disclaimer in the documentation and/or
-	other materials provided with the distribution.
-
-	3. The end-user documentation included with the redistribution, if any, must 
-	include the following acknowledgment:
-
-    "This product includes software developed by Macromedia, Inc. 
-    (http://www.macromedia.com)."
-
-	Alternately, this acknowledgment may appear in the software itself, if and 
-	wherever such third-party acknowledgments normally appear.
-
-	4. The name Macromedia must not be used to endorse or promote products derived
-	from this software without prior written permission. For written permission,
-	please contact devrelations@macromedia.com.
-
-	5. Products derived from this software may not be called "Macromedia" or 
-	“Macromedia Flash”, nor may "Macromedia" or “Macromedia Flash” appear in their
-	 name.
-
-	THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, 
-	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
-	FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MACROMEDIA OR
-	ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
-	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-	OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-	STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-	OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 
-	DAMAGE.
-	
-*/
-
-class com.macromedia.javascript.JavaScriptSerializer
-{
-
-	/**************** Serialization Methods ****************/
-
-	/*
-		Static function that serializes any supported data types.
-		
-		Returns a String
-	*/
-	public static function serializeItem(item:Object):String
-	{
-		var type:String = typeof(item);
-		var out:String;
-		
-		switch (type)
-		{
-			case "string":
-			{
-				out = JavaScriptSerializer.serializeString(String(item));
-				break;
-			}
-			case "number":
-			{
-				out = JavaScriptSerializer.serializeNumber(Number(item));
-				break;
-			}
-			case "boolean":
-			{
-				out = JavaScriptSerializer.serializeBoolean(Boolean(item));
-				break;
-			}
-			case "null":
-			{
-				out = JavaScriptSerializer.serializeNull();
-				break;
-			}
-			case "undefined":
-			{
-				out = JavaScriptSerializer.serializeUndefined();
-				break;
-			}
-			case "object":
-			{
-				if(item instanceof Date)
-				{
-					out = JavaScriptSerializer.serializeDate(new Date(item.getTime()));
-				}
-				else if(item instanceof Array)
-				{
-					out = JavaScriptSerializer.serializeArray(item);
-				}
-				else
-				{
-					//treat it as regular Object
-					out = JavaScriptSerializer.serializeObject(item);
-				}
-				
-				break;
-			}																	
-		}
-		
-		return out;
-		
-	}
-
-	/* Serializes an Object */
-	public static function serializeObject(o:Object):String
-	{
-		var sb:String = "{";
-		
-		for(var x:String in o)
-		{
-
-			//dont include functions
-			if(typeof(x[o]) == "function")
-			{
-				continue;
-			}
-
-			sb += x + ":" + serializeItem(o[x]) + ",";
-		}
-		
-		//remove the trailing ","
-		if(sb.substring(sb.length - 1) == ",")
-		{
-			sb = sb.substring(0, sb.length - 1);
-		}
-		
-		sb += "}";
-		
-		return sb;
-	}
-	
-	/* Serializes an Array */
-	//not typed since I can't cast an object to Array
-	public static function serializeArray(o):String
-	{
-		var len:Number = o.length;
-		
-		var sb:String = "[";
-		
-		for(var i:Number  = 0; i < len; i++)
-		{
-			sb += serializeItem(o[i]);
-			
-			if(i != len - 1)
-			{
-				sb += ",";
-			}
-		}
-		
-		sb += "]";
-		
-		return sb;
-	}	
-
-	/* Serializes a String */
-	public static function serializeString(s:String):String
-	{
-		return "'" + s + "'";
-	}
-
-	/* Serializes a Number */
-	public static function serializeNumber(n:Number):String
-	{
-		return String(n);
-	}
-
-	/* Serializes a Boolean value */
-	public static function serializeBoolean(b:Boolean):String
-	{
-		return String(b);
-	}	
-	
-	/* Serializes undefined */
-	public static function serializeUndefined(Void):String
-	{
-		return "undefined";
-	}
-	
-	/* Serializes null */
-	public static function serializeNull(Void):String
-	{
-		return "null";
-	}
-	
-	/* Serializes a Date */
-	public static function serializeDate(d:Date):String
-	{
-		return "new Date(" + d.getTime() + ")";
-	}	
-	 
-	
-	/**************** De-Serialization Methods ****************/
-	
-	/*
-		Static function that de-serializes any supported data types.
-		
-		Returns a String
-	*/
-	public static function deserializeItem(type:String, data:String):Object 
-	{
-		var out:Object;
-		
-		switch (type)
-		{
-			case "str":
-			{
-				out = JavaScriptSerializer.deserializeString(data);
-				break;
-			}
-			case "num":
-			{
-				out = JavaScriptSerializer.deserializeNumber(data);
-				break;
-			}
-			case "bool":
-			{
-				out = JavaScriptSerializer.deserializeBoolean(data);
-				break;
-			}
-			case "null":
-			{
-				out = JavaScriptSerializer.deserializeNull();
-				break;
-			}
-			case "undf":
-			{
-				out = JavaScriptSerializer.deserializeUndefined();
-				break;
-			}
-			case "date":
-			{
-				out = JavaScriptSerializer.deserializeDate(data);
-
-				break;
-			}
-			case "xser":
-			{
-				out = JavaScriptSerializer.deserializeXMLSerializedItem(data);
-
-                trace(data);
-
-				break;
-			}	
-																					
-		}
-		
-		return out;
-	}	
-	
-	/* Deserializes a String */
-	public static function deserializeString(s:String):String
-	{
-		return s;
-	} 	
-	
-	/* Deserializes a Number */
-	public static function deserializeNumber(s:String):Number
-	{
-		return Number(s);
-	} 	
-	
-	/* Deserializes a Boolean Value */
-	public static function deserializeBoolean(s:String):String
-	{
-		return Boolean(s);
-	} 	
-	
-	/* Deserializes undefined */
-	//returns undefined
-	public static function deserializeUndefined(s:String)
-	{
-		return undefined;
-	} 	
-	
-	/* Deserializes null */
-	//returns null
-	public static function deserializeNull(s:String)
-	{
-		return null;
-	} 		
-	
-	/* Deserializes a Date */
-	public static function deserializeDate(s:String):Date
-	{
-		return new Date(Number(s));
-	}
-	
-	
-	/**************** De-Serialization XML Methods ****************/
-	
-	/*
-		The methods below are for deserializing data serialized in XML format.
-		
-		This is used for serializing Objects and Arrays
-	*/
-	
-	
-		/*
-		Static function that de-serializes any supported  XML serialized data types.
-		
-		Returns a String
-	*/
-	public static function deserializeXMLSerializedItem(data:String):Object 
-	{
-		var x:XML = new XML();
-		x.ignoreWhite = true;
-		x.parseXML(data);
-		
-		var out:Object = parseNode(x.firstChild.firstChild, new Object);
-	
-		return out;
-	}	
-	
-	/* recursive function that parses the xml tree */
-	public static function parseNode(x:XMLNode, o:Object):Object
-	{
-		
-		var nodeName:String = x.nodeName;
-		var nodeValue:String = x.firstChild.nodeValue;
-		var varName:String = x.attributes["name"];
-		
-		var children:Array = x.childNodes;
-		var len:Number = children.length;		
-		
-		switch(nodeName)
-		{
-			case "obj":
-			{
-				if(varName == null)
-				{
-					o = new Object();
-				}
-				else
-				{
-					o[varName] = new Object();
-				}
-				break;
-			}		
-			case "str":
-			{					
-				if(varName == undefined)
-				{
-					o = String(nodeValue);
-				}
-				else
-				{
-					o[varName] = nodeValue;
-				}
-				
-				break;
-			}
-			case "num":
-			{
-				if(varName == null)
-				{
-					o = Number(nodeValue);
-				}
-				else
-				{
-					o[varName] = Number(nodeValue);
-				}
-				
-				break;
-			}
-			case "bool":
-			{
-				if(varName == null)
-				{
-					o = Boolean(nodeValue);
-				}
-				else
-				{
-					o[varName] = Boolean(nodeValue);
-				}
-				
-				break;
-			}	
-			case "null":
-			{
-				if(varName == null)
-				{
-					o = null;
-				}
-				else
-				{
-					o[varName] = null;
-				}
-				
-				break;
-			}
-			case "undf":
-			{
-				if(varName == null)
-				{
-					o = undefined;
-				}
-				else
-				{
-					o[varName] = undefined;
-				}
-				
-				break;
-			}	
-			case "date":
-			{
-				if(varName == null)
-				{
-					o = new Date(Number(nodeValue));
-				}
-				else
-				{
-					o[varName] = new Date(Number(nodeValue));
-				}
-				
-				break;
-			}	
-			case "array":
-			{
-				//this is not typed because the compiler gets confused about 
-				//the explicit type change for o below.
-				var arr;
-				if(varName == null)
-				{
-					o = new Array();
-					arr = o;
-				}
-				else
-				{
-					o[varName] = new Array();
-					arr = o[varName];
-				}	
-				
-				for(var x:Number = 0; x < len; x++)
-				{
-					arr.push(parseNode(children[x], o));
-				}
-				 	
-				return arr;
-			}																	
-		}
-
-		for(var i:Number = 0; i < len; i++)
-		{
-			parseNode(children[i], o);
-		}
-
-		
-		return o;
-	}
-	
-
-	
-}

+ 0 - 104
main/plugin/hotspot/hotspot.js

@@ -1,104 +0,0 @@
-// in je FORM-tag voor de hotspots:  onSubmit="return validateFlashVar('MINIMUM_AANTAL_CLICKS');
-
-var flashVar = 1;
-
-var lcId = new Date().getTime();
-//var flashProxy = new FlashProxy(lcId, "JavaScriptFlashGateway.swf");
-
-function validateFlashVar(counter, lang_1, lang_2)
-{
-	return true;
-	//alert(counter);
-	//alert(flashVar);
-	
-	if(counter != flashVar)
-	{
-		alert(lang_1 + counter + lang_2);
-		
-		return false;
-	}
-	else
-	{
-		return true;
-	}
-}
-
-function updateFlashVar()
-{
-	//alert('updateFlashVar: ' + flashVar);
-	flashVar++;
-}
-
-/*
- * Save the results of the positioning of a point by the user on top of
- * the answer area.
- * @param   int     Question ID
- * @param   int     ID of the area (square or ellipse)
- * @param   int     Whether the answer is correct or not
- * @param   int     X-coordinate (horizontal) of the answer point
- * @param   int     Y-coordinate (vertical) of the answer point 
- */
-function saveHotspot(question_id, hotspot_id, answer, hotspot_x, hotspot_y)
-{
-	newHotspot = document.createElement("input");
-	newHotspot.type = "hidden";
-	newHotspot.name = "hotspot["+question_id+"]["+hotspot_id+"]";
-	newHotspot.value = hotspot_x + ";" + hotspot_y;	
-	document.frm_exercise.appendChild(newHotspot);
-	
-	newHotspot = document.createElement("input");
-	newHotspot.type = "hidden";
-	newHotspot.name = "choice["+question_id+"]["+hotspot_id+"]";
-	newHotspot.value = answer;	
-	document.frm_exercise.appendChild(newHotspot);
-}
-/*
- * Save the results of the positioning of a point by the user on top of
- * the answer area ( for polygons and delineation )
- * @param   int     Question ID
- * @param   int     ID of the area (square or ellipse)
- * @param   int     Whether the answer is correct or not
- * @param   array   Coordinates (horizontal+vertical) of the answer points, in an array
- */
-function saveDelineationUserAnswer(question_id, hotspot_id, answer, coordinates)
-{
-	newHotspot = document.createElement("input");
-	newHotspot.type = "hidden";
-	newHotspot.name = "hotspot["+question_id+"]["+hotspot_id+"]";
-	newHotspot.value = coordinates;
-	document.frm_exercise.appendChild(newHotspot);
-	
-	newHotspot = document.createElement("input");
-	newHotspot.type = "hidden";
-	newHotspot.name = "choice["+question_id+"]["+hotspot_id+"]";
-	newHotspot.value = answer;	
-	document.frm_exercise.appendChild(newHotspot);
-}
-
-function saveShapeHotspot(question_id, hotspot_id, type, x, y, w, h)
-{
-	document.frm_exercise["hotspot_coordinates["+hotspot_id+"]"].value = x + ";" + y + "|" + w + "|" + h;
-	document.frm_exercise["hotspot_type["+hotspot_id+"]"].value = type;
-}
-
-function savePolyHotspot(question_id, hotspot_id, coordinates)
-{
-	document.frm_exercise["hotspot_coordinates["+hotspot_id+"]"].value = coordinates;
-	document.frm_exercise["hotspot_type["+hotspot_id+"]"].value = "poly";
-}
-
-function saveDelineationHotspot(question_id, hotspot_id, coordinates)
-{
-	document.frm_exercise["hotspot_coordinates["+hotspot_id+"]"].value = coordinates;
-	document.frm_exercise["hotspot_type["+hotspot_id+"]"].value = "delineation";
-}
-
-function saveOARHotspot(question_id, hotspot_id, coordinates)
-{
-	document.frm_exercise["hotspot_coordinates["+hotspot_id+"]"].value = coordinates;
-	document.frm_exercise["hotspot_type["+hotspot_id+"]"].value = "oar";
-}
-function jsdebug(debug_string)
-{
-	alert(debug_string);
-}

BIN
main/plugin/hotspot/hotspot_admin.fla


BIN
main/plugin/hotspot/hotspot_admin.swf


BIN
main/plugin/hotspot/hotspot_delineation_admin.fla


BIN
main/plugin/hotspot/hotspot_delineation_admin.swf


BIN
main/plugin/hotspot/hotspot_delineation_user.fla


BIN
main/plugin/hotspot/hotspot_delineation_user.swf


BIN
main/plugin/hotspot/hotspot_solution.fla


+ 0 - 349
main/plugin/hotspot/hotspot_solution.fla.as

@@ -1,349 +0,0 @@
-// javascript Proxy
-import com.macromedia.javascript.JavaScriptProxy;
-var JS_proxy:JavaScriptProxy = new JavaScriptProxy();
-
-System.useCodepage = true;
-
-// get id from querystring
-myURL = this._url;
-//myURL = "http://localhost/dokeosSVN/main/plugin/hotspot/hotspot_solution.swf?modifyAnswers=1&exe_id=2&from_db=3";
-tmpAr = myURL.split("?");
-tmpAr = tmpAr[1].split("&");
-id = tmpAr[0].split("=");
-id = id[1];
-exe_id = tmpAr[1].split("=");
-exe_id = exe_id[1];
-from_db = tmpAr[2].split("=");
-from_db = from_db[1];
-
-// get URL to load lang and hotspot variables
-
-//myURL = this._url;
-myPos = myURL.lastIndexOf("/");
-myURL = myURL.substring(0, myPos);
-myPos = myURL.lastIndexOf("/");
-myURL = myURL.substring(0, myPos);
-myPos = myURL.lastIndexOf("/");
-myURL = myURL.substring(0, myPos);
-
-// movie properties
-var movieWidth:Number = 380;
-var movieHeight:Number = 400;
-
-// hotspot properties
-var startWidth:Number = 0;		//  \__ if these values are set, shape will be drawn right and down from the mouse;
-var startHeight:Number = 0;		//	/
-var pType:String = ""; 			// possible values: circle, square, poly;
-
-// other settings
-var i:Number = 1;
-var isDrawing:Boolean = false;
-var hotspots_c:Array = new Array('0x4271B5','0xFE8E16','0x45C7F0','0xBCD631','0xD63173','0xD7D7D7','0x90AFDD','0xAF8640','0x4F9242','0xF4EB24','0xED2024','0x3B3B3B');
-
-// make array with all elements
-var hotspots:Array = new Array();
-
-// get data from database
-this.createEmptyMovieClip("target_mc", 2000);
-//_answers
-loadVariables(myURL + "/exercice/hotspot_answers.as.php?modifyAnswers="+id+"&exe_id="+exe_id+"&from_db="+from_db, target_mc);
-var param_interval:Number = setInterval(checkParamsLoaded, 100);
-
-// language variables
-var str_choose:String = "";
-var lang_interval:Number
-
-// counter for language (if language can't be loaded after 2 sec,
-// english will be loaded
-var counter:Number = 0;
-
-// booleans for loading
-var langLoaded:Boolean = false;
-var varsLoaded:Boolean = false;
-var imageLoaded:Boolean = false;
-
-// image preloader
-var loadListener:Object = new Object();
-loadListener.onLoadComplete = function(){
-	_root.imageLoaded = true;
-	_root.showInterface();
-}
-var mcLoader:MovieClipLoader = new MovieClipLoader();
-mcLoader.addListener(loadListener);
-var mc:MovieClip = _root.image_mc;
-
-/////////////////////////////////////////////////////////////////////////////////
-// FUNCTIONS
-/////////////////////////////////////////////////////////////////////////////////
-
-// show hotspots, user can't click anymore
-function showHotspots(num){
-	for(j=1;j<=_root.hotspots.length;j++){
-		_root.map_mc["hotspot"+j]._alpha = num;		
-	}
-}
-
-function showUserpoints(num){
-	for(j=1;j<=_root.hotspots.length;j++){
-		_root["hotspot_answer"+j]._alpha = num;
-		if(num==0){
-			_root["hotspot_answer"+j].hotspot_mc._visible = false;
-		}else{
-			_root["hotspot_answer"+j].hotspot_mc._visible = true;
-		}		
-	}
-}
-
-function showInterface(){	
-	if((_root.langLoaded == true) and (_root.varsLoaded == true) and (_root.imageLoaded == true)){
-		_root.showUserpoints(100);
-		_root.showHotspots(100);
-		_root.loading_mc._visible = false;
-	}	
-}
-
-// get language file
-function getLang(){
-	counter++;
-	if (_root.lang_mc.done != undefined) {
-		_root.show_userPoints_btn.label = _root.lang_mc.showUserPoints;
-		_root.show_hotspots_btn.label = _root.lang_mc.showHotspots;
-		
-		// check if interface can be showed (if everything else is loaded)
-		_root.langLoaded = true;
-		_root.showInterface();
-		
-		// clear interval
-		clearInterval(_root.lang_interval);		
-	 }else if(counter==20){
-		// clear interval
-		clearInterval(_root.lang_interval);
-		
-		// set counter to zero
-		_root.counter = 0;
-		
-		// set new interval (get english version)
-		loadVariables(myURL + "/lang/english/hotspot.inc.php", _root.lang_mc);
-		_root.lang_interval = setInterval(getLang, 100);
-		
-	}
-}
-
-function checkParamsLoaded() {
-	 if (target_mc.done != undefined) {
-		// once we know the language, get language-variables from language file
-		language = target_mc["hotspot_lang"];
-		_root.createEmptyMovieClip("lang_mc", 2001);
-		
-		//loadVariables(myURL + "/lang/" + language + "/hotspot.inc.php", _root.lang_mc);
-		loadVariables(myURL + "/exercice/hotspot.inc.php", _root.lang_mc);
-		
-		_root.lang_interval = setInterval(getLang, 100);
-		 
-		// start loading external image
-		_root.mcLoader.loadClip("../../courses/" + target_mc["courseCode"] + "/document/images/"  + target_mc["hotspot_image"], mc);
-						
-		// make needed array's: filled if hotspot exists, empty if not
-		for(m = 1; m <= 12; m++){	
-			// make seperate lists
-			if(target_mc["hotspot_" + m]=="true"){
-				// add to general list
-				tmpAr = Array();
-				tmpAr.push(m);
-				tmpAr.push(target_mc["hotspot_" + m + "_type"]);				
-				_root.hotspots.push(tmpAr);
-				
-				if (target_mc["hotspot_" + m + "_type"] != 'poly' &&  target_mc["hotspot_" + m + "_type"] != 'delineation'){
-					// x;y|height|width
-					_root["p_hotspot_" + m] = new Array;					
-					$coordinates = target_mc["hotspot_" + m + "_coord"].split("|");
-					$tmp_xy = $coordinates[0].split(";");
-					$x = $tmp_xy[0];
-					$y = $tmp_xy[1];
-					$height = $coordinates[1];
-					$widht = $coordinates[2];
-					_root["p_hotspot_" + m].push($x);
-					_root["p_hotspot_" + m].push($y);
-					_root["p_hotspot_" + m].push($height);
-					_root["p_hotspot_" + m].push($widht);
-				}else{               
-					// p1_x;p1_y|p2_x;p2_y|...
-					_root["p_hotspot_" + m] = new Array();
-					$coordinates = target_mc["hotspot_" + m + "_coord"].split("|");
-					
-					for(k=0;k<$coordinates.length;k++){
-						$tmp_xy = $coordinates[k].split(";");
-						tempArray = Array();
-						tempArray.push($tmp_xy[0]);
-						tempArray.push($tmp_xy[1]);
-						_root["p_hotspot_" + m].push(tempArray);
-					}
-				}
-			}else{
-				_root["p_hotspot_" + m] = Array();
-			}
-		}
-				
-		// set border around image
-		_root.map_mc._width = int(target_mc.hotspot_image_width) + 1;
-		_root.map_mc._height = int(target_mc.hotspot_image_height) + 1;
-		
-		// draw the hotspots
-		drawShapes();
-		
-		// check if interface can be showed (if everything else is loaded)
-		_root.varsLoaded = true;
-		_root.showInterface();
-		
-		// clear interval
-		clearInterval(param_interval);
-	 }
-}
-
-// draw the shapes that are given from the database
-function drawShapes(){
-	// draw points where user clicked
-	_root.drawPoints();
-	
-	// draw hotspots
-	for (var j:String in hotspots) {
-		if(j <> ""){
-			// +1 because array names starts from 1
-			_root.i = int(j) + 1;	
-			// -1 because array values starts from 0
-			_root.pType = _root.hotspots[_root.i - 1][1];
-			if(_root.pType=="poly" || _root.pType=="delineation"){
-				drawPoly();
-			}
-			else{
-				drawShape(true);
-			}			
-			_root.map_mc["hotspot" + _root.i]._alpha = 0;
-		}
-	}
-}
-
-function drawPoints(){	
-	answers = _root.target_mc.p_hotspot_answers.split("|");
-	
-	if(answers[0]!=''){
-		j = 1;
-		k = 500;
-			
-		for(var z:String in answers){
-			if(target_mc["hotspot_"+j+"_type"]=="delineation")
-			{
-				// trace poly
-				delineation_coords = answers[j-1].split("/");
-				drawDelineation(j, delineation_coords);
-			}
-			else
-			{
-			
-				xy = answers[j-1].split(";");
-				$x = xy[0];
-				$y = xy[1];
-			
-				// create new hotspot
-				_root.createEmptyMovieClip("hotspot_answer" + j, k);		
-				
-				// attach correct type of hotspot
-				_root["hotspot_answer" + j].attachMovie("numbers", "hotspot_mc", _root["hotspot_answer" + j].getNextHighestDepth());
-				
-				_root["hotspot_answer" + j].hotspot_mc._width = 33;
-				_root["hotspot_answer" + j].hotspot_mc._height = 22;
-				
-				_root["hotspot_answer" + j].hotspot_mc._x = int($x) + _root.map_mc._x;
-				_root["hotspot_answer" + j].hotspot_mc._y = int($y) + _root.map_mc._y;
-				
-				_root["hotspot_answer" + j].hotspot_mc.order_txt.text = int(j);		
-				_root["hotspot_answer" + j].hotspot_mc._visible = false;
-				
-				_root["hotspot_answer" + j]._alpha = 0;
-			}
-			
-			j++;
-			k++;
-		}
-	}
-	
-	
-}
-
-function drawShape(userDrawing){
-	// create new hotspot
-	_root.map_mc.createEmptyMovieClip("hotspot" + _root.i, _root.i);
-	
-	// attach correct type of hotspot
-	_root.map_mc["hotspot" + _root.i].attachMovie(_root.pType, "hotspot_mc", _root.map_mc["hotspot" + _root.i].getNextHighestDepth());
-	
-	_root.map_mc["hotspot" + _root.i].hotspot_mc._visible = true;
-	_root.map_mc["hotspot" + _root.i].hotspot_mc.center_mc._alpha = 60;
-	_root.map_mc["hotspot" + _root.i].hotspot_mc._x = _root["p_hotspot_"+ _root.i][0];
-	_root.map_mc["hotspot" + _root.i].hotspot_mc._y = _root["p_hotspot_"+ _root.i][1];
-	_root.map_mc["hotspot" + _root.i].hotspot_mc._width = _root["p_hotspot_"+ _root.i][2];
-	_root.map_mc["hotspot" + _root.i].hotspot_mc._height = _root["p_hotspot_"+ _root.i][3];
-	
-	colorchange = new Color(_root.map_mc["hotspot" + _root.i].hotspot_mc);	
-	colorchange.setRGB(_root.hotspots_c[_root.i - 1]);
-}
-// when black lines of hotspots are deleted, draw the exact same poly with coordinates
-// that are saved in the array
-function drawPoly(){	
-	// create empty movieclip
-	_root.map_mc.createEmptyMovieClip("hotspot" + _root.i, _root.i);
-	
-	// begin filling the movieclip
-	_root.map_mc["hotspot" + _root.i].beginFill(_root.hotspots_c[_root.i - 1], 60);
-	
-	// set linestyle
-	_root.map_mc["hotspot" + _root.i].lineStyle(1, _root.hotspots_c[_root.i - 1], 100);
-	
-	// move mouse to first coordinate
-	_root.map_mc["hotspot" + _root.i].moveTo(_root["p_hotspot_"+_root.i][0][0],_root["p_hotspot_"+_root.i][0][1]);
-	
-	// draw lines to all coordinates
-	v = _root["p_hotspot_"+_root.i].length;	
-	for (k=1;k<v;k++){
-		_root.map_mc["hotspot" + _root.i].lineTo(_root["p_hotspot_"+_root.i][k][0],_root["p_hotspot_"+_root.i][k][1]);		
-	}
-	
-	// attach first and last coordinates
-	_root.map_mc["hotspot" + _root.i].lineTo(_root["p_hotspot_"+_root.i][0][0],_root["p_hotspot_"+_root.i][0][1]);					  
-	
-	// stop filling the movieclip
-	_root.map_mc["hotspot" + _root.i].endFill();
-}
-
-function drawDelineation(level, coords){	
-	
-	// create empty movieclip
-	_root.map_mc.createEmptyMovieClip("hotspot_delineation" + level, 2000+level);
-
-	// begin filling the movieclip
-	_root.map_mc["hotspot_delineation" + level].beginFill(0xFFFFFF, 60);
-	
-	// set linestyle
-	_root.map_mc["hotspot_delineation" + level].lineStyle(1,0x000000, 100);
-	
-	// move mouse to first coordinate
-	xy_origin = coords[0].split(";");
-	_root.map_mc["hotspot_delineation" + level].moveTo(xy_origin[0],xy_origin[1]);
-	
-	// draw lines to all coordinates
-	v = coords.length;	
-	for (k=1;k<v;k++){
-		xy = coords[k].split(";");
-		_root.map_mc["hotspot_delineation" + level].lineTo(xy[0],xy[1]);		
-	}
-	
-	// attach first and last coordinates
-	_root.map_mc["hotspot_delineation" + level].lineTo(xy_origin[0],xy_origin[1]);					  
-	
-	// stop filling the movieclip
-	_root.map_mc["hotspot_delineation" + level].endFill();
-}
-
-function jsdebug(debug_string){
-	_root.JS_proxy.jsdebug(debug_string);
-}

BIN
main/plugin/hotspot/hotspot_solution.swf


BIN
main/plugin/hotspot/hotspot_user.fla


BIN
main/plugin/hotspot/hotspot_user.swf


+ 0 - 86
main/plugin/hotspot/jsmethods.js

@@ -1,86 +0,0 @@
-// Globals
-// Major version of Flash required
-var requiredMajorVersion = 7;
-// Minor version of Flash required
-var requiredMinorVersion = 0;
-// Minor version of Flash required
-var requiredRevision = 0;
-// the version of javascript supported
-var jsVersion = 1.0;
-// 
-
-var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
-var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
-var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
-jsVersion = 1.1;
-// JavaScript helper required to detect Flash Player PlugIn version information
-function JSGetSwfVer(i){
-	// NS/Opera version >= 3 check for Flash plugin in plugin array
-	if (navigator.plugins != null && navigator.plugins.length > 0) {
-		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
-			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
-      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
-			descArray = flashDescription.split(" ");
-			tempArrayMajor = descArray[2].split(".");
-			versionMajor = tempArrayMajor[0];
-			versionMinor = tempArrayMajor[1];
-			if ( descArray[3] != "" ) {
-				tempArrayMinor = descArray[3].split("r");
-			} else {
-				tempArrayMinor = descArray[4].split("r");
-			}
-      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
-            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
-      	} else {
-			flashVer = -1;
-		}
-	}
-	// MSN/WebTV 2.6 supports Flash 4
-	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
-	// WebTV 2.5 supports Flash 3
-	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
-	// older WebTV supports Flash 2
-	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
-	// Can\'t detect in all other cases
-	else {
-
-		flashVer = -1;
-	}
-	return flashVer;
-}
-// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
-function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
-{
- 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
-   	// loop backwards through the versions until we find the newest version
-	for (i=25;i>0;i--) {
-		if (isIE && isWin && !isOpera) {
-			versionStr = VBGetSwfVer(i);
-		} else {
-			versionStr = JSGetSwfVer(i);
-		}
-		if (versionStr == -1 ) {
-			return false;
-		} else if (versionStr != 0) {
-			if(isIE && isWin && !isOpera) {
-				tempArray         = versionStr.split(" ");
-				tempString        = tempArray[1];
-				versionArray      = tempString .split(",");
-			} else {
-				versionArray      = versionStr.split(".");
-			}
-			versionMajor      = versionArray[0];
-			versionMinor      = versionArray[1];
-			versionRevision   = versionArray[2];
-
-			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
-			versionNum        = parseFloat(versionString);
-        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
-			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
-				return true;
-			} else {
-				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
-			}
-		}
-	}
-}

+ 0 - 13
main/plugin/hotspot/vbmethods.vbscript

@@ -1,13 +0,0 @@
-
-Function VBGetSwfVer(i)
-  on error resume next
-  Dim swControl, swVersion
-  swVersion = 0
-
-  set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
-  if (IsObject(swControl)) then
-    swVersion = swControl.GetVariable(\"\$version\")
-  end if
-  VBGetSwfVer = swVersion
-End Function
-