Ajax={Initialize:function()
{var me="Ajax";
for(var object in this)
{if(object!="Initialize")
{eval("window."+me+"."+object+" = new window."+me+"."+object+"()");}}},Members:function()
{this.xmlObjs=new Array(0);},Request:function()
{this.Send=function(url,callback,method,data)
{var signature=("s"+Math.round((new Date()).getTime()*Math.random()*101));var handler=function(error)
{var result=Ajax.Response.Handler(signature);if(typeof callback!='function')
callback=eval(callback);if(result==1)
{callback(url,Ajax.Members.xmlObjs[signature].XmlObj.responseText);delete Ajax.Members.xmlObjs[signature];}
else if(result==0||error)
{callback(url,null);delete Ajax.Members.xmlObjs[signature];}};var request={Url:url,Method:method?method:"GET",Data:data?data:"",Handler:handler,XmlObj:null,Date:new Date()};Ajax.Members.xmlObjs[signature]=request;Ajax.Xml.Send(request);}},Response:function()
{this.Handler=function(signature)
{var reqObj=Ajax.Members.xmlObjs[signature];if(reqObj&&reqObj.XmlObj.readyState==4)
return reqObj.XmlObj.status==200;};},Xml:function()
{this.Send=function(RequestObject)
{var xml=Ajax.Xml.GetNewRequestObject();if(xml)
{with(RequestObject)
{XmlObj=xml;XmlObj.onreadystatechange=Handler;try
{XmlObj.open(Method,Url,1);XmlObj.send(Data);}
catch(exception)
{Handler(1);}}}};this.GetNewRequestObject=function()
{if(window.XMLHttpRequest)
{try
{return new XMLHttpRequest();}
catch(exception)
{}}
else if(window.ActiveXObject)
{try
{return new ActiveXObject("Msxml2.XMLHTTP");}
catch(exception)
{try
{return new ActiveXObject("Microsoft.XMLHTTP");}
catch(fallback)
{}}}
return 0;}}};Ajax.Initialize();