function insertEntry(entries) {
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        var elem_li = document.createElement("li");
        var elem_a = document.createElement("a");
        elem_a.className = "noarrow";
        var url = "javascript:readdetail(" + entry["id"] + ");";
        elem_a.setAttribute("href", url);
        elem_li.appendChild(elem_a);
        if (entry["indextop"] != '') {
            var elem_img = document.createElement("img");
            elem_img.className = "entry";
            elem_img.setAttribute("src", "http://img.journal.mycom.co.jp/thumbs" + entry["indextop"]);
            elem_a.appendChild(elem_img);
        }
        elem_a.appendChild(document.createTextNode(entry["title"]));
        elem_a.appendChild(document.createElement("br"));
        var div_detail = document.createElement("div");
        div_detail.id = "detail_" + entry["id"];
        div_detail.style.display = "none";
        elem_li.appendChild(div_detail);
        var elem_readmore = document.getElementById("readmore");
        document.getElementById("content").insertBefore(elem_li, elem_readmore);
    }
}

var startrow = 10;

function create_xhr() {
    var request = null;
    try {
        request = new XMLHttpRequest();
    }
    catch (e) {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return request;
}

function readmore() {
    var loading_icon = document.getElementById("loading-icon");
    if (loading_icon.style.display == "inline") return;
    var request = create_xhr();
    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) {
            entries = eval(request.responseText);
            if (entries.length > 0) {
                insertEntry(entries);
                startrow += entries.length;
            }
            if (entries.length < 10) {
                document.getElementById("readmore").style.display = "none";
            }
            loading_icon.style.display = "none";
        }
    }
    loading_icon.style.display = "inline";
    url = "readmore.php?ch=" + $chcode + "&row=" + startrow;
    request.open("GET", url, true);
    request.setRequestHeader("Content-Type", "text/javascript+json; charset=utf-8");
    request.send(null);
}

function readdetail(id) {
    var div = document.getElementById("detail_" + id);
    if (!div) return;
    if (div.style.display == "none") {
        div.innerHTML = "<img src=\"images/wait20.gif\"> <span>loading ...</span>";
        div.className = "detail_loading"
        div.style.display = "block";
        var request = create_xhr();
        request.onreadystatechange = function() {
            if (request.readyState == 4 && request.status == 200) {
                div.innerHTML = "";
                div.className = "detail";
                var detail = eval(request.responseText);
                var p_lead = document.createElement("p");
                p_lead.innerHTML = detail.lead + " <a target=\"mjournal\" href=\"http://journal.mycom.co.jp" + detail.uri + "\">続きを読む (PC版)</a>";
                div.appendChild(p_lead);
                if (detail.images) {
                    var div_img = document.createElement("div");
                    div.appendChild(div_img);
                    var div_photo = document.createElement("div");
                    div_photo.style.position = "relative";
                    div.appendChild(div_photo);
                    for (var i = 0; i < detail.images.length; i++) {
                        if (detail.images[i].path == "-") continue;
                        var img = document.createElement("img");
                        img.onclick = (function (elem) {
                            return function (e) {
                                viewimage(elem);
                                return false;
                            };
                        })(img);
                        img.src = "thumbs/" + detail.images[i].id + ".jpg";
                        img.url = detail.images[i].url;
                        img.target = div_photo;
                        div_img.appendChild(img);
                    }
                }
            }
        }
        var url = "readdetail.php?id=" + id;
        request.open("GET", url, true);
        request.setRequestHeader("Content-Type", "text/javascript+json; charset=utf-8");
        request.send(null);
    }
    else {
        div.innerHTML = "";
        div.style.display = "none";
    }
}

function get_scroll_top() {
    return window.scrollY || window.pageYOffset || document.body.scrollTop;
}

function viewimage(elem) {

    var url = elem.url;

    elem.target.innerHTML = "";
    elem.target.style.width = "100%";
    elem.target.style.overflow = "hidden";

    var circle = document.createElement("div");
    circle.className = "circle";
    circle.innerHTML = "<img src=\"/images/CCC.gif\"> <span>loading ...</span>";
    elem.target.appendChild(circle);

    var img = document.createElement("img");
    img.style.position = "relative";
    img.style.left = "-1000px";
    img.style.top = "-1000px";
    img.srcElem = elem;
    img.circleElem = circle;
    elem.target.appendChild(img);

    img.onload = function (e) {
        var img = e.target;
        img.style.left = "0px";
        img.style.top = "0px";
        g_t = img.parentNode;
        if (img.width > img.parentNode.clientWidth - 6) {
            img.width = img.parentNode.clientWidth - 6;
        }
        img.circleElem.style.display = "none";
    }

    img.onclick = function (e) {
        var src = e.target.srcElem;
        var elems = src.parentNode.getElementsByTagName("img");
        if (elems.length <= 1) return;
        for (var i = 0; i < elems.length; i++) {
            if (elems[i] == src) {
                viewimage(elems[(i + 1) % elems.length])
                return;
            }
        }
    }

    img.src = url;

    var request = create_xhr();
    var url = "loadimage.php?url=" + url;
    request.open("GET", url, true);
    request.setRequestHeader("Content-Type", "text/javascript+json; charset=utf-8");
    request.send(null);
}

