//初始化
var modulesPath = "/cms/modules/"
var cmsData = "/cmsData/myapp.cmsdata.dao/"
var enable_Manage = false

$(function() {
    // moduleManage()
})

//设置拖动效果
function moduleManageStop() {
    enable_Manage = false
    $(".zone").removeClass("zone-on");
    $(".zone").sortable({
                connectWith: ".zone",
                items:".module1"
            })
    $(".zone").sortable("disable");
}
//设置拖动效果
function moduleManage() {
    enable_Manage = true
    $(".zone").addClass("zone-on");
    $(".zone").sortable("enable");
    $(".zone").sortable({
        connectWith: ".zone",
        items:".module",
        opacity: 0.4
    })
    // $(".zone").disableSelection()
}
//当不存在时添加 该操作区域
function addZoneOperateDiv() {
    if ($("#zoneOperateDiv").length == 0) {
        $("<div id='zoneOperateDiv' style='position:absolute;z-index:99;display:none;'><a id='addModule' style='cursor:pointer'><img src='/cms/modules/images/add.png'  title='添加模块' style='border:0;width:16px;height:16px;'></a><a id='saveTemplate' href='#'><img src='/cms/modules/images/save.png'  title='保存模板'  style='border:0;width:16px;height:16px;margin-left:5px'></a></div>").appendTo($("body"))
    }
}
//当不存在时添加 该操作区域
function addModuleOperateDiv() {
    if ($("#moduleOperateDiv").length == 0) {
        $("<div id='moduleOperateDiv' style='position:absolute;z-index:99;display:none;'><a id='editModule' style='cursor:pointer'><img src='/cms/modules/images/edit.png'  title='编辑模块参数' style='border:0;width:16px;height:16px;'></a><a id='deleteModule'  style='cursor:pointer'><img src='/cms/modules/images/delete.png'  title='删除模块'  style='border:0;width:16px;height:16px;margin-left:5px'></a></div>").appendTo($("body"))
    }
}


//在鼠标经过进入区域时,出现添加模块的按钮
$(".zone").live("mouseenter", function() {
    if (enable_Manage) {
        addZoneOperateDiv()
        $(this).append($("#zoneOperateDiv"))  //为了防止鼠标移动上去闪烁(不加进来,表示已经不再zone中了)
        var offset = $(this).offset()
        var left = offset.left
        var top = offset.top
        $("#zoneOperateDiv").css({"display":"block","left":left + 5,"top":top + 5})
    }
})

//在鼠标离开区域时,取消添加模块的按钮
$(".zone").live("mouseleave", function() {
    if (enable_Manage) {
        addZoneOperateDiv()
        $("body").append($("#zoneOperateDiv"))
        $("#zoneOperateDiv").css({"display":"none"})
    }
})


//在鼠标经过进入模块时,出现编辑及修改按钮
$(".module").live("mouseenter", function() {
    if (enable_Manage) {
        addModuleOperateDiv()
        $(this).append($("#moduleOperateDiv"))  //为了防止鼠标移动上去闪烁(不加进来,表示已经不再zone中了)
        var offset = $(this).offset()
        var width = $(this).width()
        var left = offset.left
        var top = offset.top
        $("#moduleOperateDiv").css({"display":"block","left":left + width - 42,"top":top + 5})
    }
})
//在鼠标离开模块时,取消按钮
$(".module").live("mouseleave", function() {
    if (enable_Manage) {
        moduleOperateDiv_Hide()
    }
})

function moduleOperateDiv_Hide() {
    addModuleOperateDiv()
    $("body").append($("#moduleOperateDiv"))
    $("#moduleOperateDiv").css({"display":"none"})
}

//添加模块
$("#addModule").live("click", function() {
    var zoneDiv = $(this).parents("div.zone")
    var moduleName1 = showInnerDialog("添加模块",modulesPath + "addModule.html", "", 900, 500, function(moduleName) {
        if (moduleName != null && moduleName.length > 0) {
            var module = {name:moduleName}
            var moduleDivHtml = "<div  class='module' module=" + JSON.stringify(module) + " ></div>"
            //  var s = "<div   class='module' module='{name:\"test\"}' >aaaaaa</div>"
            var moduleDiv = $(moduleDivHtml).prependTo(zoneDiv)
            setTimeout(function(){loadModule(moduleDiv, true)},600);

        }
    })

})

//编辑模块

function getModuleName1(o) {
    //var url = "/cms/modules/modules.json"
	var url = "modules.json"
    var name;
    var ddd=syncGet("modules/"+url);
    //var ddd=JSON.parse(syncGet("modules/"+url));
        $.each(ddd, function() {
            var modules = this.modules
            $.each(modules, function() {
                if (this.key == o) {
                    name= this.name;
                    return;
                }
            })
    });
    return name;
}
$("#editModule").live("click", function() {
    var moduleDiv = $(this).parents("div[module]");
    if(moduleDiv.length==0)moduleDiv=$("#"+$(this).parents("div.module").attr("target"))
    moduleOperateDiv_Hide()   //不隐藏的话,就被删除了
    var module = eval("(" + $(moduleDiv).attr("module") + ")")
    var newModule1 = showInnerDialog("编辑——"+getModuleName1(module.name),"/cms/modules/editParams.html?module=" + encodeURI(JSON.stringify(module)), "", 700, 500, function(newModule) {//修改params参数
        if (newModule != null && JSON.stringify(newModule) != JSON.stringify(module)) {  // !=null 表示直接关闭了窗口
            $(moduleDiv).attr("module", JSON.stringify(newModule))
            $(moduleDiv).html("");
            $(moduleDiv).attr('class', 'module')
            setTimeout(function(){loadModule(moduleDiv, true)},600);
        }
    })
    return false;

})

//删除模块
$("#deleteModule").live("click", function() {
    var moduleDiv = $(this).parents("div[module]")
    if(moduleDiv.length==0){
        moduleDiv=$("#"+$(this).parents("div.module").attr("target"))
        $(this).parents("div.module").remove();
    }
    moduleOperateDiv_Hide()   //不隐藏的话,就被删除了
    $(moduleDiv).remove()
})


//保存
$("#saveTemplate").live("click", function() {
    moduleManageStop();
    var template = $('#container').clone(true) //克隆一个,而不是修改原有的
    $("div[module]", template).html("") //删除所有模块中生成的东西

    $(".zone", template).removeClass("ui-sortable") //删除增加的样式(拖动用的)
    $("#zoneOperateDiv,#moduleOperateDiv,#myAjaxStateDiv,#loadTime", template).remove()//删除这几个增加的东西
    var h = template.html()

    var templateData = h
    if (!$.browser.msie) {
        var m = h.replace(/\"/g, "'")
        templateData = m.replace(/&quot;/g, "\"")
    }
    //如果不是本站点的模板,则需要复制一份到本站点,然后修改节点中对应的模板的值,然后再保存模板
    if (jsp_template.indexOf(jsp_createUser) == -1) {
        var url = webFileManagePath + "myIo/copyPath.jsp"
        var srcPath = jsp_template
        var n = new Date().getTime()
        var destPath = jsp_createUser + "/templates/" + "template_" + n + "/"
        var sendData = "srcPath=" + "/cmsFile/" + srcPath + "&destPath=" + "/cmsFile/" + destPath
        //复制模板
        $.post(url, sendData, function(rtnData) {
            var url = cmsData + "Dao_T_Node/updateColumnById.fn"
            var sendData = "columnName=" + jsp_templateType + "&columnValue=" + destPath + "&id=" + jsp_nodeId
            //设置node中的模板设置
            $.post(url, sendData, function(rtnData) {
                saveTemplate("/cmsFile/" + destPath + "view.html", templateData)
            })
        })
    } else {
        saveTemplate("/cmsFile/" + jsp_template + "view.html", templateData)
    }
})


//保存模板
function saveTemplate(templatePath, templateData) {
    $("#zoneOperateDiv").hide();
    var url = webFileManagePath + "myIo/writeStringToFile.jsp"
    var sendData = "filePath=" + templatePath + "&data=" + encodeURIComponent(templateData)
    $.post(url, sendData, function(rtnData) {
        if (rtnData == "true") {
            alert("保存成功!")
        } else {
            alert("保存失败!错误信息:" + rtnData)
        }
//        moduleManage();
    })
}

