home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 May / CHIPHEFT052001.ISO / chiptv / desktop / script / msf_desktop.js < prev    next >
Encoding:
Text File  |  2001-03-07  |  24.3 KB  |  578 lines

  1. <!-- vor alten Browsern verstecken
  2. // Move Div's Script Library 
  3. // (c) 2000 by Medien Service Fette GmbH
  4. // Version 0.70 -- 03-12-2000
  5. document.writeln('<div id="msf_MoveRahmen" onmouseup="msf_stopSizeMove()" style="position:absolute; left:10px; top:10px; width:50px; height:50px;  z-index:-1; visibility:hidden; border:5px gray solid"></div>');
  6. document.writeln('<div id="msf_div_menue" class="msf_hidemenue" style="position:absolute; left:1px; top:1px; width:270px; height:500px;  z-index:99; visibility:hidden"></div>');
  7.  
  8. var isIE = navigator.appVersion.indexOf("MSIE")>0;       // einfach ein Internet-Explorer
  9. var isNav = navigator.appVersion.indexOf("Nav")>0;       // einfach ein Netscape Navigator
  10. var isIE3 = navigator.appVersion.indexOf("MSIE 3")>0;    // IE 3.x
  11. var isIE4 = navigator.appVersion.indexOf("MSIE 4")>0;    // IE 4.x
  12. var isIE55 = navigator.appVersion.indexOf("MSIE 5.5")>0; // IE 5.5
  13. var isIE5x = navigator.appVersion.indexOf("MSIE 5")>0;   // IE 5.x (5.0 aber auch 5.5!)
  14. var isIE5 = isIE5x && !isIE55;                              // ist es wirklich der 5er oder doch der 5.5er?
  15. var isNav4 = navigator.appVersion.indexOf("Nav 4")>0;    // Navigator 4.x
  16. //alert ("isIE3=" + isIE3 + " isIE4=" + isIE4 + " isIE5=" + isIE5 + " isIE5.5=" + isIE55 + " isNav4=" + isNav4 + "isIE5x=" + isIE5x);
  17.  
  18. var msf_offsetX; // die Position der Maus beim Klick in das zu ziehende Fenster
  19. var msf_offsetY; // die Position der Maus beim Klick in das zu ziehende Fenster
  20. var msf_moveDIV = null; // vom Programm erzeugtes DIV, das den Rahmen fuer das zu scheibende DIV darstellt
  21. var msf_sizeDIV = null;
  22. var msf_isMoving = false;
  23. var msf_menueIsOpen = null;
  24. var msf_oldPosTop = 0; // StageLayer-Position vor Maximierung
  25. var msf_oldPosLeft = 0; // StageLayer-Position vor Maximierung
  26. var msf_oldPosHeight = 0; // StageLayer-Position vor Maximierung
  27. var msf_oldPosWidth = 0; // StageLayer-Position vor Maximierung
  28. var msf_isMax = false; // Ist das Fenster maximiert?
  29. var msf_sendung = false; // laeuft da gerade eine Sendung?
  30. var msf_confirm = true; // normalerweise soll nach dem naechsten Beitrag gefragt werden!
  31. var msf_beitraege = new Array();
  32.  
  33.  
  34. // die Koordinaten der Icons auf dem Desktop ... oben und links
  35. var msf_topIcons = new Array(2); 
  36.     msf_topIcons[1] = new Array(10); //[1] = top
  37.     msf_topIcons[2] = new Array(10); //[2] = left
  38.  
  39.     for (var i=0; i<=5; i++){
  40.       msf_topIcons[1][i+1] = 10+i*90; //[1] = top
  41.       msf_topIcons[2][i+1] = 10; //[2] = left
  42.     }
  43.     for (var i=1; i<=4; i++){
  44.       msf_topIcons[1][i+6] = 10; //[1] = top
  45.       msf_topIcons[2][i+6] = 10+i*90; //[2] = left
  46.     }
  47.  
  48. // die Koordinaten der Icons auf dem Desktop ... rechts und unten
  49. var msf_heightIcons = new Array(2); 
  50.     msf_heightIcons[1] = new Array(8); //[1] = top
  51.     msf_heightIcons[2] = new Array(8); //[2] = left
  52.     
  53.     for (var i=1; i<=5; i++){
  54.       msf_heightIcons[1][i] = screen.height - 20 - i*90; //[1] = top
  55.       msf_heightIcons[2][i] = screen.width - 10 - 90; //[2] = left
  56.     }
  57.     for (var i=2; i<=4; i++){
  58.       msf_heightIcons[1][i+4] = screen.height - 20 - 90; //[1] = top
  59.       msf_heightIcons[2][i+4] = screen.width - 10 - i*90; //[2] = left
  60.     }
  61.  
  62. function msf_sendung_stop(){
  63. msf_sendung=false;
  64. }
  65.  
  66. function msf_InitDesktop() {
  67.     // Taskleiste ausrichten ...
  68.     if (document.all.TaskLeiste){
  69.         document.all.TaskLeiste.style.pixelWidth = window.screen.width;
  70.         document.all.TaskLeiste.style.pixelTop = window.screen.height - parseInt(document.all.TaskLeiste.style.pixelHeight) ;
  71.         document.all.TaskLeiste.style.pixelLeft = window.screenLeft;
  72.         document.all.TaskLeiste.style.visibility = "visible";
  73.     }
  74.  
  75.     // Icons unten links und rechts aussen plazieren ... => msf_hicons
  76.     if (document.all.msf_hicons){
  77.         for (var i = 0; i <=document.all.msf_hicons.length-1; i++) {
  78.             document.all.msf_hicons[i].style.top = msf_heightIcons[1][document.all.msf_hicons[i].msf_num];  
  79.             document.all.msf_hicons[i].style.left = msf_heightIcons[2][document.all.msf_hicons[i].msf_num];  
  80.             document.all.msf_hicons[i].style.visibility = "visible";
  81.         }
  82.     }
  83.     // Icons oben und links aussen plazieren ... => msf_ticons
  84.     if (document.all.msf_ticons){
  85.         for (var i = 0; i <=document.all.msf_ticons.length-1; i++) {
  86.             document.all.msf_ticons[i].style.top = msf_topIcons[1][document.all.msf_ticons[i].msf_num];  
  87.             document.all.msf_ticons[i].style.left = msf_topIcons[2][document.all.msf_ticons[i].msf_num];  
  88.             document.all.msf_ticons[i].style.visibility = "visible";
  89.         }
  90.     }
  91.     
  92.     // Banner-Werbung ausrichten
  93.     if (document.all.banner){
  94.         document.all.banner.style.left = window.screen.width - parseInt(document.all.banner.style.width) - 10;
  95.         document.all.banner.style.top = 10;
  96.         document.all.banner.style.visibility = "visible";
  97.     }
  98.     
  99.     // Dialogfeld ausrichten
  100.     if (document.all.msf_dialogfeld){
  101.       document.all.msf_dialogfeld.style.top = 1;
  102.       document.all.msf_dialogfeld.style.left = 1;
  103.       document.all.msf_dialogfeld.style.width = parseInt(window.screen.width);
  104.       document.all.msf_dialogfeld.style.height =  parseInt(window.screen.height);
  105.     }
  106.     
  107.     document.body.onselectstart = msf_onselect;
  108.     document.body.onmouseover = msf_onmouseover;
  109.     document.body.oncontextmenu = msf_nocontext;
  110.     document.onmousedown = msf_nocontext;
  111.     document.onmouseup = msf_nocontext;
  112.     window.onmousedown = msf_nocontext;
  113.     window.onmouseup = msf_nocontext;
  114.     
  115.     // alles fertig ... jetzt die Sendungssteuerung starten
  116.     eval ("msf_OpenModeless(" + msf_sendung_path + ");");
  117. }
  118.  
  119. function msf_nocontext(){
  120.     if (!(event.button==1)){
  121.     alert ("(c) 2000 by CHIPtv");
  122.     return false
  123.     }
  124. }
  125.  
  126. function msf_menueAuswahl(parameter, menueid){
  127.     if (!(msf_menueIsOpen==window.event.srcElement)){
  128.         if (msf_menueIsOpen) msf_menueIsOpen.src = msf_menueIsOpen.msf_srce;
  129.       msf_menueIsOpen = window.event.srcElement;
  130.       msf_menueIsOpen.src = msf_menueIsOpen.msf_srcp;
  131.       msf_sendung=false;
  132.       msf_close();
  133.       var e = window.event.srcElement.parentElement;
  134.       msf_show_menue(parameter,e.style.left);
  135.     }else{
  136.       msf_closeOpenMenue();
  137.     }
  138. }
  139.  
  140. function msf_closeOpenMenue(){
  141.     if (msf_menueIsOpen) {
  142.       document.all.msf_div_menue.style.visibility  =  "hidden";
  143.       msf_menueIsOpen.src = msf_menueIsOpen.msf_srce;
  144.       msf_menueIsOpen=null;
  145.     }
  146. }
  147.  
  148. function msf_onselect(){
  149.     var e = window.event.srcElement;
  150.     var dontselect = true;
  151.     if (e.className){
  152.       if (e.className == "msf_doselect") {
  153.       dontselect = false;
  154.       }
  155.     }
  156.     if (dontselect){
  157.       window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  158.       window.event.cancelBubble = true;
  159.       return false;
  160.     }
  161. }
  162.  
  163. function msf_onmouseover(){
  164.     var e = window.event.srcElement;
  165.     var hidemenue = false;
  166.     if (e.className){
  167.       if (e.className == "msf_hidemenue") {
  168.       hidemenue = true;
  169.       }
  170.     }
  171.     if (hidemenue){
  172.       msf_closeOpenMenue();
  173.       window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  174.       window.event.cancelBubble = true;
  175.       return false;
  176.     }
  177. }
  178.  
  179.  
  180. function msf_stageAnpassen(){
  181.     document.all.stage.style.width = parseInt(document.all.stagelayer.style.width) - 6;
  182.     document.all.stage.style.height = parseInt(document.all.stagelayer.style.height) - 35;
  183. }
  184.  
  185. function msf_centerStagelayer(){
  186.     document.all.stagelayer.style.left = parseInt((parseInt(window.screen.width) - parseInt(document.all.stagelayer.style.width)) / 2);
  187.     document.all.stagelayer.style.top =  parseInt((parseInt(window.screen.height)- parseInt(document.all.stagelayer.style.height)-30) / 2);
  188. }
  189.  
  190. function msf_OpenModeless(art, URL, titel, w, h){ //oeffnet einen Beitrag im DIV-Fenster ...
  191. //alert ("art=" + art + "URL=" + URL + "titel=" + titel + "w=" + w + "h=" + h);
  192.   document.all.stagelayer.style.visibility = "hidden";
  193.   msf_closeOpenMenue();
  194.   switch (art) {
  195.     case 0: //javascript ausfuehren ...
  196.       eval (URL);
  197.       break;
  198.     case 1: //normaler Beitrag im Layer geĆ·ffnet
  199.       msf_insert_FensterTabelle(titel);
  200.       if (!w) w=635;
  201.       if (!h) h=568;
  202.       document.all.stagelayer.style.width = w;
  203.       document.all.stagelayer.style.height = h;
  204.       document.all.stage.scrolling='no';
  205.       msf_stageAnpassen();
  206.       document.all.stage.src = URL;
  207.       msf_centerStagelayer();
  208.       msf_isMax = false;
  209.       if (msf_istobig()) msf_maxi();
  210.       if (!msf_isMax){
  211.         if (document.all.banner){
  212.           if (20 + parseInt(document.all.banner.style.height) < parseInt(window.screen.height)- parseInt(document.all.stagelayer.style.height)-40) {
  213.             document.all.stagelayer.style.top = 20 + parseInt(document.all.banner.style.height);
  214.           }
  215.         }
  216.       }
  217.       document.all.stagelayer.style.visibility = "visible";
  218.       break;
  219.     case 2: //Dialogfeld mit scrolling
  220.       msf_insert_FensterTabelle(titel);
  221.       if (!w) w=400;
  222.       if (!h) h=400;
  223.       document.all.stagelayer.style.width = w;
  224.       document.all.stagelayer.style.height = h;
  225.       document.all.stage.scrolling='yes';
  226.       msf_stageAnpassen();
  227.       document.all.stage.src = URL;
  228.       msf_centerStagelayer();
  229.       document.all.stagelayer.style.visibility = "visible";
  230.       msf_isMax = false;
  231.       if (msf_istobig()) msf_maxi();
  232.       break;
  233.     case 3: //Dialogfeld mit scrolling maximiert
  234.       msf_insert_FensterTabelle(titel);
  235.       if (!w) w=400;
  236.       if (!h) h=400;
  237.       document.all.stagelayer.style.width = w;
  238.       document.all.stagelayer.style.height = h;
  239.       document.all.stage.scrolling='yes';
  240.       msf_stageAnpassen();
  241.       msf_centerStagelayer();
  242.       msf_isMax = false;
  243.       msf_maxi();
  244.       document.all.stage.src = URL;
  245.       break;
  246.   }
  247. }
  248.  
  249. function msf_istobig(){
  250.     var tobig=false;
  251.     if (parseInt(document.all.stagelayer.style.width) >= window.screen.width) {
  252.       tobig=true; 
  253.         document.all.stagelayer.style.width = (window.screen.width/3*2);
  254.     }
  255.  
  256.     if (parseInt(document.all.stagelayer.style.height) >= window.screen.height) {
  257.       tobig=true;
  258.         document.all.stagelayer.style.height = (window.screen.height/3*2);
  259.     }
  260.     if (tobig) {
  261.         msf_stageAnpassen();
  262.       msf_centerStagelayer();
  263.     }
  264.  
  265.     return tobig;
  266. }
  267.  
  268. function msf_insert_FensterTabelle(fenstertitel){
  269.   // fuegt in den Hinergrund des Stage-Layers
  270.   // den HTML-Code ein, der die Fensterobptik erzeugt.
  271.   // incl. des Fenstertitels und des Handels fuer die 
  272.   // Aenderung der Fenstergroesse
  273.   if (fenstertitel==null){
  274.     fenstertitel = "CHIPtv Desktop";
  275.   }else{
  276.     fenstertitel += " - CHIPtv Desktop";
  277.   }
  278.   msfobj  =  '<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" bgcolor="#EFEFEF">';
  279.   msfobj  += '<tr> <td width="3" height="3"></td><th colspan=2 width="*" height="3"></th><td width="3" height="3"></td> </tr>';
  280.   msfobj  += '<tr><td width="3" height="19px"></td>';
  281.   msfobj  += '<td width="*" height="19" bgcolor="#30679F" ondblclick="msf_maxi()" onmousedown="msf_startMove()" style="cursor: move">';
  282.   msfobj  += '<p class="msffenstertitel" id="msf_stagecaption">';
  283.   msfobj  += ' ' + fenstertitel;
  284.   msfobj  += '</p></td>';
  285.   msfobj  += '<td width="65" height="19" bgcolor="#30679F" align="right">';
  286.   msfobj  += '<img name="msf_maxwiedpict" src="desktop/bilder/fenster/maxi.gif" width="16" height="14" onmousedown="msf_maxi()" style="cursor: hand">';
  287.   msfobj  += ' <img src="desktop/bilder/fenster/close.gif" width="16" height="14" onmousedown="msf_close()" style="cursor: hand">';
  288.   msfobj  += '</td><td width="3" height="19"></td></tr>';
  289.   msfobj  += '<tr><td width="3" height="*" ></td><th colspan=2 width="*" height="*" bgcolor="#FFFFFF">';
  290.   msfobj  += '</td><td width="3" height="*"></td></tr>';
  291.   msfobj  += '<tr><td width="3" height="10" ></td><th colspan=2 width="*" height="10" bgcolor="#BFD7EF">';
  292.   msfobj  += '<div align="right"><img src="desktop/bilder/fenster/size.gif" width="10" height="11" onmousedown="msf_startSize()" style="cursor: n-resize"></div>';
  293.   msfobj  += '</td><td width="3" height="10" ></td></tr>';
  294.   msfobj  += '<tr><td width="3" height="3"></td><th colspan=2 width="*" height="3"></td><td width="3" height="3"></td></tr>';
  295.   msfobj  += '</table>';
  296.   document.all.stageback.innerHTML = msfobj;
  297. }
  298.  
  299. function msf_show_menue(daten,menposleft){
  300.   // fuegt in den leeren MenueDIV
  301.   // die Tabelle mit den Menueeintraegen ein
  302.   // anschliessend wird die Tabelle
  303.   // innerhalb des DIVs an den unteren Rand positioniert.
  304.   // die Variable 'daten' enthaelt die Menueeintrage
  305.   // in folgender Form:
  306.   //      Name des Menus  Fenster-Art,Link zur Datei
  307.   // "Text fuer das Menue=1,'beitraege/gelb.htm'"
  308.   // 
  309.   document.all.msf_div_menue.style.visibility = "hidden";
  310.  
  311.   msfobj  =  '<table id="msf_menue" style="position:absolute; left:0px; top:0px" width="100%" border="2" cellspacing="5" cellpadding="0" align="center" bgcolor="#C0C0C0" bordercolorlight="#2F6090" bordercolordark="#BFD7EF" vspace="0">';
  312.   for (var i = 0; i <=daten.length-1; i++) {
  313.     var teildaten = daten[i].split("=");
  314.     msfobj  += '<tr><td class="msfmenueitem" onmouseout="javascript:this.className=\'msfmenueitem\'" onmouseover="javascript:this.className=\'msfmenueitemover\'"';
  315.     msfobj  += ' onclick="msf_OpenModeless(';
  316.     msfobj  += teildaten[1] + ")\">";
  317.     msfobj  += '<p>' + teildaten[0];
  318.     msfobj  += '</p></td></tr>';
  319.     teildaten = null;
  320.   }
  321.   msfobj  += '</table>';
  322.   document.all.msf_div_menue.innerHTML = msfobj;
  323.   document.all.msf_div_menue.style.left = menposleft;
  324.   document.all.msf_menue.style.top = parseInt(document.all.msf_div_menue.style.height) - document.all.msf_menue.offsetHeight;
  325.   document.all.msf_div_menue.style.top = window.screen.height - parseInt(document.all.msf_div_menue.style.height) - parseInt(document.all.TaskLeiste.style.pixelHeight);
  326.   document.all.msf_div_menue.style.visibility  =  "visible";
  327. }
  328.  
  329.  
  330. function msf_maxi(){
  331.   document.all.stagelayer.style.visibility  =  "hidden"; // das eigentliche Objekt verbergen
  332.   if (!msf_isMax){ // nicht maximiert, also jetzt maximieren!
  333.     msf_oldPosTop = document.all.stagelayer.style.top; // alte Positon merken ...
  334.     msf_oldPosLeft = document.all.stagelayer.style.left; // zum Wiederherstellen
  335.     msf_oldPosHeight = document.all.stagelayer.style.height;
  336.     msf_oldPosWidth = document.all.stagelayer.style.width;
  337.  
  338.     document.all.stagelayer.style.left = 0;
  339.     document.all.stagelayer.style.top = 0;
  340.     document.all.stagelayer.style.width = window.screen.width; 
  341.     document.all.stagelayer.style.height = window.screen.height;
  342.     msf_isMax = true;
  343.  
  344.   } else { // Wiederherstellen der alten Position!
  345.     document.all.stagelayer.style.top = msf_oldPosTop;
  346.     document.all.stagelayer.style.left = msf_oldPosLeft;
  347.     document.all.stagelayer.style.height = msf_oldPosHeight;
  348.     document.all.stagelayer.style.width = msf_oldPosWidth;
  349.     msf_isMax = false;
  350.   }
  351.   document.all.stage.style.width = parseInt(document.all.stagelayer.style.width) - 6;
  352.   document.all.stage.style.height = parseInt(document.all.stagelayer.style.height) - 35;
  353.   msf_insert_FensterTabelle()
  354.   if (msf_isMax) {
  355.     document.all.msf_maxwiedpict.src = "desktop/bilder/fenster/wieder.gif"
  356.   } else {
  357.     document.all.msf_maxwiedpict.src = "desktop/bilder/fenster/maxi.gif"
  358.   }
  359.   document.all.stagelayer.style.visibility  =  "visible"; // das eigentliche Objekt wieder anzeigen
  360. }
  361.  
  362. function msf_close(){
  363.   document.all.stage.src="";
  364.   document.all.stagelayer.style.visibility = "hidden";
  365.   msf_isMax = false;
  366.   if (msf_sendung) msf_next_beitrag();
  367. }
  368.  
  369. function msf_sendung_starten(){
  370.     msf_close();
  371.     var ausgabe=" Folgende Beitraege werden gespielt: ";
  372.     for (var i = 0; i <=msf_beitraege.length-1; i++) {
  373.       if (msf_beitraege[i]=="ja"){
  374.       ausgabe += i + ", ";
  375.       }
  376.     }
  377.     msf_sendung=true; //Sendungsmodus aktiviert!!
  378.     msf_next_beitrag();
  379. }
  380.  
  381. function msf_doch(){
  382.   document.all.msf_dialogfeld.style.visibility  =  "hidden"; //Dialogfeld ausblenden
  383.   var teildaten = msf_menue_beitraege[document.all.msf_dialogfeld.msf_naechster].split("=");
  384.   var befehl = ""
  385.   befehl = "msf_OpenModeless(" + teildaten[1] + ");";
  386.   eval (befehl);
  387. }
  388.  
  389. function msf_nicht(){
  390.  document.all.msf_dialogfeld.style.visibility  =  "hidden"; //Dialogfeld ausblenden
  391.  msf_sendung=false;
  392. }
  393.  
  394. function msf_next_beitrag(){ // spielt den naechsten noch offenen Beitrag
  395.   var noch_einer=false;
  396.   var welcher=null;
  397.     for (var i = 0; i <=msf_beitraege.length-1; i++) {
  398.       if (msf_beitraege[i]=="ja"){
  399.         if (!noch_einer){
  400.           noch_einer = true;
  401.           welcher = i;
  402.           msf_beitraege[i]="nein";
  403.         }
  404.       }
  405.     }
  406.     if (noch_einer){
  407.       if (msf_confirm) {
  408.         document.all.msf_dialogfeld.msf_naechster = welcher-1;
  409.         document.all.msf_dialogfeld.style.visibility  =  "visible"; //Dialogfeld anzeigen
  410.       } else {
  411.         msf_confirm=true;
  412.         var teildaten = msf_menue_beitraege[welcher-1].split("=");
  413.         var befehl = ""
  414.         befehl = "msf_OpenModeless(" + teildaten[1] + ");";
  415.         eval (befehl);
  416.       }
  417.     } else {
  418.       msf_sendung=false;
  419.     }
  420. }
  421.  
  422. function msf_getMoveElement(element) {
  423.     temp = element;
  424.     while ((temp != null) && (temp.tagName != "BODY")) {
  425.         if (temp.className == "msf_move"){
  426.             element = temp;
  427.             return element;
  428.         }
  429.         temp = temp.parentElement;
  430.     }
  431.     return element;
  432. }
  433.  
  434.   function msf_startSize(){ // Es wurde der Mousedown-Event gefeuert
  435.     if (!msf_isMax){
  436.       msf_sizeDIV = msf_getMoveElement(window.event.srcElement); // Das ist das Element, das den Event gefeuert hat
  437.       document.all.msf_MoveRahmen.style.left = msf_sizeDIV.style.left;
  438.       document.all.msf_MoveRahmen.style.top = msf_sizeDIV.style.top;
  439.       document.all.msf_MoveRahmen.style.height = msf_sizeDIV.style.height;
  440.       document.all.msf_MoveRahmen.style.width = msf_sizeDIV.style.width;
  441.       msf_zIndexTop(document.all.msf_MoveRahmen); // Element nach ganz oben holen
  442.       msf_sizeDIV.style.visibility =  "hidden";
  443.       document.all.msf_MoveRahmen.style.visibility =  "visible";
  444.       msf_offsetY = msf_sizeDIV.style.pixelTop + msf_sizeDIV.style.pixelHeight - window.event.clientY; // Mausposition merken
  445.       msf_offsetX = msf_sizeDIV.style.pixelLeft + msf_sizeDIV.style.pixelWidth - window.event.clientX;
  446.       window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  447.       window.event.cancelBubble = true;
  448.       document.onmousemove = msf_size;
  449.       document.onmouseup = msf_stopSizeMove;
  450.     }
  451.   }
  452.  
  453.   function msf_size(){ // Die Maus wurde bewegt
  454.     if (window.event.button == 1){ // ist die linke Maustaste immer noch gedrueckt?
  455.       var links = parseInt(window.event.clientX + msf_offsetX);
  456.       var slinks = parseInt(document.all.msf_MoveRahmen.style.left);
  457.       var breite = links - slinks
  458.       if (breite >100) document.all.msf_MoveRahmen.style.width = breite; //DIV-Breite anpassen
  459.  
  460.       var oben = parseInt(window.event.clientY + msf_offsetY);
  461.       var soben = parseInt(document.all.msf_MoveRahmen.style.top);
  462.       var hoehe = oben - soben
  463.       if (hoehe >100) document.all.msf_MoveRahmen.style.height = hoehe; //DIV-Hoehe anpassen
  464.       window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  465.       window.event.cancelBubble = true;
  466.     }
  467.   }
  468.  
  469.   function msf_startMove(){ // Es wurde der Mousedown-Event gefeuert
  470.     if (msf_isMoving == false){
  471.       if (window.event.button == 1){ // Wurde die linke Maustaste gedrueckt?
  472.           msf_moveDIV = msf_getMoveElement(window.event.srcElement); // Das ist das Element, das den Event gefeuert hat
  473.           document.all.msf_MoveRahmen.style.left = msf_moveDIV.style.left;
  474.           document.all.msf_MoveRahmen.style.top = msf_moveDIV.style.top;
  475.           document.all.msf_MoveRahmen.style.height = msf_moveDIV.style.height;
  476.           document.all.msf_MoveRahmen.style.width = msf_moveDIV.style.width;
  477.           msf_zIndexTop(document.all.msf_MoveRahmen); // Element nach ganz oben holen
  478.           msf_offsetY = window.event.clientY - msf_moveDIV.style.pixelTop; // Mausposition merken
  479.           msf_offsetX = window.event.clientX - msf_moveDIV.style.pixelLeft;
  480.           msf_moveDIV.style.visibility =  "hidden";
  481.           document.all.msf_MoveRahmen.style.visibility =  "visible";
  482.           window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  483.           window.event.cancelBubble = true;
  484.           msf_isMoving = true;
  485.           if (isIE5 == true | isIE55 == true) document.all.msf_MoveRahmen.setCapture(true);
  486.           document.onmousemove = msf_move;
  487.       }
  488.     }
  489.   }
  490.   
  491.   function msf_move(){ // Die Maus wurde bewegt
  492.     if (msf_isMoving == true){
  493.         if (window.event.button == 1){ // ist die linke Maustaste immer noch gedrueckt?
  494.         if (window.event.clientX >= 0 && window.event.clientY >= 0){ // ist die Maus noch im DIV?
  495.           if (msf_moveDIV.msf_moveoutscreen == "true"){ // Das Element kann frei bewegt werden
  496.           document.all.msf_MoveRahmen.style.left = window.event.clientX - msf_offsetX; //DIV verschieben
  497.           document.all.msf_MoveRahmen.style.top = window.event.clientY - msf_offsetY;
  498.           } else { // Das Element kann nur innerhalb des Fensters bewegt werden
  499.             var links = parseInt(window.event.clientX - msf_offsetX);
  500.             var breite = parseInt(document.all.msf_MoveRahmen.style.width);
  501.             var rechterRand = links + breite
  502.             if (isIE5x) { // ein Internetexplorer 5.0 oder 5.5
  503.                 var awidth = window.screen.availWidth - window.screenLeft;
  504.             } else {
  505.                 var awidth = window.screen.availWidth;
  506.             }
  507.               if (rechterRand < awidth && links>=1) {
  508.               document.all.msf_MoveRahmen.style.left = window.event.clientX - msf_offsetX; //DIV horizontal verschieben
  509.             }
  510.  
  511.             var oben = parseInt(window.event.clientY - msf_offsetY);
  512.             var hoehe = parseInt(document.all.msf_MoveRahmen.style.height);
  513.             var untererRand = oben + hoehe
  514.             if (isIE5x) { // ein Internetexplorer 5.0 oder 5.5
  515.                 var aheight = window.screen.availHeight - window.screenTop;
  516.             } else {
  517.                 var aheight = window.screen.availHeight;
  518.             }
  519.               if (untererRand < aheight && oben>=1) {
  520.               document.all.msf_MoveRahmen.style.top = window.event.clientY - msf_offsetY; //DIV vertikal verschieben
  521.             }
  522.           }
  523.         }
  524.       }
  525.     }
  526.     window.event.returnValue = false; // Keine weitere Verarbeitung des Events zulassen
  527.     window.event.cancelBubble = true;
  528.   }
  529.   
  530.   function msf_stopSizeMove(){ // ziehen abgeschlossen
  531.     document.all.msf_MoveRahmen.style.visibility =  "hidden"; // den Rahmen ausschalten
  532.     if (msf_isMoving == true){
  533.       msf_moveDIV.style.left = document.all.msf_MoveRahmen.style.left; //das eigentliche Objekt an die neue Position setzen
  534.       msf_moveDIV.style.top = document.all.msf_MoveRahmen.style.top;
  535.       msf_moveDIV.style.height = document.all.msf_MoveRahmen.style.height;
  536.       msf_moveDIV.style.width = document.all.msf_MoveRahmen.style.width; 
  537.       msf_moveDIV.style.visibility  =  "visible"; // das eigentliche Objekt wieder anzeigen
  538.       msf_moveDIV = null; // object loeschen
  539.       msf_isMoving = false; // wir bewegen nichts mehr
  540.       if (isIE5 == true | isIE55 == true) document.all.msf_MoveRahmen.releaseCapture();
  541.     } else {
  542.       msf_sizeDIV.style.left = document.all.msf_MoveRahmen.style.left; //das eigentliche Objekt an die neue Position setzen
  543.       msf_sizeDIV.style.top = document.all.msf_MoveRahmen.style.top;
  544.       msf_sizeDIV.style.height = document.all.msf_MoveRahmen.style.height;
  545.       msf_sizeDIV.style.width = document.all.msf_MoveRahmen.style.width; 
  546.       document.all.stage.style.width = parseInt(document.all.msf_MoveRahmen.style.width) - 6;
  547.       document.all.stage.style.height = parseInt(document.all.msf_MoveRahmen.style.height) - 35;
  548.       msf_sizeDIV.style.visibility  =  "visible"; // das eigentliche Objekt wieder anzeigen
  549.       msf_sizeDIV = null; // object loeschen
  550.       msf_insert_FensterTabelle()
  551.       document.onmouseup = null;
  552.     }
  553.     document.selection.empty(); // sollte etwas markiert worden sein, wird die Markierung entfernt
  554.     document.onmousemove = null;
  555.   }
  556.  
  557. function msf_zIndexDown(element) {
  558.     var min = 9999; // kein Z-Index vorhanden
  559.     for (var i=0; i<document.all.length; i++) { // alle elemente des Dokuments durchgehen
  560.         if (document.all[i].style.zIndex != "" && document.all[i].style.zIndex < min) // hat das Element einen Zindex der hoeher ist als die bisher gefundenen?
  561.             min = document.all[i].style.zIndex; // dann merken wir uns den
  562.     }
  563.     if (element.style.zIndex != min)
  564.       element.style.zIndex = min - 1; //Das zu ziehende DIV auf einen hoeheren ZIndex setzen
  565. }
  566.  
  567. function msf_zIndexTop(element) {
  568.     var max = 0; // kein Z-Index vorhanden
  569.     for (var i=0; i<document.all.length; i++) { // alle elemente des Dokuments durchgehen
  570.         if (document.all[i].style.zIndex != "" && document.all[i].style.zIndex > max) // hat das Element einen Zindex der hoeher ist als die bisher gefundenen?
  571.             max = document.all[i].style.zIndex; // dann merken wir uns den
  572.     }
  573.     if (element.style.zIndex != max)
  574.       element.style.zIndex = max + 1; //Das zu ziehende DIV auf einen hoeheren ZIndex setzen
  575. }
  576.  
  577. // --> 
  578.