﻿
function addEvent(obj, evtType, func, cap) {

    cap = cap || false;

    if (obj.addEventListener) {

        obj.addEventListener(evtType, func, cap);

        return true;

    } else if (obj.attachEvent) {

        if (cap) {

            obj.setCapture();

            return true;

        } else {

            return obj.attachEvent("on" + evtType, func);

        }

    } else {

        return false;

    }

}

function removeEvent(obj, evtType, func, cap) {

    cap = cap || false;

    if (obj.removeEventListener) {

        obj.removeEventListener(evtType, func, cap);

        return true;

    } else if (obj.detachEvent) {

        if (cap) {

            obj.releaseCapture();

            return true;

        } else {

            return obj.detachEvent("on" + evtType, func);

        }

    } else {

        return false;

    }

}

function getPageScroll() {

    var xScroll, yScroll;

    if (self.pageXOffset) {

        xScroll = self.pageXOffset;

    } else if (document.documentElement && document.documentElement.scrollLeft) {

        xScroll = document.documentElement.scrollLeft;

    } else if (document.body) {

        xScroll = document.body.scrollLeft;

    }

    if (self.pageYOffset) {

        yScroll = self.pageYOffset;

    } else if (document.documentElement && document.documentElement.scrollTop) {

        yScroll = document.documentElement.scrollTop;

    } else if (document.body) {

        yScroll = document.body.scrollTop;

    }

    arrayPageScroll = new Array(xScroll, yScroll);

    return arrayPageScroll;

}

function GetPageSize() {

    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {

        xScroll = document.body.scrollWidth;

        yScroll = window.innerHeight + window.scrollMaxY;

    } else if (document.body.scrollHeight > document.body.offsetHeight) {

        xScroll = document.body.scrollWidth;

        yScroll = document.body.scrollHeight;

    } else {

        xScroll = document.body.offsetWidth;

        yScroll = document.body.offsetHeight;

    }

    var windowWidth, windowHeight;

    if (self.innerHeight) {

        windowWidth = self.innerWidth;

        windowHeight = self.innerHeight;

    } else if (document.documentElement && document.documentElement.clientHeight) {

        windowWidth = document.documentElement.clientWidth;

        windowHeight = document.documentElement.clientHeight;

    } else if (document.body) {

        windowWidth = document.body.clientWidth;

        windowHeight = document.body.clientHeight;

    }

    if (yScroll < windowHeight) {

        pageHeight = windowHeight;

    } else {

        pageHeight = yScroll;

    }

    if (xScroll < windowWidth) {

        pageWidth = windowWidth;

    } else {

        pageWidth = xScroll;

    }

    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)

    return arrayPageSize;

}

//广告脚本文件 AdMove.js

/*

例子

<div id="Div2">

***** content ******

</div>

var ad=new AdMove("Div2");

ad.Run();

*/

////////////////////////////////////////////////////////

var AdMoveConfig = new Object();

AdMoveConfig.IsInitialized = false;

AdMoveConfig.AdCount = 0;

AdMoveConfig.ScrollX = 0;

AdMoveConfig.ScrollY = 0;

AdMoveConfig.MoveWidth = 0;

AdMoveConfig.MoveHeight = 0;

AdMoveConfig.Resize = function () {

    var winsize = GetPageSize();

    AdMoveConfig.MoveWidth = winsize[2];

    AdMoveConfig.MoveHeight = winsize[3];

    AdMoveConfig.Scroll();

}

AdMoveConfig.Scroll = function () {

    var winscroll = getPageScroll();

    AdMoveConfig.ScrollX = winscroll[0];

    AdMoveConfig.ScrollY = winscroll[1];

}

addEvent(window, "resize", AdMoveConfig.Resize);

addEvent(window, "scroll", AdMoveConfig.Scroll);

function AdMove(id, addCloseButton) {

    if (!AdMoveConfig.IsInitialized) {

        AdMoveConfig.Resize();

        AdMoveConfig.IsInitialized = true;

    }

    AdMoveConfig.AdCount++;

    var obj = document.getElementById(id);

    obj.style.position = "absolute";

    var W = AdMoveConfig.MoveWidth - obj.offsetWidth;

    var H = AdMoveConfig.MoveHeight - obj.offsetHeight;

    var x = W * Math.random(), y = H * Math.random();

    var rad = (Math.random() + 1) * Math.PI / 6;

    var kx = Math.sin(rad), ky = Math.cos(rad);

    var dirx = (Math.random() < 0.5 ? 1 : -1), diry = (Math.random() < 0.5 ? 1 : -1);

    var step = 1;

    var interval;

    if (addCloseButton) {

        var closebtn = document.createElement("div");

        obj.appendChild(closebtn);

        closebtn.style.position = "absolute";

        closebtn.style.top = "1px";

        closebtn.style.left = (obj.offsetWidth - 28) + "px";

        closebtn.style.width = "24px";

        closebtn.style.height = "12px";

        closebtn.style.borderStyle = "solid";

        closebtn.style.borderWidth = "1px";

        closebtn.style.borderColor = "#000";

        closebtn.style.backgroundColor = "#fff";

        closebtn.style.fontSize = "12px";

        closebtn.style.color = "#000";

        closebtn.style.cursor = "pointer";

        closebtn.innerHTML = "关闭";

        closebtn.onclick = function () {

            obj.style.display = "none";

            clearInterval(interval);

            closebtn.onclick = null;

            obj.onmouseover = null;

            obj.onmouseout = null;

            obj.MoveHandler = null;

            AdMoveConfig.AdCount--;

            if (AdMoveConfig.AdCount <= 0) {

                removeEvent(window, "resize", AdMoveConfig.Resize);

                removeEvent(window, "scroll", AdMoveConfig.Scroll);

                AdMoveConfig.Resize = null;

                AdMoveConfig.Scroll = null;

                AdMoveConfig = null;

            }

        }

    }

    obj.MoveHandler = function () {

        obj.style.left = (x + AdMoveConfig.ScrollX) + "px";

        obj.style.top = (y + AdMoveConfig.ScrollY) + "px";

        rad = (Math.random() + 1) * Math.PI / 6;

        W = AdMoveConfig.MoveWidth - obj.offsetWidth;

        H = AdMoveConfig.MoveHeight - obj.offsetHeight;

        x = x + step * kx * dirx;

        if (x < 0) { dirx = 1; x = 0; kx = Math.sin(rad); ky = Math.cos(rad); }

        if (x > W) { dirx = -1; x = W; kx = Math.sin(rad); ky = Math.cos(rad); }

        y = y + step * ky * diry;

        if (y < 0) { diry = 1; y = 0; kx = Math.sin(rad); ky = Math.cos(rad); }

        if (y > H) { diry = -1; y = H; kx = Math.sin(rad); ky = Math.cos(rad); }

    }

    this.SetLocation = function (vx, vy) { x = vx; y = vy; }

    this.SetDirection = function (vx, vy) { dirx = vx; diry = vy; }

    this.Run = function () {

        var delay = 10;

        interval = setInterval(obj.MoveHandler, delay);

        obj.onmouseover = function () { clearInterval(interval); }

        obj.onmouseout = function () { interval = setInterval(obj.MoveHandler, delay); }

    }

}
