﻿// JScript 文件
window.onerror=function()
{
  // return true;
}
////公共函数/////
/*******************************/
/*********数组处理类**********/


/*******************************/
/*---------------基类------------------*/

/*
/<function>根据元素ID创建对象</function>/
/<arguments>id列表</arguments>/
/<return>返回一个或多个元素对象</return>/
*/
function $()
{
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1) 
      return element;
    elements.push(element);
  }
  return elements;
}
/*
/<function>根据元素ID创建新的对象</function>/
/<arguments>id</arguments>/
/<return>返回一个新建的对象</return>/
*/
function $e(obj)
{
    return document.createElement(obj);
}
/*
/<function>根据文档对象名获得父对象下所有子对象</function>/
/<arguments>父对象,dom名</arguments>/
/<return>返回元素对象组</return>/
*/
function $$(obj,str)
{
    return obj.getElementsByTagName(str);
}
/*
/<function>获得对象值</function>/
/<arguments>id</arguments>/
/<return>返回单个元素值</return>/
*/
function $v(objstr)
{
     return document.getElementById(objstr).value;
}
/*
/<function>获得对象列表值</function>/
/<arguments>id列表</arguments>/
/<return>返回如：h=t&b=test查询字符串</return>/
*/
function $sv()
{
  var elements="";  
  for (var i=0;i<arguments.length;i++){
	  var element=arguments[i];
	  if(typeof element=='string'){
	     elements+=element+"="+document.getElementById(element).value+"&";
	  }
  }
  elements=elements.substring(1,elements.length);
  return elements;
}
/*
/<function></function>/
/<arguments></arguments>/
/<return></return>/
*/




/*******************************/
/*---------------文档对象模型--------------------------*/

/*
文档对象类
*/
function Element()
{
	 
}
/*
/<function>创建文档对象</function>/
/<arguments>domNew:新建对象名,domFather:附加对象,id:新建对象</arguments>/
/<return>对象</return>/
*/	
Element.prototype.create=function(domNew,domFather,id)
{
    var dom;
	dom=$e(domNew);
	dom.id=id;
	domFather.appendChild(dom);
    return dom;
}
/*
 /<function>删除文档对象</function>/
/<arguments>domFather:父对象,domChild:子对象</arguments>/
/<return></return>/
*/		 
Element.prototype.remove=function(domFather,domChild)
{
     domFather.removeChild(domChild);
}
/*
 /<function>复制文档对象</function>/
/<arguments>domSourse:源对象,domDest:目标对象</arguments>/
/<return></return>/
*/	
Element.prototype.clone=function(domSourse,domDest)
{
}
/*
 /<function>拖放对象</function>/
/<arguments>object:手柄对象,element:移动对象</arguments>/
/<return></return>/
*/	
Element.prototype.drag=function (object,element)
{
	var _x,_y,_delatx,_delaty;	
	object.onmouseup=function(e)
	{
	    object.onmousemove=null;
	}
	object.onmousedown=function(e)
	{
          e=e||window.event;
	      _x=e.clientX;
	      _y=e.clientY;
		  _delatx=position.delatX(object,_x);
		  _delaty=position.delatY(object,_y);
		  
		  object.onmousemove=function(e)
		  {
            e=e||window.event;
	        _x=e.clientX;
	        _y=e.clientY;
		    element.style.top=_y-_delaty+"px";
		    element.style.left=_x-_delatx+"px";
	      }		
	}
}
/*
 /<function>跑马灯</function>/
/<arguments>外一层，内并例层，内并例层，速度，方向(0:左右,1:上下)</arguments>/
/<return></return>/
*/	
/*
 /<function>跑马灯</function>/
/<arguments>外一层，内并例层，内并例层，速度，方向(0:左右,1:上下)</arguments>/
/<return></return>/
*/	
var marquee=function(demo,demo1,demo2,speed,direct)
{ 
     var demo=demo;
	 var demo1=demo1;
	 var demo2=demo2;
	 var speed=speed;
	 var direct=direct;//0:从左至右1:从下至上
     this.start=function()
	 {//开始滚动
	     demo2.innerHTML=demo1.innerHTML;
         var mar=setInterval(this.Marquee,speed);
         demo.onmouseover=function()
		 {clearInterval(mar);}
         demo.onmouseout=function()
		 {mar=setInterval(new marquee(demo,demo1,demo2,speed,direct).Marquee,speed);}
	  };
	 this.Marquee=function()
	 {
	   if (direct==0)
	   {
		 if(demo2.offsetWidth-demo.scrollLeft<=0)
		 {
            demo.scrollLeft=0;
	     }else{
            demo.scrollLeft++;
         }
	   }else if(direct==1)
	   {
		 if(demo2.offsetHeight-demo.scrollTop<=0)
		 {
			 demo.scrollTop=0;
		 }else{
			 demo.scrollTop++;
		 }
		}
	  }	 
}
/*
 /<function>元素内滚动</function>/
/<arguments>对象,滚动值</arguments>/
/<return></return>/
*/	
Element.prototype.scrolling=function(object,scrollvalue)
{
	var temp=scrollvalue;
	var element=object;
	element.scrollTop=element.scrollTop+temp;
	if (temp==0) return;
	var scr;
	if (temp>0){
	if(element.scrollTop>=element.scrollHeight-element.clientHeight){
		clearInterval(scr);
		}else{
			scr=setTimeout(function(){scrolling(object,scrollvalue)},200);
		}
	}else if(temp<0){
	if(element.scrollTop<=0){
		clearInterval(scr);
		}else{
			scr=setTimeout(function(){scrolling(object,scrollvalue)},200);
		}		
	}
}
/*
 /<function>元素滚动</function>/
/<arguments>对象,滚动值,方向(0,左右;1,上下)</arguments>/
/<return></return>/
*/	
Element.prototype.margining=function(o,v,d)
{
	var temp=v;
	var element=o;
	if(d==0){
		var ov=parseInt(element.style.marginLeft.left(element.style.marginLeft.length-2));
		temp+=ov;
		if (ov<0) return;	
		element.style.marginLeft=temp+'px';
	}else{
		var ov=parseInt(element.style.marginTop.left(element.style.marginTop.length-2));//当前值
		temp+=ov;
		if (ov<0) return;
		element.style.marginTop=temp+'px';
		}
	scr=setTimeout(function(){margining(o,v,d)},20);
}


/*******************************/
/**********事件处理类***********/



/*******************************/
/*********表单处理**********/
var Form=function(){}

/*
/<function>提交表单</function>/
/<arguments></arguments>/
*/
Form.prototype.Submit=function()
{
}




/*******************************/
/***********对象类**************/
var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}
Object.prototype.extend = function(source) {
  for (property in source) {
    this[property] = source[property];
  }
  return this;
}

/*对象可见*/
Object.prototype.show=function()
{
   this.style.display='block';
}
/*对象不可见*/
Object.prototype.hidden=function()
{
   this.style.display='none';
}
/*对象是否可见，返回True,False*/
Object.prototype.visible=function()
{
   if(this.style.display!='none')
   {
     return true;
     }else{return false;}
}

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0; i < arguments.length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

/*******************************/
/**********ajax对象类***********/
var Ajax = {
  getTransport: function() {
   try{return new ActiveXObjext('Msxml2.XMLHTTP');     
      }catch(e){try{ return new ActiveXObject('Microsoft.XMLHTTP');   
      }catch(e){try{ return new XMLHttpRequest(); 
	  }catch(e){return false;}
      }
      }
     } 
}
////基本数
Ajax.Base=Class.create();
Ajax.Base.prototype={
  initialize:function(){},
  transport:function(){return Ajax.getTransport();},////异步对象
  failure:function(){return false;}
}
/////处理request
Ajax.Requester=Class.create();
Ajax.Requester.Form="";
Ajax.Requester.URL="";
Ajax.Requester.Params="";
Ajax.Requester.ResponseContents="";
Ajax.Requester.Transport=new Ajax.Base().transport();
Ajax.Requester.doReadyChange=function(){	
    if( Ajax.Requester.Transport.readyState==4){    
       if( Ajax.Requester.Transport.status==200){
           Ajax.Requester.ResponseContents=Ajax.Requester.Transport.responseText;
       }
    }
};
Ajax.Requester.prototype={
  initialize:function(form,url,params){///传递方式（post||get）,发送路径,参数列表
    Ajax.Requester.Form=form;
    Ajax.Requester.URL=url;
    Ajax.Requester.Params=params;
    this.requestUrl();
  },
  requestUrl:function(){
    if(Ajax.Requester.Form=='get')
    {
      this.SendGet();  
    }else{
      this.SendPost();
    }
  },
  SendGet:function(){
    Ajax.Requester.Transport.open("GET",Ajax.Requester.URL+"?"+Ajax.Requester.Params,false);
    Ajax.Requester.Transport.onreadystatechange=function(){Ajax.Requester.doReadyChange();}
    Ajax.Requester.Transport.send(null);
  },
  SendPost:function(){
    Ajax.Requester.Transport.open("POST",Ajax.Requester.URL,false);
    Ajax.Requester.Transport.onreadystatechange=function(){Ajax.Requester.doReadyChange();}
    Ajax.Requester.Transport.setRequestHeader("content-Type","text/html;charset=UTF-8");
    Ajax.Requester.Transport.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    Ajax.Requester.Transport.send(Ajax.Requester.Params);
  }
  
}
////<summary>Update div 更新一块区域</summary>
Ajax.Updater=Class.create();
Ajax.Updater.prototype={
  initialize:function(){},
  ///<summary>更新</summary>
  ///<obj>需更新区的对象</obj>
  ///<form>Get or Post</form>
  ///<url>地址</url>
  ///<params>参数</params>
  ///<pattern>内容过滤</pattern>
  update:function(obj,form,url,params,pattern){
    new Ajax.Requester(form,url,params);
    if(Ajax.Requester.ResponseContents==''){new Ajax.Requester(form,url,params);}
    if(pattern!=''){
       obj.innerHTML=Ajax.Requester.ResponseContents.getExpReg(pattern);
      }else{
       obj.innerHTML=Ajax.Requester.ResponseContents;
      }
   },
  ///<summary>增加区域内容</summary>
  ///<obj>需更新区的对象</obj>
  ///<form>Get or Post</form>
  ///<url>地址</url>
  ///<params>参数</params> 
   updateT:function(obj,form,url,params){
    new Ajax.Requester(form,url,params);
    if(Ajax.Requester.ResponseContents==''){new Ajax.Requester(form,url,params);}
       obj.innerHTML+=Ajax.Requester.ResponseContents;
   }
}
///<summary>返回序列化后的数据</summary>
Ajax.Response=Class.create();
Ajax.Response.prototype={
  initialize:function(){},
  ///<summary>以数组的方式返回数据</summary>
  AyyayList:function(url,params,pattern){
    new Ajax.Requester('get',url,params);
    if(Ajax.Requester.ResponseContents==''){new Ajax.Requester('get',url,params);}
       return Ajax.Requester.ResponseContents.split(pattern);
  },
  ///<summary>格式化方式返回数据</summary>
  GetRegular:function(url,params,pattern){
    new Ajax.Requester('get',url,params);
    if(Ajax.Requester.ResponseContents==''){new Ajax.Requester('get',url,params);}
      if(pattern!='')
      {
         return Ajax.Requester.ResponseContents.getExpReg(pattern);
      }else{
         return Ajax.Requester.ResponseContents;
      }
  },
  ///<summary>返回可以用JSON方式处理的数据结构</summary>
  JSON:function(url,params){
  }
}


/*******************************/
/*------------位置,坐标处理类--------------*/

var position={
	delatX:function(obj,eX){////////元素与鼠标位置之差 x轴
	       var left=obj.style.left;
		   return eX-parseInt(left.replace("px",""))/1;
	},
	delatY:function(obj,eY){////////元素与鼠标位置之差 y轴
	       var top=obj.style.top;
		   return eY-parseInt(top.replace("px",""))/1;
	},
	OffsetLeft:function(el){///////元素Left值
        return (el.offsetParent != null) ? el.offsetLeft + position.OffsetLeft(el.offsetParent) : el.offsetLeft;
	 },
	OffsetTop:function(el) {///////元素Top值
	    return (el.offsetParent != null) ? el.offsetTop + position.OffsetTop(el.offsetParent) : el.offsetTop;
	}
}




/*******************************/
/*----------------字符串操作-----------------*/

////去掉字符串两边空格////
String.prototype.trim=function()
{ 
	return this.replace(/(^\s*)|(\s*$)/g,"");
}
////返回转义后的HTML文本////
String.prototype.escapeHtml=function()
{
	this.replace(/\</ig,"&lt");
	return this.replace(/\>/ig,"&gt");
}
////与escapeHtml相反////
String.prototype.unescapeHtml=function()
{
    this.replace(/&lt/ig,"<");
	return this.replace(/&gt/ig,">");
}
////从左边取指定个数字符串////
String.prototype.Left=function(elementsnum)
{ 
  if(!isNaN(elementsnum))
  {
	 if(this.length>=elementsnum)
	 {return this.substring(0,elementsnum);}
	 else{return this;}
  }else{
	 return this;
  }
}
/////从右边取指定个数字符串///
String.prototype.Right=function(elementsnum){ 
  if(!isNaN(elementsnum)){
	 if(this.length>=elementsnum)	 
	 {return this.substring(this.length-elementsnum,elementsnum);}
	 else
	 {return this;}
   }else{
     return this;
   }
}
////返回去除HTML或XML标记的字符串///
String.prototype.scriptHtml=function()
{
	return this.replace(/<[^>.]*>/ig,"");
}
////判断是否为空////
String.prototype.empty=function()
{
   if(this.length>0)
   {
      return true;
   }else{
      return false;
   }
}
////////判断是否为日期格式//////
String.prototype.isDate=function()
{
    var regxP=/^(20)\d{2}-(0?\d|1[012])-(0?\d|[12]\d|3[01])$/;
    var regx=new RegExp(regxP);
    if(regx.exec(this))
    {
       return true;
    }else{
       return false;
    }
}
////判断是否在指定个数内的串,参数:最小个数,最大个数
String.prototype.inArea=function(st,en)
{
	if(this.length<st)
	{
		return false;
	}
	if(this.length>en)
	{
		return false;
	}
	return true;
}
////<summary>应用正则表达式</summary>
///<pattern>表达式</pattern>
///<return>如果未找到则返回false否则返回true</return>
String.prototype.inExpReg=function(pattern)
{
	var regxP=pattern;
	var regex=new RegExp(regxP,"gi");
	if(regex.exec(this))
	{
		return true;
	}else{
		return false;
	}
}
///<summary>查找字符串</summary>
///<pattern>表达式</pattern>
///<return>如果未找到则返回空字符否则返回所有匹配字符串</return>
String.prototype.getExpReg=function(pattern)
{
	var regxP=pattern;
	var regex=new RegExp(regxP,"gi");
	if(regex.exec(this))
	{
	  return this.match(regex);
	}else{
	  return "";
	}
}
///<summary>替换所有匹配数据</summary>
///<pattern>表达式</pattern>
///<restr>要替换成的数据</restr>
String.prototype.replaceExpRep=function(pattern,restr)
{
	var regx=new RegExp(pattern,"gi");
	return regx.replace(this,restr);
}
////加字符高亮////
String.prototype.color=function(color)
{
	return "<font color=\""+color+"\">"+this+"</font>";
}
////加粗字符////
String.prototype.strong=function()
{
    return "<strong>"+this+"</strong>";
}
  //页面实际高，宽
 function getPageSize(){
           //检测浏览器的渲染模式
        var body = (document.compatMode&&document.compatMode.toLowerCase() == "css1compat")?document.documentElement:document.body;

        var bodyOffsetWidth = 0;
        var bodyOffsetHeight = 0;
        var bodyScrollWidth = 0;
        var bodyScrollHeight = 0;
        var pageDimensions = [0,0];
       
        pageDimensions[0]=body.clientHeight; 
        pageDimensions[1]=body.clientWidth; 
       
        bodyOffsetWidth=body.offsetWidth;
        bodyOffsetHeight=body.offsetHeight;
        bodyScrollWidth=body.scrollWidth;
        bodyScrollHeight=body.scrollHeight;

        if(bodyOffsetHeight > pageDimensions[0])
        {
            pageDimensions[0]=bodyOffsetHeight;
        }    
       
        if(bodyOffsetWidth > pageDimensions[1])
        {
            pageDimensions[1]=bodyOffsetWidth;
        }    
       
        if(bodyScrollHeight > pageDimensions[0])
        {
            pageDimensions[0]=bodyScrollHeight; 
        }     
       
        if(bodyScrollWidth > pageDimensions[1])
        {
            pageDimensions[1]=bodyScrollWidth;
        }   

        return pageDimensions; 
}
