var card = {
    "_color":["frameWhite", "frameGreen", "frameRed", "frameOrange", "frameYellow", "frameBlue"],

    "init":function()
    {
        card.blog();
        card.mansion();
        card.slideshow();
        card.dogalog();
        card.pixta();
        card.tsublog();
        if($("frameControl"))
        {
            Sortable.create("components",
                {
                    tag:"div",
                    handle:"handle",
                    only:"component"
                }
            );
        }
    },

    "wink":function(ele)
    {
        if(!ele.parentNode) return;
        if(!ele.parentNode.parentNode) return;
        if(!ele.parentNode.parentNode.parentNode) return;

        var parent = ele.parentNode.parentNode.parentNode;
        if(!parent.childNodes || parent.childNodes.length == 0) return;

        for(var i = 0;i < parent.childNodes.length;i ++)
        {
            if(!parent.childNodes[i].className || parent.childNodes[i].className !== "frameContents") continue;
            if(!parent.childNodes[i].style || !parent.childNodes[i].style.display || parent.childNodes[i].style.display === "block")
            {
                parent.childNodes[i].style.display = "none";
                ele.getElementsByTagName("img")[0].src = "/img/mdlIconOpn.gif";
            }else
            {
                parent.childNodes[i].style.display = "block";
                ele.getElementsByTagName("img")[0].src = "/img/mdlIconDisp.gif";
            }
            break;
        }
    },

    "color":function(ele)
    {
        if(!ele.parentNode) return;
        if(!ele.parentNode.parentNode) return;
        if(!ele.parentNode.parentNode.parentNode) return;

        var parent = ele.parentNode.parentNode.parentNode;
        if(!parent.className) return;

        var i = 0;
        for(i = 0;i < card._color.length;i ++)
        {
            if(parent.className === card._color[i]) break;
        }

        if(i >= card._color.length) return;
        i ++;
        if(i == card._color.length ) i = 0;
        parent.className = card._color[i];
    },

    "blog":function()
    {
        if(!$("content_blog")) return;

        for(var i = 0;i < $("content_blog").childNodes.length;i ++)
        {
            if(!$("content_blog").childNodes[i].nodeName) continue;
            if(($("content_blog").childNodes[i].nodeName).toLowerCase() !== "div") continue;
            if($("content_blog").childNodes[i].className !== "myblog") continue;

            new Ajax.Request("/xml.php",
                {
                    "method":"get",
                    "onSuccess":card.afterblog,
                    "onFailure":card.afterblog,
                    "parameters":"u=" + encodeURIComponent($("content_blog").childNodes[i].getElementsByTagName("a")[0].innerHTML) + "&n=" + i
                }
            );
        }
    },

    "afterblog":function(req, json)
    {
        if(!$("content_blog")) return;
        if(json === undefined || json["num"] === undefined) return;

        var xml = null;
        try
        {
            xml = req.responseXML;
        }catch(e)
        {
            $("content_blog").childNodes[json["num"]].getElementsByTagName("a")[0].style.cssText = "color:#f00;";
            return;
        }

        var err = xml.documentElement.getElementsByTagName("error");
        if(err && err.length > 0)
        {
            $("content_blog").childNodes[json["num"]].getElementsByTagName("a")[0].style.cssText = "color:#f00;";
            return;
        }

        var block = xml.documentElement.getElementsByTagName("block");
        if(!block || block.length == 0) return;

        while($("content_blog").childNodes[json["num"]].childNodes.length > 0)
        {
            $("content_blog").childNodes[json["num"]].removeChild($("content_blog").childNodes[json["num"]].childNodes[0]);
        }

        var arr = new Array();
        for(var i = 0;i < block.length;i ++)
        {
            if(i == 2) break;
            arr[i] = new Array();
            for(var j = 0;j < block[i].childNodes.length;j ++)
            {
                if(block[i].childNodes[j].childNodes.length > 0)
                {
                    //For IE
                    arr[i][block[i].childNodes[j].nodeName] = block[i].childNodes[j].childNodes[0].nodeValue;
                }
            }
        }
        if(arr.length == 0) return;

        if(arr[0]["title"] && arr[0]["link"])
        {
            $("content_blog").childNodes[json["num"]].appendChild(shared.element("a", shared.text(arr[0]["title"]), {"className":"link", "href":"/direct.php?" + encodeURIComponent(arr[0]["link"])}));
        }
        if(arr.length == 1 || !arr[1]["title"] || !arr[1]["link"]) return;

        $("content_blog").childNodes[json["num"]].appendChild(shared.text("\u00A0"));
        $("content_blog").childNodes[json["num"]].appendChild(shared.text("-"));
        $("content_blog").childNodes[json["num"]].appendChild(shared.text("\u00A0"));
        $("content_blog").childNodes[json["num"]].appendChild(shared.element("a", shared.text(arr[1]["title"]), {"className":"link", "href":"/direct.php?" + encodeURIComponent(arr[1]["link"])}));

        if(arr[1]["date"])
        {
            $("content_blog").childNodes[json["num"]].appendChild(shared.text("\u00A0"));
            $("content_blog").childNodes[json["num"]].appendChild(shared.element("span", shared.text("[" + card.w3cdate(arr[1]["date"]) + "]"), {"className":"date"}));
        }

        if($("tsubuyaku"))
        {
            $("content_blog").childNodes[json["num"]].appendChild(shared.text("\u00A0"));
            $("content_blog").childNodes[json["num"]].appendChild(shared.element("a", shared.element("img", null, {"src":"/img/tsubuyaki.gif", "border":"0", "align":"absmiddle"}), {"href":"http://" + $("tsubuyaku").innerHTML + "/post?url=" + encodeURIComponent(arr[1]["link"])}));
        }
    },

    "w3cdate":function(dt)
    {
        var check;
        if(check = dt.match(/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})T([0-9]{2}):([0-9]{2})(:|)([0-9]{2}|)/))
        {
            return check[1] + "-" + check[2] + "-" + check[3] + " " + check[4] + ":" + check[5];
        }
        return "";
    },

    "aisyo":function(you, i)
    {
        if(!$("content_fortune1") || !$("content_fortune2") || !$("content_fortune3")) return;
        if($("content_fortune3").childNodes.length > 0)
        {
            $("content_fortune1").style.display = "none";
            $("content_fortune3").style.display = "block";
            return;
        }

        $("content_fortune1").style.display = "none";
        $("content_fortune2").style.display = "block";
        new Ajax.Updater("content_fortune3", "/aj/aj-card-mgidx.php",
            {
                method:"post",
                onComplete:card.afteraisyo,
                parameters:"ex_id=" + i + "&t_ex_id=" + you,
                evalScripts:false,
                asynchronous:true
            }
        );
    },

    "afteraisyo":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<table") != 0)
        {
            while($("content_fortune3").childNodes.length > 0)
            {
                $("content_fortune3").removeChild($("content_fortune3").childNodes[0]);
            }
            $("content_fortune3").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
        }

        $("content_fortune2").style.display = "none";
        $("content_fortune3").style.display = "block";
        $("content_fortune3").appendChild(shared.element("div", shared.element("a", shared.text("> 戻る"), {"href":"javascript:void(0);", "onclick":"javascript:card.returnaisyo();"}), {"className":"mgidx_link"}));
    },

    "returnaisyo":function(req)
    {
        $("content_fortune1").style.display = "block";
        $("content_fortune3").style.display = "none";
    },

    "clipwink":function(ele, num)
    {
        if(!$("area_clip_folder" + num)) return;

        while(ele.childNodes.length > 0)
        {
            ele.removeChild(ele.childNodes[0]);
        }

        if(!$("area_clip_folder" + num).style || !$("area_clip_folder" + num).style.display || $("area_clip_folder" + num).style.display === "block")
        {
            ele.appendChild(shared.text("＋"));
            $("area_clip_folder" + num).style.display = "none";
        }else
        {
            ele.appendChild(shared.text("－"));
            $("area_clip_folder" + num).style.display = "block";
        }
    },

    "mansion":function()
    {
        if(!$("content_mansion2") || !$("mansionid") || !$("mymansionid")) return;
        new Ajax.Request("/aj/mansionview.php",
            {
                "method":"get",
                "onSuccess":card.aftermansion,
                "onFailure":card.aftermansion,
                "parameters":"u=" + $("mansionid").innerHTML + "&m=" + $("mymansionid").innerHTML
            }
        );
    },

    "aftermansion":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<table") != 0)
        {
            $("content_mansion2").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
            return;
        }
        $("content_mansion2").innerHTML = req.responseText;
    },

    "slideshow":function()
    {
        if(!$("content_slideshow2") || !$("slideshowid")) return;
        new Ajax.Request("/aj/slideshowview.php",
            {
                "method":"get",
                "onSuccess":card.afterslideshow,
                "onFailure":card.afterslideshow,
                "parameters":"u=" + $("slideshowid").innerHTML
            }
        );
    },

    "afterslideshow":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<div") != 0)
        {
            $("content_slideshow2").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
            return;
        }
        $("content_slideshow2").innerHTML = req.responseText;
				card.forceslide();
    },

    "dogalog":function()
    {
        if(!$("content_dogalog2") || !$("dogalogid") || !$("typedogalog")) return;
        new Ajax.Request("/aj/dogalogview.php",
            {
                "method":"get",
                "onSuccess":card.afterdogalog,
                "onFailure":card.afterdogalog,
                "parameters":"u=" + $("dogalogid").innerHTML + "&t=" + $("typedogalog").innerHTML
            }
        );
    },

    "afterdogalog":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<div") != 0)
        {
            $("content_dogalog2").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
            return;
        }
        $("content_dogalog2").innerHTML = req.responseText;
    },

    "pixta":function()
    {
        if(!$("content_pixta2") || !$("pixtaid")) return;
        new Ajax.Request("/aj/aj-card-pixta.php",
            {
                "method":"get",
                "onSuccess":card.afterpixta,
                "onFailure":card.afterpixta,
                "parameters":"pxid=" + $("pixtaid").innerHTML
            }
        );
    },

    "afterpixta":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<div") != 0)
        {
            $("content_pixta2").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
            return;
        }
        $("content_pixta2").innerHTML = req.responseText;
    },

    "tsublog":function()
    {
        if(!$("content_tsublog2") || !$("tsublogid")) return;
        new Ajax.Request("/aj/aj-card-tsublog.php",
            {
                "method":"get",
                "onSuccess":card.aftertsublog,
                "onFailure":card.aftertsublog,
                "parameters":"eid=" + $("tsublogid").innerHTML
            }
        );
    },

    "aftertsublog":function(req)
    {
        if(!req.responseText || req.responseText.toLowerCase().indexOf("<div") != 0)
        {
            $("content_tsublog2").appendChild(shared.element("span", shared.text("データが取得できませんした。"), {"cssText":"font-weight:bold;color:#f00;"}));
            return;
        }
        $("content_tsublog2").innerHTML = req.responseText;
    },

    "hanei":function()
    {
        $("hanei").disabled = true;
        var arr = new Array();
        for(var i = 0;i < $("components").childNodes.length;i ++)
        {
            if(!$("components").childNodes[i].id) continue;
            if($("components").childNodes[i].id.indexOf("component_") != 0) continue;

            var j = arr.length;
            arr[j] = new Object();
            var key = $("components").childNodes[i].id.substr("component_".length);

            arr[i]["parts_no"] = $("components").childNodes[i].getElementsByTagName("div")[0].innerHTML;
            arr[i]["style"] = ($("components").childNodes[i].getElementsByTagName("div").length > 1) ? $("components").childNodes[i].getElementsByTagName("div")[1].className : "";
            arr[i]["hidden"] = ($("content_" + key) && $("content_" + key).parentNode.style.display === "none") ? 1 : 0;
        }

        var params = "";
        for(var i = 0;i < arr.length;i ++)
        {
            if(params.length > 0) params += "&";
            params += "parts_no[]=" + arr[i]["parts_no"];
            params += "&hidden[]=" + arr[i]["hidden"];
            params += "&sort_no[]=" + i;
            params += "&opt[]=" + arr[i]["style"];
        }

        new Ajax.Request("/aj/aj-card-sort.php",
            {
                "method":"post",
                "onSuccess":card.afterhanei,
                "onFailure":card.afterhanei,
                "postBody":params
            }
        );
    },

    "afterhanei":function(req)
    {
        $("hanei").disabled = false;
    }

	,"forceslide":function()
	{
    if(!$("content_slideshow2") || !$("slideshowid")) return;
		if((self.location.href).search(/[\?&]{1}move=1/) == -1) return;
		slideShowDisplay("/slide/player.php?exid=" + $("slideshowid").innerHTML);
	}
}

window.onload = card.init;

