

    // 通用函数
    function $( ID )
    {
        return document.getElementById( ID );
    }
    
    
    // 通用添加事件的方法
    // AddEvent( $('A'), "click", function(){ alert(2); } );
    // AddEvent( $('A'), "click", [方法名] );
    function AddEvent( obj, evt, fn )
    {
        if( obj.addEventListener )
        {
            obj.addEventListener( evt, fn, false );
        }
        else if( obj.attachEvent )
        {
            obj.attachEvent( 'on'+evt, fn );
        }
    }  
    
    
    
    // 判断IE
    var IsIE = ( navigator.appName == "Microsoft Internet Explorer" )

    
    // 通用的Event对象
    function getEvent() 
    {  
        if(document.all) return window.event; 
           
        var func = getEvent.caller;        
        while( func!=null )
        {  
            var arg0 = func.arguments[0];
            if( arg0 )
            {
                if( ( arg0.constructor==Event || arg0.constructor ==MouseEvent ) || ( typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation ) )
                {  
                    return arg0;
                }
            }
            func = func.caller;
        }
        
        return null;
    }    
    
    function IdPosition( objID )
    {
        return ObjPosition( document.getElementById( objID ) );
    }
    
    function ObjPosition( objValue )
    {
        var T = 0, L = 0, W = 0, H = 0;
        
        if( objValue != undefined )
        {
            var InputObj  = objValue;
	        var InputTop  = InputObj.offsetTop;
	        var InputLeft = InputObj.offsetLeft;
	        while ( InputObj = InputObj.offsetParent )
	        {
	            if( InputObj.tagName.toLowerCase() == "fieldset" )
	            {
	                InputTop  += 8;
	                InputLeft += 10;
	            }
			
		        InputTop	+= InputObj.offsetTop; 
		        InputLeft	+= InputObj.offsetLeft;
	        }
			
			T = parseInt( InputTop, 10 );
			L = parseInt( InputLeft, 10 );
			W = parseInt( objValue.offsetWidth, 10 );
			H = parseInt( objValue.offsetHeight, 10 );
        }
        
        return { T:T, L:L, W:W, H:H };
    }
    
    
    
    // 通用的PublicAjax对象
    function PublicAjax()
    {
        var PublicAjaxVObj;

        try
        {
            PublicAjaxVObj = new ActiveXObject("msxml2.xmlhttp");
        }
        catch(error1)
        {
            try
            {
                PublicAjaxVObj = new ActiveXObject("microsoft.xmlhttp");
            }
            catch(error2)
            {
                PublicAjaxVObj = new XMLHttpRequest();
            }
        }
        
        return PublicAjaxVObj;
    }
    
    
    // Url关键字替换
    function UrlEncode( Value )
    {
        // 对于url关键字特殊处理一次
        return Value.replace( /&/g, '%26' ).replace( /;/g, '%3b' ).replace( /:/g, '%3a' ).replace( /\//g, '%2f' ).replace( /@/g, '%40' ).replace( /\+/g, '%2b' );
    }

///// xml ////////////////////////////

