var IPxmlHttp = createXmlHttpRequestObject();
var IPobjects = 0;
var IPurl;
var IPlastid=0;
var IPlist=new Array();
var IPnewValues= new Array(5);
var IPcobj;
var reloadtimeout=5000;
var fadetimeout=30;
var fadepause=250;
var IPfadestep=5;
var IPalpha = 70;
var IPisalpha;

function createXmlHttpRequestObject()
{
  var xmlHttp;
  //alles ausser IE6 und davor
  try
  { xmlHttp = new XMLHttpRequest(); }
  catch (e)
  {
    //IE6?
    var IEVersions = new Array('MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0',
                               'MSXML2.XMLHTTP','Microsoft.XMLHTTP');
    for (var i=0; i<IEVersions.length && !xmlHttp; i++)
    {
      try { xmlHttp = new ActiveXObject(IEVersions[i]); }
      catch (e) {}
    }
  }
  if (xmlHttp)
    return xmlHttp;
}

//body - onload
function startscripts()
{
  for (var i=0; i<startscripts.arguments.length; i++)
  {
    var str=startscripts.arguments[i];
    str=str.replace('{#','"');
    str=str.replace('#}','"');
    eval(str);
  }
}

//Index-Promo
function initpromo(requrl)
{
  IPurl=requrl;
  if (IPxmlHttp)
  {
    //OK - script darf starten
    count=0;
    while (document.getElementById('idxpromo'+(count+1)))
    {
      IPlist[count]="";
      count++;
    }
    if (count>0)
    {
      IPobjects=count;
      IPstartTimer(reloadtimeout);
    }
  }
}

function promorequest()
{
  if (IPxmlHttp)
  {
    try
    {
      IPxmlHttp.open("GET",IPurl,true);
      IPxmlHttp.onreadystatechange = handleIPRstateChange;
      IPxmlHttp.send(null);
    }
    catch (e) {}
  }
}

function handleIPRstateChange()
{
  if (IPxmlHttp.readyState == 4)
  {
    iptimeout=reloadtimeout;
    if (IPxmlHttp.status == 200)
    {
      if (IPxml=IPxmlHttp.responseText != "error")
      {
        IPnewValues=IPparsevalues(IPxmlHttp.responseText);
        var flag=0;
        for (var i=0; i<IPobjects; i++)
        {
          if (IPlist[i] == IPnewValues[0])
          {
            flag=1;
          }
        }
        if (flag==0)
        {
          var nid=parseInt((Math.random()*IPobjects)+1);
          if (nid==IPlastid)
          {
            nid++;
            if (nid>IPobjects)
            {
              nid=1;
            }
          }
          IPlastid=nid;
          IPcobj=document.getElementById('idxpromo'+nid);
          IPlist[nid-1]=IPnewValues[0];
          IPisalpha=IPalpha;
          setTimeout('fadeout()',fadetimeout);
        }
        else
        {
          IPstartTimer(500);
        }
      }
    }
  }
}

function fadeout()
{
  IPisalpha -=IPfadestep;
  if (IPisalpha>=0)
  {
    setalpha(IPisalpha);
    setTimeout('fadeout()',fadetimeout);
  }
  else
  {
    IPupdateLink(IPcobj);
    setTimeout('fadein()',fadepause);
  }
}

function fadein()
{
  IPisalpha +=IPfadestep;
  if (IPisalpha<IPalpha)
  {
    setalpha(IPisalpha);
    setTimeout('fadein()',fadetimeout);
  }
  else
  {
    setalpha(IPalpha);
    IPcobj.getElementsByTagName("img")[0].removeAttribute("style");
    IPstartTimer(reloadtimeout);
  }
}

function setalpha(prozent)
{
  filterValue="Alpha(opacity="+prozent+")";
  opacityValue=""+prozent/100;
  objStyle=IPcobj.getElementsByTagName("img")[0].style;
  objStyle.filter=filterValue;        // "filter(Alpha)"-Style setzen (fuer IE)
  objStyle.MozOpacity=opacityValue;   // "-moz-opacity"-Style setzen (fuer Mozilla)
  objStyle.KhtmlOpacity=opacityValue; // "-khtml-opacity"-Style setzen (fuer Konqueror/Safari)
  objStyle.opacity=opacityValue;      // "opacity"-Style setzen (fuer CSS-3-Browser)
}

function IPparsevalues(xml)
{
  var xmlDOM;
  if (typeof ActiveXObject != "undefined")
  {
    xmlDOM = new ActiveXObject("Microsoft.XmlDom");
    xmlDOM.loadXML(xml);
  }
  else
  {
    var parser= new DOMParser();
    xmlDOM = parser.parseFromString(xml,"text/xml");
  }

  var n2=xmlDOM.getElementsByTagName("image")[0];
  var burl=n2.getElementsByTagName("purl")[0].childNodes[0].nodeValue;
  var nbild= new Image();
  nbild.src=burl;

  var retval= new Array(xmlDOM.getElementsByTagName("lurl")[0].childNodes[0].nodeValue,
                   burl,
                   n2.getElementsByTagName("name")[0].childNodes[0].nodeValue,
                   n2.getElementsByTagName("width")[0].childNodes[0].nodeValue,
                   n2.getElementsByTagName("height")[0].childNodes[0].nodeValue);

  return retval;
}

function IPupdateLink(obj)
{
  obj.childNodes[0].href=IPnewValues[0];
  var lbild=obj.getElementsByTagName("img")[0];
  lbild.src=IPnewValues[1];
  lbild.setAttribute("alt",IPnewValues[2]);
  lbild.title=IPnewValues[2];
  lbild.width=IPnewValues[3];
  lbild.height=IPnewValues[4];
}

function IPstartTimer(iptimeout)
{
  if (IPxmlHttp.readyState == 4 || IPxmlHttp.readyState == 0)
  {
    setTimeout('promorequest()',iptimeout);
  }
}

// allgemeine Routinen

function picman_change_v0(formID,picID)
{
 var bild = document.getElementById(picID);
 var form = document.getElementById(formID);
 bild.src = mpics[form.value].src;
 bild.width = mpics[form.value].width;
 bild.height = mpics[form.value].height;
}

function atrpic_change_v1(formID,picID,loop)
{
 var bild = document.getElementById(picID);
 var form = document.getElementById(formID);
 var bildname = form.value;
 if (atrpics[bildname].complete)
 {
  bild.src = atrpics[bildname].src;
  bild.width  = atrpics[bildname].width;
  bild.height = atrpics[bildname].height;
 }
 else
 {
  if (loop>0)
  {
   loop=loop-1;
   setTimeout("atrpic_change_v1('"+formID+"','"+picID+"',"+loop+")",500);
  }
 }
}

function atrpic_change_v2(idvalue,picID,loop)
{
 var bild = document.getElementById(picID);
 if (atrpics[idvalue].complete)
 {
  bild.src = atrpics[idvalue].src;
  bild.width  = atrpics[idvalue].width;
  bild.height = atrpics[idvalue].height;
  bild.alt = idvalue;
 }
 else
 {
  if (loop>0)
  {
   loop=loop-1;
   setTimeout("atrpic_change_v2('"+idvalue+"','"+picID+"',"+loop+")",500);
  }
 }
}

function openatrinfo_v1(idvalue,sizex,sizey,basefile)
{
  window.open(basefile+"?OPT="+document.getElementById(idvalue).value,"atrinfo","width="+sizex+",height="+sizey);
}

function openatrinfo_v2(idvalue,sizex,sizey,basefile)
{
  window.open(basefile+"?OPT="+document.getElementById(idvalue).alt,"atrinfo","width="+sizex+",height="+sizey);
}

function keyinput(e,fid,tid)
{
 var keynum;
 var keychar;
 var numcheck;

 if(window.event) // IE
 {
  keynum = e.keyCode;
 }
 else if(e.which) // Netscape/Firefox/Opera
 {
  keynum = e.which;
 }

 if ((keynum==38) || (keynum==40) || (keynum==13))
 {
  var newitem = fid+"-";
  if (keynum==38)
  {
   newitem +=(tid-1);
  }
  else
  {
   newitem +=(tid+1);
  }

  var prev=document.getElementById(newitem);
  if (prev)
  {
   prev.focus();
  }
 }
 if (keynum==13)
  return false;
}

