/*
 jquery form提交数据
 url:提交的action
 successUrl:操作成功后的action
 successMessage:操作成功后的提示消息
 */
function ajaxFormSubmit(url, successUrl, successMessage){
    if (successMessage == undefined) {
        successMessage = "操作成功!";
    }
    
    var options = {
        url: url,
        type: 'post',
        dataType: 'json',
        success: function(data){
            if (data.success) {
                jSuccess(successMessage, null, function(r){
                    top.main.location = successUrl;
                });
            }
            else {
                jError(data.errorMsg);
            }
        }
    };
    
    $("form").ajaxSubmit(options);
}

/*
 jquery url提交数据
 url:提交的action
 successMessage:操作成功后的提示消息
 */
function ajaxUrlSubmit(url, successMessage, reflashUrl){
    if (successMessage == undefined) {
        successMessage = "操作成功!";
    }
    $.ajax({
        type: "POST",
        url: url,
        dataType: "json",
        success: function(data){
            if (data.success) {
                jSuccess(successMessage, null, function(r){
                	if(typeof(reflashUrl) == "undefined"){
                    	top.main.location.reload();
                    }else{
                    	reflashUrl(data);
                    }
                });
            }
            else {
                jError(data.errorMsg);
            }
        },
        error: function(data){
                jError(data.errorMsg);
        }
    });
}

/*
 选择一个checkbox返回id
 */
function selectOne(checkName){
    var checkIds = document.getElementsByName(checkName);
    var cNum = 0;
    var tempId = false;
    for (var i = 0; i < checkIds.length; i++) {
        if (checkIds[i].checked == true) {
            cNum++;
            tempId = checkIds[i].value;
        }
    }
    if (cNum == 0) {
        jAlert("未选择任何一项");
        return false;
    }
    if (cNum > 1) {
        jAlert("只能选择一项");
        return false;
    }
    return tempId;
}

/*
 选择多个checkbox返回id,id,id
 */
function selectSome(checkName){
    var checkIds = document.getElementsByName(checkName);
    var cNum = 0;
    var tempId = "";
    for (var i = 0; i < checkIds.length; i++) {
        if (checkIds[i].checked == true) {
            cNum++;
            tempId += checkIds[i].value + ",";
        }
    }
    if (cNum == 0) {
        jAlert("未选择任何一项");
        return false;
    }
    return tempId.substring(0, tempId.length - 1);
}

/*
 选择所有的checkbox
 */
function selectAll(allObj, checkName){
    var checkIds = document.getElementsByName(checkName);
    for (var i = 0; i < checkIds.length; i++) {
        if (allObj.checked == true) {
            if (!checkIds[i].disabled) 
                checkIds[i].checked = true;
        }
        else {
            checkIds[i].checked = false;
        }
    }
}

/*
 选择一个checkbox返回id
 */
function selectOneByIfm(checkName, iframeId){
    var checkIds = iframeId.document.getElementsByName(checkName);
    var cNum = 0;
    var tempId = false;
    for (var i = 0; i < checkIds.length; i++) {
        if (checkIds[i].checked == true) {
            cNum++;
            tempId = checkIds[i].value;
        }
    }
    if (cNum == 0) {
        jAlert("未选择任何一项");
        return false;
    }
    if (cNum > 1) {
        jAlert("只能选择一项");
        return false;
    }
    return tempId;
}

/*
 选择多个checkbox返回id,id,id
 */
function selectSomeByIfm(checkName, iframeId){
    var checkIds = iframeId.document.getElementsByName(checkName);
    var cNum = 0;
    var tempId = "";
    for (var i = 0; i < checkIds.length; i++) {
        if (checkIds[i].checked == true) {
            cNum++;
            tempId += checkIds[i].value + ",";
        }
    }
    if (cNum == 0) {
        jAlert("未选择任何一项");
        return false;
    }
    return tempId.substring(0, tempId.length - 1);
}

/*
 选择所有的checkbox
 */
function selectAllByIfm(allObj, checkName, iframeId){
    var checkIds = iframeId.document.getElementsByName(checkName);
    for (var i = 0; i < checkIds.length; i++) {
        if (allObj.checked == true) {
            checkIds[i].checked = true;
        }
        else {
            checkIds[i].checked = false;
        }
    }
}

/*
 判断是否是数字
 */
function IsDigit(){
    return ((event.keyCode >= 48) && (event.keyCode <= 57));
}

/*
 【jwin窗口】
 */
function jwin(url, width, height, title, posx, posy){
    if (width == undefined) {
        width = 600;
    }
    if (height == undefined) {
        height = 350;
    }
    if (posx == undefined) {
        posx = 100;
    }
    if (posy == undefined) {
        posy = 50;
    }
    if (title == undefined) {
        title = "同安区委区政府信息报送平台";
    }
    $().newWindow({
        content: "<iframe width='" + width + "px' height='" + height + "px' src='" + url + "' frameborder='0'>",
        windowType: "iframe",
        width: width,
        height: height,
        windowTitle: title,
        posx: posx,
        posy: posy
    });
}

/*
 【关闭jwin窗口】
 */
function closeJwin(){
    var node = parent.document.getElementById("jwin-id");
    parent.document.body.removeChild(node);
}

/* 左侧菜单栏隐藏 */
function toggleNav(){
    var td = $("#td_nav");
    var div = $("#nav_advanced");
    var arrow = $("#arrow_toggle");
    
    if (td.attr("nav_status") == "advanced") {
        td.attr("nav_status", "simple");
        div.css("display", "none");
        td.attr("className", "menu_left_hide");
        arrow.attr("className", "separate_arrow separate_arrow_right");
    }
    else {
        td.attr("nav_status", "advanced");
        div.css("display", "");
        td.attr("className", "menu_left");
        arrow.attr("className", "separate_arrow separate_arrow_left");
    }
}

/**
 删除老师
 **/
function delTeacher(params){
    var columns = params.split(",");
    for (var i = 0; i < columns.length; i++) {
        var map = columns[i].split(":");
        map[0] = $.trim(map[0]);
        if (map[0] != "id" && map[0] != "name" && map[0] != "tdId") {
            jAlert("参数类型必须为【id:id值,name:name值】或者【tdId:tdId值】");
            return;
        }
        if (map[0] == "tdId") {
            var names = $.trim($("#" + map[1]).text());
            if (names != "") {
                var lastIndex = names.lastIndexOf(",");
                names = names.substring(0, lastIndex);
                $("#" + map[1]).text(names);
            }
            var ids = $.trim($("#" + map[1]).val());
            if (ids != "") {
                var lastIndex = ids.lastIndexOf(",");
                ids = ids.substring(0, lastIndex);
                $("#" + map[1]).val(ids);
            }
        }
        else {
            var $teacherInfs = $.trim($("#" + map[1]).val());
            if ($teacherInfs != "") {
                var lastIndex = $teacherInfs.lastIndexOf(",");
                $teacherInfs = $teacherInfs.substring(0, lastIndex);
                $("#" + map[1]).val($teacherInfs);
            }
        }
    }
}

/*
 【对话框】区域代码选择
 */
function areaSelDialog(columns){
    var url = "/xmdx/system/common/areaSel.as?columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px;location=no");
}

/*
 【对话框】教室空闲选择
 */
function classroomSelDialog(usedate, day, tdId){
    if (tdId == undefined || tdId == null || $.trim(tdId) == "") {
        jError("【tdId】不能为空");
        return;
    }
    var url = "/xmdx/common/jdbcObject.as?_in=classroom@010&usedate='" + usedate + "'&day=" + day + "&tdId=" + tdId + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px;location=no");
}

/**
 * 【教师】选择对话框
 * @param {Object} columns
 */
function teacherSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=teacher@009&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}
/**
 * 课题--【教师】选择对话框
 * @param {Object} columns
 */
function ktTeacherSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=teacher@014&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】主题单元选择
 */
function unitSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=unit@008&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】未结业班级选择
 */
function classSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=classes@013&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】所有班级选择
 */
function classSelAllDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=classes@010&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}
/*
 【对话框】未开课班级选择
 */
function classSelWKKDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=classes@011&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}
/*
 【对话框】已结业班级选择
 */
function classSelYJYDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=classes@012&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】专题选择
 */
function subjectSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=subject@007&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】专题课程选择
 */
function subjectCourseSelDialog(columns){
	var subjectId = $("#subjectId").val();
    if(subjectId == undefined || $.trim(subjectId) == ""){
		jError("【subjectId】不能为空");
		return;
	}
    var url = "/xmdx/common/jdbcPage.as?_in=subjectcourse@007&columns=" + columns + "&courseType=2"+"&subjectId="+subjectId + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】主课程选择
 */
function courseSelDialog(columns){
	var unitId = $("#unitId").val();
	if(unitId == undefined|| $.trim(unitId) == ""){
		jError("【unitId】不能为空");
		return;
	}
    var url = "/xmdx/common/jdbcPage.as?_in=course@009&columns=" + columns+"&unitId="+unitId + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】角色的选择
 */
function roleSelDialog(columns){
    var url = "/xmdx/common/hbnPage.as?_in=role@009&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}
/*
 【对话框】专题课程选择
 */
function chooseCourseSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=choosecourse@007&columns=" + columns + "&courseType=3" + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】单位选择
 */
function companySelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=company@009&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=650px;dialogHeight=400px");
}

/*
 【对话框】 教员办公室选择
 */
function officeSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=classroom@009&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】 教员休息室选择
 */
function restRoomSelDialog(columns){
    var url = "/xmdx/common/jdbcPage.as?_in=bedroom@009&columns=" + columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】组织机构树形选择
 */
function orgSelDialog(columns){
	var url = "/xmdx/common/pre.as?_in=org@013&columns=" + columns + "&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}



/*
 【对话框】班级课程选择
 */
function classcourseSelDialog(columns){
	var classId = $("#classId").val();
	if(classId == undefined|| $.trim(classId) == ""){
		jError("请选择【班级】");
		return;
	}
    var url = "/xmdx/common/jdbcPage.as?_in=comment@0029&classid=" + classId+"&columns="+columns + "&random=" + Math.random();
    window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】科研-课题别列树
  例如：showSubProTree('ownerId:subProObject,ownerCode:spCode,ownerName:spName');
 */
function showSubProTree(columns){
	var url = "/xmdx/ky/kt/preShowKTTree.as?columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=350px;dialogHeight=430px");
}

/*
 【对话框】科研-课题类别列表
  例如：showSubSelDialog('ownerId:id,ownerCode:code,ownerName:title');
 */
function showSubSelDialog(columns){
	var url = "/xmdx/common/jdbcPage.as?_in=subpro@001&_url=/ky/subpro/subProSel.jsp&columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】科研-课题列表（申报）
  例如：showProjectSelDialog('ownerId:projectId');
 */
function showProjectSelDialog(columns){
	var url = "/xmdx/common/jdbcPage.as?_in=project@012&status=1&columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】科研-课题列表(立项)
  例如：showLXProjectSelDialog('ownerId:projectId');
 */
function showLXProjectSelDialog(columns){
	var url = "/xmdx/common/jdbcPage.as?_in=project@012&status=2&columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/*
 【对话框】科研-课题列表(发表)
  例如：showFBProjectSelDialog('ownerId:projectId');
 */
function showFBProjectSelDialog(columns){
	var url = "/xmdx/common/jdbcPage.as?_in=project@012&status=3&columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}
/*
 【对话框】科研-课题列表(结项)
  例如：showJXProjectSelDialog('ownerId:projectId');
 */
function showJXProjectSelDialog(columns){
	var url = "/xmdx/common/jdbcPage.as?_in=project@012&status=4&columns="+columns+"&random=" + Math.random();
	window.showModalDialog(url, document, "dialogWidth=600px;dialogHeight=400px");
}

/**
 * 新增或者更新排课课表时先检查是否输入合法
 * @param {Object} tr
 */
function beforePlanCourse(tr){
    if (tr == undefined) {
        jError("【tr】对象不能为空");
        return;
    }
    var tds = new Array();
    tds = tr.children;
    var $tr = $(tr);
    var courseType = $tr.attr("type");
    if(courseType == 2){
       return true;
    }
    var planFlag = 1;
    var $tds = $(tds);
    $tds.each(function(){
        var key = $(this).attr("key");
        var value = $(this).attr("value");
        var text = $(this).text();
        if (key == undefined || value == undefined || text == undefined) {
            return true;
        }
        //如果是基础课程，则在排选听课或者专题课时可以不用检查
        if (text.indexOf("选听课") != -1 || text.indexOf("专题课") != -1) {
            return false;
        }
        if (value == null || value == "" || value == "0") {
            if (key == "courseid") {
                jError("【课程】必须选择");
                planFlag = 0;
                return false;
            }
            else 
                if (key == "teacherids") {
                    jError("【授课人】必须选择");
                    planFlag = 0;
                    return false;
                }
                else 
                    if (key == "classroomid") {
                        jError("【上课地点】必须选择");
                        planFlag = 0;
                        return false;
                    }
        }
    });
    return planFlag;
}


function selClassRoom(obj){
    if (obj == undefined) {
        jError("【obj】对象不能为空");
        return;
    }
    var $td = $(obj);
    var $tr = $td.parent();
    var studydate, day,courseType;
    studydate = $tr.children("td[key='studydate']").attr("value");
    day = $tr.children("td[key='day']").attr("value");
    courseType = $tr.attr("type");
	//不是选听课排课时，如果是下午的行，需要通过上一行得到上课时间字段
    if (day == 2 && courseType != 3) {
        $tr = $tr.prev();
        studydate = $tr.children("td[key='studydate']").attr("value");
    }
    if (courseType == 3){
		while(studydate == undefined || day == undefined){
            $tr = $tr.prev();
			var tempStudyDate = $tr.children("td[key='studydate']").attr("value");
		   	if (tempStudyDate != undefined && tempStudyDate != "" && studydate == undefined) {
		   		studydate = tempStudyDate;
		   	}
		   	var tempDay = $tr.children("td[key='day']").attr("value");
		   	if (tempDay != undefined && tempDay != "" && day == undefined) {
		   		day = tempDay;
		   	}
		}
    }
    var tdId = "tdId_00";
    obj.id = tdId;
    classroomSelDialog(studydate, day, tdId);
    obj.id = "";
}

/**
 * 保存排课--表单提交
 * @param {Object} url
 * @param {Object} successMessage
 */
function ajaxSubmit4PlanSave(url, successMessage, trObj){
    if (trObj == null) {
        jError("【trObj】对象不能为空");
        return;
    }
    if (successMessage == undefined) {
        successMessage = "操作成功!";
    }
    var options = {
        url: url,
        type: 'post',
        dataType: 'json',
        success: function(data){
            if (data.success) {
                jSuccess(successMessage, null, function(r){
                    $tr = $(trObj);
                    var pk = data.pk;
                    $tr.attr("pk", pk);
                    return;
                });
            }
            else {
                jError(data.errorMsg);
            }
        }
    };
    $("form").ajaxSubmit(options);
}

/**
 * 修改或者删除排课--表单提交
 * @param {Object} url
 * @param {Object} successMessage
 */
function ajaxSubmit4Plan(url, successMessage){
    if (successMessage == undefined) {
        successMessage = "操作成功!";
    }
	var flag = 0;
    var options = {
        url: url,
        type: 'post',
        dataType: 'json',
        success: function(data){
            if (data.success) {
                jSuccess(successMessage, null, function(r){
					return;
                });
            }
            else {
                jError(data.errorMsg);
            }
        }
    };
    $("form").ajaxSubmit(options);
}

/* 初始化新增、修改、明细查看页面 */
function initMainPage(){
    setPageHeight();
    bindBtnStyle();
}

/* 设置页面高度 */
function setPageHeight(){
    var clientHeight = document.documentElement.clientHeight;
    document.getElementById("data_div").style.height = (clientHeight - 46) + 'px';
}

/* 绑定新增、修改、明细查看页面按钮样式 */
function bindBtnStyle(){
    $("input").each(function(){
        var type = $(this).attr("type");
        if (type == "button") {
            $(this).attr("class", "buttonSty1");
            
            // 绑定【鼠标】事件样式
            $(this).bind("mouseover", function(){
                $(this).attr("class", "buttonSty1_click");
            });
            $(this).bind("mouseout", function(){
                $(this).attr("class", "buttonSty1");
            });
        }
    });
}

/* 根据年度、学期绑定班级下拉框 */
function getClasses(classId) {
    var year = $("#year").val();
	var term = $("#term").val();
	if(year != "" && term != 0) {
	  $.ajax({
        type: "POST",
        url: "/xmdx/common/hbnJson.as?_in=common@001&year="+year+"&term="+term,
        dataType: "json",
        success: function(data){
            if (data.success) {
			    var keyArray = data.key.split(",");
				var valueArray = data.value.split(",");
				
				var oSelect = document.getElementById("classSel");
				for(var i = oSelect.options.length - 1; i > 0; i--) {
				  oSelect.options.remove(i);
				}
				
				if(keyArray[0] != "") {
				  for(var i = 0; i < keyArray.length; i++) {
				    var oOption = document.createElement("OPTION");
				    oSelect.options.add(oOption);
				    oOption.value = keyArray[i];
				    oOption.innerText = valueArray[i];
				  }
				}
				
				if(classId != null && classId != "") {
				  if(oSelect.options.length > 1) {
	                for(var i = 0; i < oSelect.options.length; i++) {
		              if(oSelect.options[i].value == classId) {
		                oSelect.selectedIndex = i;
			            break;
		              }
		            }
	              }
				}
            }
        },
        error: function(data){
        }
      });
	}
}

/*
  字符串替换函数
  
  @param s1 regex
  @param s2 replacement
*/
String.prototype.replaceAll = function(s1, s2){
    return this.replace(new RegExp(s1, "gm"), s2);
}

/*
  格式化字符串中的占位符{0}
  
  @param 指定字符串
  @param 填充值数组
*/
function formatStr(str,valueArray) {
	for(var i = 0; i < valueArray.length; i++) {
		str = str.replace(new RegExp("\\{" + i + "\\}", "g"), valueArray[i]);
	}
	return str;
}

/* 下拉框选择--设置默认选中 */
function setSelectValue(selectId,value){
	var options =document.getElementById(selectId).options;
	for(var i=0;i<options.length;i++){
		if(options[i].value==value){
			options[i].selected=true;
			break;
		}
	}
}

/* 复选框--设置默认选中 */
function setCheckBoxValue(checkBoxName,value) {
	if(value!=''){
		var checks = document.getElementsByName(checkBoxName);
	    for (var i = 0; i < checks.length; i++) {
	       if(value.indexOf(checks[i].value)!=-1){
		   		checks[i].checked = true;
		   }
	    }
    }
}

/* 单选框--设置默认选中 
   例如：setRadioValue("isPublish","<ww:property value='datas.ispublish'/>");
*/
function setRadioValue(radioName,value) {
	if(value!=''){
		var radios = document.getElementsByName(radioName);
		for (var i = 0; i < radios.length; i++) {
		   if(value.indexOf(radios[i].value)!=-1){
				radios[i].checked = true;
		   }
		}
	}	
}



function validateActionURL(str){
	var patrn= /^http[s]?:\/\/[\w-]+(\.[\w-]+)+([\w-\.\/?%&=]*)?$/;
	//return patrn.test(str);
	return true;
};

/**
 * 发出弹出窗口的交互请求
 * @param {int} _nWidth 对话框宽度
 * @param {int} _nHeight 对话框高度
 */
function doOpenWinActionX(_sURL, _sName, _bReplaced, _nWidth, _nHeight){
	if(!validateActionURL(_sURL)) return;

	var nWidth	= _nWidth || (window.screen.availWidth  - 20);
	var nHeight = _nHeight || (window.screen.availHeight - 40);
	var nLeft	=(window.screen.availWidth - nWidth-10)/2;
	var nTop	= (window.screen.availHeight - nHeight-20)/2;
	var sName	= _sName || "";

	var oWin = window.open(_sURL, sName, "top="+nTop+",left="+nLeft+",fullscreen =true,menubar =no,toolbar =no,width="+nWidth+",height="+nHeight+",scrollbars=yes,location =no,titlebar=no", _bReplaced);
	if(oWin == null){
		alert("您的IE插件已经将窗口拦截！\n"
				+ "请将拦截去掉-->点击退出-->关闭IE，然后重新打开IE登录即可！\n"
				+ "给您造成不便，TRS致以歉意！");
		window.close();
	}else{
		oWin.opener =  window;
		oWin.focus();
	}
	//window.showModalDialog('../include/open_win.jsp', args,'dialogWidth:1px;dialogHeight:1px;dialogTop:1;dialogLeft:1;');
}

