/**
 *@author XieYuchang
 @data 2004-01-21
 @function for some public function
 **/

/* trim函数的扩展*/
function trim(Str , Flag )
{

	Str	= ""+Str;
	if( Flag == "l" || Flag == "L" )/*trim left side only*/
	{
		RegularExp	= /^\s+/gi;
		return Str.replace( RegularExp,"" );
	}
	else if( Flag == "r" || Flag == "R" )/*trim right side only*/
	{
		RegularExp	= /\s+$/gi;
		return Str.replace( RegularExp,"" );
	}
	else/*defautly, trim both left and right side*/
	{
		RegularExp	= /^\s+|\s+$/gi;
		return Str.replace( RegularExp,"" );
	}
}
/*获取字符串的真正长度，主要针对中文作处理*/
function getStrLen(str)
{
var nPos;
var nLen;

	if(str==null) return 0;

	nPos = 0;
    	nLen = 0;
	while (nPos < str.length)
	{	
		if(str.charCodeAt(nPos) > 127)
		{
			nLen = nLen + 2;
		}
		else
	    	{
			nLen = nLen +1;
		}
		nPos++;
	}		
	return nLen;
}
/**
 *检查小数位是否超长 超出限制返回false ,没有超出则返回true
 **/
function checkDecDig( s , digit ) {
	var i = s.indexOf(".") ;
	var substr = s.substring( i + 1 ) ; 
	var substrLen = substr.length ;

	if ( substrLen > digit ) {
		//超出限制
		return false ;
	} else {
		return true ;
	}
}

/**
强制输入数字，针对数字输入框
*/
function forceDecimalInput()
{
    var n;
    n = window.event.keyCode;
    if ( n == 46 ) // .
        return true;
    else if ( n > 47 && n < 58 ) // 0123456789
        return true;
    else
        return false;
}

/**
`设置COOKIE, cName为cookie的名字 , cValue为cookie的值
*/
function SetCookie( cName, cValue )
{
	// expires when brower closed.
	// to indicate a specific expire time, set expires item 
	document.cookie = cName + "=" + escape(cValue) + ";";
}

// 获得Cookie , cName为cookie的名字
function GetCookie( cName )
{
	var cCookie = document.cookie.split(";");
	for ( var i=0; i < cCookie.length; i++ )
	{
		var cCrumb = cCookie[i].split("=");
		if ( cName == cCrumb[0] )
			return unescape(cCrumb[1]);
	}
	// 找不到分离标记;,返回null.
	return null;
}

/**
 *居中打开一个窗口
 */
function openWindowOnCenter( url , winName , width , height ) {
	var x = 0 , y = 0 ; 
	if ( parseInt( navigator.appVersion ) >= 4 ) {
		x = (screen.width - width) / 2 ;
		y = (screen.height - height) /2 ;
	}
	url = "/LKKCHEF/do/windows/" + url ;
	var winProperties = "width=" + width + "," + "height=" + height + "," + 
						"menubar=0,resizable=0,status=0,toolbar=0,," + 
						"screenx=" + x + "," + "screeny=" + y + "," + 
						"left=" + x + "," + "top=" + y ;
	window.open( url , winName , winProperties ) ;
}

/**
 *检查是否有中文
 *含有中文返回true ,否则返回false 
 **/
function checkCn ( s ) {
	if ( s == null || trim( s ) == "" ) {
		return false ;
	}

	var strInv = trim( s ) ;
	var nPos = 0 ; 

	while ( nPos < strInv.length ) {
		if ( strInv.charCodeAt( nPos ) > 127 ) {
			return true ;
		}
		nPos ++ ;
	}

	return false ;
}
/**
 *比较两个日期的大小
 *如果前一个日期大于后一个日期，返回true
 *这里对传入的两个参数又要求，必须是格式为yyyy-mm-dd的日期型
 **/
function compareDate( date1 , data2 ) {
	if ( date1 == null || trim( date1 ) == "" ) {
		return false ;
	}

	if ( date2 == null || trim( date2 ) == "" ) {
		return false ;
	}

	var strDate1 = trim( date1 ) ;
	var strDate2 = trim( data2 ) ;

	var year1	= parseInt( date1.substring(0,4) ) ;
	var month1	= parseInt( date1.substring(5,7) ) ;
	var day1	= parseInt( data1.substring(8,10)) ;

	
	var year2	= parseInt( date2.substring(0,4) ) ;
	var month2	= parseInt( date2.substring(5,7) ) ;
	var day2	= parseInt( data2.substring(8,10)) ;

	if ( year1 - year2 > 0 ) {
		return true ;
	}

	if ( ( year1 - year2 ) == 0 && ( month1 - month2 ) > 0 ) {
		return true ;
	} 
	if ( ( year1 - year2 ) == 0 && ( month1 - month2 ) == 0 && ( day1 - day2 ) > 0 ) {
		return true ;
	}

	return false ;
}

//输入框的颜色改变
function htfocus(id){
	document.all(id).style.backgroundColor="#e0f2f8";
}
//恢复输入框的颜色
function tfocus(id){
	 document.all(id).style.backgroundColor="#ffffff";
}

/**
 *用来禁止 F5 刷新键  Ctrl+n  shift+F10
 */
function forbidFreshKeyDown(){
	//唯一的缺点就是iE的菜单栏不能有，否则不起作用(用户只需要点击刷新，还是可以刷新页面的)
 if ((window.event.altKey)&&
     ((window.event.keyCode==37)||  
      (window.event.keyCode==39))){       alert("请访问我的主页");
    event.returnValue=false;
 }
 if ( (event.keyCode==116) ){          //屏蔽 F5 刷新键
    event.keyCode=0;
    event.returnValue=false;
 }
 if ((event.ctrlKey)&&(event.keyCode==78)){   //屏蔽 Ctrl+n
    event.returnValue=false;
 }
 if ((event.shiftKey)&&(event.keyCode==121)){ //屏蔽 shift+F10
    event.returnValue=false;
 }
}


/**
 *用来显示工具条，用户点击查询按钮后显示查询工具栏
 **/
 function showFindBar(tableid) {
	if ( tableid == null ) {
		tableid = "serachbar" ;
	}
	document.all[tableid].style.display="";
 }

 /**
 *用来显示工具条，用户点击查询按钮后显示查询工具栏
 **/
 function xyc_back() {
	history.back(-1) ;
 }

 /**
 *用来显示工具条，用户点击查询按钮后显示查询工具栏
 **/
 function xyc_close() {
	window.close() ;
 }


 function window_onbeforeunload() {
	event.returnValue = '当前页面没有保存的资料将会丢失！';	
}


/**
 * 创建ajax对象，定义了如何处理响应
 * 客户端就可以使用返回的对象 http_request.open('GET', URL, true)或者http_request.send(null)

 *在定义了如何处理响应后，就要发送请求了。可以调用HTTP请求类的open()和send()方法，如下所示：
	xmlhttp_request.open('GET', URL, true);
	xmlhttp_request.send(null);
	open()的第一个参数是HTTP请求方式—GET，POST或任何服务器所支持的您想调用的方式。 按照HTTP规范，该参数要大写；否则，某些浏览器(如Firefox)可能无法处理请求。 
	第二个参数是请求页面的URL。
	第三个参数设置请求是否为异步模式。如果是TRUE，JavaScript函数将继续执行，而不等待服务器响应。这就是"AJAX"中的"A"。
	
	用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求后，接下来要决定当收到服务器的响应后，需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名，如下所示：


	xmlhttp_request.onreadystatechange =FunctionName;


 * 2005-12-27
 */
function getHttpRequest() {
	var xmlhttp_request ;
	try {
		if ( window.ActiveXObject ) {
			//IE 浏览器 
			//由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致，为了更好的兼容不同版本的Internet
			//Explorer浏览器，因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类
			for( var i = 5 ; i ; i -- ) {
				try {
					if ( i == 2 ) {
						xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );    	
					} else {
						xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
					}
					xmlhttp_request.setRequestHeader("Content-Type","text/xml");
					xmlhttp_request.setRequestHeader("Content-Type","GBK");
					break ;
				} catch(e) {
					xmlhttp_request = false;
				}
			}
		} else if (window.XMLHttpRequest ) {
			//非IE浏览器
			xmlhttp_request = new XMLHttpRequest();
            if (xmlhttp_request.overrideMimeType) {
                xmlhttp_request.overrideMimeType('text/xml');
            }
		}
	} catch(e){
        xmlhttp_request = false;
    }
 }

 /*
  * 获取ajax对象，并制定用来处理的函数,默认是 doAjaxResult
  在这个函数中。首先要检查请求的状态。只有当一个完整的服务器响应已经收到了，函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。

readyState的取值如下： 
　　0 (未初始化) 
　　1 (正在装载) 
　　2 (装载完毕) 
　　3 (交互中) 
　　4 (完成)

所以只有当readyState=4时，一个完整的服务器响应已经收到了，函数才可以处理该响应。具体代码如下：


if (http_request.readyState == 4) {
    // 收到完整的服务器响应
} else {
    // 没有收到完整的服务器响应
}


  */
 function doAjaxRequest(functionName) {
	if ( functionName == null ) {
		http_request = http_request.onreadystatechange = doAjaxResult() ;
	} else {
		http_request = http_request.onreadystatechange = functionName ;
	}
	http_request.open('POST', url, true);
    http_request.send(null);
 }