function emptyFun()
{

}

function $(id)
{
	return document.getElementById(id);
}

function $F(id)
{
	return document.getElementById(id).value;
}

function $flash(id)
{
	if (navigator.appName.indexOf("Microsoft") != -1) 
	{
    	return window[id];
	}
	else 
	{
     	return document[id];
    }
}

function getSize(id)
{
	element = $(id);
    var display = $(id).style.display;
    if (display != 'none' && display != null)
      return {width: element.offsetWidth, height: element.offsetHeight};
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    var originalDisplay = els.display;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = 'block';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = originalDisplay;
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
}



function getAbsoluteLeft(ob)
{
	var s_el=0;
	el=ob;
	while(el)
	{
		s_el=s_el+el.offsetLeft;
		el=el.offsetParent;
	}
	return s_el
}

function getAbsoluteTop(ob)
{
	var s_el=0;
	el=ob;
	while(el)
	{
	s_el=s_el+el.offsetTop ;
	el=el.offsetParent;
	}
	return s_el;
}

function Ajax(sUrl,sQueryString,oResultFunc,oFailFunc) 
{
	this.Url = sUrl;
	this.QueryString = sQueryString;
	this.XmlHttp = this.createXMLHttpRequest();
	if (this.XmlHttp == null) 
	{
		alert("erro");
		return;
	}
	var objfun;
	if(!oFailFunc)
	{
		objfun=emptyFun;
	}
	else
		objfun=oFailFunc;
	var objxml = this.XmlHttp;
	objxml.onreadystatechange = function (){Ajax.handleStateChange(objxml,oResultFunc,objfun)};
}

Ajax.prototype.createXMLHttpRequest = function()
 {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
try { return new XMLHttpRequest(); } catch(e) {}
return null;
}

Ajax.prototype.createQueryString = function () {
var queryString = this.QueryString;
return queryString;
}

Ajax.prototype.get = function () {
sUrl = this.Url;
var queryString = sUrl+"?timeStamp=" + new Date().getTime() + "&" + this.createQueryString();
this.XmlHttp.open("GET",queryString,true);
this.XmlHttp.send(null);
}

Ajax.prototype.post = function() {
sUrl = this.Url;
var sUrl = sUrl + "?timeStamp=" + new Date().getTime();
var queryString = this.createQueryString();
this.XmlHttp.open("POST",sUrl,true);
this.XmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
this.XmlHttp.send(queryString);
}

Ajax.handleStateChange = function (XmlHttp,oResultFunc,oFailFunc) 
{
	if (XmlHttp.readyState == 4) 
	{
		if (XmlHttp.status == 200) 
		{
			oResultFunc(XmlHttp);
		} 
		else 
		{
			oFailFunc(XmlHttp);
		}
	}
}

var Events=new Object();

Events.addEvent=function(oTarget,sEventType,funName)
{
    if(oTarget.addEventListener)
	{//for DOM;
  		oTarget.addEventListener(sEventType,funName, false);
 	}
	else if(oTarget.attachEvent)
	{
 		 oTarget.attachEvent("on"+sEventType,funName);
 	}
 	else
 	{
  		oTarget["on"+sEventType]=funName;
 	}
}

Events.removeEvent=function(oTarget,sEventType,funName)
{
    if(oTarget.removeEventListener)
	{//for DOM;
  		oTarget.removeEventListener(sEventType,funName, false);
 	}
 	else if(oTarget.detachEvent)
 	{
  		oTarget.detachEvent("on"+sEventType,funName);
 	}
 	else
 	{
 		 oTarget["on"+sEventType]=null;
 	}
}

function isJSON(str) 
{
    if (str=="") 
		return false;
    str = str.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
}

function remove(id)
{
	var obj=$(id);
	if(obj!=null)
	{
		obj.parentNode.removeChild(obj);	
	}
}

function EnterSelect(id,svalue)
{    
var slt=document.getElementById(id)
var strempty="";
if(slt!=null)
   for(var i=0;i<=slt.childNodes.length-1;i++)
       if((slt.childNodes[i].value+strempty)==svalue )
          { 
             slt.childNodes[i].selected=true;
             break;
          }
}

function insertAfter(newElement,targetElement) {

  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
// 如果最后的节点是目标元素，则直接添加。因为默认是最后
    parent.appendChild(newElement);

  } else {

    parent.insertBefore(newElement,targetElement.nextSibling);
  }

}


