Namespace.register("U.MD.O.E.Receiver");

/*
*   接收函数 失焦
*   message 接收的值
*/
U.MD.O.E.Receiver.Blur = function (message) {       //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //判斷互联过来的工作表在不在同一个工作表上
        U.MD.O.E.dataChange.blur(_content, message.worksheetId); //如果不在,调用函数直接修改数据源的数据
    } else {
        _content.forEach(function (data) {          //如果在,则遍历工作表的元素
            var _cell = $("#POS_" + data.col + "_" + data.row)[0];//根据接受到的值声明变量
            data.attr ? _cell.style[data.attr] = data.value : ''; //判断参数,若存在定义,若不存在为空
            (data.content !== undefined) ? _cell.innerHTML = data.content : '';//是否为空,不为空定义为html文本,为空则为空
            data.clearStyle ? U.MD.O.E.TL.cellClearStyle(_cell) : ''; //判断参数,若存在定义,若不存在为空
        });
        U.MD.O.E.dataChange(message, true);//以接受值调用函数 返回正确
    }
}

/*
*   接收函数 边框
*   message 接收的值
*/
U.MD.O.E.Receiver.setBorder = function (message) {
    console.log(message);                           //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //判斷互联过来的工作表在不在同一个工作表上
        U.MD.O.E.dataChange.setBorder(_content, message.worksheetId); //如果不在,调用函数直接修改数据源的数据
    } else {
        _content.forEach(function (data) {                            //如果在,则遍历工作表的元素
            var _cell = $("#POS_" + data.col + "_" + data.row)[0];    //根据接受到的值声明变量
            //data.attr ? _cell.style[data.attr] = data.value : '';  
            data.br ? _cell.style[data.br] = data.value : '';         //判断参数,若存在定义,若不存在为空
            data.bb ? _cell.style[data.bb] = data.value : '';
            (data.content !== undefined) ? _cell.innerHTML = data.content : ''; //是否为空,不为空定义为html文本,为空则为空
            data.clearStyle ? U.MD.O.E.TL.cellClearStyle(_cell) : ''; //判断参数,若存在定义,若不存在为空
        });
        U.MD.O.E.dataChange(message, true); //以接受值调用函数,返回正确(此接受的是边框的值)
    }
}

/*
*   接收函数 添加行
*   message 接收的值
*/
U.MD.O.E.Receiver.addLine = function (message) {    //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.addLine(_content, message.worksheetId);
    } else {
        var _cellLast = $("#POS_1_" + _content.start)[0];       //以接收到的值声明变量
        U.MD.O.E.RC.addLine(_cellLast, _content.lineNum,true);  //调用函数添加行,返回正确
    }
}

/*
*   接收函数 添加行
*   message 接收的值
*/
U.MD.O.E.Receiver.addLine = function (message) {    //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.addLine(_content, message.worksheetId);
    } else {
        var _cellLast = $("#POS_1_" + _content.start)[0];       //以接收到的值声明变量
        U.MD.O.E.RC.addLine(_cellLast, _content.lineNum, true); //调用函数,返回正确(这边添加行)
    }
}

/*
*   接收函数 添加列
*   message 接收的值
*/
U.MD.O.E.Receiver.addCol = function (message) {     //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.addCol(_content, message.worksheetId);
    } else {
        var _cellLast = $("#POS_" + _content.start + "_1")[0]; //以接收到的值声明变量
        U.MD.O.E.RC.addCol(_cellLast, _content.colNums, true); //调用函数,返回正确(这边添加列)
    }
}

/*
*   接收函数 删除行
*   message 接收的值
*/
U.MD.O.E.Receiver.delLine = function (message) {    //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.delLine(_content, message.worksheetId);
    } else {
        var _startCell = $("#POS_1_" + _content.start)[0],
            _endCell = $("#POS_1_" + _content.end)[0]; //以接收到的值声明变量
        U.MD.O.E.RC.removeLine(_startCell, _endCell, true); //调用函数,返回正确(这边删除行)
    }
}

/*
*   接收函数 删除列
*   message 接收的值
*/
U.MD.O.E.Receiver.delCol = function (message) {      //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.delCol(_content, message.worksheetId);
    } else {
        var _startCell = $("#POS_" + _content.start + "_1")[0],
            _endCell = $("#POS_" + _content.end + "_1")[0]; //以接收到的值声明变量
        U.MD.O.E.RC.removeCol(_startCell, _endCell, true); //调用函数,返回正确(这边删除列)
    }

}

/*
*   接收函数 合并单元格
*   message 接收的值
*/
U.MD.O.E.Receiver.merge = function (message) {      //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.merge(_content, message.worksheetId);
    } else {
        var _startCell = $("#POS_" + _content.col + "_" + _content.row)[0],
            _endCell = $("#POS_" + _content.endCol + "_" + _content.endRow)[0]; //以接收到的值声明变量
        U.MD.O.E.RC.mergeCells(_startCell, _endCell, false, true); //调用函数,传进参数(这边合并单元格)
    }
}

/*
*   接收函数 拆分单元格
*   message 接收的值
*/
U.MD.O.E.Receiver.splitCells = function (message) { //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.splitCells(_content, message.worksheetId);
    } else {
        var _cell = $("#POS_" + _content.col + "_" + _content.row)[0]; //以接收到的值声明变量
        U.MD.O.E.RC.splitCells(_cell, false, true); //调用函数,传进参数(这边拆分单元格)
    }
}

/*
*   接收函数 行板拉伸
*   message 接收的值
*/
U.MD.O.E.Receiver.rowExpanding = function (message) {//传入参数
    var _content = message.content;                  //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.rowExpanding(_content, message.worksheetId);
    } else {
        var _rowBoard = $(".U_MD_O_E_rowBoard")[0], //声明变量,行板 A-Z 的父元素
            _dataArr = [];                          //声明一个数组
        _content.forEach(function (data) {          //for循环遍历接收到的内容
            var _rowName = data.rowName,            //声明变量为接收的参数
                _row = $(".U_MD_O_E_row")[_rowName - 1], //以接收到的值声明变量
                _moveDis = data.moveDis;            //声明变量为接收的参数
            _info = {
                initHeight: _row.offsetHeight,      
                rowName: _rowName,
                moveDis: _moveDis                   //指定数组的参数
            }
            _dataArr.push(_info);                   //数组调用函数
            _row.style.height = data.height + "px";//指定元素的属性高
            _rowBoard.style.height = _rowBoard.offsetHeight + _moveDis + "px"; //指定元素的属性高
        });
        U.MD.O.E.BC.rowExpandingEnd(_dataArr, true); //传进接受到的值,为行板拉伸的函数
    }
}

/*
*   接收函数 列板拉伸
*   message 接收的值
*/
U.MD.O.E.Receiver.colExpanding = function (message) {//传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.colExpanding(_content, message.worksheetId);
    } else {
        var _colBoard = $(".U_MD_O_E_colBoard")[0],              //声明变量,列板 A-Z 的父元素
            _dataArr = [];                                       //声明一个数组
        _content.forEach(function (data) {                       //for循环遍历接收到的内容
            var _colName = data.colName,                         //声明变量为接收的参数
                _col = $(".U_MD_O_E_column")[_colName - 1],      //以接收到的值声明变量
                _moveDis = data.moveDis;                         //声明变量为接收的参数
            _info = {
                initWidth: _col.offsetWidth,
                colName: _colName,
                moveDis: _moveDis                                //指定数组的参数
            }
            _dataArr.push(_info);                                //数组调用函数
            _col.style.width = data.width + "px";                //指定元素的属性宽
            _colBoard.style.width = _colBoard.offsetWidth + _moveDis + "px";
        });

        U.MD.O.E.BC.colExpandingEnd(_dataArr, true);             //传进接受到的值,为列板拉伸的函数
    }
};

U.MD.O.E.Receiver.addTask = function (message) {//传入参数
    var _content = message.content,             //声明变量并且匹配接受的值的内容
        _data = _content.data;
    U.MD.O.E.data[_content.id] = _data;
    U.MD.O.E.taskNum++;
    /*------------------以下是创建工作栏--------------------------*/
    var _taskBar = $(".U_MD_O_E_taskBar")[0],   //工作栏元素
        _taskEl = $(".U_MD_O_E_task")[0];   //需要克隆的工作表元素
    _newTask = _taskEl.cloneNode();
    _newTask.style.display = "block";
    _newTask.id = _content.id;
    _newTask.innerText = _data.taskName;
    _taskBar.appendChild(_newTask);
    U.MD.O.E.addTaskClick(_newTask);    //工作表添加点击事件
    U.MD.O.E.rightClick(_newTask, "taskBar"); //工作表添加右键事件

}

/*删除工作栏*/

U.MD.O.E.Receiver.deleteTask = function (message) {//传入参数
    var _content = message.content,                //声明变量并且匹配接受的值的内容
        _id = _content.id;
    U.MD.O.E.RC.taskDelete($("#" + _id)[0], true);//调用函数,传入接收到的值(删除工具栏)
}


/*
* 任务表重命名
*/
U.MD.O.E.Receiver.reNameTask = function (message) {//传入参数
    var _content = message.content,                //声明变量并且匹配接受的值的内容
        _taskId = _content.id;
    U.MD.O.E.data[_taskId].taskName = _content.name;
    $("#" + _taskId)[0].innerHTML = _content.name; //以接受到的值重新命名任务表
}

/*
*   接收函数 插入图片
*   message 接收的值
*/
U.MD.O.E.Receiver.img = function (message) {        //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.img(_content, message.worksheetId);
    } else {
        U.MD.O.E.createImg(_content.src,_content);   //根据_content创建相对应的图片
        U.MD.O.E.dataChange(message, true);
    }
}

/*
*   接收函数 拖拽图片
*   message 接收的值
*/
U.MD.O.E.Receiver.imgChange = function (message) {  //传入参数
    var _content = message.content;                 //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.img(_content, message.worksheetId);
    } else {
        U.MD.O.E.changeImg(_content);   //根据_content创建相对应的图片
        U.MD.O.E.dataChange(message, true);
    }
}
/*
*   接收函数 插入链接
*   message 接收的值
*/
U.MD.O.E.Receiver.excelAddHref = function (message) { //传入参数
    var _content = message.content;                   //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {    //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.img(_content, message.worksheetId);
    } else {
        var _cell = $("#POS_" + _content.col + "_" + _content.row)[0];//根据传入的值声明变量
        _content.attr ? _cell.style[_content.attr] = _content.value : ''; //判断参数,若存在定义,若不存在为空
        (_content.content !== undefined) ? _cell.innerHTML = _content.content : ''; //是否为空,不为空定义为html文本,为空则为空
        _content.clearStyle ? U.MD.O.E.TL.cellClearStyle(_cell) : '';
        U.MD.O.E.dataChange(message, true);
    }
}
/*
*   接收函数 删除链接
*   message 接收的值
*/
U.MD.O.E.Receiver.clearAContent = function (message) {//传入参数
    var _content = message.content;                     //声明变量并且匹配接受的值的内容
    if (message.worksheetId !== U.MD.O.E.taskId) {  //如果互联过来的工作表 和你现在所在的不在同一个工作表上 则直接修改数据源的数据
        U.MD.O.E.dataChange.img(_content, message.worksheetId);
    } else {
        var _cell = $("#POS_" + _content.col + "_" + _content.row)[0]; //根据传入的值声明变量
        _content.attr ? _cell.style[_content.attr] = _content.value : ''; //判断参数,若存在定义,若不存在为空
        (_content.content !== undefined) ? _cell.innerHTML = _content.content : ''; //是否为空,不为空定义为html文本,为空则为空
        _content.clearStyle ? U.MD.O.E.TL.cellClearStyle(_cell) : '';
        U.MD.O.E.dataChange(message, true);
    }
}
/*
*   修改标题
*   message 接收的值
*/
U.MD.O.E.Receiver.titleUpdate = function (message) {//传入参数
    top.$('#UD_Excel' + U.MD.O.E.fileinfo.UserDirectoryID + ' .U_MD_O_H_head_navigation_Title')[0].value = message.content[0];
    U.MD.O.E.data[U.MD.O.E.taskId].title = message.content[0];
}