/* $Id: main.js,v 1.5 2008/03/01 00:33:30 skoehler Exp $ */
/*
 * Haupt-Script
 *
 *  - benutzt DOM
 *  - unterstuetzt:
 *      IE 5.0+
 *      Opera 7.0+
 *      Mozilla 1.0+
 *      Netscape 6.0+
 *  - Netscape 4/Opera 6 kompatibel
 */

function main_prepare()
{
  debug_prepare();
  //swap_prepareAutoImages("swapper");  
}

var swap_image_regexp = /^(.*)_a(\W.*)$/i;
var swap_image_replace = "_b";


// ab hier wird's kompliziert
//************************************************************


// Forms
//************************************************************

function form_limitLength(o, l)
{
  var v = o.value;
  if (v.length>l)
  {
    o.value = v.substr(0, l);
  }
}


// PopUps
//************************************************************

function popup_window(obj, w, h, full)
{
  var frame = obj.target;
  var link = obj.href;;
  
  var ww = screen.availWidth;
  var hh = screen.availHeight;
  
  w = w || ww*3/4;
  h = h || hh*3/4; 
  
  var l = (ww-w)/2;
  var t = (hh-h)/4;
  
  var attribs = "left="+l+",top="+t+",width="+w+",height="+h
    +",toolbar=yes,status=yes,scrollbars=yes,resizable=no,menubar=yes";

  var new_win;
  if (full)
  {
    new_win = window.open(link,frame,attribs+",location=yes");
  }
  else
  {
    new_win = window.open(link,frame,attribs);
  }
  new_win.focus();
}

function popup_forum(link)
{
	popup_window(link, 750, 435);
}
function popup_ecard(link)
{
  popup_window(link, 650, 420);
}
function popup_anfahrt(link)
{
  popup_window(link, 438, 420);
}
function popup_jhprices(link)
{
  popup_window(link, 600, 650);
}
function popup_jhprices_nordmark(link)
{
  popup_window(link, 1000, 650);
}

// Image Swapper
//************************************************************

function swap_prepareAutoImages(name)
{
  if (document.getElementsByName) //DOM
  {
    var imgs = document.getElementsByName(name);
    for (var i=0; i<imgs.length; i++)
    {
      swap_prepareAutoObj(imgs[i]);
    }
  }
  else if (document.images) //NS4
  {
    var imgs = document.images;
    for (var i=0; i<imgs.length; i++)
    {
      var img = imgs[i];
      if (img.name==name) swap_prepareAutoObj(img);
    }
  }
}

function swap_prepareAuto(name)
{
  var i = document.images[name];
  return swap_prepareAutoObj(i);
}

function swap_prepareAutoObj(i)
{
  if (i && swap_image_regexp.exec(i.src))
  {
    return swap_prepareObj(i, RegExp.$1+swap_image_replace+RegExp.$2);
  }
  return 0;
}

function swap_prepareObj(i0, swap_path)
{
  var i1 = new Image();
  var i2 = new Image();
  
  i1.src = i0.src;
  i2.src = swap_path;

  i0.onmouseover = function() { i0.src = i2.src; };
  i0.onmouseout  = function() { i0.src = i1.src; };
}

// Debugging
//************************************************************

var debug_field;

function debug_prepare()
{
  if (document.getElementById)
    debug_field = document.getElementById("debugging_console");
}

function debug_out(s)
{
  if (debug_field)
    debug_field.value = s+"\n"+debug_field.value;
}

// Main & Tools
//************************************************************

function main_getLeft(e)
{
  var x = 0;
  while (e)
  {
    x += e.offsetLeft;
    e = e.offsetParent;
  }
  return x;
}

function main_getTop(e)
{
  var y = 0;
  while (e)
  {
    y += e.offsetTop;
    e = e.offsetParent;
  }
  return y;
}

function main_getRight(e)
{
  return main_getLeft(e)+e.width;
}

function main_getBottom(e)
{
  return main_getTop(e)+e.height;
}

function main_hideElement(e)
{
  e.style.position = "absolute";
  e.style.visibility = "hidden";
  e.style.left = -5000;
  e.style.top = -5000;
}

function main_showElement(e, x, y)
{
  e.style.position = "absolute";
  e.style.left = x;
  e.style.top = y;
  e.style.visibility = "visible";
}

function main_addOnLoad(f2)
{
  var f1 = window.onload;
  if (f1)
    window.onload = function() { try { f1(); } finally { f2(); } };
  else
    window.onload = f2;
}

main_addOnLoad(main_prepare);


//EOF