﻿var  isIE  =   !! document.all;
window.WindowLoadEvent=[];
window.attachLoadEvent=function(fun)
{
    this.WindowLoadEvent[this.WindowLoadEvent.length]=fun;
}
window.onload=function()
{
    for(var i=0;i<WindowLoadEvent.length;i++)
    {
        eval(WindowLoadEvent[i]);
    }
}

/*================创建XMLHttpRequest对象=========================================*/
function CreateXMLHttpRequest()
{
	var http_request = false;
	//开始初始化XMLHttpRequest对象
	if(window.XMLHttpRequest) 
	{ //Mozilla 浏览器
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{//设置MiME类别
			http_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) 
	{ // IE浏览器
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) 
		{
			try 
			{
			    http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) 
	{   // 异常，创建对象实例失败
		throw "不能创建XMLHttpRequest对象实例。";
	}
	return http_request;
}

/*================获取网页内容====================================================*/
function RequestPage(url,method,params)
{
    var returnValue="";
	var http_request = CreateXMLHttpRequest();

	http_request.open(method,url,false);
	if(method=="POST")http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http_request.send(params);
	if(http_request.readyState==4&&http_request.status==200)
		returnValue=http_request.responseText;
	else
	    throw "请求页面出错。";
	http_request=null;

	return returnValue;
}

/*================获取URL参数值====================================================*/
function QueryString(key) 
{ 
	var queryString=location.search;
	var re = new RegExp(key+"=([^&]*)","ig");
    var arr=re.exec(queryString);
    if(arr!=null)
	    return decodeURIComponent(arr[1]);
	else return "";
}

/*================全选复选框或单选按扭====================================================*/
function SelectAll(control)
{
	if(typeof(control.length)!="undefined")
	{
		for(var i=0;i<control.length;i++)
		{
		    if(!control[i].disabled)
			    control[i].checked=true;
		}
	}
	else
	{
	    if(!control.disabled)
		    control.checked=true;
	}
}
/*================取消所有复选框或单选按扭选择====================================================*/
function CancelAllSelect(control)
{
	if(typeof(control.length)!="undefined")
	{
		for(var i=0;i<control.length;i++)
		{
		    if(!control[i].disabled)
			    control[i].checked=false;
		}
	}
	else
	{
	    if(!control.disabled)
		    control.checked=false;
	}
}
/*================判断是否有选择其中的选项====================================================*/
function HasSelected(control){
	if(typeof(control.length)!="undefined")
	{
		for(i=0;i<control.length;i++)
		{
			if(control[i].checked&&!control[i].disabled)
				return true;
		}
	}	
	else
	{
		if(control.checked&&!control.disabled)
			return true;
	}
	return false;
}
/*================全选/取消选择控件====================================================*/
function SelectControl(button,controlId,buttonType)
{
    var isAllSelect=false;
    var control=null;
    var linkButton;
    if(typeof(button)=="string")
    {
        if(buttonType=="button")
            document.write("<input type='button' id='"+button+"' value='全选' />");
        else
            document.write("<a href='javascript:;' id='"+button+"'>全选</a>");
        linkButton=document.getElementById(button);
    }
    else
    {
        linkButton=button;
    }
    linkButton.onclick=function()
    {   
        control=FindControl(document,controlId);
        if(isAllSelect)
        {
            CancelAllSelect(control);
            buttonType=="button"?linkButton.value="全选":linkButton.innerHTML="全选";
            isAllSelect=!isAllSelect;
        }
        else
        {
            SelectAll(control);
            buttonType=="button"?linkButton.value="取消全选":linkButton.innerHTML="取消全选";
            isAllSelect=!isAllSelect;
        }
    }
    
    this.ChangeSelectState=function()
    {
        control=FindControl(document,controlId);
        isAllSelect=true;
    	if(typeof(control.length)!="undefined")
	    {
		    for(i=0;i<control.length;i++)
		    {
			    if(!control[i].checked)
			    {
				    isAllSelect=false;
				    break;
				}
		    }
	    }	
	    else
	    {
		    if(!control.checked)
			    isAllSelect=false;
	    }
	    if(isAllSelect)
	    {
	        buttonType=="button"?linkButton.value="取消全选":linkButton.innerHTML="取消全选";
	    }
	    else
	    {
            buttonType=="button"?linkButton.value="全选":linkButton.innerHTML="全选";
  	    }
    }  
    
    this.Init=function()
    {   
        control=FindControl(document,controlId);
        if(!control)return;
        if(typeof(control.length)!="undefined")
        {
		    for(i=0;i<control.length;i++)
		    {
		        control[i].Parent=this;
			    control[i].onclick=function()
			    {
			        
			        this.Parent.ChangeSelectState();
			    }
		    }
	    }	
	    else
	    {
	        control.Parent=this;
	   	    control.onclick=function()
		    {
			    this.Parent.ChangeSelectState();

		    }
	    }
	}
}

function CheckDeleteSelected(ctlName)
{
   if(!HasSelected(FindControl(document,ctlName)))
   {
       alert("很抱歉，至少要选一条记录才能删除…");
        return false;
    }
    return true;
}

//删除字串两端空格
String.prototype.trim = function()
{
    var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}
//子字串是否匹配开始位置
String.prototype.startsWith = function(value)
{
    var re = new RegExp("^"+value+".*$","ig");
    return re.test(this);
}
//子字串是否匹配结尾位置
String.prototype.endsWith = function(value)
{
    var re = new RegExp("^.*"+value+"$","ig");
    return re.test(this);
}

//浏览器属性开始
function WindowInfo()
{
scrollX=0,scrollY=0,width=0,height=0,contentWidth=0,contentHeight=0;
if(typeof(window.pageXOffset)=='number')
{scrollX=window.pageXOffset;scrollY=window.pageYOffset;}
else if(document.body&&(document.body.scrollLeft||document.body.scrollTop))
{scrollX=document.body.scrollLeft;scrollY=document.body.scrollTop;}
else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop))
{scrollX=document.documentElement.scrollLeft;scrollY=document.documentElement.scrollTop;}

if(typeof(window.innerWidth)=='number')
{width=window.innerWidth;height=window.innerHeight;}
else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
{width=document.documentElement.clientWidth;height=document.documentElement.clientHeight;}
else if(document.body&&(document.body.clientWidth||document.body.clientHeight))
{width=document.body.clientWidth;height=document.body.clientHeight;}

if(document.documentElement&&(document.documentElement.scrollHeight||document.documentElement.offsetHeight))
{if(document.documentElement.scrollHeight>document.documentElement.offsetHeight)
{contentWidth=document.documentElement.scrollWidth;contentHeight=document.documentElement.scrollHeight;}
else
{contentWidth=document.documentElement.offsetWidth;contentHeight=document.documentElement.offsetHeight;}}
else if(document.body&&(document.body.scrollHeight||document.body.offsetHeight))
{if(document.body.scrollHeight>document.body.offsetHeight)
{contentWidth=document.body.scrollWidth;contentHeight=document.body.scrollHeight;}
else
{contentWidth=document.body.offsetWidth;contentHeight=document.body.offsetHeight;}}
else
{contentWidth=width;contentHeight=height;}

if(height>contentHeight)
height=contentHeight;

if(width>contentWidth)
width=contentWidth;

var rect=new Object();rect.ScrollX=scrollX;rect.ScrollY=scrollY;rect.Width=width;rect.Height=height;rect.ContentWidth=contentWidth;rect.ContentHeight=contentHeight;return rect;
}


//查找子控件
function FindControl(control,childControlIdClip)
{
    var tagNames=new Array("INPUT","SELECT","DIV","SPAN","A","IFRAME","XML","IMG");
    var controls=[];
    for(var i=0;i<tagNames.length;i++)
    {
		var allControls=control.getElementsByTagName(tagNames[i])
		for(var j=0;j<allControls.length;j++)
		{
		    if (allControls[j].id&&allControls[j].id.endsWith(childControlIdClip)) 
		        controls[controls.length]=allControls[j];
		}
    }
    if(controls.length==0)
        return null;
    else if(controls.length==1)
        return controls[0];
    return controls;
}

//日期检测
function  jIsDate(str){
    var reg1 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
	var reg2 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg1);
	var d;
	if(r==null){
		r = str.match(reg2);
		if(r==null)return false; 
		d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
		return parseInt(r[1],10)==d.getFullYear()&&
			parseInt(r[3],10)==d.getMonth()+1&&
			parseInt(r[4],10)==d.getDate()&&
			parseInt(r[5],10)==d.getHours()
			parseInt(r[6],10)==d.getMinutes()
			parseInt(r[7],10)==d.getSeconds();
	}
	else
	{
		d = new Date(r[1], r[3]-1,r[4]); 
		return parseInt(r[1],10)==d.getFullYear()&&
			parseInt(r[3],10)==d.getMonth()+1&&
			parseInt(r[4],10)==d.getDate();
	}
}

//清除HTML代码
function ClearHtmlCode(str)
{
    value=str.replace(/<br>|<p>/ig,"\n").replace(/<.*?>/ig,"").replace(/&nbsp;/ig," ");
    return value;
}

function HtmlEncode(str)
{
    return str.replace(/</ig,"&lt;").replace(/>/ig,"&gt;").replace(/\"/g,"&quot;").replace(/&/g,"&amp;");
}

function HtmlDecode(str)
{
    return str.replace(/&lt;/ig,"<").replace(/&gt;/ig,">").replace(/&quot;/g,"\"").replace(/&amp;/g,"&");
}

/*=======================为非IE的浏览器的XMLDocument对象增加selectSingleNode和selectNodes方式=====================*/
if ( ! isIE){
     var  ex;
    XMLDocument.prototype.__proto__.__defineGetter__( " xml " ,  function (){
         try {
             return   new  XMLSerializer().serializeToString( this );
        } catch (ex){
             var  d  =  document.createElement( " div " );
            d.appendChild( this .cloneNode( true ));
             return  d.innerHTML;
        }
    });
    Element.prototype.__proto__.__defineGetter__( " xml " ,  function (){
         try {
             return   new  XMLSerializer().serializeToString( this );
        } catch (ex){
             var  d  =  document.createElement( " div " );
            d.appendChild( this .cloneNode( true ));
             return  d.innerHTML;
        }
    });
    XMLDocument.prototype.__proto__.__defineGetter__( " text " ,  function (){
         return   this .firstChild.textContent
    });
    Element.prototype.__proto__.__defineGetter__( " text " ,  function (){
         return   this .textContent
    });




    XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){
         var  x = this .selectNodes(xpath)
         if ( ! x  ||  x.length <1 ) return   null ;
         return  x[ 0 ];
    }
    XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){
         var  xpe  =   new  XPathEvaluator();
         var  nsResolver  =  xpe.createNSResolver( this .ownerDocument  ==   null   ? 
             this .documentElement :  this .ownerDocument.documentElement);
         var  result  =  xpe.evaluate(xpath,  this , nsResolver,  0 ,  null );
         var  found  =  [];
         var  res;
         while  (res  =  result.iterateNext())
            found.push(res);
         return  found;
    }
}

/*=============================动态创建一个Form=================================*/
function DynamicForm(name,method,action)
{
    var form=document.createElement("FORM");
    document.body.appendChild(form);
    form.name=name;
    
    if(method)
        form.method=method;
    if(action)
        form.action=action;
    
    form.style.display="none";
    
    form.AddInput=function(name,value)
    {
          var input=document.createElement("INPUT");
          form.appendChild(input);
          input.name=name;
          input.value=value;
          return input;
    }
    
    return form;
}
