//全局变量，
//检查提取或解析XML广告配置文件时是否出现错误
var isError = false;
var xmlPath = "/AdPreview/";
var arrAd = new Array();
var arrIndex = 0;

//解析广告的XML配置文件
function parseXMLFile(sUrl ,nAdType, nStyle, sName)
{
    var sRet = "";
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    var root;
    xmlDoc.async = false;
    try
    {
        xmlDoc.load(sUrl);
        root = xmlDoc.documentElement;
        if(root.childNodes.item(0).childNodes.item(0).text == "1")
        {
            isError = true;
            return sRet;
        }

        var eltAdRoot = root.selectSingleNode("adList");//selectNodes
        var eltAdList  = eltAdRoot.selectNodes("ad");
        var nLen = eltAdList.length;
        if(nAdType == 3 || nStyle == 1 || nStyle == 4 || nStyle == 5)
        {
            var nIndex = Math.floor(Math.random()*nLen)
            linkUrl = eltAdList.item(nIndex).selectSingleNode("linkurl").text;
            entityUrl = eltAdList.item(nIndex).selectSingleNode("entityurl").text;
            sRet = getDisplayContent(linkUrl, entityUrl, sName);
        }
        else
        {
            if(nStyle == 2 || nStyle == 6)
            {
                for(i=0; i<nLen; i++)
                {
                    linkUrl = eltAdList.item(i).selectSingleNode("linkurl").text;
                    entityUrl = eltAdList.item(i).selectSingleNode("entityurl").text;
                    if(nStyle == 6 && i > 0)
                    	sRet += "<br/>";
                    sRet += getDisplayContent(linkUrl, entityUrl, sName);
                    
                }

            }
        }
        return sRet;
    }
    catch(ex)
    {
        isError = true;
        return sRet;
    }
}


//获取广告实体的类型
function getEntityType(entityUrl)
{
    var pos = entityUrl.lastIndexOf(".");
    var entityType = entityUrl.substring(pos + 1);
    return entityType;
}

function isFlash(entityType)
{
    if(entityType == "swf")
        return true;
    return false;
}

//获取最终要显示的广告实体的HTML源代码
function getDisplayContent(linkUrl, entityUrl, sName)
{
    var result = "";
    if(isFlash(getEntityType(entityUrl)))
    {
        result += "<OBJECT id=\"img" + sName + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"";
        if(sName == "divcontent")
        {
        	result += " Height=\"300\" ";
        	result += " width=\"360\" ";
        }
        result += " codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0\">";
        result += "<PARAM NAME=movie VALUE=\"" + entityUrl + "\">";
        result += "<PARAM NAME=quality VALUE=high>";
		result += "<PARAM NAME=wmode VALUE=transparent>";
        result += "<EMBED src=\"" + entityUrl + "\" quality=high TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\"></EMBED>";
        result += "</OBJECT>";
    }
    else
    {
    	if(linkUrl == null || linkUrl.length == 0 || linkUrl == "null")
	        result += "<img id=\"img" + sName + "\" src=\"" + entityUrl + "\" border=0>";
	else
	{
	        result += "<a href=\"" + linkUrl + "\">";
	        result += "<img id=\"img" + sName + "\" src=\"" + entityUrl + "\" border=0>";
	        result += "</a>";
	}
    }
    return result;
}


//处理正文广告
function doContentAd(sUrl)
{
    if(document.all("adv_div_default") == null)
        return;

    if(document.all("adv_div_none") != null)
        return;

    var objAds = document.all("adv_div_default");
    //alert(objAds);
    

    var sName = "divcontent";
    var sAdValue = parseXMLFile(sUrl,3,0,sName);

    if(isError)
        return;

    if(objAds.length == null)
    {
    	objAds.innerHTML = sAdValue;
    	objAds.style.display = "inline";
    	return;
    }
    
    for(i=0;i<objAds.length;i++)
    {
    	objAds[i].innerHTML = sAdValue;
    	objAds[i].style.display = "inline";
    }

}

/*
nStyle
1：页面刷新自动更新
2：简单横排
3：隔一定时间更新
4：页面中飘动
5：总在底部
6: 简单纵排
*/
function showAd(nAdType, nAdPosition, nStyle)
{
    isError=false;	
    //如果是正文广告
    if(nAdType == 3)
    {
        nAdPosition = 0;
    }

    //广告内容文件
    var sUrl = xmlPath + "ad_" + ad_siteid + "_" + ad_nodeid + "_" + nAdType + "_" + nAdPosition + ".xml";
    //alert(sUrl);

    if(nAdType == 3)
    {
        //处理正文广告
        doContentAd(sUrl);
    }
    else
    {
        //隔一定时间更新
        if(nStyle == 3)
        {
            arrAd[arrIndex] = new Array();
            arrAd[arrIndex][0] = nAdType;
            arrAd[arrIndex][1] = nAdPosition;
            arrAd[arrIndex][2] = 1;

            arrIndex++;
            if(arrIndex == 1)
            {
                window.setInterval('reloadAd()',5000);
            }

            nStyle = 1;
        }

        var sName = "div_ad_" + nAdType + "_" + nAdPosition;
        var sRet = parseXMLFile(sUrl, nAdType, nStyle, sName);
        if(isError)
            return;
        
        //alert(sRet);

        if(nStyle == 5 || nStyle == 4)
        {
            adMove(sRet, sName, nStyle);
        }
	else
	{
            var obj = document.all(sName);
            obj.innerHTML = sRet;
        }

    }
}

function reloadAd()
{
    for(i=0; i<arrIndex; i++)
    {
    	var objname = "imgdiv_ad_"+arrAd[i][0]+"_"+arrAd[i][1];
    	var obj = document.all(objname);
    	var tWidth = 0;
    	var tHeight = 0;
    	if(obj!=null)
    	{
    		if(obj.length != null)
    			obj = obj[0];
    		tWidth = obj.width;
    		tHeight = obj.height;
    		//alert(tWidth);
    		//alert(tHeight);
    	}
        showAd(arrAd[i][0], arrAd[i][1], arrAd[i][2]);
        setAdSize(objname, tWidth, tHeight)
    }
}

var imgheight = 200;


function adMoveRefresh(sName, nStyle)
{
    if(nStyle == 5)
    {
    	//alert("body clientHeight == "+document.body.clientHeight);
    	//alert("div clientHeight == "+document.all(sName).clientHeight);
        document.all(sName).style.posTop = document.body.scrollTop + document.body.clientHeight - document.all(sName).clientHeight - 10;
        //alert("final top == "+document.all(sName).style.posTop);
        document.all(sName).style.right = 5;
        setTimeout("adMoveRefresh(\"" + sName +"\"," + nStyle + ");",500);
    }
    else if(nStyle == 4)
    {
        var nTop = document.all(sName).style.top;
        var nLeft = document.all(sName).style.left;
        nTop = nTop.replace("px","");
        nLeft = nLeft.replace("px","");
        nTop = nTop - 0 + 10;
        nLeft = nLeft - 0 + 10;
        if(nTop > document.body.clientHeight)
        {
            nTop = nTop - document.body.clientHeight;
        }

        if(nLeft > document.body.clientWidth)
        {
            nLeft = nLeft - document.body.clientWidth;
        }

        document.all(sName).style.top = nTop;
        document.all(sName).style.left = nLeft;
	setTimeout("adMoveRefresh(\"" + sName +"\"," + nStyle + ");",500);
    }

    
}

function adMove(sRet, sName, nStyle)
{
    var obj = document.all(sName);
    sRet = "<div id=\"" + sName + "\" style='position: absolute;visibility: visible;z-index: 1'>" + sRet + "</div>";
    obj.outerHTML = sRet;
    obj = document.all(sName);
    imgheight = document.all("img" + sName).height;
    adMoveRefresh(sName, nStyle);
}

function setAdSize(adname, nWidth, nHeight)
{
	var ads = document.getElementsByName(adname);
	for(i=0;i<ads.length;i++)
	{
		if(nWidth > 0)
			ads[i].width = nWidth;
		if(nHeight > 0)
			ads[i].height = nHeight;
	}
}