/*
#
# --------------------------------------------------------------------------------
#
#  fCMS2 Content Management System  - (http://www.fidion.de)
#
#  Copyright (C) 2002 fidion GmbH, Würzburg.  (W) Steffen Einsle, Dipl.Inf.(FH)
#  All rights reserved. This Software is subject to license issues.
#
#  Common JavaScript Base 
#
#  $Id: js.js,v 1.16 2003/07/07 09:27:09 einsle Exp $
#
# --------------------------------------------------------------------------------
# $HASH$:00000000000000000000000000000000
*/


function opbasket(f) {
   var j; var S='win'; 
   for(j=0;j<10;j++) S += String.fromCharCode(97+Math.floor(26*Math.random()));
   opener.name=S; f.target=S; f.submit();
   opener.focus(); window.setTimeout("window.focus();",10000);
   return(false);
}


var to = "";              // timeout-handler
var vlist = new Array();  // current menu

// MenuDivs: Layer aufpoppen lassen
function cmsMenu( level, mdiv, lpix, expire ) {
   if ( to ) window.clearTimeout(to);      // timeout loeschen

   if ( vlist[level]!=mdiv ) for(var i=level; i<=vlist.length; i++) 
      if ( vlist[i]) vlist[i] = cms_setDiv(vlist[i]);

   if ( mdiv ) {
      if ( lpix ) var ppos = cms_getImagePos( lpix ); // position ermitteln
      else        var ppos = [ 0, 0];  // sonst array generiren
      vlist[level] = cms_setDiv(mdiv,1,ppos[0],ppos[1]);
   }
   if ( expire ) 
       to=window.setTimeout("cmsMenu(0)",1000*expire);
   return(false);
}

// MenuDivs: Layer positioniern und ein- oder ausschalten
function cms_setDiv( name, show, xpos, ypos ) {
   if ( !name ) return("");
   if ( document.layers ) {
      var el_ = document.layers[name];
      vis = ( show ? "SHOW"    : "HIDE"   );
   } else if ( document.getElementById ) {
      var el_ = document.getElementById(name);
      if ( el_ ) el_ = el_.style;
      var vis = ( show ? "visible" : "hidden" );
   } else if ( document.all ) {
      var el_ = document.all[name];
      var vis = ( show ? "visible" : "hidden" );
   }
   if ( !el_ ) return("");
   if ( xpos || ypos ) {
       if ( adjust.length ) { xpos += adjust[0]; ypos += adjust[1]; }
       el_.top=ypos; el_.left=xpos;
   }
   el_.visibility = vis;
   return( show ? name : "" ); // rückgabewert
}


// MenuDivs: x/y Position des Positions-Pixels ermitteln
function cms_getImagePos( pimg ) {
   var xpos = ypos = 0;
   var el_ = document[pimg];

   if ( document.getElementById ) { // if ( IE4 )
      if ( !el_ ) return( [0,0] );
      // MAC-Erweiterung fuer IE   20020229 dm
//      if ((navigator.userAgent.indexOf("Mac") > -1) && ( navigator.userAgent.indexOf("IE") > -1 )) {
//         xpos = el_.offsetLeft + el_.offsetWidth + 1;
//         ypos = el_.offsetTop  - el_.offsetHeight + 18;
//      } else {
         xpos = el_.offsetLeft + el_.offsetWidth;
         ypos = el_.offsetTop;
         while( (el_ = el_.offsetParent) != null ) {
             xpos += el_.offsetLeft;
             ypos += el_.offsetTop;
         }
//      }
   } else if ( document.layers ) {
      for( var i=0; !el_ && i<document.layers.length; i++)
          if ( el_ = document.layers[i].document[pimg] ) {
             xpos = document.layers[i].x + 2;
             ypos = document.layers[i].y;
          }
      xpos += el_.x;
      ypos += el_.y;
   } else if ( document.all ) {
      if ( !el_ ) return( [0,0] );
      xpos = el_.offsetLeft + el_.offsetWidth;
      ypos = el_.offsetTop;
   } else window.alert("Huh! What browser are you using ?");
   // Werte in Array zurückliefern
   return ([xpos,ypos]);
}

function old_notframe( url ) {

   var frameurls = [ '/frametest/',
                     '/chat/',
		     '/ratgeber/finanzen/'
		   ];

   url = url.replace(/^http:\/\/[^\/]+/,''); // host wegschneiden
   url = url.replace(/\?.*/,''); // parameter wegschneiden
   for(i=0; i<frameurls.length; i++)
       if ( url.substr(0,frameurls[i].length)==frameurls[i] ) return(0);
   return(1);
}

// Login: Challenge-Response-Authentifikation ausfuehren
function cmslogin(f) {
  str = f.elements['username'].value+":"+MD5(f.elements['password'].value)+":"+f.elements['challenge'].value;
  if ( f.elements['username'].value.length && f.elements['password'].value.length ){
     f.elements['response'].value = MD5(str);
     f.elements['password'].value = "";
     if ( document.cookie.indexOf('fCMS')>-1 ) f.submit();
     else window.alert('Für diese Funktion müssen Sie Cookies \nauf Ihrem Rechner zulassen!');
  }
}

var warr = [];
// neues Fenster oeffnen, nur wenn noch nicht geoeffnet
function cmswin( name, url, w, h ) {
   if ( warr.length && warr[name] ) mw=warr[name];
   else mw=window.open(url,name,'width='+w+',height='+h+',scrollbars=1,resizable=1,dependent=1');
   if ( mw && !mw.closed ) mw.focus(0);
   warr[name]=mw;
}


// checkbox und radiobutton: Funktion fuer Textlinks
function tlink( name,id ) {
   for( var f=0; f<document.forms.length; f++ )
     for( var i=0; i<document.forms[f].elements.length; i++) {
       var e = document.forms[f].elements[i];
       if ( e.name && e.name.substr(0,name.length)==name ) 
           switch( e.type ) {
              case 'checkbox' : e.click(); // e.checked^=1;
                                break;
              case 'radio'    : if ( e.value=="OPT-"+id ) e.click();
                                break;
           }
     }
     return(false);
}
                                                                                         

// Sitemap: Funktion um einzelnen Knoten zu toggeln
function toggle( vn, i ) {
   var opt = document.forms[0].elements[vn].value;
   var opl = opt.length ? opt.split(",") : new Array();
   var opo = new Array();
   for( var j=0; j<opl.length; j++) if ( opl[j]!=i ) opo[opo.length]=opl[j];
   if ( opo.length==opl.length ) opo[opo.length]=i;
   opt = opo.join(",");
   document.forms[0].elements[vn].value=opt;
   document.forms[0].submit();
   return(false);
}

// Sitemap: Neue URL im Hauptfenster laden
function opgoto( url ) {
   window.opener.location.href=url;
   return(false);
}

// CMS: Cache für aktuelle Seite deaktivieren
function unlock() {
     var url = document.location.href;
     url = url.replace(/#.*/,'');
     url = url + (url.indexOf('?')>-1 ? "&" : "?") + '_UNLOCK=9da76f9786df5ef6';
     document.location.href=url;
}



// einige Macromedia Funktionen
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function printwin() {
     var url = document.location.href;
     url = url.replace(/#.*/,'');
     url = url + (url.indexOf('?')>-1 ? "&" : "?") + '_FRAME=33&_FORMAT=PRINT';
     var pw = window.open(url,'PRINTWIN','width=640,height=480,scrollbars=1');
     while ( ! pw.document );
     while ( ! pw.document.body );
     pw.document.body.onload=pw.print;
     pw.setTimeout('window.close()',30000);
}

// Positionsmodifikator für cmsMenu
var adjust = [ 0, -2 ];  // menu-divs ggf. 2 pixel nach oben verschieben


// obsolete stuff
function old_notframe( url ) {

   var frameurls = [ '/marktplatz/branchenbuch/wiw/',
                     '/chat/',
                     '/shop/',
                     '/wirtschaft/biallo/'];

   url = url.replace(/^http:\/\/[^\/]+/,''); // host wegschneiden
   url = url.replace(/\?.*/,''); // parameter wegschneiden

   for(i=0; i<frameurls.length; i++)
       if ( url.substr(0,frameurls[i].length)==frameurls[i] ) return(0);
   return(1);
}

