﻿var sys_btn_auth="";//有权限的按钮列表
$(function() {
	//发起ajax请求时禁用按钮防止多次请求
    $("body").ajaxStart(function(){$(":input").attr('disabled',true);});
   	$("body").ajaxComplete(function(){
   	$(":input").attr('disabled',false);
   	try{
   	if(typeof(eval("afterAjax"))=="function"){
   	  afterAjax();
   	 } 
   	 }catch(e){
   	 }
   		});
});
function bind(bindValue){//json map结构
	if (bindValue.result===false){
		window.alert(bindValue.msg);
		return;
	}
	$.each(bindValue,function(k,v){
		
		if (/selectData.*/ig.test(k))//先显示下拉列表数据
			{bind(v);return;}
		if ((/formData.*/ig.test(k))||(/gridData.*/ig.test(k)))
			{bind(v);return;}
		var elem = document.getElementById(k);
		if (elem!==null){
			switch(elem.tagName) {
				case "INPUT":
					bindInput(k,v);
					break;
				case "TEXTAREA":
					bindText(k,v);
					break; 
				case "TABLE": 
					bindTable(k,v);
					break; 
				case "SELECT": 
					bindSelect(k,v);
					break; 
				case "DIV":
				case "SPAN":
					elem.innerHTML = v;
			}
		}
	});
	var hash=bindValue.tableHover;
	for(var key in hash){
		try{
			eval("callback_tableHover_"+hash[key]+"()");
		}catch(exception){
			var fn=eval("callback_trclick_"+hash[key]);
			$("#"+hash[key]).tableHover({getCell:0,trClick:fn});
		}
	}
	sys_attachment_auth();//判断附件是否有上传修改的权限
}
function bindInput(e,v) {
		v=filterTimestamp(v);
		switch ($("[name='"+e+"']").attr("type")) {
			case "text":
			case "hidden":
			case "password":$("#"+e).val(v); break;
			case "radio" :
			case "checkbox" :
				$("[name="+e+"]").each(function(){
					if (String(v).indexOf(this.value)>-1) {this.checked=true;}
					else{this.checked=false;}
				});
				break;
		}
}
function bindSelect(e, v) {
	if (v instanceof Array){//初始化select列表[{dm='',mc=''},{}]
                $("#"+e).empty();
		var objsel =document.getElementById(e);//alert(v);
		for(var i=0;i<v.length;i=i+1){
			if((i==0)&&(objsel.type!="select-multiple")){
				if ((v[i].dm!="-")&&(v[i].dm!="+")){//如果有删除标志则不显示请选择
					var oOption0=document.createElement("OPTION");
					oOption0.value="";
					oOption0.text="请选择";
					objsel.options.add(oOption0);
				}
				if ((v[i].dm=="-")||(v[i].dm=="+")){
					continue;
				}
			}
			var oOption=document.createElement("OPTION");
			if (v[i].dm=="+") {v[i].dm="";}
			oOption.value=v[i].dm;
			oOption.text=v[i].mc;
			objsel.options.add(oOption);
		}
		if (objsel.type!="select-multiple"){objsel.selectedIndex=0;}
	}else{
		var element =document.getElementById(e);
		for (var j = 0; j < element.options.length; j=j+1) {
			var temp = element.options[j];
			//可以绑定多值的情况
			temp.selected= (eval("/\\b"+temp.value+"\\b/.test(\""+v+"\")"));
		}
	}
}
function bindText(e, v) {
		v=filterTimestamp(v);
		$("#"+e).val(v);
}
function bindTable(tableId,tableJson,isDelRow){
	var tableData=tableJson.data;
	var trInfo=$("#"+tableId+" tbody tr:first").html();
	if (isDelRow) {$("#"+tableId+" tbody tr:not(:first)").remove();}
	var keepRow=$("#"+tableId+" tbody tr").length-1;//页面中保留行数
	var i;
	for (i=0;i<tableData.length;i=i+1){
		var rowJson=tableData[i];
		var newTr=trInfo;
		for(var j in rowJson){
			var jValue=eval("rowJson."+j);
			jValue=filterTimestamp(jValue);
			var re=eval("/{"+j+"}/g");
			newTr=newTr.replace(re,jValue);
		}
		newTr=newTr.replace(/{.*}/g,"");//清空没有数据的单元格
		$("#"+tableId+" tbody tr:eq("+i+")").after("<tr>"+newTr+"</tr>");
		if (i<keepRow)	{$("#"+tableId+" tbody tr:last").remove();}
	}
	//翻页时清空余下的行
	for (1==1;i<keepRow;i=i+1){
		$("#"+tableId+" tbody tr:eq("+(i+1)+") td").empty();
	}
	if (typeof($(".c_table_list_nav_text")[0])=="object"){//如果存在导航条
		bindTableListNav(tableJson.page,tableId);
		//fixedThead(tableId);
	}
}
function sys_expandTable(tableId,rowNum){
	$("#"+tableId+" tbody tr:not(:first)").remove();
	var trInfo=$("#"+tableId+" tbody tr:first").html();
	newTr=trInfo.replace(/value=["'\w]*{\w*}["'\w]*/igm,"value=''");//防止出现“value=”的情况
	newTr=newTr.replace(/{.*}/igm,"");
	for(i=0;i<rowNum;i=i+1){
		$("#"+tableId+" tbody tr:eq("+i+")").after("<tr>"+newTr+"</tr>");
	}
}
//过滤掉时间串的毫秒
function filterTimestamp(str){
	var v=new String(str);
	if (v.match(/(\d\d:\d\d:\d\d)\.\d{1,3}/)) {
		var v2=v.replace(/(\d\d:\d\d:\d\d)\.\d{1,3}/g, "$1");
		return v2;
	}
	return v;
}
function checkTrue(value) {
		var ret="";
		switch (typeof(value)) {
			case 'boolean': ret = value; break;
			case 'string': ret = (value === true || value == "1" || value == "true" || value == "yes"); break;
			case 'number': ret = (parseInt(value) == 1); break;
			default: ret = false;
		}
		return ret; 
	}
//级联下拉框
function selectJl(src,target,jsonSid){
	$("#"+src).change(function(){
		$("#"+target).empty();
		var selectedValue=$("#"+src).val();
		$.getJSON("../Service",$.extend(jsonSid,{selected:selectedValue}),function (msg){if (ajaxSucc(msg)){bindSelect(target,eval("msg."+target));}});
	});
}

function getValueFromUrl(name){
	var regexp=eval("/^\\?.*"+name+"=([^&]*).*$/");
	return (window.location.search).replace(regexp, "$1");
}

function getFilenameFromUrl(){
	var regexp=eval("/$/");
	return (window.location.href).replace(regexp, "$1");
}

//绑定列表导航
function bindTableListNav(pageInfo,tableId){
	var prefix="";//选择器前缀
	if (tableId===undefined){tableId="";}//页面中只有一个列表，不需要输入tableId
	else{prefix="#div_"+tableId+" ";tableId="_"+tableId;}
	$(prefix+"span[navid=page_cur]").text(pageInfo.page_cur);
	$(prefix+"span[navid=page_allPage]").text(pageInfo.page_allPage);
	$(prefix+"span[navid=page_allCount]").text(pageInfo.page_allCount);
	var pageNum=parseInt(pageInfo.page_cur);
	var page_pre=pageNum-1;
	var page_next=pageNum+1;	
	$(prefix+"span[navid=page_pre]").unbind();
	$(prefix+"span[navid=page_pre]").click(function(){
		if (page_pre===0){window.alert("已到达第一页");}		
		else{eval("callback_getPageData"+tableId+"("+page_pre+")");}
	});
	$(prefix+"span[navid=page_next]").unbind();
	$(prefix+"span[navid=page_next]").click(function(){
		if (page_next>parseInt(pageInfo.page_allPage)) {window.alert("已是最后一页");return false;}
		eval("callback_getPageData"+tableId+"("+page_next+")");return false;
	});
	$(prefix+"span[navid=page_enter]").unbind();
	$(prefix+"span[navid=page_enter]").click(function(){
		var _goto=$(prefix+"input[navid=page_goto]").val();
		if (isNaN(_goto)){window.alert("请输入有效的页码");return false;}
		if ((_goto>parseInt(pageInfo.page_allPage))||(_goto<1)) {window.alert("请输入有效的页码");return false;}
		eval("callback_getPageData"+tableId+"("+_goto+")");
	});
}
//提示成功与否，一般在提交操作使用
function ajaxAlert(json){
	if (json.result===true){
		window.alert("处理成功");
		//showLoading(true);
		//$("#easy_loading").fadeOut("slow",function(){showLoading();}); 
		return true;
	}else{
		window.alert(json.msg);
		return false;
	}
}
//异常时提示，成功不提示，一般查询数据操作使用
function ajaxSucc(json){
	if (json.result===false){
		window.alert(json.msg);
		return false;
	}else{
		return true;
	}
}
/*两参数时会自动调用bind，三参数需要自己调用*/
function sys_ajaxGet(url,data,callback){
	if (callback===undefined){
		if (data===undefined){			
			$.getJSON(sys_ctx+url+"&_time="+(new Date().getMilliseconds()),function(json){bind(json);});			
		}else{
			$.getJSON(sys_ctx+url+"&_time="+(new Date().getMilliseconds()),data,function(json){bind(json);});		}
	}else{
		$.getJSON(sys_ctx+url+"&_time="+(new Date().getMilliseconds()), data,callback);
	}
}
function sys_ajaxPost(_url,_data,callback){
    var gw_sel; //存在多个岗位时，用户选择的岗位
    if(sys_yh_gw.split(";").length>1){//选择部门、岗位
    var obj = new Object();
    obj.sys_yh_gw=sys_yh_gw;
    obj.mk_dm=mk_dm;
    gw_sel=window.showModalDialog(sys_ctx+"/org/organize/sys_yh_gw.jsp?sys_yh_gw="+sys_yh_gw,obj);
    }else{
	    if(sys_yh_gw.indexOf("|")>0){
	    	gw_sel = sys_yh_gw.split("|")[1];
	    }else{
	    	gw_sel = sys_yh_gw;
	    }
    }
    var temp = gw_sel.split(":");
    _data =_data+"&bmid="+temp[0]+"&gwid="+temp[1];
	if (callback===undefined){
		$.ajax({type:"POST", url:sys_ctx+_url, data:_data, dataType:"json", success:function (msg) {
			ajaxAlert(msg);
		}});
	}else{
		$.ajax({type:"POST", url:sys_ctx+_url, data:_data, dataType:"json", success:callback});
	}
}
function sys_ajaxPostDirect(_url,_data,callback){
	if (callback===undefined){
		$.ajax({type:"POST", url:sys_ctx+_url, data:_data, dataType:"json", success:function (msg) {
			ajaxAlert(msg);
		}});
	}else{
		$.ajax({type:"POST", url:sys_ctx+_url, data:_data, dataType:"json", success:callback});
	}
}
function tableBarClick(tableid){
	if (tableid===undefined){window.alert("tableBarClick参数错误");return;}
	$("#sys_td_"+tableid).slideToggle("fast");
	if ($("#sys_td_"+tableid+"_arrow").hasClass("c_table_bar_arrow_up")){
		$("#sys_td_"+tableid+"_arrow").removeClass("c_table_bar_arrow_up").addClass("c_table_bar_arrow_down");
	}else{
		$("#sys_td_"+tableid+"_arrow").removeClass("c_table_bar_arrow_down").addClass("c_table_bar_arrow_up");
	}
}

//根据权限显示按钮,传入的按钮id逗号分隔
function sys_showButton(btnidStr){
	$(".c_btn_auth").hide();//先将需要权限控制的全部隐藏
	$(".c_btn_hide").hide();//与权限无关但也要控制状态的
	var btnArray=btnidStr.split(",");
	for(var key in btnArray){
		if (sys_btn_auth.indexOf(btnArray[key])>=0)
			{$("#"+btnArray[key]).show();}
	}
}
//固定数据列表表头
function fixedThead(tableId){
	//var tHeadHeight = $("#table_list_thead").height(); 
	var divBody=$(".c_div_table_list");
	var newDiv="<table class='c_table_list' border='1' id='"+tableId+"_new'><thead id='"+tableId+"_new'>";
	newDiv+=$("#"+tableId+"_thead").html()+"</thead></table>";
	divBody.before(newDiv);
	$("#"+tableId+"_new").width($("#"+tableId).width());
	$("#"+tableId).css("margin-top","-20px");
}
//kindEditor编辑器相关
function sys_ke_insertHtml(id, html) {
    KE.util.focus(id);
    KE.util.selection(id);
    var reg=new RegExp("http://.*?/");//匹配IP地址的正则表达式
    newhtml=html.replace(reg, "http://"+window.location.hostname+":"+sys_pport+"/");
    KE.util.insertHtml(id, newhtml);
}
//kindEditor编辑器相关
function sys_ke_insertHtml_web(id, html) {
    KE.util.focus(id);
    KE.util.selection(id);
    var reg=new RegExp("<img src='http://.*?/");//匹配IP地址的正则表达式
    var key=window.location.host;
	eval('var mapjson='+"'"+sys_ke_ipmap+"'");
	fsHostTemp=mapjson.key;
	if((typeof(fsHostTemp)=="undefined")||fsHostTemp==""){
		fsHost="http://"+key;
	}else{
		fsHost="http://"+fsHost;
	}
    newhtml=html.replace(reg, "<img src='http://"+fsHost+":"+sys_fs_dk+"/");
    KE.util.insertHtml(id, newhtml);
}

function sys_ke_clearEditor(id) {
    KE.html(id, '');
}
//附件区域初始化
function sys_attachment_span_init(savename){
	$(".fjid").val("");
	$(".fjid_Token").val("");
	$(".sys_attachment_xgbz").val("");
	$(".sys_attachment_xzck").show();
	$(".sys_attachment_attachment").get(0).options.length = 0;
	if(savename!=undefined){
		if($("#"+savename).is(":visible")){
			$(".sys_attachment_wjsc").show();
		}else{
			$(".sys_attachment_wjsc").hide();
		}
	}
	}
//附件区域文件上传按钮的权限控制，bind后由框架调用
function sys_attachment_auth(){
$(".sys_attachment_xgbz").each(function(){//用来获取数组
	nname=$(this).attr("name");
  	nname=nname.substring(19,nname.length);
  if($(this).val()=="1"){  
  	$("#sys_attachment_wjsc"+nname).show();  	
  }else if($(this).val()=="0"){  	
  	$("#sys_attachment_wjsc"+nname).hide();  
  }
});

}
//人员选择弹出窗口
function sys_selStaff_openWin(url){
   var iTop = (window.screen.availHeight-30-400)/2;        
   var iLeft = (window.screen.availWidth-10-340)/2; 
   window.open(url,'','height=400,innerHeight=400,width=340,innerWidth=340,top='+
   iTop+',left='+iLeft+',toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no');

}
//弹出窗口
function sys_popup(url,width,height){
	if (width===undefined) {width=600;}
	if (height===undefined) {height=500;}
}

