/* Copyright (c) 1995-2008 Choice Hotels International, Inc. All Rights Reserved. */
if((typeof window.XMLHttpRequest)=="undefined"){window.XMLHttpRequest=function XMLHttpRequest(){if(window.ActiveXObject){var names=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var i=0;i<names.length;i++){try{var obj=new ActiveXObject(names[i]);return obj}catch(error){}}throw new Error("MSXML is not installed.")}throw new Error("XMLHttpRequest is not supported by this browser.")}}var HttpRequest=$Class.create({_ctor:function(options){this.options=options||{};this.request=null},send:function(url,params){var method=this.options.method||"get";var paramstr=this._buildParams(params);if(method=="post"){this.request=this._initRequest("post",url);this.request.send(paramstr)}else {if(paramstr){url=new StringBuffer(url).append((url.indexOf("?")<0)?"?":"&").append(paramstr).toString()}this.request=this._initRequest(method,url);this.request.send(null)}},abort:function(){if(this.request)this.request.abort()},_initRequest:function(method,url){var request=new XMLHttpRequest();request.open(method,url,!this.options.synchronous);request.onreadystatechange=this._onreadystatechange.bind(this,request);request.setRequestHeader("If-Modified-Since",new Date(0));return request},_onreadystatechange:function(request){if(request.readyState==4){this.request=null;request.onreadystatechange=function(){};var cb=this.options["onStatus"+request.status];if(cb)cb(request);if(request.status==200){if(this.options.onSuccess)this.options.onSuccess(request)}else if(this.options.onFailure)this.options.onFailure(request)}},_buildParams:function(params){var paramstr="";if(params instanceof Array){for(var i=0;i<params.length;i++){if(paramstr!=null)paramstr+="&";paramstr+=params[i][0]+"="+params[i][1]}}else if(params!=null)paramstr=params.toString();return paramstr}});