/////////////////////////////////////////////////////////////////////
//
//文件名：JFF.JS
//
//简述：通用的JAVASCRIPT函数集合
//
//作者：陈驱   
//
//创建日期：2002年7月17日   最后修改日期：2004年4月24日
//
/////////////////////////////////////////////////////////////////////

var _POPWINDOW_PARA="scrollbars,status,width=620,height=500,top=10,left=10";

//删除前后空格键
function Trim(sheep)
{
	if(sheep.length==0)
	{
		return sheep;
	}
		
	var front=0,end=sheep.length-1;
				
	while((sheep.charAt(front)==" "||sheep.charCodeAt(front)==160) && front<sheep.length)
	{
		front++;
	}
		
	while((sheep.charAt(end)==" "||sheep.charCodeAt(front)==160) && end>=0)
	{
		end--;
	}
		
	sheep=sheep.substr(front,end-front+1);
		
	return sheep;
}

//删除前后空格键威力加强版(连&nbsp;都删除了)
function TrimEx(sheep)
{
	sheep=Trim(sheep);
	
	//替换链接
	r=/&nbsp;/gi;
	sheep=sheep.replace(r,"");
			
	return sheep;
}

//是否为空
function IsEmpty(sheep)
{
	if(sheep==null||sheep=="")
	{
		return true;
	}
	return false;
}

//是否为纯数字
function IsPosInteger(sheep)
{
	sheep=Trim(sheep);
	for(var i=0;i<sheep.length;i++)
	{
		var oneChar=sheep.charAt(i)
		if (oneChar<"0"||oneChar>"9")
		{
			return false;
		}
	}
	return true;
}

//是否为整数
function IsInteger(sheep)
{
	for(var i=0;i<sheep.length;i++)
	{
		var oneChar=sheep.charAt(i)
		if(i==0&&oneChar=='-')
		{
			continue;
		}
		if (oneChar<"0"||oneChar>"9")
		{
			return false;
		}
	}
	return true;
}

//是否为数值（浮点数）
function IsNumber(sheep)
{
	sheep=Trim(sheep);
	oneDecimal=false;
	for(var i=0;i<sheep.length;i++)
	{
		var oneChar=sheep.charAt(i)
		if(i==0&&oneChar=='-')
		{
			continue;
		}
		if (oneChar=="."&&!oneDecimal)
		{
			oneDecimal=true;
			continue;
		}
		if (oneChar<"0"||oneChar>"9")
		{
			return false;
		}
	}

	return true;
}

//非法字符串转换
function CharConvert(sheep)
{
	var goat="";
	
	if(sheep.length==0)
	{
		return sheep;
	}
	
	for(var i=0;i<sheep.length;i++)
	{
		switch(sheep.charAt(i))
		{
			case "\'":
				goat=goat+"‘";
				break;
			case "\"":
				goat=goat+"“";
				break;
			case "\\":
				goat=goat+"\\\\"
				break;
			case "\n":
				goat=goat+" ";	
				break;
			case String.fromCharCode(13):	
				goat=goat+" ";
				break;
			default:
				goat=goat+sheep.charAt(i);
				break;
		}
	}
	
	return goat;
}
		
//格式化函数，sheep为数值型,decplaces为小数点保留位数
function Format(sheep,decplaces)
{
	var str=""+Math.round(sheep*Math.pow(10,decplaces));
	
	while(str.length<=decplaces)	str="0"+str;
	
	var decpoint=str.length-decplaces;
	
	return str.substring(0,decpoint)+"."+str.substring(decpoint,str.length);
	
}

//前面加0,用于日期显示格式化
//sheep:月份或日期
function AddZero(sheep)
{
	if(sheep>9)
	{
		return sheep;
	}
	else
	{
		return "0"+sheep;
	}
}	

/////////////////////////////////////////////////////////////////////
//
//简述：
//  检测并转换为正确的日期格式
//
//参数：
//	sheepTime	字符型时间
//
//最后修改日期：2002年7月17日
//
/////////////////////////////////////////////////////////////////////
function ConvertDate(sheepTime)
{
	var monthMax=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
		
	sheepTime=Trim(sheepTime);
	//替换格式
	var r=/\//g;
	sheepTime=sheepTime.replace(r,"-");	
	var goatTime="";
	var position=sheepTime.indexOf('-');
	var M=0;
	var D=0;
	//简捷型,形如‘200107041110'
	if(position==-1)
	{
		if(sheepTime.length<6)
		{
			alert('不完整的日期格式。');
			return false;
		}
		if(!IsPosInteger(sheepTime))
		{
			alert('不正确的日期格式。');
			return false;
		}
		var length=sheepTime.length;
		
		//头4位一定是年份
		goatTime=goatTime+sheepTime.substr(0,4);
		//月
		if(sheepTime.substr(4,2)=="00"||sheepTime.substr(4,2)>"12")
		{
			alert("不正确的月份："+sheepTime.substr(4,2));
			return false;
		}
		goatTime+="-"+sheepTime.substr(4,2);
		M=parseFloat(sheepTime.substr(4,2));
		D=parseFloat(sheepTime.substr(6,2));
		//日
		if( D==0 || D=="" )
		{
			goatTime+="-01";
			return goatTime;
		}
		if(D>monthMax[M])
		{
			//不是2月份，只要超出上限（30或31）就为错
			if(M!=2)
			{
				alert("不正确的日期："+goatTime+"-"+sheepTime.substr(6,2));
				return false;
			}
			else
			{
				var Y=parseFloat(sheepTime.substr(0,4));
				if( D>29 || Mod(Math.abs(Y-2000),4)!=0 )
				{
					alert("不正确的日期："+goatTime+"-"+D);
					return false;
				}
			}	
		}
		goatTime+="-"+sheepTime.substr(6,2);
		if(sheepTime.length<=8)
		{
			goatTime+=" 00:00";
			return goatTime;
		}	
		//小时
		if((sheepTime.substr(8,2)).length<2)
		{
			goatTime+=" ";
			for(var i=(sheepTime.substr(8,2)).length;i<2;i++)
				goatTime=goatTime+"0";
			goatTime=goatTime+sheepTime.substr(8,2);
		}	
		else
		{	
			if(sheepTime.substr(8,2)>"60")
			{
				alert("不正确的小时："+sheepTime.substr(8,2));
				return false;
			}
			goatTime=goatTime+" "+sheepTime.substr(8,2);
		}	
		//分钟
		if((sheepTime.substr(10,2)).length<2)
		{
			goatTime=goatTime+":";
			for(var i=(sheepTime.substr(10,2)).length;i<2;i++)
				goatTime=goatTime+"0";
			goatTime=goatTime+sheepTime.substr(10,2);
		}	
		else
		{	
			if(sheepTime.substr(10,2)>"60")
			{
				alert("不正确的分钟："+sheepTime.substr(10,2));
				return false;
			}
			goatTime=goatTime+":"+sheepTime.substr(10,2);
		}	
	}				
	//组装型2002-04-03 10:00
	else
	{
		//年
		if(position>4||position==-1||!IsPosInteger(sheepTime.substr(0,position)))
		{
			alert("错误的年份。");	
			return false;
		}
		for(var i=position+1;i<4;i++)
			goatTime=goatTime+"0";
		goatTime=goatTime+sheepTime.substr(0,position)+"-";
		//月
		sheepTime=sheepTime.substr(position+1);
		position=sheepTime.indexOf("-");
		if( position==-1 )
		{
			sheepTime+="-01 00:00";
			position=2;
		}
		if(position>2||!IsPosInteger(sheepTime.substr(0,position))||parseFloat(sheepTime.substr(0,position))>12||sheepTime.substr(0,position)=="00")
		{
			alert("错误的月份。"+sheepTime.substr(0,position));	
			return false;
		}
		if(position==1)
			goatTime=goatTime+"0";
		goatTime=goatTime+sheepTime.substr(0,position)+"-";
		//日
		sheepTime=sheepTime.substr(position+1);
		position=sheepTime.indexOf(" ");
		//后面没有空格，形如2002-04-0315:13
		if(position==-1)	
		{
			D=parseFloat(sheepTime.substr(0,2));
			if(D==0)
			{
				alert("错误的日期:"+goatTime+sheepTime.substr(0,2));
				return false;
			}
			sheepTime=sheepTime.substr(2);
		}
		//后面有空格，形如2002-04-03 15:13
		else				
		{
			if( position>2||!IsPosInteger(sheepTime.substr(0,position)) )
			{
				alert("错误的日期:"+sheepTime.substr(0,position));	
				return false;
			}
			D=parseFloat(sheepTime.substr(0,position));
			if(D==0)
			{
				alert("错误的日期:"+goatTime+sheepTime.substr(0,position));
				return false;
			}
			sheepTime=sheepTime.substr(position+1);
		}
		M=parseFloat(goatTime.substr(5,2));
		if(D>monthMax[M])
		{
			if(M!=2)
			{
				alert("错误的日期："+goatTime+"-"+D);
				return false;
			}
			else
			{
				var Y=parseFloat(goatTime.substr(0,4));
				if( D>29 || Mod(Math.abs(Y-2000),4)!=0 )
				{
					alert("错误的日期："+goatTime+D);
					return false;
				}
			}	
		}
		goatTime+=AddZero(D)+" ";

		//小时
		position=sheepTime.indexOf(":");
		if(position==-1)
		{
			goatTime+="00:00";
			return goatTime;
		}
		if(position>2||!IsPosInteger(sheepTime.substr(0,position))||sheepTime.substr(0,position)>59)
		{
			alert("错误的小时:"+sheepTime.substr(0,position));	
			return false;
		}
		if(position==1)
			goatTime+="0";
		goatTime+=sheepTime.substr(0,position)+":";
		//分钟
		sheepTime=sheepTime.substr(position+1,2);
		if(!IsPosInteger(sheepTime)||sheepTime>59)
		{
			alert("错误的分钟。");	
			return false;
		}
		if(sheepTime.length==1)
			goatTime+="0";
		goatTime+=sheepTime;
	}
		
	return goatTime;
}

//保存COOKIE
function SetCookie(name,value,expires,path,domain,secure)
{
   	var tmp=name.split("."),str,reg
   	if(tmp.length==1)
   	{
       	document.cookie=tmp[0] + "=" + value;
       	if( expires )
       	{
       		var exp=new Date();
       		var oneMin=exp.getTime()+expires;
       		exp.setTime(oneMin);
       		document.cookie += ";expires=" + exp.toGMTString();
       	}
       	document.cookie += ((path) ? ";path=" + path : "");
		document.cookie += ((domain) ? ";domain=" + domain : "");
		document.cookie += ((secure) ? ";secure=" + secure : "");
       	return;
   	}

   	if(str=GetCookie(name))
   	{
       	var reg=new RegExp("(^|&)"+tmp[1]+"="+str)
       	SetCookie(tmp[0],GetCookie(tmp[0]).replace(reg,"$1"+tmp[1]+"="+value),expires,path,domain,secure)
       	return;
   	}
   	if(str=GetCookie(tmp[0]))
   	{
       	SetCookie(tmp[0],str+"&"+tmp[1]+"="+value,expires,path,domain,secure)
       	return;
   	}
   	SetCookie(tmp[0],tmp[1]+"="+value,expires,path,domain,secure)
}

//获得COOKIE
function GetCookie(name)
{
   	var tmp=name.split(".");
   	var arr,reg=new RegExp("(^| )"+tmp[0]+"=([^;]*)");
   	if(!(arr=document.cookie.match(reg)))
   	{
   		return null;
   	}
   	if(tmp[1]==null) return arr[2];
   	reg=new RegExp("(^|&)"+tmp[1]+"=([^&]*)");
   	if(!(arr=arr[2].match(reg)))return null;
    
    return arr[2];
}

//删除COOKIE
function DelCookie(name,path,domain)
{
	if( GetCookie(name) )
	{
		document.cookie=name+"="
	}
}

/////////////////////////////////////////////////////////////////////
//
//	简介：获得属性
//	
//	参数：	str			从中获得属性值的字符串
//			property	属性名称
//			endchar		结束字符
//
//	示例：	
//			var str="link.htm?reurl=mother.htm&title=hello";
//			GetProperty(str,"&reurl=","&");
//
/////////////////////////////////////////////////////////////////////
function GetProperty(str,property,endchar)
{
	var p,q;
	var temp = "";
	var end;
	end = ( endchar == null ) ? "'" : endchar;

	p = str.indexOf(property);
	if( p == -1 )
	{
		return "";
	}
	temp = str.substr(p+property.length);
	q = temp.indexOf(end);
	temp =( q != -1 ) ? temp.substr(0,q) : temp;
	
	return temp;
}

/////////////////////////////////////////////////////////////////////
//
//	简介：	获得新开窗口的字符串。
//			可根据屏幕分辨率自动调整大小
//		  	可智能定位于父窗口的右侧
//	
//	参数：	win			父窗口
//
/////////////////////////////////////////////////////////////////////
function GetPopWinStr(win)
{
	var width=620;
	var height=500;
	var left=10;
	var top=18;
	
	width=screen.availWidth*0.8;
	height=screen.availHeight*0.8;
	if( win!=null )
	{
		try
		{
			if( win.frameElement == null )
			{
				left=win.screenLeft+10;
				top=win.screenTop;
			}
		}
		catch(e)
		{
		}
	}
	
	var str="scrollbars,status,resizable";
	str += ",width="+width;
	str += ",height="+height;
	str += ",top="+top;
	str += ",left="+left;
	
	return str;
}

//退出页面
//reurl:退出后到达的页面
function Exit(reurl)
{
	//看是否可以关闭窗口
	try
	{
		if( window.opener!=null )
		{//如果是弹出式窗口
			window.close();
		}
	}
	catch(e)
	{
	}
	
	var str=Trim(location.href);
	if( str.indexOf("reurl=")!=-1 )
	{	//如果href有参数 reurl,则其及其参数一定是至于最后
		//例如，location.href == page.aspx?id=3&reurl=makeupbyobligee_edit.aspx&obligee_id=1&obligee_style=1&obligee_name=开发二部
		//则，reurl=makeupbyobligee_edit.aspx&obligee_id=1&obligee_style=1&obligee_name=开发二部 就是回传地址
		reurl = GetProperty(str,"reurl=");
		//替换第一个&
		var r = /&/;
		reurl = reurl.replace(r,"?");
		location.href = reurl;
	}
	else
	{
		location.replace(reurl);
	}
}

//展示或隐藏控件
//e:点击鼠标引发的事件
//ctrl:待控制的控件
function SetCtrlVH(e,ctrl)
{
	var sty = ctrl.style;
	var offsetX = 10;
	var offsetY = 15;
			
	if( sty.display == "block" )
	{
		sty.display="none";
		return;
	}
	sty.position="absolute";
	sty.left=e.clientX-parseFloat(sty.width);
	if( sty.left < window.screen.availWidth )
	{
		sty.left = offsetX;
	}
	sty.top=e.clientY + offsetY;
	if( (sty.top + sty.height) > window.screen.availHeight )
	{
		sty.top = e.clientY - sty.height - offsetY;
	}
	sty.display="block";
}

/////////////////////////////////////////////////////////////////////
//
//简述：获得radio选定的值
//
//参数：
//	rad	radio控件
//
/////////////////////////////////////////////////////////////////////
function GetRadioCheckedValue(rad)
{
	for( var i=0;i<rad.length;i++ )
	{
		if( rad[i].checked )
		{
			return rad[i].value;
		}
	}
	
	return null;
}

/////////////////////////////////////////////////////////////////////
//
//简述：按回车将光标转移至控件textname上
//
//参数：
//	e,事件，一般是“event”
//	formname,form的名字
//	son,TAB次序居其后的控件名字
//	father,TAB次序居其前的控件名字
//
//最后修改日期：2002年7月17日
//
/////////////////////////////////////////////////////////////////////
function SetFocus(e,formname,son,father)
{
	var charCode=e.keyCode;
		
	//是回车或向下箭头键
	if( charCode==13 || charCode==40 )
	{
		var SON=eval("document."+formname+"."+son);
		SON.focus();
	}
	
	//father存在且是向上箭头键
	if( father!=null && charCode==38 )
	{
		var FATHER=eval("document."+formname+"."+father);
		FATHER.focus();
	}
}