<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 8;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// -----------------------------------------------------------------------------
// -->

// Browser detection
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;

// Flash version detection
var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);


// Hook for Internet Explorer
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
    navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
    document.write('<SCRIPT LANGUAGE=VBScript\> \n');
    document.write('on error resume next \n');
    document.write('Sub SCO_FSCommand(ByVal command, ByVal args)\n');
    document.write('  call SCO_DoFSCommand(command, args)\n');
    document.write('end sub\n');
    document.write('</SCRIPT\> \n');
}

function SCO_DoFSCommand(command, args) {
    switch (command) {
        case 'Initialize':
            doInitialize(args);
            break;

        case 'InitializeProvadis':
            doInitializeProvadis(args);
            break;

        case 'Terminate':
            doTerminate(args);
            break;

        case 'GetValue':
            val = doGetValue(args);
            window.document.SCO.SetVariable(format_var(args), val);
            break;

        case 'GetValueLevel1':
            val = doGetValue(args);
            window.document.SCO.SetVariable('_level1.' + format_var(args), val);
            break;

        case 'SetValue':
            args2 = args.split("::");
            doSetValue(args2[0], args2[1]);
            break;

        case 'GetLastError':
            lastError = doGetLastError();
            window.document.SCO.SetVariable("txt_LastErr.text", lastError);
            break;

        case 'PrintPage':
            window.print();
            break;

        case 'closeWindow':
        case 'closeWindowLMS':
            window.parent.close();
            break;

        case 'alert':
            alert('command: ' + command + ' args: ' + args);
            break;
    }

}


function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return "1,1,0,0,0,0,1,";
}

function format_var (scorm_var) {

    var newvar = new String(scorm_var) ;

    while (newvar.indexOf('.') != -1) {
        newvar = newvar.replace(".","_");
    }

    return newvar;

}

function openshowTask() {
    F2 = window.open("fitq_task.htm","Frage","width=800, height=580");
    F2.focus();
}
function closeshowTask() {
    F2.close();
}

function openKnowX(param) {
    F4 = window.open(param,"Übung","width=800, height=600");
    F4.focus();
}
function closeKnowWay() {
    F4.close();
}

function openSnake(param) {
    F5 = window.open(param,"Snake","width=600, height=450");
    F5.focus();
}
function closeSnake() {
    F5.close();
}

function alertBox() {
    F3 = alert('Alert');
}


function insertFlashObject() {
  if (hasReqestedVersion) {
    document.getElementById("flashcontent").innerHTML = flashobject;
  } else {
    error_message =  '  <div id="container">';
    error_message += '    <div id="header">';
    error_message += '      <h1>Adobe Flash Player veraltet oder nicht vorhanden!</h1>';
    error_message += '    </div>';
    error_message += '    <div id="content">';
    error_message += '      <p>Sie haben eine Version des Adobe Flash Players installiert, die mit den Inhalten von FIT² nicht kompatibel ist. Es wird mindestens Flash Player ab Version ' + requiredMajorVersion + ' vorausgesetzt.</p>';
    error_message += '      <p>Bitte installieren Sie eine aktuelle Version des Adobe Flash Players. Sie k&ouml;nnen dazu den unten angegebenen Link nutzen.</p>';
    error_message += '      <p class="center"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&Lang=German" target="_blank"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" title="Get Adobe Flash Player" /></a></p>';
    error_message += '    </div>';
    error_message += '  </div>';
    document.getElementById("flashcontent").innerHTML = error_message;
  }
}

function writeEmbedObject_SCORM(breite, hoehe, bgcolor, language) {
    var bm = '';
    if (getCookieValue ('LMS_BM') == 'true') {
        deleteCookie ('LMS_BM');
        bm = '&bm=1';
    }

    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += 'WIDTH="' + breite + '" HEIGHT="' + hoehe + '" id="SCO" ALIGN="middle"><param name="movie" value="fitq_course.swf?startParam=' + getQueryVariable("startParam") + bm + '&lang=' + language + '" />';
    flashobject += '<param name="quality" value="high" /><param name="bgcolor" value="#' + bgcolor + '" />';
    flashobject += '<embed src="fitq_course.swf?startParam=' + getQueryVariable("startParam") + bm + '&lang=' + language + '" quality="high" bgcolor="#' + bgcolor + '" WIDTH="' + breite + '" HEIGHT="' + hoehe + '" NAME="SCO" ALIGN="middle"';
    flashobject += ' TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+ window.location.protocol +'//www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed></object>';

  insertFlashObject();
}

function writeEmbedObject_noParameter(breite, hoehe, bgcolor, language) {
  flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += 'WIDTH="' + breite + '" HEIGHT="' + hoehe + '" id="SCO" ALIGN="middle"><param name="movie" value="fitq_course.swf?lang=' + language + '" />';
    flashobject += '<param name="quality" value="high" /><param name="bgcolor" value="#' + bgcolor + '" />';
    flashobject += '<embed src="fitq_course.swf?lang=' + language + '" quality="high" bgcolor="#' + bgcolor + '" WIDTH="' + breite + '" HEIGHT="' + hoehe + '" NAME="SCO" ALIGN="middle"';
    flashobject += ' TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+ window.location.protocol +'//www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed></object>';

  insertFlashObject();
}

function writeEmbedObject_preview(breite, hoehe, bgcolor, language, startParam) {
    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += 'WIDTH="' + breite + '" HEIGHT="' + hoehe + '" id="SCO" ALIGN="middle"><param name="movie" value="fitq_course.swf?startParam=' + startParam + '&lang=' + language + '" />';
    flashobject += '<param name="quality" value="high" /><param name="bgcolor" value="#' + bgcolor + '" />';
    flashobject += '<embed src="fitq_course.swf?startParam=' + startParam + '?lang=' + language + '" quality="high" bgcolor="#' + bgcolor + '" WIDTH="' + breite + '" HEIGHT="' + hoehe + '" NAME="SCO" ALIGN="middle"';
    flashobject += ' TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+ window.location.protocol +'//www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed></object>';

  insertFlashObject();
}

function writeEmbedObject_task() {
    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += 'WIDTH="800" HEIGHT="580" id="SCO" ALIGN="middle"><param name="movie" value="fitq_task.swf" />';
    flashobject += '<param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" />';
    flashobject += '<embed src="fitq_task.swf" quality="high" bgcolor="#FFFFFF" WIDTH="800" HEIGHT="580" NAME="SCO" ALIGN="middle"';
    flashobject += ' TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+ window.location.protocol +'//www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed></object>';

  insertFlashObject();
}

function writeEmbedObject_KnowCar() {
    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += ' width="100%" height="100%" id="SCO">';
    flashobject += '  <param name=movie value="KnowCar.swf">';
    flashobject += '  <param name=loop value=false>';
    flashobject += '  <param name=menu value=false>';
    flashobject += '  <param name=quality value=high>';
    flashobject += '  <embed src="KnowCar.swf" loop=false width="100%" height="100%" type="application/x-shockwave-flash" pluginspage="'+ window.location.protocol +'//www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" name="SCO">';
    flashobject += '  </embed>';
    flashobject += '</object>';

    document.write(flashobject);
}

function writeEmbedObject_KnowHome() {
    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += ' width="100%" height="100%" id="SCO">';
    flashobject += '  <param name=movie value="KnowHome.swf">';
    flashobject += '  <param name=loop value=false>';
    flashobject += '  <param name=menu value=false>';
    flashobject += '  <param name=quality value=high>';
    flashobject += '  <embed src="KnowHome.swf" loop=false width="100%" height="100%" type="application/x-shockwave-flash" pluginspage="'+ window.location.protocol +'//www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" name="SCO">';
    flashobject += '  </embed>';
    flashobject += '</object>';

    document.write(flashobject);
}

function writeEmbedObject_knowgame() {

    flashobject = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
    flashobject += ' codebase="'+ window.location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
    flashobject += 'WIDTH="1000" HEIGHT="700" id="SCO" ALIGN="middle"><param name="movie" value="KnowGame.swf" />';
    flashobject += '<param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" />';
    flashobject += '<embed src="KnowGame.swf" quality="high" bgcolor="#FFFFFF" WIDTH="1000" HEIGHT="700" NAME="SCO" ALIGN="middle"';
    flashobject += ' TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+ window.location.protocol +'//www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed></object>';

    document.write(flashobject);
}

function open_fullscreen(breite, hoehe) {
        F1 = window.open("index.htm", "Preview", "width=" + breite + ", height=" + hoehe);
}






// Flash Player Version Detection - Rev 1.6
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.

function ControlVersion()
{
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)     
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
    
    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;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");           
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
            //alert("flashVer="+flashVer);
        }
    }
    // 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;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }   
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" ");  // ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];           // "2,0,0,11"
            versionArray      = tempString.split(",");  // ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];

            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
        str += '<object ';
        for (var i in objAttrs)
            str += i + '="' + objAttrs[i] + '" ';
        for (var i in params)
            str += '><param name="' + i + '" value="' + params[i] + '" /> ';
        str += '></object>';
    } else {
        str += '<embed ';
        for (var i in embedAttrs)
            str += i + '="' + embedAttrs[i] + '" ';
        str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){   
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie": 
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "id":
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
