JAVASCRIPT   22

times js

Guest on 24th May 2022 12:53:37 AM

  1. // ---------------------------------------------------------------
  2. // Author: Hans Paulini
  3. // Description: main times functions
  4. // ---------------------------------------------------------------
  5.  
  6. //Times2
  7. //****************************
  8. //Menu
  9.  
  10. var contentMenuVisi=false;
  11. var showingFlash=new Array;
  12. var showingGFlash=new Array;
  13. var showingChap=1;
  14. var thisAnswer=false;
  15.  
  16. //****************************
  17. //Extention Mode
  18. var extentionScreens;
  19. var extentionPosition=0;
  20. var extentionScreensMode=false;
  21. var extentionStepJump=false;   
  22. //OnLoad functions------------------------
  23. //Navigation is loaded
  24. function initNav(){
  25.                 frames.timesContent.document.location.replace(rootPath+'times/load.htm');
  26.                 if(isNav){
  27.                         initNNResizeBug();
  28.                 }
  29. }
  30. if(isNav){
  31.         B04 = false;
  32. }
  33. //Content is loaded
  34. function conLoaded(){
  35.         mode=load;
  36.         updateNowAll(newChapter,newSection,newScreen,newStep);
  37.         if (eval(contentFrame+'.step0')){
  38.         newStep=(backVar==1)?eval(contentFrame+".stepLength")-1:0;
  39.         showStepLayer();
  40.         readInitStrings();
  41.         backVar=0;
  42.         }
  43.         if ((load=="content"&&!prgHintMode)||load=="extention"||load=='assess'){
  44.                 markMenuItem(newChapter);
  45.                 if(contentArray[newChapter][0]){
  46.                         if(contentArray[newChapter].length>1){
  47.                                 loadTextToHead(contentArray[newChapter][0]+'  -  '+contentArray[newChapter][newSection][0],"");
  48.                         }else{
  49.                                 loadTextToHead(contentArray[newChapter][0][0],"");
  50.                         }
  51.                 }
  52.         readIndex();
  53.         if(newScreen==sectionScreens){
  54.                 found=false;
  55.                 positionNow=newChapter+'-'+newSection;
  56.                 for (i=0;i<history.length;i++){
  57.                         if(history[i]==positionNow){
  58.                                 found=true;
  59.                         }
  60.                 }
  61.                         if(!found){
  62.                                 history[history.length]=positionNow;
  63.                                         showBobbles();
  64.                                         for(s=1;s<contentArray.length+1;s++){
  65.                                                 if(checkHistory('C'+s)){
  66.                                                         showLayer('menu','KapHook'+s);
  67.                                                 }
  68.                                         }
  69.                         }
  70.                 }
  71.         if(helpVisi==true){
  72.                 if(!helpWIN.closed){
  73.                 helpWIN.frames.mainFrame.location.reload()
  74.                 }
  75.         }
  76.                 if(frames.timesContent.stepLoaded){frames.timesContent.stepLoaded(newStep);}
  77.                 showNav();
  78.                 //      showLayer(navFrame,"layB01");
  79.         showLayer(navFrame,"layB07");
  80.         showLayer(navFrame,"layB08");
  81.                 specialButtonControl();
  82.                 if(extentionStepJump){
  83.                         newStep=oldExtentionStep;
  84.                         changeStep();
  85.                         extentionStepJump=false;
  86.                 }
  87.         }
  88.     if (load=="menu"){
  89.                 loadTextToHead('Menu',"");
  90.                 updateNowView();
  91.                 //      hideLayer(navFrame,"layB01");
  92.                 hideLayer(navFrame,"layB08");
  93.                 showLayer(navFrame,"layB07");
  94.         }
  95.         if (top.load=='extention'){
  96.                 if(frames.timesContent.extentionScreens){
  97.                         extentionScreens=frames.timesContent.extentionScreens;
  98.                         extentionScreensMode=true;
  99.                 }
  100.         }
  101.         if (load=="test_result"){
  102.                 initTestResult();
  103.                 hideNav();
  104.                 //      hideLayer(navFrame,"layB01");
  105.                 showLayer(navFrame,"layB12");
  106.         showLayer(navFrame,"layB08");
  107.         }
  108.         if (load=='assess'){
  109.                 errorCount=0;
  110.                 if(frames.timesContent.document.forms[0]){
  111.                         if(isNav){
  112.                                 frames.timesContent.document.captureEvents(Event.CLICK);
  113.                                 frames.timesContent.document.onclick=clickTestNN;
  114.                         }else{
  115.                                 frames.timesContent.document.forms[0].onclick=clickTest;
  116.                         }
  117.                 }
  118.                 if(SecondChance){
  119.                         score(-1);
  120.                 }
  121.                 thisAnswer=false;
  122.                 hideNav();
  123.                 firstRunAnswerSpecialTest=0;
  124.                 showLayer(navFrame,"layB08");
  125.                 showLayer(navFrame,"layB09");
  126.                 showLayer(navFrame,"layB10");
  127.                 showLayer(navFrame,"layB11");
  128.                 showLayer(navFrame,"layB12");
  129.                 specialButtonControl();
  130.         }
  131.         if (load=='extention'||load=='hints'){
  132.                 showLayer(navFrame,"layB12");
  133.                 showLayer(navFrame,"layB08");
  134.                 if(extentionScreensMode){
  135.                         showLayer(navFrame,"layB09");
  136.                         showLayer(navFrame,"layB10");
  137.                 }
  138.         }
  139.     if (load=='start'){
  140.                 initTestVars();
  141.         if(getCookie('TimesActualPosition')){
  142.                         pos=getCookie('TimesActualPosition').split('-');
  143.                         if(newChapter!=pos[0]||newSection!=pos[1]||newScreen!=pos[2]){
  144.                                 if(confirm(askRestore)){restoreStanding();}
  145.                         }
  146.                 }
  147.                 showLayer(navFrame,"layB07");
  148.                 showLayer(navFrame,"layB12");
  149.         }
  150.         if (load=='start' && fairMode==true){
  151.                 fairModeInit();
  152.         }
  153.         if (load=='loadScreen'){
  154.                 checkPlugins();
  155.                 showLayer(navFrame,"layB12");
  156.         }
  157.         if (load=='pluginCheckFalse'){
  158.                 showLayer(navFrame,"layB12");
  159.         }
  160.         controlLayLoading("hide");
  161.         updateNowAll(newChapter,newSection,newScreen,newStep);
  162.         if(helpVisi==true){
  163.                 if(!helpWIN.closed){
  164.                 helpWIN.frames.mainFrame.location.reload()
  165.                 }
  166.         }
  167.         load='';
  168.         if(reviewMode){
  169.                 loadReviewFrame();
  170.         }
  171.         if(history.length==0){
  172.                 hideLayer(navFrame,"layB06");
  173.         }
  174. }
  175. var lastTestScreen=false;
  176. var prgHintMode=false;
  177. //The screen change comes from Navigation bar
  178. function clickControl(par){
  179.     clearSound();
  180.         if (mode=="menu"){
  181.                 chapVar=(newChapter==0)?1:newChapter+1;
  182.                 menuChanges(chapVar,newSection);
  183.                 for(c=1;c<11;c++){
  184.                         hideLayer('menu','KapLine'+c);
  185.                 }
  186.         }
  187.         if (mode=="tool"){
  188.                 changeScreen();
  189.         }
  190.         if (mode=="content"&&!prgHintMode){
  191.                 readClosingStrings();
  192.                 if(par == "next"){next();}
  193.                 if(par == "back"){back();}
  194.                 if(par == "forward"){forward();}
  195.                 if(par == "backward"){backward();}
  196.         }
  197.     else if(mode=="extention"){
  198.                 readClosingStrings();
  199.                 if(extentionScreensMode){
  200.                         if(par == "next"){
  201.                                 if(newStep==frames.timesContent.stepLength-1){
  202.                                         clickControl('forward');
  203.                                 }else{
  204.                                         next();
  205.                                 }
  206.                         }
  207.                         if(par == "back"){
  208.                                 if(newStep==0){
  209.                                         clickControl('backward');
  210.                                 }else{
  211.                                         back();
  212.                                 }
  213.                         }
  214.                         if(par == "forward"){
  215.                                 if(extentionPosition<extentionScreens.length-1){
  216.                                         frames.timesContent.document.location.replace(rootPath+'content/'+extentionScreens[extentionPosition+1]+".htm");
  217.                                         extentionPosition++;
  218.                                 }else{
  219.                                         extentionStepJump=true;
  220.                                         extentionScreensMode=false;
  221.                                         extentionPosition=0;
  222.                                         changeScreen();
  223.                                        
  224.                                 }
  225.                         }
  226.                         if(par == "backward"){
  227.                                 if(extentionPosition>0){
  228.                                         frames.timesContent.document.location.replace(rootPath+'content/'+extentionScreens[extentionPosition-1]+".htm");
  229.                                         extentionPosition--;
  230.                                 }else{
  231.                                         extentionStepJump=true;
  232.                                         extentionScreensMode=false;
  233.                                         extentionPosition=0;
  234.                                         changeScreen();
  235.                                 }
  236.                         }
  237.                        
  238.                 }else{
  239.                         if(par == "next"){if(newStep==frames.timesContent.stepLength-1){--newScreen;};next();}
  240.                         if(par == "back"){if(newStep==0){++newScreen;backward()}else{back()}}
  241.                         if(par == "forward"){--newScreen;extentionStepJump=true;forward();}
  242.                         if(par == "backward"){++newScreen;extentionStepJump=true;backward();}
  243.                 }
  244.         }
  245.         else if(mode=="test_result"){
  246.                 if(courseComplete()){
  247.                         initEndScreen();
  248.                 }else{
  249.                         readIndex();
  250.                         if(comeFromMenu||chapters==newChapter+1){
  251.                                 comeFromMenu=false;
  252.                                 buttonUp(8);
  253.                         }else{
  254.                                 changeScreen();
  255.                         }
  256.                         if(lastTestScreen){
  257.                                 buttonUp(8);
  258.                                 lastTestScreen=false;
  259.                         }
  260.                 }
  261.         }
  262.         else if(mode=="test_hint"){
  263.                 buttonUp(8);
  264.         }
  265.         else if(mode=="assess"){
  266.                 readClosingStrings();
  267.                 oldLayer='';
  268.                 oldLayerArray.length=0;
  269.                 if((newStep==frames.timesContent.stepLength-1)&&(newScreen==sectionScreens)&&(par=="next"||par=="forward")){
  270.                                 if(afterChapterTestGoTo==1){
  271.                                         if(courseComplete()){
  272.                                                 initEndScreen();
  273.                                         }else{
  274.                                                 buttonUp(8);
  275.                                         }
  276.                                 }else if(afterChapterTestGoTo==2){
  277.                                         buttonUp(5);
  278.                                 }
  279.                                 lastTestScreen=true;
  280.                                 return;
  281.                 }
  282.                         if(par == "next"){next();}
  283.                         if(par == "back"){back();}
  284.                         if(par == "forward"){forward();}
  285.                         if(par == "backward"){backward();}
  286.         }
  287.         else if(mode=="pluginCheckFalse"){
  288.         frames.timesContent.document.location.replace(rootPath+'times/load.htm');
  289.         }
  290.     else if(mode=="start"||prgHintMode){
  291.                         controlLayLoading("show");
  292.                         if(par == "next"){
  293.                                 if (newStep<eval(contentFrame+".stepLength")-1){
  294.                                                 newStep++;
  295.                                                 changeStep();
  296.                                                 if(hintCounter>0){
  297.                                                         showLayer(navFrame,"layB10");
  298.                                                 }
  299.                                 }else {
  300.                                         par= 'forward';
  301.                                 }
  302.                         }
  303.                         if(par == "back"){
  304.                                 if (newStep>0){
  305.                                                 newStep--;
  306.                                                 changeStep();
  307.                                                 if(hintCounter>0){
  308.                                                         showLayer(navFrame,"layB10");
  309.                                                 }
  310.                                 }else {
  311.                                         par= 'backward';
  312.                                 }
  313.                         }
  314.                         if(par == "forward"){
  315.                                 if(prgHintMode){
  316.                                         hintCounter++;
  317.                                         if(hintFiles.length==1){
  318.                                                 prgHintMode=false;
  319.                                 buttonUp(8);
  320.                                                 return;
  321.                                         }      
  322.                                 }
  323.                                 if(hintCounter<hintFiles.length){
  324.                                         frames.timesContent.document.location.replace(rootPath+'content/'+hintFiles[hintCounter]);
  325.                                 }else{
  326.                                         prgHintMode=false;
  327.                         buttonUp(8);
  328.                                         return;
  329.                                 }
  330.                                 if(hintCounter>0){
  331.                                         showLayer(navFrame,"layB10");
  332.                                 }else{
  333.                                         hideLayer(navFrame,"layB10");
  334.                                         hideLayer(navFrame,"layB09");
  335.                                 }
  336.                         }
  337.                         if(par == "backward"){
  338.                                 hintCounter--;
  339.                                 frames.timesContent.document.location.replace(rootPath+'content/'+hintFiles[hintCounter]);
  340.                                 if(hintCounter>0){
  341.                                         showLayer(navFrame,"layB10");
  342.                                 }else{
  343.                                         hideLayer(navFrame,"layB10");
  344.                                         hideLayer(navFrame,"layB09");
  345.                                 }
  346.                         }
  347.                         showLayer(navFrame,"layB11");
  348.                         prgHintMode=true;
  349.     }
  350.         controlLayLoading("hide");
  351.         frames.timesContent.focus();
  352. }
  353. //next button
  354. function next(pos) {
  355.         if(isNav){
  356.                 if((pos != null) && (pos != undefined)){
  357.                         newStep=pos;
  358.                         if (newStep<=eval(contentFrame+".stepLength")-1){
  359.                                 changeStep();
  360.                         }else{
  361.                                 alert('stepIndex '+pos+' nicht vorhanden');
  362.                         }
  363.                 }else{
  364.                         if (newStep<eval(contentFrame+".stepLength")-1){
  365.                                 newStep++;
  366.                                 changeStep();
  367.                         }else{
  368.                                 forward();
  369.                         }
  370.                 }
  371.         }else{
  372.                 if (pos != null){
  373.                         newStep=pos;
  374.                         if (newStep<=eval(contentFrame+".stepLength")-1){
  375.                                 changeStep();
  376.                         }else{
  377.                                 alert('stepIndex '+pos+' nicht vorhanden');
  378.                         }
  379.                 }else{
  380.                         if (newStep<eval(contentFrame+".stepLength")-1){
  381.                                         newStep++;
  382.                                         changeStep();
  383.                         }else {
  384.                                 forward();
  385.                         }
  386.                 }
  387.         }
  388. }
  389. //back button
  390. function back() {
  391.         if(newStep>0){
  392.                 newStep--;
  393.                 changeStep();
  394.         }else{
  395.                 backVar=1;
  396.                 backward();
  397.         }
  398. }
  399.  
  400. function initEndScreen(){
  401.         hideNav();
  402.         hideNavAll();
  403.         for(c=1;c<contentArray.length+1;c++){
  404.                 hideLayer('menu','KapLine'+c);
  405.                 hideLayer('menu','KapTxt'+c);
  406.                 hideLayer('menu','KapHook'+c);
  407.                 hideLayer('menu','Kap'+c);
  408.         }
  409.         loadTextToHead(courseTitle,"");
  410.         updateNowView();
  411.         showLayer(navFrame,"layB08");
  412.         frames.timesContent.document.location.replace(rootPath+finishScreen);
  413. }
  414. function courseComplete(){
  415.         secNum=0;
  416.         for(o=0;o<contentArray.length;o++){
  417.                 if(contentArray[o].length>1){
  418.                         secNum=secNum+(contentArray[o].length-1);
  419.                 }else{
  420.                         secNum++;
  421.                 }
  422.         }
  423.         //alert(history.length+'<'+(secNum-1));
  424.         if(history.length<secNum){
  425.                 return false;
  426.         }else{
  427.                 return true;
  428.         }
  429. }
  430. //forward button
  431. function forward() {
  432.                 newStep=-1;
  433.                 readIndex();
  434.                 if (newScreen<sectionScreens){
  435.                         newScreen=parseInt(newScreen)+1;
  436.                         changeScreen();
  437.                 }else{
  438.                         if (newSection<chapterSections){
  439.                                 newSection=parseInt(newSection)+1;
  440.                                 newScreen=1;
  441.                                 changeScreen();
  442.                         }
  443.                         else{
  444.                                 if(newChapter==chapters-1&&courseComplete()){
  445.                                         initEndScreen();
  446.                                 }else{
  447.                                         if(parseInt(afterLastChapterScreenGoTo)==1){
  448.                                                 buttonUp(8);
  449.                                         }
  450.                                         if(parseInt(afterLastChapterScreenGoTo)==2){
  451.                                                 if(newChapter+1<chapters){
  452.                                                         newChapter=parseInt(newChapter)+1;
  453.                                                         newScreen=1;
  454.                                                         if(contentArray[newChapter].length>1){
  455.                                                                 newSection=1;
  456.                                                         }else{
  457.                                                                 newSection=0;
  458.                                                         }
  459.                                                         changeScreen();
  460.                                                 }else{
  461.                                                         buttonUp(8);
  462.                                                 }
  463.                                         }
  464.                                 }
  465.                         }
  466.         }
  467. }
  468. //backward button
  469. function backward() {
  470.         readIndex();
  471.         if (newScreen>1){
  472.                 newScreen=parseInt(newScreen)-1;
  473.                 changeScreen();
  474.         }else{  
  475.                         if(newSection>1){
  476.                                 newSection=parseInt(newSection)-1;
  477.                                 readIndex();
  478.                                 newScreen=sectionScreens;
  479.                                 changeScreen();
  480.                         }else{
  481.                                 buttonUp(8);
  482.                         }
  483.         }
  484. }
  485. function menuChanges(chapter,section,screen){
  486.         newChapter=chapter-1;
  487.     newSection=section;
  488.     newScreen=(screen)?screen:1;
  489.         changeScreen();
  490.         frames.timesContent.focus();
  491. }
  492.  
  493. //Layer control functions------------------------------
  494. //Main functions
  495.  
  496. function changeStep(){
  497.                         if(frames.timesContent.stepLoaded){frames.timesContent.stepLoaded(newStep);}
  498.                         if(newStep>=0){
  499.                     updateNowAll(newChapter,newSection,newScreen,newStep);
  500.                     hideToolLayer();
  501.                     clearSound();
  502.                                 for(var j=0; j<nowVisiLayers.length; j++){
  503.                                         if(nowVisiLayers[j].indexOf('G')==-1){
  504.                                                 hideLayer(conFrame,nowVisiLayers[j]);
  505.                                         }
  506.                                 }
  507.                             if(frames.timesContent.oldLayer!=null&&frames.timesContent.oldLayer!=''){
  508.                                     hideLayer(conFrame,frames.timesContent.oldLayer);
  509.                             }
  510.                                 nowVisiLayers.length=0;
  511.                                 showStepLayer();
  512.                     readInitStrings();
  513.                     if(mode!='extention'&&extentionScreensMode==false){
  514.                                         showNav();
  515.                                 }
  516.                                 specialButtonControl();
  517.                     if(nowSoundId!=''||nowVideoId!='')changeVol(volMousePos);
  518.                         }else{changeScreen();}
  519. }
  520.  
  521. function changeScreen(){
  522.             clearSound();
  523.                         hideNav();
  524.                         showingFlash.length=0;
  525.                         lockClickTest=false;
  526.                         scoreRuntimeMode=false;
  527.                         hideMenu();
  528.             nowVisiLayers.length=0;  
  529.                         showLayer(navFrame,"layLoading");
  530.                         newChapter*=1;newSection*=1;newScreen*=1;
  531.                         if(contentArray[newChapter].length>1){
  532.                                 contentFileName=contentArray[newChapter][newSection][newScreen];
  533.                         }else{
  534.                                 contentFileName=contentArray[newChapter][0][newScreen];
  535.                         }
  536.            
  537.                         showScreen=rootPath+"content/"+contentFileName+".htm";
  538.                         frames.timesContent.document.location.replace(showScreen);
  539.             readIndex();
  540.             updateNowView(newScreen,sectionScreens);
  541. }
  542. var oldExtentionStep;
  543. function goToExtention(fileName){
  544.                 oldExtentionStep=newStep;
  545.         hideNav();
  546.         showLayer(navFrame,"layLoading");
  547.                 frames.timesContent.document.location.replace(rootPath+'content/'+fileName+".htm");
  548. }
  549.  
  550. function updateNowView(num,of){
  551.                 refNow=(isNav)?'nowNN':'now';
  552.                 hideLayer(navFrame,refNow);
  553.                 if (isIE){     
  554.                         refLink = window.frames.nav.document.all.now;
  555.                         if(refLink)
  556.                 refLink.innerHTML = num*1 +'&nbsp;/&nbsp;'+ of ;  
  557.                 }
  558.                 if (isNav){
  559.                         if(frames.nav.document.layers.nowNN){
  560.                                 refLink = frames.nav.document.layers.nowNN.document;
  561.                         refLink.write('<font class="now">'+num*1+'&nbsp;/&nbsp;'+of+'</font>');
  562.                                 refLink.close();
  563.                         }
  564.                 }
  565.                 if(num&&of){
  566.                         showLayer(navFrame,refNow);
  567.                 }
  568. }
  569. function enableNowAll(){
  570.     if(nowAll){    
  571.         nowAll=false;hideLayer(navFrame,refNow);
  572.     }else{
  573.         nowAll=true;
  574.         updateNowAll(newChapter,newSection,newScreen,newStep);
  575.     }
  576. }
  577. function updateNowAll(cha,sec,scr,ste){
  578.         if(ste==-1)ste=0;
  579.         cha=cha+1;++ste;
  580.                 if(cha==null){hideLayer(navFrame,refNow);}
  581.                 if(nowAll||devMode){
  582.             if (document.all){ 
  583.                         refLink = frames.nav.document.all.nowAll;
  584.                 refLink.innerHTML = cha +'&nbsp;-&nbsp;'+ sec +'&nbsp;-&nbsp;'+scr +'&nbsp;-&nbsp;'+ste;
  585.                 }
  586.                 if (document.layers){
  587.                                 if(frames.nav.document.layers.nowNNAll){
  588.                                 refLink = frames.nav.document.layers.nowNNAll.document;
  589.                         refLink.write('<font class="now">'+cha +'&nbsp;-&nbsp;'+ sec +'&nbsp;-&nbsp;'+scr +'&nbsp;-&nbsp;'+ste+'</font>');
  590.                                 refLink.close();
  591.                                 }
  592.                 }
  593.             refNow=(isNav)?'nowNNAll':'nowAll';
  594.             showLayer(navFrame,refNow);
  595.         }
  596. }
  597. function readInitStrings(){
  598.         if(eval('frames.timesContent.step'+newStep)){
  599.                 eval(eval('frames.timesContent.step'+newStep+'.initStrings'));
  600.         }
  601. }
  602. function readClosingStrings(){
  603.         if(eval('frames.timesContent.step'+newStep)){
  604.                 eval(eval('frames.timesContent.step'+newStep+'.closingStrings'));
  605.         }
  606. }
  607.  
  608. var flashObject;
  609. var approveLayer = 0;
  610. var reproveLayer = 0;
  611.  
  612. var audioQuality = "high";
  613. function audioOptions() {
  614.         var audioOptions = window.open("../times/audiooptions.htm","audioOptions","titlebar=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=250,height=250,scrollbars=auto");
  615. }
  616.  
  617. function showStepLayer(){
  618. //Times 2
  619. //****************
  620. showingFlash.length=0;
  621. showingGFlash.length=0;
  622. approveLayer = 0;
  623. reproveLayer = 0;
  624. clearTimeout(waitingLoopTimer);
  625.         if(newStep>=0){
  626.                 //Stoppt alle laufenden Flash Sounddateien
  627.                 stopFlashSound();
  628.                 //****************************************
  629.                 nowVisiLayers.length=0;
  630.                 numLay=eval('frames.timesContent.step'+newStep+'.visibleLayers.length');
  631.                 if(eval('frames.timesContent.step'+newStep+'.visibleLayers')!=''){
  632.                         for(i=0;i<numLay;i++){
  633.                                 showLay=eval(contentFrame+'.step'+newStep+'.visibleLayers['+i+']');
  634.                                 if(showLay.indexOf('G')!=-1){
  635.                                         showingGFlash[showingGFlash.length]=showLay;
  636.                                 }
  637.                                 if(showLay.indexOf('F')!=-1){
  638.                                         showingFlash[showingFlash.length]=showLay;
  639.                                 }
  640.                                 if((showLay.indexOf('A')!=-1) && (audioQuality != "off")){
  641.                                         showingFlash[showingFlash.length]=showLay;
  642.                                 }
  643.                                 if(showLay.indexOf('V')!=-1){
  644.                                         clearSound();
  645.                                         playVideo(showLay);
  646.                                 }
  647.                                 if(showLay.indexOf('T')!=-1){
  648.                                         if(showLay.indexOf('Tr')!=-1){
  649.                                                 reproveLayer = showLay;
  650.                                         } else {
  651.                                                 if(showLay.indexOf('Ta')!=-1){
  652.                                                         approveLayer = showLay;
  653.                                                 } else {
  654.                                                         showLayer(conFrame,showLay);
  655.                                                 }
  656.                                         }
  657.                                 }
  658.                                 if(showLay.indexOf('S')!=-1){
  659.                                         clearSound();
  660.                                         playSound(showLay);
  661.                                 }else{
  662.                                         nowVisiLayers[i]=showLay;
  663.                                         if(contentMenuVisi&&showLay.indexOf('F')!=-1){
  664.                                         }else{
  665.                                                 if(showLay.indexOf('Ta')==-1&&showLay.indexOf('Tr')==-1){
  666.                                                         showLayer(conFrame,showLay);
  667.                                                 }
  668.                                         }
  669.                                 }
  670.                         }
  671.                 }
  672.                 waitingLoop();
  673.         }
  674. }
  675.  
  676. function approve() {
  677.         unprove();
  678.         if (approveLayer){
  679.                 showLayer(conFrame,approveLayer);
  680.         }
  681. }
  682.  
  683. function reprove() {
  684.         unprove();
  685.         if (reproveLayer){
  686.                 showLayer(conFrame,reproveLayer);
  687.         }
  688. }
  689.  
  690. function unprove() {
  691.         if (approveLayer){
  692.                 hideLayer(conFrame,approveLayer);
  693.         }
  694.         if (reproveLayer){
  695.                 hideLayer(conFrame,reproveLayer);
  696.         }
  697. }
  698. var waitingLoopTimer=false;
  699. function waitingLoop(par){
  700.         if(clearObject){
  701.         if(clearObject.IsPlaying()){
  702.                 waitingLoopTimer=setTimeout('waitingLoop()',100);
  703.         }else if(showingFlash.length>0||showingGFlash.length>0){
  704.                 for(e=0;e<showingFlash.length;e++){
  705.                         if(isNav){
  706.                                         if(eval('frames.timesContent.document.layers.'+showingFlash[e])){
  707.                                                 flashObject=eval('frames.timesContent.document.layers.'+showingFlash[e]+'.document.embeds[0]');
  708.                                                 eval('frames.timesContent.document.layers.'+showingFlash[e]+'.document.embeds[0].Rewind');
  709.                                         }
  710.                         }else{
  711.                                         if(eval('frames.timesContent.document.'+showingFlash[e]+'f')){
  712.                                                 flashObject=eval('frames.timesContent.document.'+showingFlash[e]+'f');
  713.                                         }
  714.                         }
  715.                         if(flashObject){
  716.                                         if(menu){
  717.                                                 showLayer('timesContent',showingFlash[e]);
  718.                                         }else{
  719.                                                 flashObject.Rewind();
  720.                                         }
  721.                                         if(showingFlash[e].indexOf('A')==-1){
  722.                                                 GotoFrameDiv(showingFlash[e],0);
  723.                                                 flashObject.Play();
  724.                                         }else{
  725.                                                 if(par!='menu'){
  726.                                                 GotoFrameDiv(showingFlash[e],0);
  727.                                                 flashObject.Play();
  728.                                                 }
  729.                                         }
  730.                                        
  731.                         }
  732.                 }
  733.                 for(e=0;e<showingGFlash.length;e++){
  734.                         showLayer('timesContent',showingGFlash[e]);
  735.                 }      
  736.         }
  737.         }
  738. }
  739. function startFlash(){
  740.         if(showingFlash){
  741.                 for(f=0;f<showingFlash.length;f++){
  742.                         showLay=showingFlash[f];
  743.                         flashObject=null;
  744.                         if(document.layers){
  745.                                         if(eval('frames.timesContent.document.layers.'+showLay)){
  746.                                                 flashObject=eval('frames.timesContent.document.layers.'+showLay+'.document.embeds[0]');
  747.                                         }
  748.                         }else{
  749.                                 if(eval('frames.timesContent.document.'+showLay+'f')){
  750.                                         flashObject=eval('frames.timesContent.document.'+showLay+'f');
  751.                                 }
  752.                         }
  753.                         showLayer('timesContent',showLay);
  754.                         if(flashObject){
  755.                                 flashObject.Play();
  756.                         }
  757.                 }
  758.         }
  759. }
  760.  
  761. var letItPlay = false;
  762. var clearObject;
  763. function stopFlashSound(){
  764.                 if(isNav){
  765.                 if(frames.nav.document.layers.clearSound){
  766.                         clearObject=frames.nav.document.layers.clearSound.document.embeds[0];
  767.                 }
  768.                 }else{
  769.                 if(frames.nav.document.clearSoundf){
  770.                         clearObject=frames.nav.document.clearSoundf;
  771.                 }
  772.                 }
  773.                 if(clearObject){
  774.                         clearObject.Rewind();
  775.                         if (letItPlay!=true) {
  776.                                 clearObject.Play();
  777.                         }
  778.                 }
  779.                 return;
  780. }
  781.  
  782. //Button control functions-------------------------
  783. //reading "contentArray"
  784. function readIndex(){
  785.                 if(contentArray[newChapter].length>1){
  786.                         sectionScreens=eval("contentArray["+newChapter+"]["+newSection+"].length")-1;
  787.                 }else{
  788.                         sectionScreens=eval("contentArray["+newChapter+"][0].length")-1;
  789.                 }
  790.                 chapterSections=eval("contentArray["+newChapter+"].length")-1;
  791.                 chapters=contentArray.length;
  792. }
  793. function specialButtonControl(){
  794.         if(newStep>=0){
  795.                 buttons=eval('frames.timesContent.step'+newStep+'.buttons');
  796.                 if(buttons.charAt(0)=="0"){
  797.                         hideLayer(navFrame,"layB09");
  798.                 }
  799.                 if(buttons.charAt(1)=="0"){
  800.                         hideLayer(navFrame,"layB10");
  801.                 }
  802.                 if(buttons.charAt(2)=="0"){
  803.                         hideLayer(navFrame,"layB11");
  804.                 }
  805.                 if(buttons.charAt(3)=="0"){
  806.                         hideLayer(navFrame,"layB12");
  807.                 }
  808.         }
  809. }
  810. //hides Navigation Buttons
  811. function hideNav(){
  812.         hideLayer(navFrame,"layB09");
  813.         hideLayer(navFrame,"layB10");
  814.         hideLayer(navFrame,"layB11");
  815.         hideLayer(navFrame,"layB12");
  816. }
  817. function hideNavAll(){
  818.         //      hideLayer(navFrame,"layB01");
  819.     hideLayer(navFrame,"layB07");
  820.     hideLayer(navFrame,"layB08");
  821. }
  822. //shows Navigation Buttons
  823. function showNav(){
  824.     //  showLayer(navFrame,"layB01");
  825.         readIndex();
  826.         showLayer(navFrame,"layB12");
  827.         showLayer(navFrame,"layB11");
  828.         if (newChapter==0 && newSection==1 && newScreen==1 && newStep==0){hideLayer(navFrame,"layB09");}
  829.         else{showLayer(navFrame,"layB09");}
  830.         if (newChapter==0 && newSection==1 && newScreen==1){hideLayer(navFrame,"layB10");}
  831.         else{showLayer(navFrame,"layB10");}
  832. }
  833. //Loading Image Control Function
  834. function controlLayLoading(par){
  835.         if (par=="show")
  836.                 showLayer(navFrame,"layLoading");
  837.         else if(par=="hide")
  838.                 hideLayer(navFrame,"layLoading");
  839.         else if(par!="show" && par!="hide")
  840.                 alert("Error controlLayLoading");
  841. }
  842. function showTXT(bNo) {
  843.         if (bNo<10){ txtObj = "layTXT" + "0" + bNo ;}else{txtObj = "layTXT" +  bNo ;}
  844.         showLayer(navFrame,txtObj);
  845. }
  846. function hideTXT(bNo) {
  847.         hideLayer(navFrame,txtObj);
  848. }
  849. function checkButtonHeight(){
  850.     for(i=2;i<14;i++){
  851.         buttonObj = (i<10) ? "layB"+"0"+i : "layB"+i;
  852.         buttonTop=getObjTop(buttonObj);
  853.         if (buttonTop<1){buttonDown(i);}
  854.         else if(buttonTop>1){buttonRestore(i);}
  855.     }
  856. }
  857.  
  858. function buttonDown(bNo){
  859.         buttonObj = (bNo<10) ? "layB"+"0"+bNo : "layB"+bNo ;
  860.         focusSelf();
  861. }
  862.  
  863. function buttonRestore(bNo){
  864.     if (bNo<10)buttonObj = "layB" + "0" + bNo ;
  865.         else buttonObj = "layB" +  bNo ;
  866.     buttonUp(bNo);
  867.         focusSelf();
  868. }
  869. function loadToContent(file){
  870.         frames.timesContent.document.location=rootPath+file;
  871.         hideMenu();
  872.         hideNav();
  873.         mode='tool';
  874.         //      hideLayer(navFrame,"layB01");
  875.         showLayer(navFrame,"layB12");
  876. }
  877. var comeFromMenu=false;
  878. function buttonUp(bNo){
  879.         if(toolVisi==true && bNo!=2 && bNo!=3 && bNo!=4 && bNo!=5 && bNo!=6&& bNo!=7){
  880.                 hideToolLayer();
  881.         }
  882.         if (bNo == 1) {//Show Menu-------------------------------------------------
  883.                 if(mode!='start'&&mode!='menu'&&mode!='test_result'){
  884.                         if(contentMenuVisi){
  885.                                 hideMenu();
  886.                         }else{
  887.                                 initMenu();
  888.                         }
  889.                 }
  890.         }
  891.         else if (bNo == 2) {//Help-------------------------------------------------
  892.         if (helpVisi==false){
  893.                         hideToolLayer();
  894.             helpWIN = window.open("../times/help.htm","help","titlebar=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=640,height=480,scrollbars=no");
  895.                         helpWIN.focus();
  896.                         helpVisi=true;
  897.         }else{
  898.             if (helpWIN.closed){
  899.                 helpVisi=false;
  900.                 buttonUp(2);
  901.            }else{
  902.                                 hideToolLayer();
  903.                                 setTimeout('helpWIN.focus()',500);
  904.                    }
  905.         }
  906.         }
  907.         else if (bNo == 3) {//Glossary-------------------------------------------------
  908.                 if (glossaryVisi==false){
  909.                         hideToolLayer();
  910.             glossaryWIN = window.open('glossary.htm',"glossary","titlebar=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=740,height=480,scrollbars=no");
  911.                         glossaryWIN.focus();
  912.                         glossaryVisi=true;
  913.         }else{
  914.             if (glossaryWIN.closed){
  915.                 glossaryVisi=false;
  916.                 buttonUp(3);
  917.            }else hideToolLayer();glossaryWIN.focus();
  918.         }  
  919.         }
  920.         else if (bNo == 4) {//Print-------------------------------------------------
  921.                 hideToolLayer();
  922.                 if(isIE){
  923.                         if (window.print){
  924.                                 frames.timesContent.focus();
  925.                 frames.timesContent.print();
  926.                         }else{
  927.                                 vbPrintPage();
  928.                 }      
  929.                 }
  930.     }
  931.         else if (bNo == 5) {//Test
  932.                 if(mode=='menu'){
  933.                         comeFromMenu=true;
  934.                 }
  935.                 clearSound();
  936.                 hideMenu();
  937.                 assessControl('testbutton');
  938.                 frames.timesContent.document.location.replace(rootPath+'times/tm2_test_result.htm');
  939.         }
  940.         else if (bNo == 6) {//SaveLocal-------------------------------------------------
  941.                 if(confirm(askSaving)){
  942.                         saveStanding();
  943.                 }
  944.         }
  945.         else if (bNo == 7) {//Show tools-------------------------------------------------
  946.                 if(toolVisi==false){
  947.                         showLayer(navFrame,"layExtra");
  948.                         toolVisi=true;
  949.                         for ( i = 2; i < 7; i++ ){
  950.                                 buttonsToShow= "layB0" + i;
  951.                                 showLayer(navFrame,buttonsToShow);
  952.                         }
  953.                         showLayer(navFrame,"layB21");
  954.                         if(!B02||helpFiles.length==0){hideLayer(navFrame,"layB02");}
  955.                         if(!B03||glossaryFiles.length==0){hideLayer(navFrame,"layB03");}
  956.                         if(!B04){hideLayer(navFrame,"layB04");}
  957.                         if((testSection&&!B05)||mode=='start'||mode=='assess'){hideLayer(navFrame,"layB05");}
  958.                         if(!B06){hideLayer(navFrame,"layB06");}
  959.                 }else{
  960.                         hideToolLayer();
  961.                 }
  962.         }
  963.         else if (bNo == 8){//Menu-------------------------------------------------
  964.             clearSound();
  965.             controlLayLoading("show");
  966.                         frames.timesContent.document.location=rootPath+menuScreen;
  967.                         hideNav();
  968.         }
  969.         else if (bNo == 9) {//back-------------------------------------------------
  970.                 clickControl("back");
  971.         }
  972.         else if (bNo == 10) {//backward-------------------------------------------------
  973.                 clickControl("backward");
  974.         }
  975.         else if (bNo == 11) {//forward-------------------------------------------------
  976.                 clickControl("forward");
  977.         }
  978.         else if (bNo == 12) {//next-------------------------------------------------
  979.                 clickControl("next");
  980.         }
  981.         else if (bNo == 21) {//audio-------------------------------------------------
  982.                 audioOptions();
  983.         }
  984.         if(bNo!=2&&bNo!=3){self.focus();}
  985. }
  986. //hides Tool Buttons B02-B07
  987. function hideToolLayer(){
  988.                 toolVisi=false;
  989.                 volVisi = false;
  990.                 for ( i = 2; i < 7; i++ ){
  991.                         buttonsToHide= "layB0" + i; //helpvar for count i
  992.                         hideLayer(navFrame,buttonsToHide);
  993.                 }
  994.                 hideLayer(navFrame,"layExtra");
  995.                 hideLayer(navFrame,"layB21");
  996. }
  997.  
  998. //Store functions--------------------------------------------
  999. function saveStanding(){
  1000.     setCookie('TimesPosition',history,expiry);
  1001.         text='';
  1002.         for(i=0;i<testResultsFile.length;i++){
  1003.                 text+=testResultsFile[i]+'*';
  1004.         }
  1005.         setCookie('TestResults',text,expiry);
  1006.         if(mode=='menu'||mode=='test_result'){
  1007.         setCookie('TimesActualPosition','menu');
  1008.         }else{
  1009.                 setCookie('TimesActualPosition',newChapter+'-'+newSection+'-'+newScreen,expiry);
  1010.         }
  1011. }
  1012. var tpos='';
  1013. var tres='';
  1014. function restoreStanding(){
  1015.                 tpos=getCookie('TimesPosition');
  1016.                 history=(tpos)?tpos.split(','):new Array;
  1017.                 tres=getCookie('TestResults');
  1018.                 if(tres){
  1019.                         testResultsFile=tres.split('*');
  1020.                 }
  1021.                 testResultsFileNew=new Array;
  1022.                 for(i=0;i<testResultsFile.length;i++){
  1023.                         testResultsFileNew[i]= testResultsFile[i].split(',');
  1024.                 }
  1025.                 testResultsFile=testResultsFileNew;
  1026.                 actPos=getCookie('TimesActualPosition');
  1027.                 deleteStanding();
  1028.                 if(actPos=='menu'){
  1029.                         buttonUp(8);
  1030.                 }else{
  1031.                         pos=actPos.split('-');
  1032.                         newChapter=pos[0];
  1033.                         newSection=pos[1];
  1034.                         newScreen=pos[2];
  1035.                         changeScreen();
  1036.                 }
  1037.                 updateMenuStanding();
  1038. }
  1039. function deleteStanding(){
  1040.         deleteCookie('TestResults');
  1041.     deleteCookie('TimesPosition');
  1042.     deleteCookie('TimesActualPosition');
  1043. }
  1044.  
  1045. function playVideo(name){
  1046.         nowVideoId=name;
  1047.         if(isNav){
  1048.                         if(onlineProject){
  1049.                                 eval('frames.timesContent.document.layers.'+name+'.document.embeds[0].Play()');
  1050.                         }else{
  1051.                                 eval('frames.timesContent.document.layers.'+name+'.document.embeds[0].play()');
  1052.                         }
  1053.                 }else{
  1054.                         eval('frames.timesContent.document.'+name+'v.Play();');
  1055.                 }
  1056. }
  1057. function playSound(name){
  1058.         nowSoundId=name;
  1059.         if(isNav){
  1060.                         if(onlineProject){
  1061.                                 eval('frames.timesContent.document.layers.'+name+'.document.embeds[0].Play()');
  1062.                         }else{
  1063.                                 eval('frames.timesContent.document.layers.'+name+'.document.embeds[0].play();');
  1064.                         }
  1065.                 }else{
  1066.                         eval('frames.timesContent.document.'+name+'s.Play();');
  1067.                 }
  1068. }
  1069. function clearSound(){
  1070.     if(nowSoundId!=''){
  1071.                 if(isNav){
  1072.                         if(onlineProject){
  1073.                                 eval('frames.timesContent.document.layers.'+nowSoundId+'.document.embeds[0].Stop();');
  1074.                                 eval('frames.timesContent.document.layers.'+nowSoundId+'.document.embeds[0].SetCurrentPosition(0);');
  1075.                         }else{
  1076.                                 eval('frames.timesContent.document.layers.'+nowSoundId+'.document.embeds[0].stop();');
  1077.                         }
  1078.                 }else{
  1079.                         eval('frames.timesContent.document.'+nowSoundId+'s.stop();');
  1080.                         eval('frames.timesContent.document.'+nowSoundId+'s.CurrentPosition="0";');
  1081.                 }
  1082.                 nowSoundId='';
  1083.     }else if(nowVideoId!=''){
  1084.                 if(isNav){
  1085.                         if(onlineProject){
  1086.                                 eval('frames.timesContent.document.layers.'+nowVideoId+'.document.embeds[0].Stop();');
  1087.                                 eval('frames.timesContent.document.layers.'+nowVideoId+'.document.embeds[0].SetCurrentPosition(0);');
  1088.                         }else{
  1089.                                 eval('frames.timesContent.document.layers.'+nowVideoId+'.document.embeds[0].stop();');
  1090.                                 eval('frames.timesContent.document.layers.'+nowVideoId+'.document.embeds[0].rewind();');
  1091.                         }
  1092.                 }else{
  1093.                         eval('frames.timesContent.document.'+nowVideoId+'v.stop();');
  1094.                         eval('frames.timesContent.document.'+nowVideoId+'v.CurrentPosition="0";');
  1095.                 }
  1096.                 nowVideoId='';
  1097.         }
  1098. }
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106. //*******************************************************
  1107. //Menu Functions
  1108. //*******************************************************
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114. var lastMovie='';
  1115. var closeMenu=false;
  1116. content=contentArray;
  1117.  
  1118.  
  1119. function stopFlash(){
  1120.         if(showingFlash){
  1121.                 for(f=0;f<showingFlash.length;f++){
  1122.                         showLay=showingFlash[f];
  1123.                         flashObject=null;
  1124.                         if(document.layers){
  1125.                                         if(eval('frames.timesContent.document.layers.'+showLay)){
  1126.                                                 flashObject=eval('frames.timesContent.document.layers.'+showLay+'.document.embeds[0]');
  1127.                                         }
  1128.                         }else{
  1129.                                 if(eval('frames.timesContent.document.'+showLay+'f')){
  1130.                                         flashObject=eval('frames.timesContent.document.'+showLay+'f');
  1131.                                 }
  1132.                         }
  1133.                         hideLayer('timesContent',showLay);
  1134.                         if(flashObject){
  1135.                                 if(showLay.indexOf('A')==-1){
  1136.                                         flashObject.StopPlay();
  1137.                                 }
  1138.                         }
  1139.                 }
  1140.         }
  1141.        
  1142.         if(showingGFlash){
  1143.                 for(f=0;f<showingGFlash.length;f++){
  1144.                         hideLayer('timesContent',showingGFlash[f]);
  1145.                 }
  1146.         }
  1147.         if(frames.timesContent.document.showingFlash2){
  1148.                 for(f=0;f<frames.timesContent.document.showingFlash2.length;f++){
  1149.                         showLay=frames.timesContent.document.showingFlash2[f];
  1150.                         flashObject=null;
  1151.                         if(document.layers){
  1152.                                         if(eval('frames.timesContent.document.layers.'+showLay)){
  1153.                                                 flashObject=eval('frames.timesContent.document.layers.'+showLay+'.document.embeds[0]');
  1154.                                         }
  1155.                         }else{
  1156.                                 if(eval('frames.timesContent.document.'+showLay+'f')){
  1157.                                         flashObject=eval('frames.timesContent.document.'+showLay+'f');
  1158.                                 }
  1159.                         }
  1160.                         hideLayer('timesContent',showLay);
  1161.                         if(flashObject){
  1162.                                 flashObject.StopPlay();
  1163.                         }
  1164.                 }
  1165.         }
  1166. }
  1167.  
  1168. function focusSelf(){
  1169.         self.focus();
  1170. }
  1171.  
  1172. function hideMenu(){
  1173.         clearTimeout(waitingLoopTimer);
  1174.         if(mode!='menu'){
  1175.                 waitingLoop('menu');
  1176.         }
  1177.         hideLayer('timesContent','Menu');
  1178.         hideLayerContent('KapConnect');
  1179.         for(c=1;c<11;c++){
  1180.                 hideLayer('menu','KapLine'+c);
  1181.         }
  1182.         if(mode=='menu'){
  1183.                 for(c=1;c<11;c++){
  1184.                         hideLayer('timesContent','TxtS'+c);
  1185.                         hideLayer('timesContent','TxtC'+c);
  1186.                         hideLayer('timesContent','HokS'+c);
  1187.                         hideLayer('timesContent','HookC'+c);
  1188.                         hideLayer('timesContent','SecConnect'+c);
  1189.                         hideLayer('timesContent','KapLine'+c);
  1190.                         hideLayer('timesContent','S'+c);
  1191.                         hideLayer('timesContent','C'+c);
  1192.                 }
  1193.         }
  1194.         contentMenuVisi=false;
  1195. }
  1196. eventMovie=false;
  1197. function onMouseClick(evt){
  1198.         if(isNav){
  1199.                 if(evt.target.name){
  1200.                         eventMovie=evt.target.name;
  1201.                 }
  1202.         }else{
  1203.                 eventMovie='true';
  1204.         }
  1205.         if(eventMovie){
  1206.                 if(eventMovie!='Menu'&&mode!='menu'){
  1207.                         setTimeout('hideMenu()',500);
  1208.                 }
  1209.         }
  1210. }
  1211.  
  1212. function onClickSection(cha,sec){
  1213.                         hideMenu();
  1214.                         menuChanges(cha+1,sec);
  1215.                         parent.focus();
  1216. }
  1217. function onClickChapter(cha){
  1218.                         hideMenu();
  1219.                         if(contentArray[cha].length>1){
  1220.                                 menuChanges(cha+1,1);
  1221.                         }else{
  1222.                                 menuChanges(cha+1,0);
  1223.                         }
  1224.                         parent.focus();
  1225. }
  1226. function initMenu(){
  1227.         if(isNav){NNvar='NN'}else{NNvar=''}
  1228.         hideMenu();
  1229.         stopFlash();
  1230.         //stopFlashSound();
  1231.         oldSectionLayer=false;
  1232.        
  1233.                
  1234.                 vars="actChap="+(newChapter+1)+"&";
  1235.                 vars+="actSec="+newSection+"&";
  1236.                 //alert('reset');
  1237.                 if(newChapter==0&&newSection==1&&history.length==0&&(newStep==0||newStep==-1)){
  1238.                         vars='';
  1239.                 }else{
  1240.                         markMenuItem(newChapter);
  1241.                 }
  1242.                 for(s=1;s<contentArray.length+1;s++){
  1243.                         if(checkHistory('C'+s)){
  1244.                                 value=1;
  1245.                         }else{
  1246.                                 value=0;
  1247.                         }
  1248.                         vars+="seenChap"+(s-1)+"="+value+"&";
  1249.                         for(q=1;q<contentArray[(s*1)-1].length;q++){
  1250.                                 if(checkHistory('C'+((s*1))+'S'+(q))){
  1251.                                         value=1;
  1252.                                 }else{
  1253.                                         value=0;
  1254.                                 }
  1255.                                 vars+="seenSec"+(s-1)+(q-1).toString()+"="+value+"&";
  1256.                         }
  1257.                 }
  1258.         headLineText='<object id="Menuf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,0,0" width="477" height="360">'+
  1259.     '<param name=movie value="../laypic/menu.swf?'+vars+'">'+
  1260.     '<param name="quality" value="high">'+
  1261.     '<param name="LOOP" value="false">'+
  1262.     '<param name="PLAY" value="true">'+
  1263.         '<param name="wmode" value="transparent">'+
  1264.     '<embed src="../laypic/menu_nn.swf?'+vars+'" name="x" quality="high" wmode=transparent  swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="477" height="360" play="true" loop="false"></embed></object>';
  1265.                 if (isIE){
  1266.                         refLink = window.frames.timesContent.document.all.Menu;
  1267.                         if(refLink){
  1268.                 refLink.innerHTML = headLineText ;
  1269.                         }
  1270.                         showLayer('timesContent','Menu');
  1271.                 }
  1272.                 if (isNav){
  1273.                         if(mode=='menu'){
  1274.                                 //Start NN Menu
  1275.                                 contentMenuVisi=true;
  1276.                                 if(isNav){
  1277.                                         frames.timesContent.document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);
  1278.                                 }
  1279.                                 frames.timesContent.document.onmouseover = onMouseOver;
  1280.                                 frames.timesContent.document.onmouseout = onMouseOut;
  1281.                                 for(c=1;c<contentArray.length+1;c++){
  1282.                                         if(contentArray[c-1].length>1){
  1283.                                                 loadText('timesContent','TxtC'+c,contentArray[c-1][0]);
  1284.                                         }else{
  1285.                                                 hideLayerContent('KapConnect');
  1286.                                                 loadText('timesContent','TxtC'+c,contentArray[c-1][0][0]);
  1287.                                         }
  1288.                                         showLayer('timesContent','C'+c);
  1289.                                         showLayer('timesContent','TxtC'+c);
  1290.                                         showLayer('menu','KapLine'+c);
  1291.                                         showLayer('menu','KapTxt'+c);
  1292.                                         showLayer('menu','Kap'+c);
  1293.                                 }
  1294.                                 if(contentArray[newChapter].length>1){
  1295.                                         openSections(newChapter+1);
  1296.                                 }else{
  1297.                                         updateMenuStanding();
  1298.                                 }
  1299.                         }else{
  1300.                                 if(window.frames.timesContent.document.layers.Menu){
  1301.                                         refLink = window.frames.timesContent.document.layers.Menu.document;
  1302.                                 refLink.write(headLineText);
  1303.                                         refLink.close();
  1304.                                         showLayer('timesContent','Menu');
  1305.                                 }
  1306.                         }
  1307.                 }
  1308.          
  1309.        
  1310.        
  1311.         if(mode!='menu'){
  1312.                 contentMenuVisi=true;
  1313.         }
  1314.         if(isNav){
  1315.                 frames.timesContent.document.captureEvents(Event.MOUSEDOWN);
  1316.         }
  1317.         frames.timesContent.document.onmousedown = onMouseClick;
  1318.         for(c=0;c<contentArray.length;c++){
  1319.                 showLayer('menu','KapLine'+(c+1));
  1320.                 showLayer('menu','KapTxt'+(c+1));
  1321.                 showLayer('menu','Kap'+(c+1));
  1322.         }
  1323. }
  1324.  
  1325. function showBobbles(){
  1326.         for(c=0;c<contentArray.length;c++){
  1327.                 showLayer('menu','KapTxt'+(c+1));
  1328.                 showLayer('menu','Kap'+(c+1));
  1329.         }
  1330. }
  1331.  
  1332. //************************************************************
  1333. //Menu DHTML Functions
  1334. //************************************************************
  1335. var lastMovie='';
  1336. var closeMenu=false;
  1337. content=contentArray;
  1338.  
  1339.  
  1340. eventMovie=false;
  1341. var showingMenuTXT='bla';
  1342. var startID=1;
  1343. function openSections(id){
  1344.         startID=id*1;
  1345.         if(isNaN(id)){
  1346.                 return;
  1347.         }else{
  1348.                         showingChap=id;
  1349.                         sectionLength=(contentArray[id-1].length-1)*1;
  1350.                         completeLength=sectionLength+startID;
  1351.                         if(completeLength>11){
  1352.                                 startID=11-sectionLength;
  1353.                         }
  1354.                         endID=startID+sectionLength;
  1355.                         for(b=startID;b<endID;b++){
  1356.                                 showLayer('timesContent','S'+b);
  1357.                                 if(b<endID-1){
  1358.                                         showLayer('timesContent','SecConnect'+b);
  1359.                                 }
  1360.                         }
  1361.                         for(a=startID;a<endID;a++){
  1362.                                 che=id-1;sec=a-startID+1;
  1363.                                 loadText('timesContent','TxtS'+a,contentArray[che][sec][0]);
  1364.                                 showLayer('timesContent','TxtS'+a);    
  1365.                         }
  1366.                        
  1367.                         updateMenuStanding();
  1368.                         positionTop=27+((id-1)*35);
  1369.                         shiftToContent('KapConnect',220,positionTop);
  1370.                         if(contentArray[showingChap-1].length>1){
  1371.                                 showLayerContent('KapConnect');
  1372.                         }else{
  1373.                                 hideLayerContent('KapConnect');
  1374.                         }
  1375.         }
  1376. }
  1377.  
  1378.  
  1379. eventMovie=false;
  1380. pause=false;
  1381. oldChapterLayer=false;
  1382. oldSectionLayer=false;
  1383. function onMouseOver(evt){
  1384.         onMouseOut('over');
  1385.         if(evt.target.name){
  1386.                 eventMovie=evt.target.name;
  1387.         }
  1388.         if(eventMovie){
  1389.                         if(eventMovie.indexOf('Txt')!=-1){
  1390.                                         eventMovie=eventMovie.substring(3,eventMovie.length);
  1391.                         }
  1392.                         if(eventMovie.indexOf('C')!=-1&&eventMovie.length<4){
  1393.                                 if(oldChapterLayer){
  1394.                                         if(oldChapterLayer.indexOf(eventMovie)!=-1){
  1395.                                                 return;
  1396.                                         }
  1397.                                 }
  1398.                                 pause=setTimeout('changeChapter()',50);
  1399.                         }
  1400.                         if(eventMovie.indexOf('S')!=-1&&eventMovie.length<4){
  1401.                                 if(oldSectionLayer){
  1402.                                         if(oldSectionLayer.indexOf(eventMovie)!=-1){
  1403.                                                 return;
  1404.                                         }
  1405.                                         changePic('timesContent',oldSectionLayer,'img'+oldSectionLayer,'../laypic/tm2_menu_sec.gif');
  1406.                                 }
  1407.                                 oldSectionLayer=eventMovie;
  1408.                                 if(eventMovie.indexOf(newSection+startID-1)!=-1&&newChapter==showingChap-1){
  1409.                                         oldSectionLayer=false;
  1410.                                 }else{
  1411.                                         changePic('timesContent',eventMovie,'img'+eventMovie,'../laypic/tm2_menu_sec_filled2.gif');
  1412.                                 }
  1413.                                 overFlash(showingChap.toString()-1,((eventMovie.substring(1,eventMovie.length)*1)-(startID)+1));
  1414.                         }
  1415.         }
  1416. }
  1417. function changeChapter(){
  1418.                                 for(c=1;c<11;c++){
  1419.                                         hideLayer('timesContent','TxtS'+c);
  1420.                                         hideLayer('timesContent','SecConnect'+c);
  1421.                                         hideLayer('timesContent','S'+c);       
  1422.                                 }
  1423.                                 if(oldChapterLayer){
  1424.                                         changePic('timesContent',oldChapterLayer,'img'+oldChapterLayer,'../laypic/tm2_menu_kap.gif');
  1425.                                 }
  1426.                                 oldChapterLayer=eventMovie;
  1427.                                 changePic('timesContent',eventMovie,'img'+eventMovie,'../laypic/tm2_menu_kap_filled2.gif');
  1428.                                 showingChap=eventMovie.substr(1,2);
  1429.                                 openSections(showingChap);
  1430.                                 overFlash(showingChap.toString()-1,0); 
  1431. }
  1432.  
  1433. function onMouseOut(vari){
  1434.                 clearTimeout(pause);
  1435.                 eventMovie=false;
  1436. }
  1437.  
  1438. function loadText(frame,id,text){
  1439.                 if(id.indexOf('S')!=-1){
  1440.                         num=id.substring(4,id.length);
  1441.                         text='<a href="#" onClick="parent.clickSection('+num+');return false" onmouseover="parent.overSection('+num+');" onmouseout="parent.outSection('+num+');">'+text+'</a>';
  1442.                 }
  1443.                 if(id.indexOf('C')!=-1){
  1444.                         num=id.substring(4,id.length);
  1445.                         text='<a href="#" onClick="parent.clickChapter('+num+');return false" onmouseover="parent.overChapter('+num+');" onmouseout="parent.outChapter('+num+');">'+text+'</a>';
  1446.                 }
  1447.                 if (isIE){
  1448.                         refLink = eval('window.frames.'+frame+'.document.all.'+id);
  1449.                         if(refLink){
  1450.                 refLink.innerHTML = text ;
  1451.                         }
  1452.                 }
  1453.                 if (isNav){
  1454.                         refLink = eval('window.frames.'+frame+'.document.layers.'+id+'.document');
  1455.                 refLink.write('<font class="textflow10">'+text+'</font>');
  1456.                         refLink.close();
  1457.                 }
  1458. }
  1459. function updateMenuStanding(){
  1460.         if(newChapter==0&&newSection==1&&history.length==0&&(newStep==0||newStep==-1)){
  1461.                
  1462.         }else{
  1463.                 markMenuItem(newChapter,newSection);
  1464.         }
  1465.         if(mode=='menu'){
  1466.                 for(c=1;c<11;c++){
  1467.                         hideLayer('timesContent','HookS'+c);
  1468.                 }
  1469.                 //Reading History
  1470.                 showBobbles();
  1471.                 for(s=1;s<contentArray.length+1;s++){
  1472.                         if(checkHistory('C'+s)){
  1473.                                 showLayer('timesContent','HookC'+s);
  1474.                                 showLayer('menu','KapHook'+s);
  1475.                         }
  1476.                         for(q=1;q<contentArray[(showingChap*1)-1].length;q++){
  1477.                                 if(checkHistory('C'+((showingChap*1))+'S'+(q))){
  1478.                                         showLayer('timesContent','HookS'+(q+startID-1));
  1479.                                 }
  1480.                         }
  1481.                 }
  1482.         }
  1483. }
  1484. function markMenuItem(cha,sec){
  1485.  
  1486. //Position Now
  1487. if(sec){
  1488.         for(y=1;y<11;y++){
  1489.                 changePic('timesContent','S'+y,'imgS'+y,'../laypic/tm2_menu_sec.gif');
  1490.         }
  1491.         changePic('timesContent','C'+((cha*1)+1),'imgC'+((cha*1)+1),'../laypic/tm2_menu_kap_filled.gif');
  1492.         if((cha*1)+1==showingChap*1){
  1493.                 changePic('timesContent','S'+(sec+(startID-1)),'imgS'+(sec+(startID-1)),'../laypic/tm2_menu_sec_filled.gif');
  1494.         }
  1495. }else{
  1496.         for(y=1;y<11;y++){
  1497.                 changePic('menu','Kap'+y,'imgKap'+y,'../laypic/tm2_menu_button.gif');
  1498.         }
  1499.         changePic('timesContent','C'+((cha*1)+1),'imgC'+((cha*1)+1),'../laypic/tm2_menu_kap_filled.gif');
  1500.         changePic('menu','Kap'+((cha*1)+1),'imgKap'+((cha*1)+1),'../laypic/tm2_menu_button_filled.gif');
  1501.         showBobbles();
  1502.         if(checkHistory('C'+(cha))){
  1503.                 showLayer('menu','KapHook'+(cha));
  1504.         }
  1505. }
  1506. }
  1507. function changePic(frame,layer,name,src){
  1508.         if(isIE){
  1509.                 obj=eval('frames.'+frame+'.document.all.'+name);
  1510.                 if(obj){
  1511.                         obj.src=src;
  1512.                 }
  1513.         }else{
  1514.                 obj=eval('frames.'+frame+'.document.layers.'+layer+'.document.'+name);
  1515.                 obj.src=src;
  1516.         }      
  1517. }
  1518. function returnPicSrc(frame,layer,name){
  1519.         if(isIE){
  1520.                 obj=eval('frames.'+frame+'.document.all.'+name);
  1521.                 if(obj){
  1522.                         return obj.src;
  1523.                 }else{return false}
  1524.         }else{
  1525.                 obj=eval('frames.'+frame+'.document.layers.'+layer+'.document.'+name);
  1526.                 return obj.src;
  1527.         }      
  1528. }
  1529.  
  1530. function clickSection(num){
  1531.         hideMenu();
  1532.         menuChanges(showingChap,(num-startID)+1);
  1533.         parent.focus();
  1534. }
  1535. function clickChapter(num){
  1536.         hideMenu();
  1537.         if(contentArray[showingChap-1].length>1){
  1538.                 menuChanges(showingChap,1);
  1539.         }else{
  1540.                 menuChanges(showingChap,0);
  1541.         }
  1542.         parent.focus();
  1543. }
  1544. function changePic(frame,layer,name,src){
  1545.         if(isIE){
  1546.                 if(eval('frames.'+frame+'.document.all.'+name)){
  1547.                         obj=eval('frames.'+frame+'.document.all.'+name);
  1548.                         if(obj){
  1549.                                 obj.src=src;
  1550.                         }
  1551.                 }
  1552.         }else{
  1553.                 if(eval('frames.'+frame+'.document.layers.'+layer)){
  1554.                         obj=eval('frames.'+frame+'.document.layers.'+layer+'.document.'+name);
  1555.                         obj.src=src;
  1556.                 }
  1557.         }      
  1558. }
  1559.  
  1560. function checkHistory(layName){
  1561.         sectionFound=false;
  1562.     chapSectionsShowed=new Array();
  1563.     for(l=0;l<history.length;l++){
  1564.                 nameArray=history[l].split('-');
  1565.                 chap=(nameArray[0]*1)+1;
  1566.         searchString='C'+chap+'S'+nameArray[1];
  1567.                 if(layName==searchString){
  1568.                         sectionFound=true;
  1569.                 }
  1570.         num=parseInt(nameArray[0]*1);
  1571.         if(chapSectionsShowed[num]){
  1572.             chapSectionsShowed[num]+=1;
  1573.         }else{
  1574.             chapSectionsShowed[num]=1;
  1575.                 }
  1576.     }
  1577.     for(m=0;m<chapSectionsShowed.length;m++){
  1578.                 if(contentArray[m].length>1){
  1579.                         subVar=1;
  1580.                 }else{
  1581.                         subVar=0;
  1582.                 }
  1583.         if(chapSectionsShowed[m]==contentArray[m].length-subVar){
  1584.             num=m+1;
  1585.             searchString='C'+num;
  1586.                 if(searchString.indexOf(layName)!=-1){
  1587.                                 return true;
  1588.                         }
  1589.         }
  1590.     }
  1591.         if(sectionFound){
  1592.                 return true;
  1593.         }
  1594.         return false;
  1595. }
  1596.  
  1597. function loadTextToHead(left,right){
  1598.         if(isNav){NNvar='NN'}else{NNvar=''}
  1599.         if (left == "") {
  1600.                 left = window.frames.timesContent.document.title;
  1601.         }
  1602.         headLineText='<table border="0" cellspacing="0" cellpadding="5" height="40" width="740"><tr><td class="pageHeadline" valign="top">'+left+'</td><td class="chapterHeadline" valign="top" align="right">'+right+'</tr></table>';
  1603.         if (isIE){
  1604.                 refLink = window.frames.head.document.all.Headline;
  1605.                 if(refLink){
  1606.                         refLink.innerHTML = headLineText ;
  1607.                 }
  1608.         }
  1609.         if (isNav){
  1610.                 refLink = window.frames.head.document.layers.Headline.document;
  1611.                 refLink.write('<font class="textflow10">'+headLineText+'</font>');
  1612.                 refLink.close();
  1613.         }
  1614. }      
  1615.  
  1616. var closeOverFlash=false;
  1617. var showingMenuTXT='a';
  1618. function overFlash(chap,sec){
  1619.         if(mode=='menu'){
  1620.         hideLayerContent(showingMenuTXT);
  1621.         if(sec==0){
  1622.                 showingMenuTXT="ChapTxt"+chap.toString();
  1623.         }else{
  1624.                 showingMenuTXT="SecTxt"+chap.toString()+(sec-1).toString();
  1625.         }
  1626.         if(showLayerContent(showingMenuTXT)){
  1627.                 showLayerContent('TextFieldBg');
  1628.         }
  1629.         }
  1630.         return;
  1631. }
  1632. function outFlash(get){
  1633.         return;
  1634. }
  1635.  
  1636.  
  1637.  
  1638.  
  1639. //Review Functions
  1640. function sendReview(){
  1641.         path=frames.timesContent.document.location.href;
  1642.         pathArray=path.split('/');
  1643.         fileName=pathArray[pathArray.length-1];
  1644.         fileName=fileName.substring(0,fileName.length-4);
  1645.         frames.review.document.forms.reviewForm.fileID.value=fileName;
  1646.         frames.review.document.forms.reviewForm.submit();
  1647. }
  1648.  
  1649. function loadReviewFrame(){
  1650.         path=frames.timesContent.document.location.href;
  1651.         pathArray=path.split('/');
  1652.         fileName=pathArray[pathArray.length-1];
  1653.         fileName=fileName.substring(0,fileName.length-4);
  1654.         if(mode=="content"||mode=="extention"||mode=="assess"){
  1655.                 frames.review.document.location.replace('http://www.firstmedia.de/cgi-bin/'+project+'/review.pl?'+fileName);
  1656.                 return;
  1657.         }
  1658.         if(mode=="menu"){
  1659.                 frames.review.document.location.replace('http://www.firstmedia.de/cgi-bin/'+project+'/review.pl?start');
  1660.         }
  1661. }
  1662.  
  1663.  
  1664. //***********************************
  1665. //Init Testresult page
  1666. //***********************************
  1667. function initTestResult(){     
  1668.         if(isIE){
  1669.                 image1 = new Image();
  1670.                 image1.src="../laypic/test_button_line.gif";
  1671.         }
  1672.         text='<table width="400" border="0" cellspacing="0" cellpadding="0">';
  1673.         //alert(testResultsFile);
  1674.         for(q=0;q<contentArray.length;q++){
  1675.                 chapName=(contentArray[q].length>1)?contentArray[q][0]:contentArray[q][0][0];
  1676.                 text+='<tr valign="top"><td width="221" class="textflow10" height="35"><div align="left">'+chapName+'</div></td><td width="179" height="30" class="textflow8">';
  1677.                
  1678.                 if(testResults[q]){
  1679.                         if(testResults[q]==1){
  1680.                         text+='<img src="../laypic/test_button_line.gif" width="168" height="17">';
  1681.                                 showLayer(contentFrame,'Button'+(q+1));
  1682.                                 count=0;countRight=0;
  1683.                                
  1684.                                 for(z=0;z<testResultsFile.length;z++){
  1685.                                         if(q==testResultsFile[z][2]){
  1686.                                                 count++;
  1687.                                                 if(testResultsFile[z][1]>0){
  1688.                                                         countRight++;
  1689.                                                 }
  1690.                                         }
  1691.                                 }
  1692.                                 //alert(countRight+'--'+count);
  1693.                                 //alert('Button'+(q+1)+'--'+Math.round(parseInt(countRight)/parseInt(count)*100));
  1694.                                
  1695.                                 Phtml='<font style="font-family: Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold">'+Math.round(parseInt(countRight)/parseInt(count)*100)+'&nbsp;%</font>';
  1696.                                 loadText('timesContent','chaprecord'+q,Phtml);
  1697.                                 shiftByContent('chaprecord'+q,Math.round(parseInt(countRight)/parseInt(count)*100),0);
  1698.                                 shiftByContent('Button'+(q+1),Math.round(parseInt(countRight)/parseInt(count)*100),0);
  1699.                                
  1700.                         }
  1701.                 }
  1702.                
  1703.                 text+='</td></tr>';
  1704.         }
  1705.         text+='</table>';
  1706.         id='Tab';
  1707.                 if (isIE){
  1708.                         refLink = eval('window.frames.timesContent.document.all.'+id);
  1709.                         if(refLink){
  1710.                 refLink.innerHTML = text ;
  1711.                         }
  1712.                 }  
  1713.                
  1714.                 if (isNav){
  1715.                         refLink = eval('window.frames.timesContent.document.layers.'+id+'.document');
  1716.                 refLink.write(text);
  1717.                         refLink.close();
  1718.                 }
  1719.         shiftByContent('ButtonEnd',testEndResult,0);
  1720.        
  1721.         if(testEndResult>=testMinResult){
  1722.                 showLayerContent('Passed');
  1723.         }
  1724. }
  1725. var testQuestions=0;
  1726. var testQuestionsSeen=0;
  1727. var testQuestionsOK=0;
  1728. var testEndResult=0;
  1729. var testSection = new Array;
  1730. testResults = new Array;
  1731.  
  1732. for(s=0;s<10;s++){testResults[s]=0;}
  1733. testResultsFile = new Array;
  1734. testResults.length=contentArray.length;
  1735. function initTestVars(){
  1736.         if(testQuestions==0){
  1737.                 for(s=0;s<testSection.length;s++){
  1738.                                 c=testSection[s][0];
  1739.                                 se=testSection[s][1]+1;
  1740.                                 testQuestions+=(contentArray[c][se].length-1);
  1741.                                 found=true;
  1742.                                 for(f=1;f<contentArray[c][se].length;f++){
  1743.                                                 testResultsFile[testResultsFile.length] = new Array(contentArray[c][se][f],-1,c);
  1744.                                 }
  1745.                                 testResults[c]=1;
  1746.                 }
  1747.         }
  1748. }
  1749.  
  1750. var lastAnswerID=1;
  1751. var errorCount=0;
  1752. function clickTestNN(evt){
  1753.         if(evt.target.name=='checkbox'){
  1754.                 clickTest();
  1755.         }
  1756. }
  1757. function checkRightWrong(questionNr,dezCode){
  1758.         id=decTobin(dezCode).split('');
  1759.         id.reverse();
  1760.         if(id[questionNr-1]=='1'){
  1761.                 return true;
  1762.         }else{
  1763.                 return false;
  1764.         }
  1765. }
  1766.  
  1767. var lockClickTest=false;
  1768. function clickTest(){
  1769.         if(!lockClickTest){
  1770.         compareBitPatternReturn=compareBitPattern().split('&');
  1771.         if(scoreRuntimeMode){
  1772.                 if(compareBitPatternReturn[1]=='1'&&!checkRightWrong(compareBitPatternReturn[0],scoreRuntimeM)){
  1773.                         errorCount++;
  1774.                         score(0,scoreRuntimecList);
  1775.                 }
  1776.                 if(rateMulti(scoreRuntimeM,scoreRuntimePoints,'rigid')>0){
  1777.                         score(scoreRuntimePoints,scoreRuntimecList);
  1778.                         compareBitPatternReturn[0]='0';
  1779.                         lockClickTest=true;
  1780.                 }
  1781.         }
  1782.         lay='';
  1783.         if(eval('frames.timesContent.answerLayer'+compareBitPatternReturn[0])){
  1784.                 //hideOldLayers
  1785.                 lay=eval('frames.timesContent.answerLayer'+lastAnswerID);
  1786.                 lay=lay.split(' ');
  1787.                 for(l=0;l<lay.length;l++){
  1788.                                 hideLayerContent(lay[l]);
  1789.                 }
  1790.                 //showNewLayers
  1791.                 lay=eval('frames.timesContent.answerLayer'+compareBitPatternReturn[0]);
  1792.                 lay=lay.split(' ');
  1793.                 lastAnswerID=compareBitPatternReturn[0];       
  1794.         }
  1795.        
  1796.         if(compareBitPatternReturn[1]=='1'){
  1797.                 if(lay.length>0){
  1798.                         for(l=0;l<lay.length;l++){
  1799.                                 showText(lay[l]);
  1800.                         }
  1801.                 }
  1802.                 if(frames.timesContent.legalErrors){
  1803.                         if(errorCount>frames.timesContent.legalErrors){
  1804.                                 fileName=frames.timesContent.document.location.href;
  1805.                                 fileName=fileName.split('/');
  1806.                                 fileName=fileName[fileName.length-1];
  1807.                                 fileName=fileName.substring(2,fileName.length-4);
  1808.                                 testFileNameNow=fileName;
  1809.                                
  1810.                                 for(z=0;z<testResultsFile.length;z++){
  1811.                                         if(testResultsFile[z][0].indexOf(testFileNameNow)!=-1){
  1812.                                                 testResultsFile[z][1]=0;
  1813.                                         }
  1814.                                 }
  1815.                                
  1816.                                 frames.timesContent.document.location.replace(rootPath+'times/tm2_test_hint.htm');
  1817.                         }
  1818.                 }
  1819.         }
  1820.         }
  1821. }
  1822.  
  1823. var oldBitPattern=false;
  1824. //check which checkbox was clicked (1-x)
  1825. function compareBitPattern(){
  1826.         pos=0;
  1827.         nowBitPattern=genBitPattern();
  1828.         if(oldBitPattern==false){
  1829.                 oldBitPattern='';
  1830.                
  1831.                 for(p=0;p<nowBitPattern.length;p++){
  1832.                         oldBitPattern="0"+oldBitPattern;
  1833.                 }
  1834.         }
  1835.         countFound=0;
  1836.         for(u=nowBitPattern.length-1;u>0;u--){
  1837.                 if(nowBitPattern.charAt(u)!=oldBitPattern.charAt(u)){
  1838.                         countFound++;
  1839.                         pos=u;
  1840.                 }
  1841.         }
  1842.         if(countFound>1){
  1843.                 for(u=nowBitPattern.length-1;u>0;u--){
  1844.                 if(nowBitPattern.charAt(u)=='1'){
  1845.                         pos=u;
  1846.                 }
  1847.         }
  1848.         }
  1849.         oldBitPattern=nowBitPattern;
  1850.         return nowBitPattern.length-pos+'&'+nowBitPattern.charAt(pos);
  1851. }
  1852.  
  1853. var scoreRuntimeMode=false;
  1854. var scoreRuntimeM=false;
  1855. var scoreRuntimePoints=false;
  1856. var scoreRuntimecList=false;
  1857. var scoreRuntimewList=false;
  1858.  
  1859. function scoreRuntime(m,points,cList){
  1860.         scoreRuntimeM=m;
  1861.     scoreRuntimePoints=points;
  1862.     scoreRuntimecList=cList;
  1863.         scoreRuntimeMode=true;
  1864. }
  1865.  
  1866.  
  1867. var showTestResult=false;
  1868. var lockFunctionScore=false;
  1869. var cList;
  1870. var wList;
  1871.  
  1872. function score(points,cList,wList){
  1873.         fileName=frames.timesContent.document.location.href;
  1874.         fileName=fileName.split('/');
  1875.         fileName=fileName[fileName.length-1];
  1876.         fileName=fileName.substring(0,fileName.length-4);
  1877.         testFileNameNow=fileName;
  1878.         //alert(testFileNameNow);
  1879.         for(z=0;z<testResultsFile.length;z++){
  1880.                         if(testResultsFile[z][0].indexOf(testFileNameNow)!=-1){
  1881.                                 if(testResultsFile[z][1]==-1||points==-1){
  1882.                                         for(z=0;z<testResultsFile.length;z++){
  1883.                                                 if(testResultsFile[z][0].indexOf(testFileNameNow)!=-1){
  1884.                                                         testResultsFile[z][1]=points;
  1885.                                                         if(points>0&&cList){
  1886.                                                                 lay=cList.split(' ');
  1887.                                                                 for(l=0;l<lay.length;l++){
  1888.                                                                                 showLayerContent(lay[l]);      
  1889.                                                                 }
  1890.                                                         }else if (wList){
  1891.                                                                 lay=wList.split(' ');
  1892.                                                                 for(l=0;l<lay.length;l++){
  1893.                                                                                 showLayerContent(lay[l]);
  1894.                                                                 }
  1895.                                                         }
  1896.                                                         return;
  1897.                                                 }
  1898.                                         }
  1899.                                 }
  1900.                         }
  1901.         }
  1902. }
  1903. function setLocalRegister(wert){
  1904.         frames.timesContent.document.forms[0].score.value=wert;
  1905. }
  1906. function setGlobalRegister(name,value){
  1907.         alert("diese Routine ist noch nicht implementiert");
  1908. }
  1909. function getGlobalRegister(name){
  1910.         alert("diese Routine ist noch nicht implementiert");
  1911. }
  1912. function rateObject(solution,option) {
  1913.         var register = frames.timesContent.document.forms[0].elements[0].value;
  1914.         if (register == "") {
  1915.                 GotoLabel("G01","_flash0",solution);
  1916.                 return 0;
  1917.         }
  1918.         var Werte = register.split('/');
  1919.         if (Werte[0] == Werte[1]) {
  1920.                 return 1;
  1921.         } else {
  1922.                 GotoLabel("G01","_flash0",solution);
  1923.                 return 0;
  1924.         }
  1925. }
  1926. function rateMulti(m,n,option){
  1927.         pattern=genBitPattern();
  1928.         if(isNaN(m)){
  1929.                 binCode=decTobin(ascii.lastIndexOf(m));
  1930.                 start=binCode.length-pattern.length;
  1931.                 m=parseInt(binCode.substr(start,pattern.length),2);
  1932.         }
  1933.         if(parseInt(pattern,2)==parseInt(m)){
  1934.                 if(option=='rigid'){
  1935.                         return n;
  1936.                 }else if(option=='weak'){
  1937.                         return n;
  1938.                 }
  1939.         }else{
  1940.                 return 0;
  1941.         }
  1942. }
  1943. function rateSingle(m,n){
  1944.         if(isNaN(m)){
  1945.                 binCode=decTobin(ascii.lastIndexOf(m));
  1946.                 start=binCode.length-pattern.length;
  1947.                 m=parseInt(binCode.substr(start,pattern.length),2);
  1948.         }
  1949.         if(parseInt(genBitPattern(),2)==m){
  1950.                 return n;
  1951.         }else{
  1952.                 return 0;
  1953.         }
  1954. }
  1955. function genBitPattern(){
  1956.         userInput='';
  1957.         for(w=0;w<frames.timesContent.document.forms[0].elements.length;w++){
  1958.                 if(frames.timesContent.document.forms[0].elements[w].checked){
  1959.                         userInput="1"+userInput;
  1960.                 }else{
  1961.                         userInput="0"+userInput;
  1962.                 }
  1963.         }
  1964.         return userInput
  1965. }
  1966. var ascii="01234567890123456789012345678901" +
  1967.           " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
  1968.           "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
  1969.  
  1970.  
  1971. function decTobin(decCode){
  1972.         decstring = decCode+" ";
  1973.         dec=new Object;
  1974.         binut="";
  1975.         i=0;
  1976.         m=0;
  1977.         k=0;
  1978.        
  1979.         bit = new Object();
  1980.         bitstream = new Object();
  1981.        
  1982.         //For every char(decvalue)
  1983.         while (m<decstring.length-1)
  1984.         {j="";
  1985.         while (decstring.charAt(m)!="," && m<decstring.length-1)
  1986.         {j=j+decstring.charAt(m);++m}
  1987.         //Convert decimal to binary
  1988.         if (j>=128) {bit[8]=1;j=j-128;} else {bit[8]=0;}
  1989.         if (j>=64) {bit[7]=1;j=j-64;} else {bit[7]=0;}
  1990.         if (j>=32) {bit[6]=1;j=j-32;} else {bit[6]=0;}
  1991.         if (j>=16) {bit[5]=1;j=j-16;} else {bit[5]=0;}
  1992.         if (j>=8) {bit[4]=1;j=j-8;} else {bit[4]=0;}
  1993.         if (j>=4) {bit[3]=1;j=j-4;} else {bit[3]=0;}
  1994.         if (j>=2) {bit[2]=1;j=j-2;} else {bit[2]=0;}
  1995.         if (j>=1) {bit[1]=1;j=j-1;} else {bit[1]=0;}
  1996.         for (i=8;i>0;--i){
  1997.                 bitstream[k+1]=bit[i];
  1998.                 binut=binut+bitstream[k+1];}
  1999.                 ++k;
  2000.         }
  2001.         return binut;
  2002. }
  2003.                  
  2004. function changeTextColor(lay,color){
  2005.         if (isIE){
  2006.                         refLink = eval('frames.timesContent.document.all.'+lay);
  2007.                         if(refLink){
  2008.                                 refLink.style.color=color;
  2009.                         }else{
  2010.                                 alert('Layer existiert nicht');
  2011.                         }
  2012.         }
  2013. }
  2014.  
  2015. function GotoFrame(movie,frame) {
  2016.         frame--;
  2017.         eval('frames.timesContent.document.' + movie + '.GotoFrame(' + frame + ')');
  2018. }
  2019.  
  2020. function GotoFrameDiv(movie,frame){
  2021.         frame--;
  2022.         if(document.layers){
  2023.                 eval('frames.timesContent.document.layers.'+movie+'.document.embeds[0].GotoFrame('+frame+');');
  2024.                                 eval('frames.timesContent.document.'+movie+'.document.embeds[0].GotoFrame('+frame+');');
  2025.         } else {
  2026.                 eval('frames.timesContent.document.'+movie+'f.GotoFrame('+frame+')');
  2027.         }
  2028. }
  2029. function GotoLabel(movie,level,label) {
  2030.         if(document.layers){
  2031.                 eval('frames.timesContent.document.layers.'+movie+'.document.embeds[0].TGotoLabel("' + level + '","' + label + '")');
  2032.         } else {
  2033.                 eval('frames.timesContent.document.' + movie + 'f.TGotoLabel("' + level + '","' + label + '")');
  2034.         }
  2035. }
  2036. function SetFlashVariable(movie,name,value) {
  2037.         if(document.layers){
  2038.                 var TheMovie = eval('frames.timesContent.document.layers.'+movie+'.document.embeds[0]');
  2039.                 TheMovie.SetVariable(name,unescape(value));
  2040.         } else {
  2041.                 var TheMovie = eval('frames.timesContent.document.' + movie + 'f');
  2042.                 TheMovie.setVariable(name,unescape(value));
  2043.         }
  2044. }

Raw Paste


Login or Register to edit or fork this paste. It's free.