<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
function TFly_Init(name,  offsetLeft, offsetTop, alignment, anyIter, anyTime, staticHover, popupHover, popupLatency, hideLatency, onInit, onPopup, onHide) {
    var TFly = document.getElementById(name);
    TFly.DT = document.getElementById(name + "_Popup");    //    显示内容对象
    TFly.F = document.getElementById(name + "_Anim");    //    动画效果对象
    TFly.oX = offsetLeft;
    TFly.oY = offsetTop;
    TFly.alignment = alignment;
    TFly.AnyIter = anyIter;
    TFly.AnyTime = anyTime;

    TFly.popupLatency = popupLatency;
    TFly.hideLatency = hideLatency;
    TFly.onPopup = onPopup;
    TFly.onHide = onHide;

    TFly.onmouseover = function() {
        if (staticHover != '') {    //    替换样式，并储存原来的样式
		    TFly.className_ = TFly.className;
			TFly.className = staticHover;
		}
        TFly_Popup(TFly, true);
	}

    TFly.onmouseout = function() {
	    if (staticHover != '') {    //    恢复原来的样式
		    TFly.className = TFly.className_;
		}
		TFly_Popup(TFly, false);
	}

    if (document.all) {
        TFly.onactivate = TFly.onmouseover;
        TFly.ondeactivate = TFly.onmouseout;
    } else {
        TFly.onfocus = TFly.onmouseover;
        TFly.onblur = TFly.onmouseout;
    }

    TFly.DT.onmouseover = function() {
        if (popupHover != '') {
		    TFly.DT.className_ = TFly.DT.className;
			TFly.DT.className = popupHover;
		}
		TFly_Popup(TFly, true);
	}

    TFly.DT.onmouseout = function() {
	    if (popupHover != '') {
            TFly.DT.className = TFly.DT.className_;
		}
	    TFly_Popup(TFly, false);
    }

    TFly_CallClientFunction(onInit, TFly);
}

//    调用初始化程序
function TFly_CallClientFunction(name, TFly) {
    if (name != null &&  name != "")
        eval(name + "(TFly);");
}

//    定位
function TFly_SetPosition(TFly, obj) {
    obj.style.top = TFly.oY + TFly.offsetHeight + "px";
    obj.style.left = TFly.oX + (TFly.offsetWidth - obj.offsetWidth ) * (1 + TFly.alignment) / 2 + "px";
}

function TFly_Popup(TFly, value) {
    if (TFly.timer != null) window.clearTimeout(TFly.timer);    //    清除超时

    if (value) {    //    判断状态
        if (TFly.status == "on") return;

        //    如果 popup 已经显示，则显示延时为 0
		//    例如从一个菜单移动到另外一个菜单
		var timeout = (TFly.status == "active") ? 0 : TFly.popupLatency;

        if (TFly.AnyIter > 0 && TFly.AnyTime > 0)
            TFly.timer = window.setTimeout(function() {TFly_AnimateStart(TFly, true, TFly.F.curIter);}, timeout);
        else
            TFly.timer = window.setTimeout(function() {TFly_SetVisibility(TFly, true);}, timeout);

    } else {
        if (TFly.status == "off") return;

        var timeout = (TFly.status == "active") ? 0 : TFly.hideLatency;

        if (TFly.AnyIter > 0 && TFly.AnyTime > 0)
            TFly.timer = window.setTimeout(function() {TFly_AnimateStart(TFly, false, TFly.F.curIter);}, timeout);
        else
            TFly.timer = window.setTimeout(function() {TFly_SetVisibility(TFly, false);}, timeout);
    }
}

//    设置弹出内容的可见性
function TFly_SetVisibility(TFly, value) {
    if (value == true) {
        TFly_SetPosition(TFly, TFly.DT);
        TFly.DT.style.visibility = "visible";
        TFly.style.zIndex = "999";
    } else {
        TFly.DT.style.visibility = "hidden";
        TFly.style.zIndex = "0";
        TFly.DT.style.left = "-10000px";
    }
}

function TFly_AnimateStart (TFly, inout, curIter) {
    if (TFly.F.timer != null) window.clearTimeout(TFly.F.timer);

    if (curIter == null) curIter=0;

    if (TFly.status != "active") {
        TFly.status = "active";
        TFly.F.style.visibility = "visible";
        TFly.DT.style.visibility = "hidden";
    }

    if (curIter < 0 || curIter > TFly.AnyIter) {
        TFly.F.curIter = (curIter < 1) ? 0 : TFly.AnyIter;
        TFly.status = (TFly.F.curIter == TFly.AnyIter) ? "on": "off";
        TFly.F.style.visibility = "hidden";
        TFly_SetPosition(TFly, TFly.DT);
        TFly.style.zIndex = (TFly.F.curIter == TFly.AnyIter) ? "999" : "0";
        
        if (TFly.F.curIter == TFly.AnyIter) {
            TFly.status = "on";
            TFly_SetVisibility(TFly, true);
            TFly_CallClientFunction(TFly.onPopup, TFly);
        } else {
            TFly.status = "off";
            TFly_SetVisibility(TFly, false);
            TFly_CallClientFunction(TFly.onHide, TFly);
        }
    } else {
        var per = curIter * (95 / TFly.AnyIter) + 5;
        TFly.F.style.visibility = "hidden";
        TFly.F.style.width = TFly.DT.offsetWidth / 100 * per + "px";
        TFly.F.style.height = TFly.DT.offsetHeight / 100 * per + "px";
        TFly_SetPosition(TFly, TFly.F);
        TFly.F.style.visibility = "visible";
        var timeout = (per == 100 ) ? 0 : TFly.AnyTime - (TFly.AnyTime / (TFly.AnyIter) * (curIter));
        curIter += (inout) ? 1 : -1;
        TFly.F.timer = window.setTimeout(function() {TFly_AnimateStart(TFly, inout, curIter)}, timeout);
        TFly.F.curIter = curIter;
    }
}