
// 速報スクロール
//=====================================================
var cnt = 0; // 経過時間
var speed = 15;  //テキストの流れる速さ
var delay = 300;  // 停止時間
var stpX = 0;  // 停止座標
var posLeft = 800;  // 開始座標
var i = 0;

function scrollFlash()
{
    var inner = document.getElementById("inner");
    inner.innerHTML = flash[i];
    inner.style.marginLeft = parseInt(getHorizontal()) + "px";    
    
    cnt++;
    if (cnt > delay)
    {
        cnt = 0;
        i = (i == flash.length -1 ) ? 0 : ++i;
    }
    setTimeout("scrollFlash()",20);
}

function getHorizontal()
{
    var posX = posLeft - cnt * speed;  //テキストの X座標
　　return (posX < stpX) ? stpX : posX;
}
//=====================================================

var flash;
var timer = null;

// 英語サイト用
function getHeadLineNewsE()
{
    var reqFlash = new NewsView();
    reqFlash.Request("FlashE.cgi", createFlashNews);
    
    var reqHead = new NewsView();
    reqHead.Request("HeadE.cgi", createHeadLineNewsE);
}

// 日本語サイト用
function getHeadLineNewsJ()
{
    var reqFlash = new NewsView();
    reqFlash.Request("FlashJ.cgi", createFlashNews);
    
    var reqHead = new NewsView();
    reqHead.Request("HeadJ.cgi", createHeadLineNewsJ);
}

// 速報
function getFlashRow()
{
	// dl要素取得
	var dl = document.getElementsByTagName("dl");
	var dd = dl[0].getElementsByTagName("dd");
	//dd[0].innerHTML = "<div id='scrFlash' style='width: 800px;'><div>" + flash[cnt] + "</div></div>";
	
	dd[0].innerHTML = "";	
	var parent = document.createElement("div");
	parent.setAttribute("id", "flash");
	parent.style.position = "relative";
	parent.style.overflow = "hidden";
	parent.style.width = "800px";
	
	var inner = document.createElement("div");
	inner.setAttribute("id", "inner");
	inner.style.marginLeft = parseInt(parent.style.width) + "px";	
	inner.style.whiteSpace = "nowrap";
	
	parent.appendChild(inner);	
	dd[0].appendChild(parent);
}

function createFlashNews(obj)
{
    var res = obj.responseText;
	flash = res.split("\n");
	
	getFlashRow();
	//timer = setInterval("getFlashRow()", 5000);
    scrollFlash();
}

// ヘッドライン(英)
function createHeadLineNewsE(obj)
{
    var res = obj.responseText;
	var aData = res.split("\n");
    
    var ul = document.getElementsByTagName("ul");
    var li = ul[0].getElementsByTagName("li");
    
    for (var i = 0 ; i < aData.length ; i++)
    {
        var row = aData[i].split("\t");
        li[i].innerHTML = row[0];
    }
}

// ヘッドライン(日)
function createHeadLineNewsJ(obj)
{
    var res = obj.responseText;
	var aData = res.split("\n");
    
    var ul = document.getElementsByTagName("ul");
    
    // トップ
    for (var i = 0 ; i < aData.length ; i++)
    {
        var row = aData[i].split("\t");
        var li;
        var time = (row[6] == "none") ? "" : row[6];
        
        switch (row[0])
        {
            case "Top": // トップ
                li = ul[0].getElementsByTagName("li");
                li[i].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"トップニュース\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "National": // 社会
                li = ul[3].getElementsByTagName("li");
                li[i - 3].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"社会\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "Politics": // 政治
                li = ul[1].getElementsByTagName("li");
                li[i - 6].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"政治\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "Economics": // 経済
                li = ul[2].getElementsByTagName("li");
                li[i - 9].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"経済\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "World": // 国際
                li = ul[4].getElementsByTagName("li");
                li[i - 12].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"国際\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "Sports": // スポーツ
                li = ul[5].getElementsByTagName("li");
                li[i - 15].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"スポーツ\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "Culture": // 文化・芸能・科学
                li = ul[6].getElementsByTagName("li");
                li[i - 18].innerHTML = "<a href='' onclick='return openHeadLineDetail(\"文化・芸能・科学\", \"" + aData[i] + "\");'>" + row[1] + "</a> " + time;
                break;
            case "Market": // 株
                li = ul[8].getElementsByTagName("li");
                li[0].innerHTML = row[1] + "<br /><span>" + row[2] + "</span>";
                break;
            case "Exchange": // 外為
                li = ul[7].getElementsByTagName("li");
                li[0].innerHTML = row[1] + "<br /><span>" + row[2] + "</span>";
                break;
        }
    }
}

var tm;
var wh = 0;
var hdStyle;
function dspHeadDisp()
{
    hdStyle.width = wh + "%";
    if (wh >= 100)
    {
        clearInterval(tm);
        document.getElementById("headline2").style.display='';
        wh = 0;
        return;
    }
    wh += 10;
}

// ヘッドライン(日)詳細表示
function openHeadLineDetail(category, data)
{
    changeHeadLineFont();
    
    var row = data.split("\t");
    
    hdStyle = document.getElementById("headline").style;
    hdStyle.display='';
    
    document.getElementById("category").innerHTML = category;
    document.getElementById("title").innerHTML = row[1];
    document.getElementById("text").innerHTML = (row[6] == "none") ? row[2] : row[2] + row[6];
    
    document.getElementById("imglink"). style.textAlign = "center";
    if (row[3] == "none")
    {
        document.getElementById("imgspn").style.display="none";
        document.getElementById("imglink").setAttribute("src", "");
    }
    else
    {
        var imgSrc = new Image();
        imgSrc.src = row[3];
        
        document.getElementById("imgspn").style.display="";
        
        if (imgSrc.complete)
        {
            setImageSize(imgSrc);
        }
        else
        {
            imgSrc.onload = function() {
                var img = document.getElementById("imglink");
                img.setAttribute("src", row[3]);
                
                var max_width = 200;
                var max_height = 200;
                
                if (imgSrc.width > imgSrc.height && imgSrc.width > max_width)
                {
                    img.setAttribute("width", max_width);
                    img.removeAttribute("height");
                }
                else
                {
                    if (imgSrc.height > max_height)
                    {
                        img.setAttribute("height", max_height);
                        img.removeAttribute("width");
                    }
                }
            };
        }
    }
    
    document.getElementById("imgcap").innerHTML = (row[4] == "none") ? "" : row[4];
    if (row[5] == "none")
    {
        document.getElementById("more").style.display="none";
        document.getElementById("link47").setAttribute("href", "");
    }
    else
    {
        document.getElementById("more").style.display="";
        document.getElementById("link47").setAttribute("href", row[5]);
        document.getElementById("link47").setAttribute("target", "_blank");
    }
    
    hdStyle.height = document.body.offsetHeight + "px";
    
    var top = (document.body.scrollTop  || document.documentElement.scrollTop);
    document.getElementById("headline2").style.top = (top + 100) + "px";
    
    tm = setInterval("dspHeadDisp()", 20);
    return false;
}

function setImageSize(imgSrc)
{
    var img = document.getElementById("imglink");
    img.setAttribute("src", imgSrc.src);

    var max_width = 200;
    var max_height = 200;

    if (imgSrc.width > imgSrc.height && imgSrc.width > max_width)
    {
        img.setAttribute("width", max_width);
        img.removeAttribute("height");
    }
    else
    {
        if (imgSrc.height > max_height)
        {
            img.setAttribute("height", max_height);
            img.removeAttribute("width");
        }
    }
}

// ヘッドライン(日)クローズ
function closeHeadLineDetail()
{
    hdStyle.width = "0%";
    hdStyle.height = "0px";
    hdStyle.display = "none";

    document.getElementById("headline2").style.display = "none";
    return false;
}

function changeHeadLineFont()
{
	if(document.all)
	{
		document.all("ajaxarea").style.fontSize = SizeList[key] + "%";
	}
	if(document.getElementById)
	{
		document.getElementById("ajaxarea").style.fontSize = SizeList[key] + "%";
	}
}
