InitJsError()	//初始化js错误提示

//初始化js脚本提示错误脚本
function InitJsError(){
	onerror= function reportError(msg,url,line) {
		var str = "js 脚本错误提示(此功能只在调试期间开放): \n\n";
		str += "错误描述：" + msg +'\n';
		str += "出 错 行：" + line +"\n";
		str += "错误页面：" + url +"\n\n";
		alert(str);
		return true;
	}
}

function stopJS(){
	onerror = function stoperror(){
		InitJsError()
		return true
	}
	error()
}

//显示对象
function showojt(ojt){
	ojt.setAttribute('className','show');
	ojt.setAttribute('class','show');//for firfox
}

//隐藏对象
function hideojt(ojt){
	ojt.setAttribute('className','hide');
	ojt.setAttribute('class','hide');//for firfox
}

//切换隐藏属性
function altclass(ojt){
	if (ojt.className=='hide'){showojt(ojt) }else{hideojt(ojt)}
}

//导出到Excel
function makexls(edata,path,filename){
	//var allhtml=document.body.innerHTML;
	fhtml='<form name="mxls" id="mxls" method="post" target="ifun" action="'+path+'" style="display:none"><textarea name="xlsinfo">'
	fhtml+=edata
	fhtml+='</textarea><input type="hidden" name="filename" value="'+filename+'"></form>';
	var o=document.getElementById('mxls')
	if (o!=null) {o.outerHTML=''}
	document.body.innerHTML += fhtml;
	document.mxls.submit();
}

//页面打印相关
//Webbrowser控件
function getWb(){
	var wbhtml='<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="1" id="wb" width="1"></OBJECT>' 
	var gwb=document.getElementById('wb')
	if(!gwb){document.body.innerHTML += wbhtml;}
	gwb=document.getElementById('wb')
	return gwb
}

//检察是否允许使用WB控件
function ChkWb(cwb){
	if(cwb=='[object]'|| cwb==null){
		alert('您的IE设置不允许网页打印，请更改Internet 选项，方法如下：\n\n打开Internet 选项 > 安全 > Internet > 自定义..\n将“允许使用Internet Explorer Webbrowser组合”设为“启用”')
		return false
	}
	return true
}

//打印预览
function soaprintpre(parea){
	var allhtml=document.body.innerHTML
	var phtml=parea.innerHTML
	document.body.innerHTML = phtml
	var owb=getWb()
	if(ChkWb(owb)){owb.execwb(7,1)}	//设置打印错误提示
	//owb.execwb(22,1)
	document.body.innerHTML = allhtml; 
}

//直接打印对象
function soaprint(parea){
	var allhtml=document.body.innerHTML
	var phtml=parea.innerHTML
	document.body.innerHTML = phtml
	var owb=getWb()
	if(ChkWb(owb)){owb.execwb(6,1)}	//设置打印错误提示
	document.body.innerHTML=allhtml; 
}

//打印页面设置
function soaprintsets(){
	var owb=getWb()
	if(ChkWb(owb)){owb.execwb(8,1);}	//设置打印错误提示
}

//取其元素顶部距离
function getoffsettop(e){  
	var t=e.offsetTop;  
	var l=e.offsetLeft;  
	while(e=e.offsetParent){  
		t+=e.offsetTop;
	} 
	return t 
} 

//取其元素左边距离
function getoffsetleft(e){  
	var l=e.offsetLeft;  
	while(e=e.offsetParent){
	l+=e.offsetLeft;  
	}  
	return l
}  

//改变元素位置
function posiojt(tojt,pt,pl){
	//pt pl分别代表与激活元素的top left的差值。如果想不改变top 或left，请将其对应的pt、pl的值设为10000
	var sojt = event.srcElement; 
	var tt=tojt.style.pixelTop
	var tl=tojt.style.pixelLeft
	//alert(tt)
	if (pt!=10000){tojt.style.pixelTop=tt-Number(getoffsettop(tojt))+Number(getoffsettop(sojt))+Number(pt)}
	if (pl!=10000){tojt.style.pixelLeft=tl-getoffsetleft(tojt)+getoffsetleft(sojt)+pl}
}

//查找gkey在数组gdata中的下标
function getindex(gdata,gkey)       /*JS暴虐查找*/
{
  re = new RegExp(gkey,[""])
  return (gdata.join("┙").replace(re,"┢").replace(/[^┙┢]/g,"")).indexOf("┢")
}

//转换半角
function getbanjiao(gval){
	var result = '';
	for (i=0 ; i<gval.length; i++){
	   code = gval.charCodeAt(i);
	   if (code >= 65281 && code <= 65373){result += String.fromCharCode(gval.charCodeAt(i) - 65248);}else if (code == 12288){result += String.fromCharCode(gval.charCodeAt(i) - 12288 + 32);}else{result += gval.charAt(i);}
		}
	return result;
}

//查找数组中的重复值
function findIterance(arrayname){
	var ss=""
	var s = "[fi]"+arrayname.join("[fi]")+"[fi]"; 
	for(var fi=0;fi<arrayname.length;fi++) {
		ss="[fi]"+ss.replace("[fi]"+arrayname[fi],"")
		if(ss.indexOf("[fi]"+arrayname[fi]+"[fi]") > -1){
			return arrayname[fi];
			break;
		} 
	}
}

//检查Excel组件是否可用
function ChkExcelApp(){
	onerror=function ChkExcelError(){
		alert('不能访问Excel组件！！\n\n您的IE设置不允许网页打开Excel，请更改Internet 选项，方法如下：\n 1.打开Internet 选项 > 安全 > Internet > 自定义级别..\n 2.将“对未标记为安全的ActvieX组件运行”设为“询问”（推荐）或“启用”')
	}
	var cea=new ActiveXObject("Excel.Application")
	InitJsError()
	return true
}

//Excel导出()
function makejsExcel(edata){
	//ChkExcelApp();
	var erows=edata.split('[R]')
	var einfo=new Array()
	for (var i=0;i<erows.length;i++){
		einfo[i]=erows[i].split('[F]')
	}
	//alert(einfo.join('[R]'))
	onerror = function eexcel(){
		makexls(edata,getsysroot()+'inc/MakeaspExcel.asp','Soa数据导出')
	}
	Xlsapp = new ActiveXObject("Excel.Application");   		//Excel组件
	InitJsError()
	Xlsapp.visible = true; 
	var oBook = Xlsapp.Workbooks.Add; 
	if(!oBook.Worksheets(1)){oBook.Worksheets.Add;}
	oBook.Worksheets(1).Activate; 
	var osheet = oBook.ActiveSheet					//激活工作表
	osheet.name='student'
	for (var r=0;r<einfo.length;r++){
		for (var c=0;c<einfo[r].length;c++)
		osheet.cells(r+1,c+1).value=einfo[r][c]
	}
	
}

function getsysroot(){	//获取网站根目录
	var Tags=document.getElementsByTagName('script')
	for (var ji=0;ji<Tags.length;ji++){
		if (Tags[ji].src != ''){jsurl=Tags[ji].src}
	}
	sroot=jsurl.toUpperCase().replace('INC/SOA.JS','')
	if (sroot==''){sroot='./'}
	return sroot
}


//定义cookie
function ddSetCookie(sName, sValue) { 
	document.cookie = sName + "=" + escape(sValue) + "; "; 
}

//读取cookie
function ddGetCookie(sName) { 
	var ddCookie = document.cookie.split("; "); 
	for (var ddci=0; ddci < ddCookie.length; ddci++) { 
		  var ddCrumb = ddCookie[ddci].split("="); 
		  if (sName == ddCrumb[0])  
		  return unescape(ddCrumb[1]); 
	} 
} 

//删除cookie
function dddelcookie(sName) { 
	document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;"; 
}

//判断是否日期格式
function isdate(str){
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day
	//alert(str);return false
	if (str.length != 11){return false}
	//if (arguments.length != 1) return false
	iaDate = str.toString().split("-")
	if (iaDate.length != 3) return false
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
	
	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day=parseFloat(iaDate[2])
	
	if (year < 1900 || year > 2100) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
}