window.$i= window.$id=function(id){ return document.getElementById(id);}
window.$m = window.$name = function(name){ return document.getElementsByName(name);}
window.$n = window.$node = function(tagName,ele){return (Sys.undf(ele)) ? document.getElementsByTagName(tagName) : ele.getElementsByTagName(tagName);};
window.$a = window.$attr =  window.$attribute = function(attribute,ele){return ele.getAttribute(attribute);};
window.$v = window.$value = function(tagName,ele){return (Sys.undf(ele)) ? document.getElementsByTagName(tagName)[0].childNodes[0].nodeValue : ele.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;};

String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g,"");};

window.StringBuffer = function(str)
{
	var arr = [];
	var init = function(str){if(typeof(str)!="undefined")arr[0] = str;};
	this.append = function(appendstr){arr[arr.length] = appendstr; return this;}
	this.toString = function(){return arr.join("");return this;}
	init(str);
}

function __sys()
{
	this.ie;
	this.firefox;
	this.chrome;
	this.opera;
	this.safari;
	
	this.__init = function()
	{
		var ua = navigator.userAgent.toLowerCase();
		var s;
		(s = ua.match(/msie ([\d.]+)/)) ? this.ie = s[1] :
		(s = ua.match(/firefox\/([\d.]+)/)) ? this.firefox = s[1] :
		(s = ua.match(/chrome\/([\d.]+)/)) ? this.chrome = s[1] :
		(s = ua.match(/opera.([\d.]+)/)) ? this.opera = s[1] :
		(s = ua.match(/version\/([\d.]+).*safari/)) ? this.safari = s[1] : 0;
	};
	this.undf = function(ele)
	{
		return (typeof(ele)=='undefined' || ele==null)? true:false;
	}
	this.ref = this.reflect = function (obj, sp)
	{
		if(this.undf(sp)) sp = ",";
	    var tem = "";
		for(var i in obj)
		    tem += i +":"+obj[i]+ sp;
		return tem;
	};
	this.opa = this.opacity = function(ele,op){ 
		try{ ele.style.opacity = parseInt(op)/100;}catch(e){}; 
		try{ ele.style.filter = "alpha(opacity="+op+")";}catch(e){} 
	}
	this.hKey = this.handleKey = function (e,code,func)
	{
		var event = e || window.event;
		var c = (event.which) ? event.which : event.keyCode;
		if(eval("c == "+code))
		{
			func(event);
		    if(window.event)  window.event.returnValue = false;
			else e.preventDefault();//for firefox
		}

	}
	this.getStyle = function(ele){return ele.currentStyle || document.defaultView.getComputedStyle(ele, null);}; 
	this.__init();
}
var Sys = new __sys();


/*
* useAge: var str_a = new XML('<root><a id="as">123<a></root>').$a("a"); //return 123, the innerText of tag a [String]
*/
function XML(xmlstr)
{
	this.dom = null;
    this.xmlstr = "";
    this.data = {};
	//input xml-stirng, return xml dom
	this.__init = function(xmlstr)
	{
		// code for IE
		if(window.ActiveXObject)
		{
			var arr = ["MSXML2.DOMDocument.4.0",
			            "MSXML2.DOMDocument.3.0",
			            "MSXML2.DOMDocument",
			            "Microsoft.XmlDom"];
			
			for(var i=0;i<arr.length; i++)
			{
				try {			
					this.dom = new ActiveXObject(arr[i]);
					this.dom.async= "false"; 
					this.dom.loadXML(xmlstr);
				}catch(e){}
			}
		}
		// code for Mozilla, Firefox, Opera, etc.
		else
		{
			this.dom = new DOMParser().parseFromString(xmlstr,"text/xml").documentElement; 	
		}
		return this;
	}
	
	//get child elements,  return array
    this.$n = function(tagName,ele)
	{
		try{
			if(typeof(ele) == "undefined")
			{
	           return this.dom.getElementsByTagName(tagName);
	        }
			else
			{
				return ele.getElementsByTagName(tagName);
			}
		}catch(e){alert(e.message);}
	};
    //get  childNode value
	this.$v = function(tagName,ele)
	{
		try{
		if(typeof(ele) == "undefined") return this.dom.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
		else return ele.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
		}catch(e){return "";}
	}
    //get attribute
	this.$a = function(attr,ele)
	{
        try{
			if(typeof(ele) == "undefined") return this.dom.getAttribute(attr);
			else return ele.getAttribute(attr);
		}catch(e){return "";}
	}
	//init
	return this.__init(xmlstr);
}

function Ajax()
{
	this.xmlhttp = null;
	//buffer object
    this.data = null;
    
	this._init = function()
	{
		//for IE
		if (window.ActiveXObject) 
		{
			var arr = ["MSXML2.XMLHTTP.4.0",
						  "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP",
						  "Microsoft.XMLHTTP"];
			for(var i=0 ; i < arr.length; i++)
			{
				try
				{
					this.xmlhttp = new ActiveXObject(arr[i]);
					break;
				}catch(e){}
			}
		}
		//for  Mozilla, Firefox
		else if (window.XMLHttpRequest) 
		{
			this.xmlhttp = new XMLHttpRequest();
		}

		//some version of mozilla haven't readyState attribute
        if(this.xmlhttp.readyState == null)
        {
        	this.xmlhttp.readyState = 0;
    
        	this.xmlhttp.addEventListener("load", function ()
           {
        		this.xmlhttp.readyState = 4;
    
				if (typeof this.xmlhttp.onreadystatechange == "function")
				{
					this.xmlhttp.onreadystatechange();
				}
			},  false);
        }
  
        return this;
	}

	//send request(method[post,get], request path, data[for post, get is null or ""], call back function[parameters: XmlHttpRequest])
    this.sendReq = function (method, url, data, callback, params)
    {
    	var req = this.xmlhttp;
        try
		{
			//to prevent buffer
			if (url.indexOf("?") > 0) url += "&" + Math.random();
			else url += "?" + Math.random();

			req.open(method, url, true);
           
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
			req.send(data);
			req.onreadystatechange = function ()
            {
                if(req.readyState == 4 && (req.status == 200 || req.status == 304))
                {
                    callback(req,params);
                }
            }
        }
        catch(e)
        {
            alert(e.message);
        }
    };
    this.sendURL = this.sendReq;
    
	this.load = function (url, ele)
    {
		var req = this.xmlhttp;
        try
		{
			//to prevent buffer
			if (url.indexOf("?") > 0)	url += "&" + Math.random();
			else url += "?" + Math.random();

			req.open("get", url, true);
   
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
			req.send(null);
			req.onreadystatechange = function ()
            {
                if(req.readyState == 4 && (req.status == 200 || req.status == 304))
                {
                    ele.innerHTML = req.responseText.replace(/(^\s*)|(\s*$)/g,"");
                }
            }
        }
        catch(e)
        {
            alert(e.message);
        }
    };
	
	this.get = function(url,callback){
		this.sendReq("get",url,null,function(xh){
		    callback(xh);
	    });
	};
	this.post = function(url,data,callback){
		this.sendReq("post",url,data,function(xh){
		    callback(xh);
	    });
	};
	//quit current request
	this.quit = function(){this.xmlhttp.abort();};
	
	return this._init();
};

function getScript(url,id)
{
	Script(url,id)
}
var get_script_id = new Date().getTime()+"";
function Script(url,id)
{
	this.__init = function(url,id)
	{
		if(typeof(url)=="undefined")
		{
			alert("params is not right!");
			return false;
		}
		if(typeof(id)!= "undefined")
		{
			id = "get_script_"+get_script_id;
		}
		if(!document.getElementById(id))
		{
			var div1 = document.createElement("div");
			div1.id = id;
			div1.style.display="none";
			document.body.appendChild(div1);
		}
		var scr1 = document.createElement("script");
        scr1.type="text/javascript";
		scr1.src=url;
		document.getElementById(id).innerHTML = "";
		document.getElementById(id).appendChild(scr1);
	}
    return this.__init(url,id);
}
function loadIframe(url,id)
{
	this.__init = function(url,id)
	{
		if(typeof(url)=="undefined")
		{
			alert("params is not right!");
			return false;
		}
		if(typeof(id)!= "undefined")
		{
			id = "load_iframe_"+get_script_id;
		}
		
		if(!document.getElementById(id))
		{
			var div1 = document.createElement("div");
			div1.id = id;
			div1.style.display="none";
			document.body.appendChild(div1);
		}
		var scr1 = document.createElement("iframe");
		scr1.setAttribute("width", "0");
		scr1.setAttribute("height", "0");
		scr1.setAttribute("src", url);
	
		document.getElementById(id).innerHTML = "";
		document.getElementById(id).appendChild(scr1);
	}
    return this.__init(url,id);
}

//load string
function getLoadString(str)
{
	if(typeof(str)=="undefined")
	{
		str = "载入中...";
	}
	return "<table width='100%' height='80'><tr><td align='center'><table><tr><td><img src='/user/images1/loading.gif'></td><td>"+str+"</td></tr></table></td></tr></table>";
}