var loggedIn = false;

var waiting = false;


var NORMAL_STATE = 4;

/* WARTE METHODEN */
/*************************************/


var multiwaitmethod = null;
var multiwaitdonemethod = null;

function resetWaiting()
{
  // clear all info in the waiting area...
  var d = document.getElementById("waitcenter");
  if (d)
  {
    d.style.visibility = "hidden";
    d.style.zIndex = -99;
  }
  if (waiting)
  {
    waiting = false;
  }
}

function startMultiWaiting(method,donemethod)
{
  multiwaitmethod = method;   
  multiwaitdonemethod = donemethod;
  window.setTimeout("checkMultiWaiting()",100);
  startWaiting();
}

// internal function
function checkMultiWaiting()
{
  if (eval(multiwaitmethod))
  {
    // all done ! 
    resetWaiting();
    eval(multiwaitdonemethod);
  } else
  {
    // still to wait....
    window.setTimeout("checkMultiWaiting()",100);
  }
}

function startWaiting(info)
{
  if (waiting) return;
  waiting = true;
  var div = document.getElementById("waitcenter");
  if (!div)
  {
    div = document.createElement("div");
    div.id = "waitcenter";
    var w = 100;
    var h = 100;
    
    
    var x,y;
    if (self.innerHeight) // all except Explorer
    {
    x = self.innerWidth;
    y = self.innerHeight;
        div.style.position = "fixed";
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
    {
    x = document.documentElement.clientWidth;
    y = document.documentElement.clientHeight;
        div.style.position = "absolute";
    }
    else if (document.body) // other Explorers
    {
    x = document.body.clientWidth;
    y = document.body.clientHeight;
        div.style.position = "absolute";
    }    
    div.style.left = (x / 2) - w/2 + "px";
    div.style.top  = (y / 2) - h/2 + "px";
    div.style.width = w+"px";
    div.style.height = h+"px";
    div.style.zIndex = "9999";
    div.style.backgroundColor = "white";
    div.style.border ="1px solid black";
    var b = document.createElement("img");
    b.src="images/pwait.gif";
    b.id = "waitingimg";
    b.style.margin = "28px";
    div.appendChild(b);
    document.body.appendChild(div);
  } 
  div.style.zIndex = "9999";
  div.style.visibility = "visible";
}

/***  Opening windows... */

function OpenWindow(url,height,width)
{
  // Open Editor
  var targetname = "ffbhinfo";
  var i;
  var params = "dependent=yes,height="+height+",width="+width+",location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no";
  var win = window.open(url,targetname,params);
  win.focus();
}




/*************************************************************************/

function JSDecode(t)
{
  var results = new Array();
  for (var k=0;k<t.length;k++)
  {
    results[k] = t[k].replace(/\^\^\^/g,"|");
  }
  return results;
}


function ConvertTableCells(linetext)
{
  var lines = new Array();
  var i = linetext.indexOf("[");
  while (i>=0)
  {
    var end = linetext.indexOf("]",i+1);
    var sep = linetext.indexOf("|",i+1);
    
    if (end>sep && sep>i)
    {
      // found a link...
      linetext = linetext.substring(0,sep) + "^" + linetext.substring(sep+1);
    }
    i = linetext.indexOf("[",end+1);
  }
  var celltexts = linetext.split("|");
  for (var i = 0;i<celltexts.length;i++)
  {
    celltexts[i] = celltexts[i].replace("^","|");
  }
  return celltexts;
}

function ConvertInlineLinks(textnode)
{
  var lastindex = 0;
  var mytext = textnode.data;
  var startindex = mytext.indexOf("[");
  if (startindex>=0)
  {
    var midindex = mytext.indexOf("|",startindex);
    lastindex = mytext.indexOf("]",midindex);
    if (midindex>startindex && lastindex>midindex)
    {
      var teil1 = mytext.substr(startindex+1,midindex-startindex-1);
      var teil2 = mytext.substr(midindex+1,lastindex-midindex-1);
      var anch = document.createElement("a");
      if (teil2.indexOf("http")==-1)
      {
        anch.href = serverbase+"/?section="+teil2;
      }
      else
      {
        anch = document.createElement("a");
        anch.href = teil2;
      }
      anch.appendChild(document.createTextNode(teil1));
      var s = document.createElement("span");
      var vorher = mytext.substr(0,startindex);
      var nachher= mytext.substr(lastindex+1);
      s.appendChild(ConvertInlineLinks(document.createTextNode(vorher)));
      s.appendChild(anch);
      s.appendChild(ConvertInlineLinks(document.createTextNode(nachher)));
      return s;
    }    
  }
  return textnode;
}

function shortTimeGenerator(dt)
{
    var result = "";
    if (dt.getHours()<10)
    {
      result += "0";
    }
    result += dt.getHours();
    result += ":";
    if (dt.getMinutes()<10)
    {
      result += "0";
    }
    result += dt.getMinutes();
    return result;
}


function shortCurrentTime()
{
  var d = new Date();
  return shortTimeGenerator(d);  
}


function shortTime(sql)
{
  if (sql) {
    sql = sql.replace("-","/");
    sql = sql.replace("-","/");
    var d = Date.parse(sql);
    var dt = new Date(d);
	return shortTimeGenerator(dt);
  } else return null;
}

function twoDigits(v)
{
    if (v<10)
    {
        return "0"+v;
    }
    else
    {
        return v;
    }
}

function shortDateTime(sql)
{
  if (sql)
  {
    sql = sql.replace("-","/");
    sql = sql.replace("-","/");
    var d = Date.parse(sql);
    var dt = new Date(d);
    var result = "";
    if (dt.getDate()<10)
    {
      result += 0;
    }
    result += dt.getDate();
    result += ".";
    if (dt.getMonth()<9)
    {
      result += 0;
    }
    result += dt.getMonth()+1;
    result += ".";
    result += dt.getFullYear();
    result += " ";
    if (dt.getHours()<10)
    {
      result += "0";
    }
    result += dt.getHours();
    result += ":";
    if (dt.getMinutes()<10)
    {
      result += "0";
    }
    result += dt.getMinutes();
    return result;
  }
  else
  {
    return null;
  }
}



// function to add events to the page in a cross-browser manner
function addEvent(objObject, strEventName, fnHandler) { 
  // DOM-compliant way to add an event listener 
  if (!objObject) return;
  if (objObject.addEventListener) {
    objObject.addEventListener(strEventName, fnHandler, false); 
  }
  // IE/windows way to add an event listener 
  else if (objObject.attachEvent) {
    objObject.attachEvent('on' + strEventName, fnHandler); 
  }
}


function eventObject(obj)
{
  if (window.event)
  {
     return window.event.srcElement;
  }
  if (obj.target)
  {
    return obj.target;
  }
  return obj;
}


function eventId(obj)
{
  if (!obj)
  {
    return null;
  } 
  else if (!obj.id)
  {
    if (window.event)
    {
      return window.event.srcElement.id;
    }
    if (obj.target)
    {
        return obj.target.id;
    }
  }
  else return obj.id;
}

function eventValue(obj)
{
  if (!obj.value)
  {
    return window.event.srcElement.value;
  } else return obj.value;
}


function clientWidth()
{
 if (window.innerWidth) { w = window.innerWidth; } // ns4
 else if(document.body)
 {
  w = document.body.clientWidth;
  if (document.body.offsetWidth == w && document.documentElement && document.documentElement.clientWidth)
  {
   w = document.documentElement.clientWidth;
  }
 }
 return w;
}

function clientHeight()
{
 if (window.innerWidth) { h = window.innerHeight; } // ns4
 else if(document.body)
 {
  h = document.body.clientHeight;
  if (document.body.offsetHeight == h && document.documentElement && document.documentElement.clientHeight)
  {
   h = document.documentElement.clientHeight;
  }
 }
 return h;
}


function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}


var shc = null;


function createShadows()
{
  return;
  shc = new Array();
  var a = document.all ? document.all : document.getElementsByTagName('*')
  for (var i = 0;i < a.length;i++) {
    if (a[i].className == "shadow") {
      var newSd = document.createElement("DIV");
      newSd.className = "shadow_inner";
      newSd.id="shadow"+shc.length; //Each shadow DIV has an id of "shadowL_X" (L=index of target element, X=index of shadow (depth) 
      newSd.style.background = "black"; //default shadow color if none specified
	  var father = a[i].parentNode;
	  if (father)
	  {
	    father.appendChild(newSd);
	  } else
	  {
        document.body.appendChild(newSd);  
	  }
      shc[shc.length]=a[i];
    }
  }
  repositionShadows();
  addEvent(window,"resize",repositionShadows);
}

function repositionShadows(){
  return;
  for (var i=0; i<shc.length; i++)
  {
    var shadowdiv=document.getElementById("shadow"+i)
    shadowdiv.style.width = shc[i].offsetWidth + "px";
    shadowdiv.style.height = shc[i].offsetHeight + "px";
	if (navigator.appName=="Microsoft Internet Explorer")
    {
      shadowdiv.style.left = shc[i].offsetLeft + 4 + "px";
    }
	else
	{
      shadowdiv.style.left = shc[i].offsetLeft + 4 + "px";
	}
    shadowdiv.style.top = shc[i].offsetTop + 4 + "px"; 
	shadowdiv.style.position = "absolute";
  }
}

function setOpacity(obj,opac)
{
  obj.style.opacity = opac;	  
  obj.style.filter = "alpha(opacity="+opac*100+")";
  //this.filters.alpha.opacity=100.
  //obj.filters.alpha.opacity = opac;
  //style.filter = "alpha(opacity= + opac + ')'; 
}


function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

addEvent(window,"load",createShadows);