﻿/*--Author：Jonlan
/*--Date：2008-11-12
/*--V1.0.0.0.0
/*--Descritpion：js类库
*/

/*--常用方法--*/
function $(element){
    if(typeof(element)=='object'){
        return element;
    }
    else if(typeof(element)=='string'){
        return document.getElementById(element);
    }
}
String.prototype.ltrim = function(){
    return this.replace(/^\s*/ig,"");
}
String.prototype.rtrim = function(){
    return this.replace(/(\s*)$/ig,"");
}
String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*)$/ig,"");
}
String.prototype.getValueByKey = function(key){
    var returnValue;
    var strList = this.split("&");
    for(var s in strList){
        var ss = strList[s].split("=");
        if(ss[0].toLowerCase()==key.toLowerCase()){
            returnValue = ss[1];
            break;
        }
    }
    return returnValue;
}
String.prototype.myMatch = function(reg){
    var returnvalue = this.match(reg);
    if(returnvalue==null)
        return "";
    else
        return returnvalue.toString();
}
String.prototype.removeImgTag = function(){
    return this.replace(/<img src=[^>]*>/ig,"");
}
/*--类的构造方法--*/
var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}
/*--类的继承--*/
Object.extend = function(target,source){
    for(var prototype in source){
        target[prototype] = source[prototype];
    }
}
/*--事件类--*/
var Events = {
    addListener:function(eventName,eventMethod,ele,tag){
        
        //可变参数
        tag = (tag===undefined)?false:tag;
        
        if(window.attachEvent){
            //IE
            ele.attachEvent("on"+eventName,eventMethod);
        }else if(window.addEventListener){
            //FF
            ele.addEventListener(eventName,eventMethod,tag);
        }
    },
    removeListener:function(eventName,eventMethod,ele,tag){
        
        //可变参数
        tag = (tag===undefined)?false:tag;
        
        if(window.detachEvent){
            //IE
            ele.detachEvent("on"+eventName,eventMethod);
        }else if(window.removeEventListener){
            //FF
            ele.removeEventListener(eventName,eventMethod,tag);
        }
    }
}
/*--doc xml--*/
var Xml = {
    //载入文件
    loadXMLFile:function(file){
        var xmlDoc;
        try //Internet Explorer
        {
            xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        }
        catch(e)
        {
            try //Firefox, Mozilla, Opera, etc.
            {
                xmlDoc=document.implementation.createDocument("","",null);
            }
            catch(e) {alert(e.message)}
        }
        try 
        {
            xmlDoc.async=false;
            xmlDoc.load(dname);
            return(xmlDoc);
        }
        catch(e) {alert(e.message)}
        return(null);
    },
    //载入文本
    loadXMLText:function(txt){
        var xmlDoc;
        try //Internet Explorer
        {
          xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async = false;
          xmlDoc.loadXML(txt);
          return(xmlDoc);  
        }
        catch(e)
        {
          try //Firefox, Mozilla, Opera, etc.
          {
            parser=new DOMParser();
            xmlDoc=parser.parseFromString(txt,"text/xml");
            return(xmlDoc);
          }
          catch(e){alert(e.message)}
          }
        return(null);
    }
}
/*--ajax--*/
var Ajax = {
    Aswitch:false,
    Ajax_Object:function(){
        var A;
        try{ 
            //IE
            if(window.ActiveXObject){ 
                for( var i = 6; i; i-- ){ 
                    try{ 
                        if(i==2)
                            A = new ActiveXObject( "Microsoft.XMLHTTP" ); 
                        else{ 
                            A = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); 
                        }
                        break;
                    } 
                    catch(e){ 
                        A = null; 
                    } 
                } 
            }
            else if(window.XMLHttpRequest){ 
                //FireFox
                A = new XMLHttpRequest(); 
                if (A.overrideMimeType){ 
                    A.overrideMimeType('text/xml'); 
                } 
            } 
        }
        catch(e){ 
            A = null; 
        } 
        return A;
    },
    Ajax_Send:function(url,callback,method,sdata,asyn){
        //初始化变量
        method = method || "GET";
        sdata = (sdata === undefined)? null: sdata;
        asyn = (asyn === undefined)? true: asyn;
        
        //发送请求
        var X = new this.Ajax_Object();
        X.open(method, url, asyn);
        X.setRequestHeader("Content-Type","text/xml; charset=utf-8"); 
        if(asyn)   
            X.onreadystatechange = function(){ Ajax.ExecuteCallback(X, callback);};   
        X.send(sdata);
        
        //返回或者回调
        
        if(asyn) return X;
        else this.ExecuteCallback(X, callback);
    },
    ExecuteCallback:function(req,callback){
    
        if(req.readyState==4&&req.status==200){
            callback(req.responseText,req.status);
        }else{
            if(Ajax.Aswitch==true)
                callback("","");
            else
                return;
        }
    }
}

//===显示错误信息===
window.onerror = function(msg,url,line){
    alert("Msg:"+msg+"\n\nurl:"+url+"\n\nline:"+line);
    return true;
}
