﻿/*
功能：获取浏览器滚动条水平坐标
返回值：整形数据。
声明：为了方便此文档独立运行而引入相关函数，此函数的函数体内容完整来自 MessageBox.js 同名函数。
*/
FixedAD.prototype.getScrollLeft=function ()
{
    var scrollPos;
    if (typeof(window.pageXOffset) != 'undefined')
    {
       scrollPos = window.pageXOffset;
    }
    else if (typeof(document.compatMode) != 'undefined' && document.compatMode != 'BackCompat')
    {
       scrollPos = document.documentElement.scrollLeft;
    }
    else if (typeof(document.body) != 'undefined')
    {
       scrollPos = document.body.scrollLeft;
    }
    return scrollPos;
}

/*
功能：获取浏览器滚动条垂直坐标。
返回值：整形数据。
声明：为了方便此文档独立运行而引入相关函数，此函数的函数体内容完整来自 MessageBox.js 同名函数。
*/
FixedAD.prototype.getScrollTop=function ()
{
    var scrollPos;
    if (typeof(window.pageYOffset) != 'undefined')
    {
       scrollPos = window.pageYOffset;
    }
    else if (typeof(document.compatMode) != 'undefined' && document.compatMode != 'BackCompat')
    {
       scrollPos = document.documentElement.scrollTop;
    }
    else if (typeof(document.body) != 'undefined')
    {
       scrollPos = document.body.scrollTop;
    }
    return scrollPos;
}

/*
功能：获取浏览器工作区宽度（无滚动条）
返回值：整形数据。
声明：为了方便此文档独立运行而引入相关函数，此函数的函数体内容完整来自 MessageBox.js 同名函数。
*/
FixedAD.prototype.clientWidth=function ()
{
    return (document.documentElement.clientWidth||document.body.clientWidth);
}

/*
功能：获取浏览器工作区高度（无滚动条）
返回值：整形数据。
声明：为了方便此文档独立运行而引入相关函数，此函数的函数体内容完整来自 MessageBox.js 同名函数。
*/
FixedAD.prototype.clientHeight=function ()
{
    return (self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight);
}

/*
此内容来自：思海网络 http://www.thinksea.com

功能描述：一个显示固定广告的方法，用于将指定的内容显示在浏览器窗口的指定位置，并且不会因为滚动位置条改变而更改。

参数说明：控件ID，水平对齐方式，垂直对其方式，水平偏移量，垂直偏移量
水平对齐方式：左对齐=1；居中对齐=2；右对齐=3
垂直对其方式：顶对齐=1；居中对齐=2；底对齐=3

调用示例：下面的内容演示了如何在当前页面提供一个翻译页面文字的帮助框，将下面的代码插入 HTML 文档的 Body 元素之间即可。

注：
	演示内容涉及的翻译功能使用了google公司的服务。
	演示内容只有传到网上才能看到翻译效果。

<!--begin 页面翻译帮助框 -->
<div id="ad" style="position:absolute">
	<table style="width:100px; border:1px solid gray; background-color: #8DB1D1;" border="0" cellpadding="5" cellspacing="5">
		<tr><td style="color: yellow;">将本页内容翻译成下面语言：</td></tr>
		<tr><td style="background-color:white; line-height: 150%;">
		<a style="color: black;" href="#" onClick="window.open('http://translate.google.com/translate?hl=zh-CN&langpair=zh|en&u=' + window.location,'_blank','');">英语-English</a>
		<br/>
		<a style="color: black;" href="#" onClick="window.open('http://translate.google.com/translate?hl=zh-CN&langpair=zh-CN|zh-TW&u=' + window.location,'_blank','');">中文-繁体</a>
		</td></tr>
	</table>
</div>
<script language="JavaScript" src="ad.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
FixedAD('ad', 3, 1, 0, 0);
</script>
<!--end 页面翻译帮助框-->
*/
function FixedAD( id, h, v, x, y )
{
	var obj = document.getElementById(id)
	var objstyle=obj.style;
	var posX=FixedAD.prototype.getScrollLeft();
	var posY=FixedAD.prototype.getScrollTop();
	var clientW=FixedAD.prototype.clientWidth();
	var clientH = FixedAD.prototype.clientHeight();

    var tox=0;
	switch(h)
	{
		case 1:
			tox = posX + x;
			break;
		case 2:
			tox = posX + (clientW - obj.offsetWidth)/2 + x;
			break;
		case 3:
			tox = posX + (clientW - obj.offsetWidth) + x;
			break;
	}

    if(objstyle.left=="")
    {
        objstyle.left=tox+"px";
    }
    var cleft=parseInt(objstyle.left);
    if(cleft!=tox)
    {
        if(cleft<tox)
        {
            var step=Math.ceil((tox-cleft)/10);
            objstyle.left = cleft+step+"px";
        }
        else
        {
            var step=Math.ceil((cleft-tox)/10);
	        objstyle.left = cleft-step+"px";
	    }
	}

    var toy=0;
	switch(v)
	{
		case 1:
			toy = posY + y;
			break;
		case 2:
			toy = posY + (clientH - obj.offsetHeight)/2 + y;
			break;
		case 3:
			toy = posY + (clientH - obj.offsetHeight) + y;
			break;
	}

    if(objstyle.top=="")
    {
        objstyle.top=toy+"px";
    }
    var ctop=parseInt(objstyle.top);
    if(ctop!=toy)
    {
        if(ctop<toy)
        {
            var step=Math.ceil((toy-ctop)/10);
            objstyle.top = ctop+step+"px";
        }
        else
        {
            var step=Math.ceil((ctop-toy)/10);
	        objstyle.top = ctop-step+"px";
	    }
	}

	window.setTimeout("FixedAD('" + id + "', " + h + ", " + v + ", " + x + ", " + y + ")", 10);

}
