﻿var defaultPicW = 200;
var defaultPicH = 100;
var defaultMargin = 5;
var defaultBorder = 1;
var picIdName = 'picbx';
var partsNum = 0;
var MaxPartNum = 30;
var fontSet = new Array('"ＭＳ ゴシック","Osaka"', '"ＭＳ 明朝","平成明朝"');

Event.observe(window, "load", function() {
    var txt = '<div id="nowreading" style="position:absolute;top:0px;left:80%;z-index:2000;visibility:hidden;"><img src="pic/readingf.gif" alt="読み込み中"/></div>';
    $("editplanein").innerHTML += txt;
    getNTBday("today");
});

var inptxttmp = ' value="000000">';
function openOneWindow(idname) {
    var txt = '<div class="' + idname + 'divwh" id="' + idname + '" style="z-index:200;background-color:transparent;';
    txt += 'position:absolute;left:0px;top:0px;padding:' + (defaultMargin - defaultBorder) + 'px; border:solid ' + defaultBorder + 'px gray;width:' + defaultPicW + 'px;height:' + defaultPicH + 'px;float:none;overflow:hidden;">';

    txt += '<div class="' + idname + 'divwh" id="' + idname + 'InArticle" style="width:' + defaultPicW + 'px;height:' + defaultPicW + 'px;overflow:hidden;">';
    //    txt += '<textarea id="' + idname + 'msgbx" cols=100 rows=100></textarea>';
    txt += '</div>';

    txt += '</div>';

    $("editplanein").innerHTML += txt;
    $(idname).style.backgroundColor = "#FFFFFF";
}
function changePrio(idname, num) {
    SetZIndexS(idname, parseInt((4 - num) * 100));
}
function SetZIndexS(idname, zindex) {
    $(idname).style.zIndex = zindex;
}
var fontsizearray = new Array(20, 15, 12, 10);
function changeFontSize(idname, fsize) {
    var targetid = $$("#inptxtInArticle textarea")[0].id;
    targetid = targetid.substring(0, targetid.indexOf("inputtxtbx"));
    $("messageWin").innerText = targetid;
    $(targetid + 'msgbx').style.fontSize = fsize;
}
function changeFontBold(idname) {
    var targetid = $$("#inptxtInArticle textarea")[0].id;
    targetid = targetid.substring(0, targetid.indexOf("inputtxtbx"));
    $("messageWin").innerText = targetid;
    if ($(targetid + 'msgbx').style.fontWeight == "bold") {
        $(targetid + 'msgbx').style.fontWeight = "normal";
    } else {
        $(targetid + 'msgbx').style.fontWeight = "bold";
    }
}
function changeFontItalic(idname) {
    var targetid = $$("#inptxtInArticle textarea")[0].id;
    targetid = targetid.substring(0, targetid.indexOf("inputtxtbx"));
    $("messageWin").innerText = targetid;
    if ($(targetid + 'msgbx').style.fontStyle == "italic") {
        $(targetid + 'msgbx').style.fontStyle = "normal";
    } else {
        $(targetid + 'msgbx').style.fontStyle = "italic";
    }
}
function changeFontType(idname, ftype) {
    var targetid = $$("#inptxtInArticle textarea")[0].id;
    targetid = targetid.substring(0, targetid.indexOf("inputtxtbx"));
    $("messageWin").innerText = targetid;
    if (ftype == 0) {
        $(targetid + 'msgbx').setStyle('font-family:"ＭＳ 明朝","平成明朝";');
    } else {
        $(targetid + 'msgbx').setStyle('font-family:"ＭＳ ゴシック","Osaka";');
    }
}

function CloseTxtPic(idname) {
    if ($(idname)) {
        $(idname).innerHTML = "";
        $(idname).remove();
    }
}
var map = new Array();
var marker = new Array();
var yokoDegree = new Array();
var tateDegree = new Array();
var ZoomAtai = new Array();

function inPlaneMap(idname) {
    if (!GBrowserIsCompatible()) {
        $(idname + 'InArticle').innerHTML = "このブラウザでは<br/>マップを表示できません";
    } else {
        $(idname + 'map').focus();
        map[idname] = new GMap2($(idname + 'map'));
        var gpObj = new GLatLng(parseFloat(tateDegree[idname]), parseFloat(yokoDegree[idname]));
        map[idname].setCenter(gpObj, parseInt(ZoomAtai[idname]), G_NORMAL_MAP);
        map[idname].addControl(new GSmallMapControl());
        marker[idname] = new GMarker(gpObj);
        map[idname].addOverlay(marker[idname]);
    }
}
function inPlaneSwfSub(idname, str) {
    var txt = '<div id="' + idname + 'swf" title="' + str + '" ></div>';
    $(idname + 'InArticle').innerHTML = txt;
    var wa = parseInt($(idname).style.width);
    var ha = parseInt($(idname).style.height);
    $(idname + 'swf').style.width = wa + "px";
    $(idname + 'swf').style.height = ha + "px";
    txt = '<object type="application/x-shockwave-flash" ';
    txt += 'data="' + str + '" ';
    txt += 'width="' + wa + 'px" height="' + ha + 'px">';
    txt += '<param name="movie" id="' + idname + 'Movie"';
    txt += 'value="' + str + '" >';
    txt += '<img src="pic/noflash.gif" ';
    txt += 'width="' + wa + 'px" height="' + ha + 'px" alt="" >';
    txt += '</object>';
    $(idname + 'swf').innerHTML = txt;
}
function resetSwf() {
    for (var i = 0; i < MaxPartNum; i++) {
        var idname = picIdName + i;
        if ($(idname + 'swf')) {
            $(idname + 'swf').innerHTML = "";
        }
    }
}
function redrawSwf() {
    for (var i = 0; i < MaxPartNum; i++) {
        var idname = picIdName + i;
        if ($(idname + 'swf')) {
            inPlaneSwfSub(idname, $(idname + 'swf').title);
        }
    }
}
var waitcnt = 0;
var gwin;
function SetPartsWH(idname) {
    var xa = parseInt($(idname).style.left);
    var ya = parseInt($(idname).style.top);
    var wa = parseInt($(idname).style.width);
    var ha = parseInt($(idname).style.height);
    $$("." + idname + "divwh").each(function(ele) {
        ele.style.width = (wa) + "px";
        ele.style.height = (ha) + "px";
    });
    if ($(idname + 'picturebx')) {
        $(idname + 'picturebx').style.width = (wa) + "px";
        $(idname + 'picturebx').style.height = (ha) + "px";
    }
    if ($(idname + 'map')) {
        $(idname + 'map').style.width = (wa) + "px";
        $(idname + 'map').style.height = (ha) + "px";
        inPlaneMap(idname);
    }
    if ($(idname + 'swf')) {
        inPlaneSwfSub(idname, $(idname + 'swf').title);
    }
}
function loadAndPut(str) {
    var que = "Date=" + str;
    var paras = que + "&cache=" + (new Date()).getTime();
    if ($("nowreading")) {
        $("nowreading").style.visibility = "visible";
    }
    new Ajax.Request("js/loadparts.cgi", {
        method: "get",
        parameters: paras,
        onSuccess: GetResponseLoad,
        onFailure: function(httpObj) {
            $("messageWin").innerHTML = "エラーで読み込めませんでした<br>" + httpObj.status;
            if ($("nowreading")) {
                $("nowreading").style.visibility = "hidden";
            }
        }
    });
    //    $("messageWin").innerHTML = "LOAD:" + paras;
}
function GetResponseLoad(httpObj) {
    var str = httpObj.responseText;
    var comm = new Array();
    var parm = new Array();
    var tmpm = new Array();
    var oncehwcall = new Array();

    parts = str.split(":");
    if (parts[0] != "<NO PROBLEM>") {
        $("messageWin").innerText = str;
    } else {
        for (var i = 0; i < MaxPartNum; i++) {
            CloseTxtPic(picIdName + i);
        }
        $("inputauthor").innerHTML = parts[1];
//        $("inputtitle").innerHTML = parts[2];
        partsNum = 0;
        for (var i = 3; i < parts.length; i++) {
            str = parts[i];
            idname = picIdName + partsNum;
            openOneWindow(idname);
            var paras = str.split(",");
            tmpm.length = 0;
            parm.length = 0;
            comm.length = 0;
            for (var j = 0; j < paras.length; j++) {
                tmpm = paras[j].split("=");
                parm[tmpm[0]] = tmpm[1];
                comm[j] = tmpm[0];
            }

            $("messageWin").innerHTML = str;
            if (parm["type"] == "pict") {
                //pict,#ffffff,97px,81px,200px,100px,kuroneko_home.jpg
                $(idname).style.backgroundColor = parm["backgroundcolor"];
                changePrio(idname, parseInt(parm["zindex"]));
                $(idname).style.top = parm["top"];
                $(idname).style.left = parm["left"];
                var txt = '<img id="' + idname + 'picturebx" src="diarydata/' + $("inputdate").innerHTML + '/' + parm["file"] + '" />';
                $(idname + 'InArticle').innerHTML = txt;
                $(idname).style.width = parm["width"];
                $(idname).style.height = parm["height"];
                SetPartsWH(idname);
            } else if (parm["type"] == "movie") {
                //movie,#ffffff,97px,81px,200px,100px,kuroneko_home.jpg
                $(idname).style.backgroundColor = parm["backgroundcolor"];
                changePrio(idname, parseInt(parm["zindex"]));
                $(idname).style.top = parm["top"];
                $(idname).style.left = parm["left"];
                var txt = '<div id="' + idname + 'swf" title="diarydata/' + $("inputdate").innerHTML + '/' + parm["file"] + '" ></div>';
                $(idname + 'InArticle').innerHTML = txt;
                $(idname).style.width = parm["width"];
                $(idname).style.height = parm["height"];
                SetPartsWH(idname);
                $(idname + 'swf').innerHTML = "";
            } else if (parm["type"] == "map") {
                //map
                $(idname).style.backgroundColor = parm["backgroundcolor"];
                changePrio(idname, parseInt(parm["zindex"]));
                $(idname).style.top = parm["top"];
                $(idname).style.left = parm["left"];
                $(idname).style.width = parm["width"];
                $(idname).style.height = parm["height"];
                yokoDegree[idname] = parseFloat(parm["cenX"]);
                tateDegree[idname] = parseFloat(parm["cenY"]);
                ZoomAtai[idname] = parseInt(parm["cenZ"]);
                var txt = '<div id="' + idname + 'map" style="width: 500px; height: 400px"></div>';
                $(idname + 'InArticle').innerHTML = txt;
                oncehwcall.push(idname);    //SetPartsWH(idname);
            } else if (parm["type"] == "text") {
                $(idname).style.backgroundColor = parm["backgroundcolor"];
                changePrio(idname, parseInt(parm["zindex"]));
                $(idname).style.top = parm["top"];
                $(idname).style.left = parm["left"];
                $(idname).style.width = parm["width"];
                $(idname).style.height = parm["height"];
                if (!$(idname + "msgbx")) {
                    txt = '<div id="' + idname + 'msgbx" class="mesinbx" >' + parm["text"] + '</div>';
                    $(idname + 'InArticle').innerHTML = txt;
                }

                if ("borderColor" in parm) {
                    var fcol = parm["borderColor"];
                    if (fcol.charAt(0) == '#') {
                        $(idname).style.borderColor = parm["borderColor"];
                    } else {
                        $(idname).style.borderColor = parm["borderColor"];
                    }
                } else {
                    $(idname).style.borderColor = '#808080';
                }

                if ("borderWidth" in parm) {
                    $(idname).style.borderWidth = parm["borderWidth"];
                    $(idname).style.padding = (defaultMargin - parseInt(parm["borderWidth"])) + "px";
                } else {
                    $(idname).style.borderWidth = 1;
                    $(idname).style.padding = (defaultMargin - 1) + "px";
                }



                if ("fontsize" in parm) {
                    $(idname + 'msgbx').style.fontSize = parm["fontsize"];
                } else {
                    $(idname + 'msgbx').style.fontSize = 15;
                }
                if ("fontWeight" in parm) {
                    $(idname + 'msgbx').style.fontWeight = parm["fontWeight"];
                } else {
                    $(idname + 'msgbx').style.fontWeight = "normal";
                }
                if ("fontStyle" in parm) {
                    $(idname + 'msgbx').style.fontStyle = parm["fontStyle"];
                } else {
                    $(idname + 'msgbx').style.fontStyle = "normal";
                }
                if ("fontFamily" in parm) {
                    $(idname + 'msgbx').setStyle('font-family:' + fontSet[parm["fontFamily"]] + ';');
                } else {
                    $(idname + 'msgbx').setStyle('font-family:' + fontSet[0] + ';');
                }
                $(idname + "msgbx").style.color = parm["color"];

                SetPartsWH(idname);
            }
            partsNum++;
        }
    }
    if ($("nowreading")) {
        $("nowreading").style.visibility = "hidden";
    }
    //最後にgoogleマップをロードするようにするとgoogleMapがちゃんと表示されるようだ。
    for (var i = 0; i < oncehwcall.length; i++) {
        SetPartsWH(oncehwcall[i]);
    }
    redrawSwf();
}
function getNTBdayNext() {
    if (nownext == "0/0/0") return;
    $("messageWin").innerHTML = nownext;
    getNTBday(nownext);
}
function getNTBdayBack() {
    if (nowback == "0/0/0") return;
    $("messageWin").innerHTML = nowback;
    getNTBday(nowback);
}
function putCalendar2() {
    putCalendar('load2', 500, 70, $("inputdate").innerHTML);
}
function PutTitleList(str) {
    var que = "Date=" + str;
    var paras = que + "&cache=" + (new Date()).getTime();
    new Ajax.Request("js/getTitles.cgi", {
        method: "get",
        parameters: paras,
        onSuccess: GetResponseTitleList,
        onFailure: function(httpObj) {
        $("diaryList").innerHTML = "エラーで読み込めませんでした<br>" + httpObj.status + ":" + str;
        }
    });
}
function GetResponseTitleList(httpObj) {
    $("diaryList").innerHTML = httpObj.responseText;
}
function loadAndPutAndList(sday) {
    $("inputdate").innerHTML = sday;
    getNTBday(sday);
}


