﻿/*
'============================================================
' 程序框架 : Asp Exload 1.0
' 程序开发 : Cloud.L
'============================================================
' 文件名称 : /Common/Core.js
' 文件作用 : 系统核心JS文件
' 最后更新 : 2009-8-21
'	文件版本 : Version 1.0.1
'	文件说明 ：
		v1.0.1 增强nameValue函数，可返回选中值列表及索引某单值
'============================================================
' 版权声明 : Copyright 2005-2009 Cayue All Rights Reserved.
' 官方网站 : Http://www.cayue.com
'============================================================
*/
//删除字符串二边空格
String.prototype.trim = function(){return this.replace(/(^[\s]*)|([\s]*$)/g, "");};
//删除字符串左边空格
String.prototype.lTrim = function(){return this.replace(/(^[\s]*)/g, "");};
//删除字符串右边空格
String.prototype.rTrim = function(){return this.replace(/([\s]*$)/g, "");};
var Class = {create:function(){return function(){this.Initialize.apply(this, arguments);this.Terminate.apply(this, arguments);}}}
var Core_Cls = Class.create();
Core_Cls.prototype={
	Initialize:function(){
	},
	Terminate:function(){
	},
	id:function(_id){
		return document.getElementById(_id);
	},
	idValue:function(_id){
		return this.id(_id).value;
	},
	name:function(_name){
		return document.getElementsByName(_name);
	},
	nameValue:function(_name,_split){
		_split=typeof(_split)=="undefined"?",":_split;
		var oName=this.name(_name),
				valueItem=0,valueArr=new Array(),
				selectItem=0,selectArr=new Array(),
				singleValue="",
				indexer=arguments[3]!="undefined"?parseInt(arguments[2]):-1;
		for (var i=0;i<oName.length;i++){
			try{
				if(this.id(oName[i].id).checked){
					selectArr[selectItem]=oName[i].value;
					selectItem++;
				}
			}catch(e){}
			if(oName[i].value!=""){
				valueArr[valueItem]=oName[i].value;
				valueItem++;
			}
		}
		if(indexer!=-1){singleValue=selectArr[indexer];}
		return {
				value:valueArr.join(_split),
				length:valueArr.length,
				valueArray:valueArr,
				selectValue:selectArr.join(_split),
				selectLength:selectArr.length,
				selectArray:selectArr,
				indexValue:singleValue
			};
	},
/*
==========表单元素值校验
*/
	isNull:function(_id){//值是否为空
		if (this.idValue(_id)==null||this.idValue(_id).trim()==""){
		  return true;
		}else{
		  return false;
		}
	},
	isDigit:function(_id){//值是否全为数字
		var patrn=/^\d+$/;
		return patrn.test(this.idValue(_id));
	},
	isInteger:function(_id){
		var patrn=/^([+-]?)(\d+)$/;
		return patrn.test(this.idValue(_id));
	},
	isChinese:function(_id){
		var patrn=/[\u4E00-\u9FA5\uF900-\uFA2D]+$/;
		return patrn.test(this.idValue(_id));
	},
	isLetter:function(_id){
		var patrn=/^[a-z]*$/;
		return patrn.test(this.idValue(_id));
	},
	isMobile:function(_id) {
		var patrn = /^0?1((3[0-9]{1})|(59)){1}[0-9]{8}$/;
		return patrn.test(this.idValue(_id));
	},
	isPhone:function(_id){
		var patrn = /^(0[\d]{2,3}-)?\d{6,8}(-\d{3,4})?$/;
		return patrn.test(this.idValue(_id));
	},
	isUrl:function(_id){
		var patrn= /^http[s]?:\/\/[\w-]+(\.[\w-]+)+([\w-\.\/?%&=]*)?$/;
		return patrn.test(this.idValue(_id));
	},
	isEmail:function(_id){
		var patrn = /^[\w-]+@[\w-]+(\.[\w-]+)+$/;
		return patrn.test(this.idValue(_id));
	},
	isPostCode:function(_id){
		var patrn = /^\d{6}$/;
		return patrn.test(this.idValue(_id));
	},
	isAccount:function(_id){
		var patrn=/^[^_]?(\w){6,7}$/;
		return patrn.test(this.idValue(_id));
	},
	/*
	过滤非法字符
	*/
	filterBadChar:function(_oStr){
		var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？]")
		var rs = "";
		for (var i = 0; i < _oStr.length; i++) {
		rs = rs+_oStr.substr(i, 1).replace(pattern, '');
		}
		return rs;
	},
	/*
	作用：表格行元素顺序调整
	说明：
	1.行记录第一个单元格的第一个元素必须为Radio
	2.上下行移动按钮放置于表格元素外部
	3.为表格指定ID属性
	*/
	tableUpMove:function(_id){
		var curTr=this.getSelectTr(_id);
		if((curTr.rowIndex-1)<0){
			return false;
		}else{
			var up_rowIndex=curTr.rowIndex-1;
		}
		var upTr=this.id(_id).rows[up_rowIndex];
		upTr.swapNode(curTr);
		curTr.cells[0].firstChild.checked=true;
	},
	tableDownMove:function(_id){
		var curTr=this.getSelectTr(_id);
		if((curTr.rowIndex+1)==this.id(_id).rows.length){
			return false;
		}else{
			var down_rowIndex=curTr.rowIndex+1;
		}
		var downTr=this.id(_id).rows[down_rowIndex];
		downTr.swapNode(curTr);
		curTr.cells[0].firstChild.checked=true;
	},
	getSelectTr:function(_id){
		for (var i=0;i<this.id(_id).rows.length;i++){
			var checkRadio=this.id(_id).rows[i].cells[0].firstChild;
			if(checkRadio.checked==true){
				return checkRadio.parentNode.parentNode;
				break;
			}
		}
	},
	/*table order end*/
	chkConfirm:function(_msg){
		//if(document.all) {
			//if(confirm(_msg)){
				//event.returnValue=true;
			//}else{
				//event.returnValue=false;
			//}
		//}else{
			if(confirm(_msg)){
				return true;
			}else{
				return false;
			}
		//}
	},
	fwholeAll:function(_formID){
	   var formObj=this.id(_formID);
	   for(var i=0; i<formObj.length; i++){
		  if (formObj[i].tagName=="INPUT"&&formObj[i].type=="checkbox"){
		  	formObj[i].checked=true;
		  }
	   }
	},
	freverseAll:function(_formID){
		var formObj=this.id(_formID);
		for(var i=0; i<formObj.length; i++){
			if (formObj[i].tagName=="INPUT"&&formObj[i].type=="checkbox"){
				formObj[i].checked=formObj[i].checked==false?true:false;
			}
		}
	},
	fcancelAll:function(_formID) {
		var formObj=this.id(_formID);
		for(var i=0; i<formObj.length; i++){
		  if (formObj[i].tagName=="INPUT"&&formObj[i].type=="checkbox"){formObj[i].checked=false;}
		}
	},
//CheckBox Status For Dom
	wholeAll:function(objName){
		var curObjName=this.id(objName);
		for (var i=0;i<curObjName.childNodes.length;i++){
			if(curObjName.childNodes[i].childNodes[0].tagName=="INPUT"&&curObjName.childNodes[i].childNodes[0].type=="checkbox"){
				curObjName.childNodes[i].childNodes[0].checked=true;
			}
		}
	},
	reverseAll:function(objName){
		var curObjName=this.id(objName);
		for (var i=0;i<curObjName.childNodes.length;i++){
			if(curObjName.childNodes[i].childNodes[0].tagName=="INPUT"&&curObjName.childNodes[i].childNodes[0].type=="checkbox"){
				if(curObjName.childNodes[i].childNodes[0].checked==true){
					curObjName.childNodes[i].childNodes[0].checked=false;
				}else{
					curObjName.childNodes[i].childNodes[0].checked=true;
				}
			}
		}
	},
	cancelAll:function(objName){
		var curObjName=this.id(objName);
		for (var i=0;i<curObjName.childNodes.length;i++){
			if(curObjName.childNodes[i].childNodes[0].tagName=="INPUT"&&curObjName.childNodes[i].childNodes[0].type=="checkbox"){
				curObjName.childNodes[i].childNodes[0].checked=false;
			}
		}
	},
	noEnter:function(){if(event.keyCode==13)return false;},
	telNumber:function(_id){this.id(_id).value=this.id(_id).value.replace(/[^0-9\-\s]/g,'');},
	/*保留整数（有符号）*/
	retainInt:function(_id){this.id(_id).value=this.id(_id).value.replace(/[^\d\-]/g,'');},
	/*保留无符号整数*/
	retainUInt:function(_id){this.id(_id).value=this.id(_id).value.replace(/\D/g,'');},
	/*保留浮点（有符号）*/
	retainDouble:function(_id){this.id(_id).value=this.id(_id).value.replace(/[^\d\-\.]/g,'');},
	/*保留无符号浮点*/
	retainUDouble:function(_id){this.id(_id).value=this.id(_id).value.replace(/[^\d\.]/g,'');},
	overStyle:function(_curObj,_isCenter){
		var cStyleName='trOver trCenter';
		if (parseInt(_isCenter)==0){cStyleName='trOver';}
		return _curObj.className=cStyleName;
	},
	outStyle:function (_curObj,_isCenter){
		var cStyleName='trSingle trCenter';
		if (parseInt(_isCenter)==0){cStyleName='trSingle';}
		return _curObj.className=cStyleName;
	},
	chkFormExec:function (_sltID,_btnID){
		var sltObj=this.id(_sltID),btnObj=this.id(_btnID);
		btnObj.value=sltObj.selectedIndex!=0?'执行['+sltObj.options[sltObj.selectedIndex].innerHTML+']操作':'执行操作';
		btnObj.disabled=sltObj.value!='0'?false:true;
	},
	chkSearch:function(_txtID,_btnID){
		var txtObj=this.id(_txtID),btnObj=this.id(_btnID);
		var execFun=function(t,b){b.disabled=t.value.trim().length>0?false:true;};
		txtObj.onclick=function(){execFun(txtObj,btnObj);};
		txtObj.onkeyup=function(){execFun(txtObj,btnObj);};
		execFun(txtObj,btnObj);
	},
	chkRelativeSwitch:function(_contID){
		var _contObj=this.id(_contID);
		_contObj.style.display=_contObj.style.display=='none'?'inline':'none';
	},
	chkGroupSwitch:function(_startNum,_countNum,_btnPreID,_contentPreID){
		for (var i=_startNum;i<=_countNum;i++){
			var curObj=Cayue.id(_btnPreID+i);
			curObj.onclick=function(){
				var curNum=this.id.replace(_btnPreID,'');
				for(var j=_startNum;j<=_countNum;j++){
					var contObj=Cayue.id(_contentPreID+j);
					if(j==curNum){
						contObj.className=contObj.className=="show"?"hide":"show";
					}else{
						contObj.className="hide";
					}
				}
			}
		}
	},
	openUpLoadWin:function(_url){
		var isAndChar='';
		if(_url.indexOf('?')==-1){
			_url+='?';
		}else{
			if(_url.substr(_url.indexOf('?')+1).length>0){isAndChar='&';}
		}
		var winOpenPara="menubar=no,toolbar=no,location=no,directories=no,";
				winOpenPara+="status=no,scrollbars=yes,resizable=yes,width=450,height=110,left=260,top=240";
		window.open(_url+isAndChar+"Rnd="+Math.random(),"upWin",winOpenPara);
	},
	openNewWin:function(_width,_height,_url){
		var isAndChar='';
		if(_url.indexOf('?')==-1){
			_url+='?';
		}else{
			if(_url.substr(_url.indexOf('?')+1).length>0){isAndChar='&';}
		}
		var winOpenPara="menubar=no,toolbar=no,location=no,directories=no,status=no,";
				winOpenPara+="scrollbars=yes,resizable=yes,width="+_width+",height="+_height+",left=260,top=240";
		window.open(_url+isAndChar+"Rnd="+Math.random(),"newWin",winOpenPara);
	},
	addLoadEvent:function (func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				oldonload();
				func();
			}
		}
	},
//===========Cookies 的操作
	setCookie:function (name,value,_days){
    var Days = _days==""?30:_days;
    var exp  = new Date();    //new Date("December 31, 9998");
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
	},
	getCookie:function (name){
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
    // if(arr != null) return unescape(arr[2]); return "";
	 if(arr != null) return unescape(arr[2]);
	},
	delCookie:function(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=this.getCookie(name);
    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
	},
//===========兼容复制到剪贴板操作
	copyText:function(cText){
		if (window.clipboardData)
		{
			window.clipboardData.setData("Text",cText);
		}
		else
		{
			var flashcopier = 'flashcopier';
			if(!document.getElementById(flashcopier))
			{
				var divholder = document.createElement('div');
				divholder.id = flashcopier;
				document.body.appendChild(divholder);
			}
			document.getElementById(flashcopier).innerHTML = '';
			var divinfo = '<embed src="/Common/clipboard.swf" FlashVars="clipboard='+encodeURIComponent(cText)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
			document.getElementById(flashcopier).innerHTML = divinfo;
			alert('非IE浏览器，不支持自动复制，请手动操作！');
		}
	}

}
var Cayue=new Core_Cls();
/*
=========远程检测获取站点xmlhttp无权限

detectRemoteStatus:function(_url){//检测远程页面是否可以正常访问
	var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	xmlHttp.open("HEAD",_url,false);
	xmlHttp.send();
	return xmlHttp.status==200;
},
getRemoteStatusText:function(_url,_statusTrueText,_statusFalseText){
	var splitArr='';
	if(this.detectRemoteStatus(_url)){
		splitArr=_statusTrueText.split(':');
		if(splitArr[0]=="")
			return splitArr[1];
		else
			return "<span class=\""+splitArr[0]+"\">"+splitArr[1]+"</span>";
	}else{
		splitArr=_statusFalseText.split(':');
		if(splitArr[0]=="")
			return splitArr[1];
		else
			return "<span class=\""+splitArr[0]+"\">"+splitArr[1]+"</span>";
	}
}
*/
