﻿/*
' Document:	EasyIDE Js扩展函数库
' Author:	WangJun
' Surport:	www.EasyIDE.cn  EasyIDE@qq.com
' Update:	2008/08
' Comments:	EasyIDE
*/

var post_index = '/index.asp'; //POST 入口文件地址

//删除首尾空格
String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//返回字节数
String.prototype.len = function(){
	return this.replace(/[^\x00-\xff]/g,"**").length;
}

//执行正则验证
String.prototype.test = function(pattern,flag){
	if(!flag) flag = 'i';
	var reg = new RegExp(pattern,flag) ;
	return reg.test(this);
}

//邮件地址验证
String.prototype.isMail = function(){
	var pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+([.][a-zA-Z0-9]+){1,3}$/;
	return pattern.test(this);
}

//IP地址验证
String.prototype.isIP = function(){
	var pattern = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/;
	return pattern.test(this);
}

//住宅电话验证
String.prototype.isPhone = function(){
	var pattern = /^0[0-9]{2,3}\-[0-9]{7,8}$/;
	return pattern.test(this);
}

//手机号码验证
String.prototype.isMPhone = function(){
	var pattern = /^1[0-9]{10}$/;
	return pattern.test(this);
}

//邮政编码验证
String.prototype.isPostCode = function(){
	var pattern = /^[0-9]{6}$/;
	return pattern.test(this);
}

//QQ号码验证
String.prototype.isQQ = function(){
	var pattern = /^[1-9][0-9]{4,9}$|^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+([.][a-zA-Z0-9]+)+$/;
	return pattern.test(this);
}

//数字检测
String.prototype.isNumeric = function(){
	var pattern = /^[0-9]+$/;
	return pattern.test(this);
}

//返回元素在数组中的索引
Array.prototype.getIndex = function(v){
	for(var i=0; i<this.length; i++)
		if(this[i] === v) return i;
	return -1;
}

//检查在数组内是否存在某值
Array.prototype.isOwn = function(v){
	for(var i=0; i<=this.length; i++){
		if(this[i] === v) return true;
	}
	return false;
}

//从数据中移除指定元素
Array.prototype.remove = function(v){
	var arr = new Array();
	for(var i=0; i<=this.length; i++){
		if(this[i] !== v) arr.push(v);
	}
	return arr;
}

//子元素判断
if( typeof HTMLElement != 'undefined' )
{
	HTMLElement.prototype.contains = function(o)
	{
		while( o )
		{
			if( o == this ) return true;
			o = o.parentNode;
		}
		return false;
	}
}

//返回文件名
function getFileName(url){
	var strUrl = location.href;
	if(url || url=='') strUrl = url;
	var arrUrl = strUrl.split('/');
	var strName = arrUrl[arrUrl.length-1];
	if(strName.indexOf('?') != -1){
		arrUrl = strName.split('?');
		strName = arrUrl[0];
	}
	return strName;
}

//返回文件后缀
function getFileExt(url){
	var strUrl = location.href;
	if(url || url=='') strUrl = url;
	var arrUrl = strUrl.split('.');
	var strExt = arrUrl[arrUrl.length-1];
	if(strExt.indexOf('?') != -1){
		arrUrl = strExt.split('?');
		strExt = arrUrl[0];
	}
	return strExt;
}

//返回URL参数值
function getQuery(query){
	var strUrl = location.href;
	var strQ = '';
	if(strUrl.indexOf('?') != -1){
		var arrUrl = strUrl.split('?');
		//alert(arrUrl.length);
		var strQuery = arrUrl[arrUrl.length-1];
		var arrQuery = strQuery.split('&');
		for(var i=0; i<arrQuery.length; i++){
			var arr = arrQuery[i].split('=');
			//alert(arr.length);
			if(arr.length==1)arr.push('');
			if(arr[0]==query){strQ=arr[1]; break;}
		}
	}
	return strQ;
}

//返回指定格式的当前系统时间
function getTimeNow(format){
	var str = format; var now = new Date();
	var y = now.getFullYear(); var m = now.getMonth()+1;
	var d = now.getDate(); var h = now.getHours();
	var i = now.getMinutes(); var s = now.getSeconds();
	if(format.indexOf('yy') != -1) str = str.replace('yy',y.toString().substr(y.toString().length-2));
	if(format.indexOf('y') != -1) str = str.replace('y',y);
	if(format.indexOf('mm') != -1) str = str.replace('mm',('0'+m).substr(m.toString().length-1));
	if(format.indexOf('m') != -1) str = str.replace('m',m);
	if(format.indexOf('dd') != -1) str = str.replace('dd',('0'+d).substr(d.toString().length-1));
	if(format.indexOf('d') != -1) str = str.replace('d',d);
	if(format.indexOf('h') != -1) str = str.replace('h',('0'+h).substr(h.toString().length-1));
	if(format.indexOf('h') != -1) str = str.replace('h',h);
	if(format.indexOf('ii') != -1) str = str.replace('ii',('0'+i).substr(i.toString().length-1));
	if(format.indexOf('i') != -1) str = str.replace('i',i);
	if(format.indexOf('ss') != -1) str = str.replace('ss',('0'+s).substr(s.toString().length-1));
	if(format.indexOf('s') != -1) str = str.replace('s',s);
	return str;
}

//全选/全不选/反选
function selectAll(form,flag,name){
	var form = document.forms[form];
	window.sAll = (window.sAll==false ? false : true);
	if( 0 == flag ) window.sAll = false;//全不选
	if ( name && 'string'==typeof name ){
		for(i=0; i<form.length; i++){
			if(form[i].tagName=="INPUT" && form[i].type=="checkbox" && form[i].name==name && !form[i].disabled)
				if( 1 == flag )//反选
					form[i].checked = !(form[i].checked);
				else
					form[i].checked = window.sAll;
		}
	}else{
		for(i=0; i<form.length; i++){
			if(form[i].tagName=="INPUT" && form[i].type=="checkbox" && !form[i].disabled)
				if( 1 == flag )//反选
					form[i].checked = !(form[i].checked);
				else
					form[i].checked = window.sAll;
		}
	}
	window.sAll = !window.sAll;
	return false;
}

//按要求选中下拉框
function setSelect(obj,model,value){
	if( model == 'text' ){
		for( var i=0; i<obj.length; i++ )
			if( obj.options[i].text == value ){
				obj.selectedIndex = i;
				return;
			}
	}else if( model == 'value' ){
		for( var i=0; i<obj.length; i++ )
			if( obj.options[i].value == value ){
				obj.selectedIndex = i;
				return;
			}
	}
}

//添加页面载入事件
function addLoadEvent(func){
	if(typeof func != 'function')
		eval('func=function(){'+func+';}');
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	}else{
		window.onload = function(){
			oldonload(); func();
		}
	}
}

//动态加载脚本
function loadScript(src,parent){
	var root = parent ? document.getElementById(parent) : document.getElementsByTagName('head')[0];
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = src;
	root.appendChild(script);
}

//拖动对象
function dragBox(boxID){
	var box = $I(boxID); if( !box ) return;
	box.onmousedown = function(event){mouseDown(event,this)};
	box.onmousemove = function(event){mouseMove(event,this)};
	box.onmouseup = function(event){mouseUp(event,this)};
	function mouseDown(event,box){
		event = event || window.event;
		window.eX = event.clientX; window.eY = event.clientY;
		window.pX = box.offsetLeft; window.pY = box.offsetTop;
		window.drag = true;
		document.body.onmousemove = function(event){mouseMove(event,box);};
		document.body.onmouseup = function(event){mouseUp(event,box);};
	}
	function mouseMove(event,box){
		if( !window.drag ) return;
		event = event || window.event;
		var w = document.body.offsetWidth - box.offsetWidth;
		var h = document.body.offsetHeight - box.offsetHeight;
		var tmp = window.pX + event.clientX - window.eX;
		tmp = tmp<0 ? 0 : tmp; tmp = tmp>w ? w : tmp;
		box.style.left = tmp + 'px';
		tmp = window.pY + event.clientY - window.eY;
		tmp = tmp<0 ? 0 : tmp; //tmp = tmp>h ? h : tmp;
		box.style.top = tmp + 'px';
	}
	function mouseUp(event,box){
		event = event || window.event;
		window.drag = false;
		document.body.onmousemove = null;
		document.body.onmouseup = null
	}
}

//返回具有相同class名称的一组对象
document.getElementsByClassName = function(className, tagName, parent){
	var elems = document.getElementsByTagName("*");
	if(tagName) elems = document.getElementsByTagName(tagName);
	if(parent && typeof(parent) == 'object') elems = parent.getElementsByTagName(tagName);
	if(parent && typeof(parent) == 'string') elems = document.getElementById(parent).getElementsByTagName(tagName);
	var result=[];
	for(i=0; j=elems[i]; i++)
	  if((" "+j.className+" ").indexOf(" "+className+" ")!=-1) result.push(j);
	return result;
}

//简化调用(parent tagName是为提高运行效率而设置的可选参数)
function $I(id){return document.getElementById(id);}
function $N(name){return document.getElementsByName(name);}
function $T(tagName,parent){var parent = parent||document; if(typeof(parent)=='string')parent=document.getElementById(parent); return parent.getElementsByTagName(tagName);}
function $C(className,tagName,parent){return document.getElementsByClassName(className,tagName,parent);}
