

//Steuerungsvariablen
var flugspeed = 80;   //Geschwindigkeit Wert = Pause
var animspeed = 75;    //Geschwindigkeit der Abfolge der Bilder
var driftY = 0;       //Änderung der höhe je Durchlauf
var AnDrifts = 1;        //Anzahl an Durchläufen
var ExitY1 = 5;
var ExitY2 = 0;
var MaxLocX = 600;
var MinLocX = 0;
var MaxLocY = 500;
var MinLocY = 0;


function GetRandom(start,end)
{
    var range = end - start + 1;
    var result = start + Math.floor(Math.random()*range);
    return result;
}


// Generic Layer Object Functions

function getObjectInfo(objectin)
{

        var objectOut = new Object();
        objectOut.top = 0;
        objectOut.left = 0;
        objectOut.width = 0;
        objectOut.height = 0;
        objectOut.right = 0;
        objectOut.bottom = 0;

        if ((IEmac && IE5) || (IE4plus && !isMac))
        {
                var newobject = objectin;

                objectOut.left = newobject.offsetLeft;
                objectOut.top = newobject.offsetTop; //document.body.topMargin;

                var newp = newobject.offsetParent;

                while(newp != null)
                {
                        objectOut.left += newp.offsetLeft;
                        objectOut.top += newp.offsetTop;
                        newp = newp.offsetParent;
                }

                if (IEmac)
                {
                        objectOut.left += parseInt(document.body.leftMargin);
                        objectOut.top +=  parseInt(document.body.topMargin);
                }
                objectOut.height = newobject.height;
                objectOut.width = newobject.width;
        }
        else if (NS4)
        {
                objectOut.left = objectin.x;
                objectOut.top = objectin.y;
                objectOut.width = objectin.width;
                objectOut.height = objectin.height;

        }
        else if (isMac && !IE5 && IE4plus)
        {
                var el = eval(objectin);
                do
                {
                        if (isInt(el.offsetTop))
                                objectOut.top += el.offsetTop;
                        if (isInt(el.offsetLeft))
                                objectOut.left += el.offsetLeft;
                        el = el.parentElement;
                } while (el.tagName != "BODY");
                if (navigator.appVersion.indexOf("4.5")>=0)
                        objectOut.top = objectOut.top - 15;

                objectOut.width = eval(objectin).offsetWidth;
                objectOut.height = eval(objectin).offsetHeight;
                objectOut.right = objectOut.left + objectOut.width;
                objectOut.bottom = objectOut.top + objectOut.height;
        }
        else if (NS6)
        {
                objectOut.left = objectin.offsetLeft+document.getElementsByTagName('body')[0].offsetLeft;
                objectOut.top = objectin.offsetTop+document.getElementsByTagName('body')[0].offsetTop;
                objectOut.width = objectin.offsetWidth;
                objectOut.height = objectin.offsetHeight;
        }
        objectOut.right = objectOut.left + objectOut.width;
        objectOut.bottom = objectOut.top + objectOut.height;

        return objectOut;
}

//
// FlyingAd Class
//

function FlyingAd_Finished()
{

        //gFlyingAd.flugstreckex
        if ((this.moveX > 0 && this.x >= this.destX)
            || (this.moveX < 0 && this.x <= this.destX)
            || (this.moveY < 0 && this.y <= this.destY)
            || (this.moveY > 0 && this.y >= this.destY)
        )
        {

                return true;
        }
        else
        {
                return false;
        }
}


function FlyingAd_Move()
{
        this.x += this.moveX;
        this.y += this.moveY;
        moveTo(this.dv,this.x,this.y);
}

function FlyingAd_SetLoc(x,y)
{
        this.x = x;
        this.y = y;
        moveTo(this.dv,this.x,this.y);
}

function FlyingAd_SetDest(x,y)
{
        this.destX = x;
        this.destY = y;
        this.passes = 0;
        this.hasDestination = true;
}

function FlyingAd_Show(shouldShow)
{
        if (shouldShow)
                showObject(this.dv);
        else
                hideObject(this.dv);
}

function FlyingAd(divName,animImgName,bannerImgName,divObj)
{
        this.hasDestination = false;
        this.driftY = driftY;
        this.passes = 0;
        this.maxPasses = AnDrifts;
        this.speed = flugspeed;
        this.animationspeed = animspeed;
        this.animIndex = 0;
        this.dv = divObj;
        this.x = parseInt(this.dv.left);
        this.y = parseInt(this.dv.top);

        if(NS4)
        {
                this.animImage = eval("divObj.document."+ animImgName);
                //this.bannerImage = eval("divObj.document."+ bannerImgName);
                this.width = this.animImage.width;

        }
        else if (IE4plus)
        {
                this.animImage =  eval("document." + animImgName);
                this.bannerImage =  eval("document." + bannerImgName);
                this.width = parseInt(this.dv.width);
        }
        else if (NS6)
        {
                this.animImage =  document.getElementById(animImgName);
                this.bannerImage =  document.getElementById(bannerImgName);
                this.width = parseInt(this.dv.width);
        }

        this.animInfo = getObjectInfo(this.animImage);


        this.anim = new Array();
        for (i=0;i<arguments.length-4;i++)
        {
                var img = new Image();
                img.src = arguments[i+4];
                this.anim[i] = arguments[i+4];
        }

        this.Move = FlyingAd_Move;
        this.Finished = FlyingAd_Finished;
        this.SetLoc = FlyingAd_SetLoc;
        this.SetDest = FlyingAd_SetDest;
        this.Show = FlyingAd_Show;


}

function CreateFlyingLayer()
{
        var html = "";
        html += '<table border="0" cellspacing="0" cellpadding="0">';
        html += '<tr>';
        html += '<td><a target="_top" href="../html/index_buehne.htm"><img src="../images/rose_anim.gif" border="0" name="anim" id="anim" alt="Valentinstag in der Lugnercity"></a></td>';
        html += '</tr>';
        html += '</table>';

        var nL = createLayer("flyingad",0,0,194,195,html);
        return nL;
}




//Object fliegen lassen
//Startfunktion der Animation
function FlyObject()
{

        if (IE4plus || NS4 || NS6)
        {
                if (!gFlyingAd)
                {
                        var layer = CreateFlyingLayer();
                        gFlyingAd = new FlyingAd("flyingad","anim","animbanner",layer,"images/rose_anim.gif");
                }

                 var flugstreckex = GetRandom(0,10);    //Bewegung von links anch rechts (+) oder rechts nach links (-)
                 var flugstreckey = GetRandom(0,10);    //Bewegung von oben anch unten (+) oder unten nach oben (-)
                 boolStartX = GetRandom(0,1);
                 boolMoveX = GetRandom(0,1);
                 boolMoveY = GetRandom(0,1);
                 //gFlyingAd.flugstreckex = flugstreckex;
                 //gFlyingAd.flugstreckey = flugstreckey;

                 //Wenn auf der X-Achse begonnen wird
                  if(boolStartX > 0)
                  {
                    startX = GetRandom(100,getWindowWidth()-100);
                    if(boolMoveX > 0)
                    {
                      gFlyingAd.moveX = flugstreckex;
                      destX = getWindowWidth()+gFlyingAd.animInfo.width;
                    }
                    else
                    {
                      gFlyingAd.moveX = -flugstreckex;
                      destX = 0-gFlyingAd.animInfo.width;
                    }
                    if(boolMoveY > 0) //Wenn von oben begonnen wird
                    {
                     startY = 0-gFlyingAd.animInfo.height;
                     gFlyingAd.moveY = flugstreckey;
                     destY = getWindowHeight();
                    }
                    else
                    {
                     startY = getWindowHeight()+gFlyingAd.animInfo.height;
                     gFlyingAd.moveY = -flugstreckey;
                     destY = 0-gFlyingAd.animInfo.height;
                    }
                  }
                  else
                  {
                  //zeile 268
                    startY = GetRandom(100,getWindowHeight()-300);
                    if(boolMoveY > 0)
                    {
                      gFlyingAd.moveY = flugstreckey;
                      destY = getWindowHeight()+gFlyingAd.animInfo.height;
                    }
                    else
                    {
                      gFlyingAd.moveY = -flugstreckey;
                      destY = 0-gFlyingAd.animInfo.height;
                    }
                    //zeile 278
                    if(boolMoveX > 0) //Wenn von links begonnen wird
                    {
                     startX = 0-gFlyingAd.animInfo.width;
                     gFlyingAd.moveX = flugstreckex;
                     destX = getWindowWidth();
                    }
                    else
                    {
                     startX = getWindowWidth();
                     gFlyingAd.moveX = -flugstreckex;
                     destX = 0-gFlyingAd.animInfo.width;
                    }

                  }

                gFlyingAd.SetLoc(startX,startY);
                gFlyingAd.SetDest(destX,destY);
                gFlyingAd.Show(true);
                FlyCircle();
        }
}




function FlyCircle()
{
 gFlyingAd.Move();
 if (gFlyingAd.Finished())
 {
  FlyObject();
 }
 else
 {
  setTimeout("FlyCircle()",gFlyingAd.speed);
 }
}



function Replay()
{
        window.location.reload();
}

//Diese Funktion aktivieren bzw. deaktivieren
//SafeAddOnload(FlyObject);



var gAnimationTimer = null;
var gFlyingAd = null;
var gPaketLayer = null;
var gBannerImg = null;
var gBannerInfo = null;