﻿// JavaScript Document
/*
Create By Tellov 2008-06-17
tellov@msn.com
Copy All Right Reserved.

// [..] 方括号内的属性代表可选项，可不写此属性，不写的话则使用默认值
****  DEMO  ******************************************************************************
-- 滑动门
<div mod="Tabs" [mod_default="默认显示第几个按钮（数字）" mod_onmouseli_css="鼠标经过样式" mod_buttontag="按钮标签（默认为li）" mod_contenttag="内容标签（默认为div）]">
    <ul>
        <li>按钮1</li>
        <li>按钮2</li>
    </ul>
    <div>内容</div>
    <div>内容</div>
</div>

-- 图片预览
<div mod="IMG" modurl="图片地址">预览</div>

-- 文本下拉框示例
<input mod="TEXTDOWNLIST" [modheight="高度" modwidth="宽度"] modurl="链接地址" ...>

-- 鼠标至行变色TABLE示例
<table mod="LIST" modoverclass="划过时使用的CSS">

-- 向上滚动div示例
<div mod="MAR" scrollamount="滚动速度" direction="滚动方向">

-- 左边挂联广告
    <div mod="PageLeftAD">
    
-- 右边挂联广告
    <div mod="PageRightAD">
******************************************************************************************
*/

var __userControl_tabs = 0;
var __scrollamount = 2000;
var __userControl_arrMenu = new Array();
var __userControl_arrInfo = new Array();

document.write("<iframe id='__UserControl_IFrame'></iframe>");
document.getElementById("__UserControl_IFrame").style.position = "absolute";
document.getElementById("__UserControl_IFrame").style.display = "none";
document.getElementById("__UserControl_IFrame").style.border = "1px solid #8F93C5";
document.getElementById("__UserControl_IFrame").style.zIndex = "1000";

document.write("<div id='__UserControl_Div'></div>");
document.getElementById("__UserControl_Div").style.position = "absolute";
document.getElementById("__UserControl_Div").style.display = "none";
document.getElementById("__UserControl_Div").style.border = "1px solid #8F93C5";
document.getElementById("__UserControl_Div").style.zIndex = "1000";
document.getElementById("__UserControl_Div").style.width = "125px";
document.getElementById("__UserControl_Div").style.height="19px";

document.getElementById("__UserControl_IFrame").onblur = function(){
    document.getElementById("__UserControl_IFrame").style.display = "none";
};

if(document.getElementsByTagName("label").length > 0){
    for(i=0;i<document.getElementsByTagName("label").length;i++){
        if(document.getElementsByTagName("label").item(i).getAttributeNode("mod") != null)
        {
            switch(document.getElementsByTagName("label").item(i).getAttributeNode("mod").value.toUpperCase())
            {
                // JS加载用户控件所有
                 case "CONTOTRL":
                    var key = document.getElementsByTagName("label").item(i).getAttributeNode("id").value;
                    var controlurl = document.getElementsByTagName("label").item(i).getAttributeNode("controlurl").value;
                    document.getElementById(key).innerHTML = AjaxLoad(controlurl + "&temprnd=" + Math.round(Math.random()*10000));
                    break;
             };
        };
    };
};

if(document.getElementsByTagName("input").length > 0){
    for(i=0;i<document.getElementsByTagName("input").length;i++){
        if(document.getElementsByTagName("input").item(i).getAttributeNode("mod") != null)
        {
            switch(document.getElementsByTagName("input").item(i).getAttributeNode("mod").value.toUpperCase())
            {
                case "TEXTDOWNLIST":
                    document.getElementsByTagName("input").item(i).readOnly = true;
                    document.getElementsByTagName("input").item(i).onfocus = function(){
                        var url = this.getAttributeNode("modurl").value;
                        
                        if (url.indexOf("?") == -1){
                            url += "?";
                        }
                        else{
                            url += "&";
                        };
                        url += ("KEY=" + document.getElementById(this.id+"_value").value + "&ClientID=" + this.id);
                        
                        if(url != document.getElementById("__UserControl_IFrame").src){
                            document.getElementById("__UserControl_IFrame").src = url;
                        };
                        
                        if(this.getAttributeNode("modheight") != null){
                            document.getElementById("__UserControl_IFrame").style.height = this.getAttributeNode("modheight").value;
                        };
                        
                        if(this.getAttributeNode("modwidth") != null)
                        {
                            document.getElementById("__UserControl_IFrame").style.width = this.getAttributeNode("modwidth").value;
                        };
                        
                        setObjPosition(document.getElementById("__UserControl_IFrame"),document.getElementById(this.id));
                        document.getElementById("__UserControl_IFrame").style.display = "block";
                    };
                    
                    document.getElementsByTagName("input").item(i).onblur = function(){
                        if(document.activeElement.id != document.getElementById("__UserControl_IFrame").id){
                            document.getElementById("__UserControl_IFrame").style.display = "none";
                        };
                    };
                    break;
             };
        };
    };
};

if(document.getElementsByTagName("div").length > 0){
    for(i=0;i<document.getElementsByTagName("div").length;i++){
        if(document.getElementsByTagName("div").item(i).getAttributeNode("mod") != null)
        {
            switch(document.getElementsByTagName("div").item(i).getAttributeNode("mod").value.toUpperCase())
            {
                case "IMG":
                    document.getElementsByTagName("div").item(i).onmouseover = function(){
                        document.getElementById("__UserControl_Div").innerHTML = "正在加载图片....";                        
                        setObjPosition(document.getElementById("__UserControl_Div"),document.getElementById(this.id));                        
                        document.getElementById("__UserControl_Div").style.display = "block";
                        
                        imageObj = new Image();
                        imageObj.src = this.getAttributeNode("modurl").value;
                       
                        var html = "<img src=\"" + this.getAttributeNode("modurl").value + "\" style=\"float:left;\" onmouseout=\" document.getElementById('__UserControl_Div').style.display = 'none'\"><span style=\"float:left;padding:0;margin:0;background:#CCCCCC;\">Width:"+imageObj.width+"&nbsp;&nbsp;Height:"+imageObj.height+"</span>";
                        
                        document.getElementById("__UserControl_Div").style.width = imageObj.width;
                        document.getElementById("__UserControl_Div").style.height = imageObj.height;
                        document.getElementById("__UserControl_Div").innerHTML = html;         
                        
                        setObjPosition(document.getElementById("__UserControl_Div"),document.getElementById(this.id));
                    };
                    break;
                case "TABS":
                    var _buttonTag = "li";
                    var _contentTag = "div";
                    if(document.getElementsByTagName("div").item(i).getAttributeNode("mod_buttontag")!= null){
                        _buttonTag = document.getElementsByTagName("div").item(i).getAttributeNode("mod_buttontag").value;
                    }
                    if(document.getElementsByTagName("div").item(i).getAttributeNode("mod_contenttag")!= null){
                        _contentTag = document.getElementsByTagName("div").item(i).getAttributeNode("mod_contenttag").value;
                    }
                    
                    __userControl_arrMenu[__userControl_tabs] = new Array();
                    __userControl_arrInfo[__userControl_tabs] = new Array();
                    __userControl_arrMenu[__userControl_tabs] = document.getElementsByTagName("div").item(i).getElementsByTagName(_buttonTag);
                    __userControl_arrInfo[__userControl_tabs] = document.getElementsByTagName("div").item(i).getElementsByTagName(_contentTag);
                    if(__userControl_arrMenu[__userControl_tabs].length != __userControl_arrInfo[__userControl_tabs].length){
                        alert("使用选项卡时菜单和内容必须要有相同数量\n如果需要，你可以放一个空的在那占位。");
                    };

                    _tabs_show_item = 1;
                    if(document.getElementsByTagName("div").item(i).getAttributeNode("mod_default")!= null)
                    {
                        _tabs_show_item = document.getElementsByTagName("div").item(i).getAttributeNode("mod_default").value;
                    };

                    if(document.getElementsByTagName("div").item(i).getAttributeNode("mod_onmouseli_css")!= null)
                    {
                        __userControl_arrMenu[__userControl_tabs].cName = document.getElementsByTagName("div").item(i).getAttributeNode("mod_onmouseli_css").value;
                    };

                    for(_tab_item_i=0;_tab_item_i<__userControl_arrMenu[__userControl_tabs].length;_tab_item_i++)
                    {
                        __userControl_arrMenu[__userControl_tabs][_tab_item_i].cName = __userControl_arrMenu[__userControl_tabs][_tab_item_i].className;
                        
                        if(_tab_item_i!= _tabs_show_item-1){
                            __userControl_arrInfo[__userControl_tabs][_tab_item_i].style.display = "none";
                        }
                        else{
                            __userControl_arrInfo[__userControl_tabs][_tab_item_i].style.display = "block";
                            __userControl_arrMenu[__userControl_tabs][_tab_item_i].className = __userControl_arrMenu[__userControl_tabs].cName;
                        };
                    };
                       
                    for(__userControl_tabs_item=0;__userControl_tabs_item<__userControl_arrMenu[__userControl_tabs].length;__userControl_tabs_item++)
                    {
                        __userControl_arrMenu[__userControl_tabs][__userControl_tabs_item].index = __userControl_tabs_item;     
                        __userControl_arrInfo[__userControl_tabs][__userControl_tabs_item].index = __userControl_tabs_item;
                        __userControl_arrMenu[__userControl_tabs][__userControl_tabs_item].value = __userControl_tabs;

                        
                        __userControl_arrMenu[__userControl_tabs][__userControl_tabs_item].onmouseover = function(){
                            for(i=0;i<__userControl_arrInfo[this.value].length;i++)
                            {
                               if(i!=this.index){
                                        __userControl_arrInfo[this.value][i].style.display = "none";
                                        __userControl_arrMenu[this.value][i].className = __userControl_arrMenu[this.value][i].cName;
                               }
                               else{
                                        __userControl_arrInfo[this.value][i].style.display = "block";
                                        __userControl_arrMenu[this.value][i].className = __userControl_arrMenu[this.value].cName;
                               };
                           };
                        };
                    };
                    __userControl_tabs++;
                    break;
                 case "MAR":
                    var mrqInterval=new Object;
                    var mrqn;
                    var limrq=document.getElementById(document.getElementsByTagName("div").item(i).getAttributeNode("id").value);
                    var lml=limrq.getElementsByTagName("li").length;
                    __scrollamount = document.getElementsByTagName("div").item(i).getAttributeNode("scrollamount").value;
                    
                    limrq.scrollTop=0;
	                mrqn=0;
	                mrqInterval[1]="";
	                clearInterval(mrqInterval[1]);
	                mrqInterval[1]=window.setInterval("nxtmrq()",__scrollamount);

                    limrq.innerHTML+="<li style=\"list-style-type:none;\">"+limrq.getElementsByTagName("li")[0].innerHTML+"</li>";
                    limrq.onmouseover=function(){
	                    clearInterval(mrqInterval[1]);
	                };
	                
                    limrq.onmouseout=function(){
	                    mrqInterval[1]=window.setInterval("nxtmrq()",__scrollamount);
	                };
                    break;
                 case "AD":
                    var key = document.getElementsByTagName("div").item(i).getAttributeNode("id").value;
                    var divid =document.getElementById(key.replace("_location",""));
                    var keydiv = document.getElementById(key);
                    if(document.getElementById(key) != null)
                    {
                        document.getElementById(key).style.position = "absolute";
                        document.getElementById(key).style.zIndex = "1000";                   
                        var p = getObjPostion(divid);
                        keydiv.style.top = p.y + 3;
                        if(p.x + 3 > window.screen.width - keydiv.offsetWidth){
                            keydiv.style.left = p.x - window.screen.width;
                        }
                        else{
                            keydiv.style.left = p.x + 3;
                        };		
                    };
                    break;
                 case "PAGELEFTAD":
                    document.getElementsByTagName("div").item(i).style.posTop = -200;
                    document.getElementsByTagName("div").item(i).style.visibility = "visible";
                    document.getElementsByTagName("div").item(i).style.position="absolute";
                    document.getElementsByTagName("div").item(i).style.zIndex=10;
                    var __control_pageleftad = document.getElementsByTagName("div").item(i);
                    PageLeftAD();
                    break;
                 case "PAGELEFTTOP":
                    document.getElementsByTagName("div").item(i).style.posTop = -200;
                    document.getElementsByTagName("div").item(i).style.visibility = "visible";
                    document.getElementsByTagName("div").item(i).style.position="absolute";
                    document.getElementsByTagName("div").item(i).style.zIndex=10;
                    var __control_pagelefttop = document.getElementsByTagName("div").item(i);
			PageLeftTop();
                    break;
                 case "PAGERIGHTAD":
                    document.getElementsByTagName("div").item(i).style.posTop = -200;
                    document.getElementsByTagName("div").item(i).style.visibility = 'visible';
                    document.getElementsByTagName("div").item(i).style.position="absolute";
                    document.getElementsByTagName("div").item(i).style.zIndex=10;
                    var __control_pagerightad = document.getElementsByTagName("div").item(i)
                    PageRightAD();
                    break;
             };
        };
    };
};

if(document.getElementsByTagName("table").length > 0){
    for(i=0;i<document.getElementsByTagName("table").length;i++){
        if(document.getElementsByTagName("table").item(i).getAttributeNode("mod") != null)
        {
            switch(document.getElementsByTagName("table").item(i).getAttributeNode("mod").value.toUpperCase())
            {
                case "LIST":
                    __onmouseover_class = "";
                    __onmouseout_class = "";
                    
                    if(document.getElementsByTagName("table").item(i).getAttributeNode("modoverclass") != null)
                    {
                        __onmouseover_class = document.getElementsByTagName("table").item(i).getAttributeNode("modoverclass").value;
                    };
                    
                    if(document.getElementsByTagName("table").item(i).getAttributeNode("modoutclass") != null)
                    {
                        __onmouseout_class = document.getElementsByTagName("table").item(i).getAttributeNode("modoutclass").value;
                    };
                    
                    for(i=0;i<document.getElementsByTagName("table").item(i).getElementsByTagName("tr").length;i++){
                        document.getElementsByTagName("table").item(i).getElementsByTagName("tr").item(i).onmouseover = function(){
                            this.className = __onmouseover_class;
                        };
                             
                        document.getElementsByTagName("table").item(i).getElementsByTagName("tr").item(i).onmouseout = function(){
                            this.className = __onmouseout_class;
                        };
                    };
                 break;
             };
         };
    };
};

function setUserControl(controlId,text,value){
    document.getElementById(controlId).value = text;
    document.getElementById(controlId+"_value").value = value;
    parent.document.getElementById("__UserControl_IFrame").style.display = "none";
};

function setObjPosition(obj,parentObj)
{
    var p = getObjPostion(parentObj);
    if(obj.style.height.replace("px","") >= document.body.clientHeight - p.y - parentObj.offsetHeight && obj.style.height.replace("px","") < document.body.clientHeight){
        obj.style.top = p.y - obj.style.height.replace("px","") - 1 - document.getElementById("Right").scrollTop;
    }
    else{
        obj.style.top =p.y + parentObj.offsetHeight + 1 - document.getElementById("Right").scrollTop;
    };
    
    if(obj.style.width.replace("px","") >= document.body.clientWidth - p.x){
        obj.style.left = p.x - obj.style.width.replace("px","") + parentObj.offsetWidth;
    }
    else{
        obj.style.left = p.x;
    };
};

function getMousePostion(){
    var _position = new position(0,0);
    _position.x = window.event.x;
    _position.y = window.event.y;
    return _position;
};

function getObjPostion(obj){
    var _thisObj = obj;
    var _position = new position(0,0);
    _position.x += document.body.offsetLeft;
    _position.y += document.body.offsetTop;
    while (_thisObj.tagName != "BODY")
    {
        _position.x += _thisObj.offsetLeft;
        _position.y += _thisObj.offsetTop;
        if(_thisObj.offsetParent == null)
        {
            _thisObj = document.body;
        }
        else{
            _thisObj = _thisObj.offsetParent;
        };
    };
    return _position;
};

function position(x,y)
{
    this.x = x;
    this.y = y;
};

function getControlValue(objId)
{
    if(document.getElementById(objId).getAttributeNode("mod") != null)
    {
        switch(document.getElementById(objId).getAttributeNode("mod").value.toUpperCase())
        {
            case "TEXTDOWNLIST":
                return document.getElementById(objId + "_value").value;
                break;
            default:
                return null;
        };
    }
    else{
        return null;
    };
};


// 向上滚动所用到的JS函数
function liMarquee(){
	limrq.scrollTop++;
	if(limrq.scrollTop%22==0){
		clearInterval(mrqInterval[0]);
	};
};

function nxtmrq(){
    if(mrqn<lml){
	    mrqInterval[0]=window.setInterval("liMarquee()",20);
	    mrqn++;
	}
    else{
        limrq.scrollTop=0;
        mrqn=0;
        nxtmrq();
    };
};
// End 向上滚动所用到的JS函数


// 左右挂联广告所用到的JS函数
function PageLeftAD(){
    var x = 5;
    var y = 100;// 广告距离页首高度
    var diff = (document.documentElement.scrollTop + y - __control_pageleftad.style.posTop)*.40;
    var y = document.documentElement.scrollTop + y - diff;
    __control_pageleftad.style.posTop = parseInt(y);
    __control_pageleftad.style.posLeft = x;
    setTimeout("PageLeftAD()", 20);
};

function PageRightAD(obj){
    var x = 5;
    var y = 100;// 右侧广告距离页首高度
    var diff = (document.documentElement.scrollTop + y - __control_pagerightad.style.posTop)*.40;
    var y = document.documentElement.scrollTop + y - diff;
    __control_pagerightad.style.posTop = y;
    __control_pagerightad.style.posRight = x;
    setTimeout("PageRightAD()", 20);
};

function PageLeftTop(obj){
    var x = 5;
    var y = 0;
    __control_pagelefttop.style.posTop = y;
    __control_pagelefttop.style.posLeft = x;
    setTimeout("PageLeftTop()", 20);

};
// END