/* (c) LoopNet Ajax Version 2.3 */
LNJS.__ajax=true;LNJS.Ajax=({getTransport:function(){return Try.these(function(){return new XMLHttpRequest();},function(){return new ActiveXObject('Msxml2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');})||false;},transport:null,Queue:new LNJS.HashTable(),ActiveAjaxRequestsCount:0,ActiveAjaxGroupRequestsCount:new Object(),AjaxRequestsCount:0,addToQueue:function(req){if(req.options.queueLength>0&&(req.options.onComplete||req.options.onSuccess)){if(!LNJS.isNull(req.options.groupName)){queueName=req.options.groupName;}else if(!LNJS.isNull(req.options.callbackName)){queueName=req.options.callbackName;}else{queueName=(req.options.onComplete||req.options.onSuccess).toString().replace(/function /,'');queueName=queueName.substr(0,queueName.indexOf('('));}if(LNJS.Ajax.Queue.contains(queueName)){if(LNJS.Ajax.Queue.contains(queueName+'__pending')){if(req.options.bTrace){}}else{if(req.options.bTrace){}}LNJS.Ajax.Queue.set(queueName+'__pending',req);return false;}else{if(req.options.bTrace){}LNJS.Ajax.Queue.set(queueName,req);}}return true;},removeFromQueue:function(req){if(req.options.queueLength>0&&(req.options.onComplete||req.options.onSuccess)){if(!LNJS.isNull(req.options.groupName)){queueName=req.options.groupName;}else if(!LNJS.isNull(req.options.callbackName)){queueName=req.options.callbackName;}else{queueName=(req.options.onComplete||req.options.onSuccess).toString().replace(/function /,'');queueName=queueName.substr(0,queueName.indexOf('('));}if(LNJS.Ajax.Queue.contains(queueName)){if(req.options.bTrace){}LNJS.Ajax.Queue.remove(queueName);}if(LNJS.Ajax.Queue.contains(queueName+'__pending')){req=LNJS.Ajax.Queue.items[queueName+'__pending'];if(req.options.bTrace){}LNJS.Ajax.Queue.remove(queueName+'__pending');req.send();}}},isActive:function(){return(LNJS.Ajax.ActiveAjaxRequestsCount>0);},get:function(url,options){options.method='get';return LNJS.Ajax.send(url,options);},post:function(url,options){options.method='post';return LNJS.Ajax.send(url,options);},send:function(url,options){return new LNJS.Ajax.Request(url,options);},submit:function(form,options){options.postBody=GetSoapInput('<PFRequestData><![CDATA['+Form.serialize(form)+']]></PFRequestData>',options.SOAPMethod,options.SOAPNamespace);options.method=form.method.toLowerCase();new LNJS.Ajax.Request(form.action,options);}});LNJS.Ajax.Base=function(){};LNJS.Ajax.Base.prototype={setOptions:function(options){this.options={bTrace:true,method:'post',parameters:'',aborted:false,queueLength:-1,asynchronous:true,reuseTransport:false,responseReceived:false,generateUniqueUrl:false,SOAPNamespace:'http://www.loopnet.com/WebServices',on403:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Error 403: "'+t.statusText+'" Forbidden.');},on404:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Error 404: location was not found.');},on408:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Error 408: "'+t.statusText+'" Request Timeout.');},on504:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Error 504: "'+t.statusText+'" Gateway Timeout.');},onFailure:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Failure: Status '+t.status+' -- '+t.statusText);},onReturnCode_1:function(t){if(this.bTrace)LNJS.Trace.error('Ajax Logging Server Error: ReturnCode -1       '+t.responseXML.selectSingleNode("//PFResponseInfo").xml);}}.extend(options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}};LNJS.Ajax.Request=Class.create();LNJS.Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];LNJS.Ajax.Request.prototype=(new LNJS.Ajax.Base()).extend({initialize:function(url,options){this.__className="LNJS.Ajax.Request";this.__onLoadingHandled=false;this.__onLoadedHandled=false;this.__onInteractiveHandled=false;this.__onCompleteHandled=false;this.url=url;this.setOptions(options);this.transport=LNJS.Ajax.getTransport(this.options);this.requestIndex=LNJS.Ajax.AjaxRequestsCount++;return(url)?this.send():null;},send:function(){if(!LNJS.Ajax.addToQueue(this))return;statusText='starting send';var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{statusText='moving parameters to url';if(this.options.method=='get'){if(this.options.generateUniqueUrl)parameters+='&AjaxUID='+new Date().getTime()+""+this.requestIndex;if(parameters.length>0)this.url+='?'+parameters;}statusText='opening url '+this.url;this.transport.open(this.options.method,this.url,this.options.asynchronous,this.options.username,this.options.password);statusText='setting onreadystatechange';if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);}statusText='setting request headers';this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;if(this.options.bTrace){LNJS.Trace.info('Ajax '+this.options.method.toUpperCase()+' (async '+this.options.asynchronous+') to '+this.url,'ajax_call'+this.requestIndex);if(this.options.method=='post'&&body.length>0)LNJS.Trace.debug(body,'ajax_call'+this.requestIndex);}statusText='setting request timeout';if(this.options.timeout>0){this.timeoutid=setTimeout((function(){this.onTimeout(this);}).bind(this),this.options.timeout);}statusText='sending request';this.transport.send(this.options.method=='post'?body:null);if(!this.options.asynchronous){if(this.options.bTrace){LNJS.Trace.info('Ajax Call Completed: Status '+this.transport.status);LNJS.Trace.debug((this.transport.responseXML&&this.transport.responseXML.xml.length>0)?this.transport.responseXML:this.transport.responseText,'ajax_call'+this.requestIndex);}this.responseReceived=true;this.status=this.transport.status;this.statusText=this.transport.statusText;this.responseText=this.transport.responseText;this.responseXML=this.transport.responseXML;this.ReturnCode=LNJS.Xml.getReturnCode(this.transport.responseXML);(this.options['on'+LNJS.Ajax.Request.Events[this.transport.readyState]]||LNJS.emptyFunction)(this);(this.options['on'+this.transport.status]||LNJS.emptyFunction)(this);(this.options['onReturnCode'+this.ReturnCode]||LNJS.emptyFunction)(this);(this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||LNJS.emptyFunction)(this);delete this.transport['onreadystatechange'];this.transport=null;return this;}}catch(e){if(this.options.bTrace)LNJS.Trace.error("Ajax Error: "+statusText+"; Message="+e.message+"; Error Number="+(e.number&0xFFFF)+"; File="+e.fileName+"; Line="+e.lineNumber+"; Name="+e.name);(this.options['onFailure']||LNJS.emptyFunction)(this);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-LNJS-Version',LNJS.Version];if(this.options.method=='post'){if(this.options.SOAPMethod){requestHeaders.push('SOAPAction',this.options.SOAPNamespace+'/'+this.options.SOAPMethod);requestHeaders.push('Content-type','text/xml');}else{requestHeaders.push('Content-type','application/x-www-form-urlencoded');}if(this.transport.overrideMimeType)requestHeaders.push('Connection','close');}if(this.options.requestHeaders)requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);if(LNJS.__IS_MOZ){requestHeaders.push('Accept-Encoding','');if(this.options.bTrace)LNJS.Trace.warn("TODO: FIX MOZ GZIP HACK: "+requestHeaders.inspect());}for(var i=0;i<requestHeaders.length;i+=2)this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);},onStateChange:function(){this.readyState=this.transport.readyState;(this['__on'+LNJS.Ajax.Request.Events[this.transport.readyState]]||LNJS.emptyFunction)(this);},__onLoading:function(req){if(req.__onLoadingHandled){return;}LNJS.Ajax.ActiveAjaxRequestsCount++;if(LNJS.Ajax.ActiveAjaxRequestsCount==1){(req.options['onRequestBegin']||LNJS.emptyFunction)(this);(window['AjaxRequestBegin']||LNJS.emptyFunction)(this);}if(req.options.groupName!=null){if(typeof(LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName])=="undefined"){LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]=0;}LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]++;if(LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]==1&&typeof(req.options.onGroupBegin)=="function"){req.options.onGroupBegin(req.options.groupName);}}(req.options['onLoading']||LNJS.emptyFunction)(this);req.__onLoadingHandled=true;},__onInteractive:function(req){if(req.__onInteractiveHandled){return;}(req.options['onInteractive']||LNJS.emptyFunction)(this);req.__onInteractiveHandled=true;},__onLoaded:function(req){if(req.__onLoadedHandled){return;}(req.options['onLoaded']||LNJS.emptyFunction)(this);req.__onLoadedHandled=true;},__onComplete:function(req){if(req.__onCompleteHandled||req.aborted){return;}if(req.timeoutid)clearTimeout(req.timeoutid);if(req.options.bTrace){LNJS.Trace.info('Ajax Call Completed: Status '+req.transport.status,'ajax_call'+req.requestIndex);LNJS.Trace.debug((req.transport.responseXML&&req.transport.responseXML.xml&&req.transport.responseXML.xml.length>0)?req.transport.responseXML:req.transport.responseText,'ajax_call'+req.requestIndex);}req.__onCompleteHandled=true;LNJS.Ajax.ActiveAjaxRequestsCount--;if(LNJS.Ajax.ActiveAjaxRequestsCount==0){(req.options['onRequestEnd']||LNJS.emptyFunction)(this);(window['AjaxRequestEnd']||LNJS.emptyFunction)(this);}if(req.options.groupName!=null){LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]--;if(LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]==0&&typeof(req.options.onGroupEnd)=="function"){req.options.onGroupEnd(req.options.groupName);}}LNJS.Ajax.removeFromQueue(req);if(LNJS.__IS_MOZ&&req.options.SOAPMethod&&req.transport.responseXML==null&&req.transport.responseText.indexOf("HTTP/1.1 100 Continue")!=-1&&((xmlStart=req.transport.responseText.indexOf("<"))!=-1)){var respText=req.transport.responseText.substring(xmlStart);var respDoc=LNJS.Xml.getDomDocument();respDoc=(new DOMParser()).parseFromString(respText,"text/xml");if(respDoc.parseError!=0||(respDoc&&respDoc.documentElement.tagName=="parsererror")){req.responseText=req.transport.responseText;req.responseXML=req.transport.responseXML;if(req.options.bTrace){LNJS.Trace.warn('MOZ GZIP HACK: UNABLE TO FIX XML DOC! '+((respDoc)?respDoc.xml:LNJS.Xml.getParseErrorText(respDoc)),'ajax_call'+req.requestIndex);}}else{req.responseText=respText;req.responseXML=respDoc;if(req.options.bTrace){LNJS.Trace.warn('TODO: FIX MOZ GZIP HACK!','ajax_call'+req.requestIndex);LNJS.Trace.warn((req.responseXML&&req.responseXML.xml.length>0)?req.responseXML:req.responseText,'ajax_call'+req.requestIndex);}}}else{req.responseText=req.transport.responseText;req.responseXML=req.transport.responseXML;}req.responseReceived=true;req.status=req.transport.status;req.statusText=req.transport.statusText;req.ReturnCode=LNJS.Xml.getReturnCode(req.responseXML);(req.options['onComplete']||LNJS.emptyFunction)(req);(req.options['on'+req.transport.status]||LNJS.emptyFunction)(req);(req.options['onReturnCode'+req.ReturnCode]||LNJS.emptyFunction)(req);(req.options['on'+(req.responseIsSuccess()?'Success':'Failure')]||LNJS.emptyFunction)(req);delete req.transport['onreadystatechange'];req.transport=null;},onTimeout:function(req){if(req.transport!=null&&!req.__onCompleteHandled){req.aborted=true;req.transport.abort();LNJS.Ajax.ActiveAjaxRequestsCount--;if(LNJS.Ajax.ActiveAjaxRequestsCount==0&&typeof(window['AjaxRequestEnd'])=="function"){AjaxRequestEnd(req.options.groupName);}if(req.options.groupName!=null){LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]--;if(LNJS.Ajax.ActiveAjaxGroupRequestsCount[req.options.groupName]==0&&typeof(req.options.onGroupEnd)=="function"){req.options.onGroupEnd(req.options.groupName);}}LNJS.Ajax.removeFromQueue(req);(req.options['onTimeout']||LNJS.emptyFunction)(req);(req.options['onFailure']||LNJS.emptyFunction)(req);delete req.transport['onreadystatechange'];req.transport=null;}}});LNJS.Ajax.Updater=Class.create();LNJS.Ajax.Updater.ScriptFragment='(?:<script.*?>)((\n|.)*?)(?:<\/script>)';LNJS.Ajax.Updater.prototype.extend(LNJS.Ajax.Request.prototype).extend({initialize:function(container,url,options){this.__className="LNJS.Ajax.Updater";this.containers={success:container.success?$(container.success):$(container),failure:container.failure?$(container.failure):(container.success?null:$(container))};this.setOptions(options);this.transport=LNJS.Ajax.getTransport(this.options);var onComplete=this.options.onComplete||LNJS.emptyFunction;this.options.onComplete=(function(){this.updateContent();onComplete(this.transport);}).bind(this);this.url=url;this.send();},updateContent:function(){var receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var match=new RegExp(LNJS.Ajax.Updater.ScriptFragment,'img');var response=this.transport.responseText.replace(match,'');var scripts=this.transport.responseText.match(match);if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response);}else{receiver.innerHTML=response;}}if(this.responseIsSuccess()){if(this.onComplete)setTimeout((function(){this.onComplete(this.transport);}).bind(this),10);}if(this.options.evalScripts&&scripts){match=new RegExp(LNJS.Ajax.Updater.ScriptFragment,'im');setTimeout((function(){for(var i=0;i<scripts.length;i++)eval(scripts[i].match(match)[1]);}).bind(this),10);}}});LNJS.Ajax.PeriodicalUpdater=Class.create();LNJS.Ajax.PeriodicalUpdater.prototype=Object.extend(new LNJS.Ajax.Base(),{initialize:function(container,url,options){this.__className="LNJS.Ajax.PeriodicalUpdater";this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||LNJS.Ajax.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new LNJS.Ajax.Updater(this.container,this.url,this.options);}});function RemoteAJAXCall(fCallBack,sUrl,sXml,sMethodName,sNamespace,iErrorSource,sServiceSource,bTrace){var self=this;if(bTrace==null)bTrace=true;var options=({queueLength:1,bTrace:bTrace,SOAPMethod:sMethodName,SOAPNamespace:sNamespace,postBody:GetSoapInput(sXml,sMethodName,sNamespace,sServiceSource,bTrace),onComplete:fCallBack});LNJS.Ajax.post(sUrl,options);}function RemoteScriptingCall(sUrl,sXml,sMethodName,sNamespace,sRootNodeToSelect,iErrorSource,sServiceSource,bTrace){if(bTrace==null)bTrace=true;var xdReturn=null;var sSOAPAction=sNamespace+'/'+sMethodName;var sSOAPInput=GetSoapInput(sXml,sMethodName,sNamespace,bTrace);try{var options=({queueLength:1,bTrace:bTrace,asynchronous:false,SOAPMethod:sMethodName,SOAPNamespace:sNamespace,postBody:GetSoapInput(sXml,sMethodName,sNamespace,sServiceSource,bTrace)});var xmlHttp=LNJS.Ajax.post(sUrl,options);if(xmlHttp.status==200){if(xmlHttp.responseXML!=null&&xmlHttp.responseXML.xml.length>0){if(sRootNodeToSelect!=null){xdRootNode=xmlHttp.responseXML.selectSingleNode("//"+sRootNodeToSelect);if(xdRootNode!=null)xdReturn=xdRootNode;}else{xdReturn=xmlHttp;}}}else{var e=new Error(xmlHttp.status,"There was a problem retrieving the XML data. Status Code: "+xmlHttp.status+"\n");e.name="Error";e.message+=xmlHttp.responseXML.xml;throw(e);}}catch(e){var sErrorDetails="RemoteScriptingCall: An error occured: Message="+e.message+"; Error Number="+(e.number&0xFFFF)+"; File="+e.fileName+"; Line="+e.lineNumber+"; Name="+e.name;if(bTrace)LNJS.Trace.warn(sErrorDetails);if(typeof TrackWebErrors=='function'){var sModule="Ajax";var sMethod="RemoteScriptingCall";var iErrType=60;if(iErrorSource==null)iErrorSource=480;var sInputData="XmlHttpPost URL="+sUrl+"; InputXML="+(sSOAPInput);if(bTrace)LNJS.Trace.info('Calling TrackWebErrors\nsModule: '+sModule+'\nsMethod: '+sMethod+'\niErrType: '+iErrType+'\niErrorSource: '+iErrorSource+'\nsInputData: '+sInputData);TrackWebErrors(sModule,sMethod,iErrType,iErrorSource,sInputData,sErrorDetails);}}return xdReturn;}function GetSoapInput(sXml,sMethodName,sNamespace,sServiceSource,bTrace){var sSOAPHeader='<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>';sSOAPHeader+='<'+sMethodName+' xmlns="'+sNamespace+'"><docRequest>';var sSOAPFooter='</docRequest></'+sMethodName+'>';sSOAPFooter+='</soap:Body></soap:Envelope>';var sSOAPAction=sNamespace+'/'+sMethodName;var sInputXml="<WebServiceRequest";if(typeof sServiceSource=='string'&&sServiceSource+""!="")sInputXml+=" ServiceSourceCode=\""+sServiceSource+"\"";else if(LNJS.GV(LNJS.ServiceSourceCode)){if(LNJS.ServiceSourceCode+""!=""){sInputXml+=" ServiceSourceCode=\""+LNJS.ServiceSourceCode+"\"";}}if(LNJS.GV(LNJS.xGUID)){if(LNJS.xGUID+""!=""){sInputXml+=" PageExecutionGuid=\""+LNJS.xGUID+"\"";}}sInputXml+="><PFRequestInfo RequestIndex=\""+(LNJS.Ajax.AjaxRequestsCount+1)+"\"";if(LNJS.GV(LNJS.sSID,null)){sInputXml+=" SessionGUID=\""+LNJS.sSID+"\"";}else if(LNJS.GV(window.sSID,null)){sInputXml+=" SessionGUID=\""+window.sSID+"\"";}sInputXml+=">";if(LNJS.GV(LNJS.iSID,null)){sInputXml+="<Site SiteID=\""+LNJS.iSID+"\" />";}else if(LNJS.GV(window.iSID,null)){sInputXml+="<Site SiteID=\""+window.iSID+"\" />";}if(LNJS.GV(LNJS.iLID,null))sInputXml+="<LoopLocal LoopLocalID=\""+LNJS.iLID+"\" />";if(LNJS.GV(LNJS.iSID,null)){if(parseInt(LNJS.iSID)<2){if(LNJS.GV(LNJS.User.iSUID,null))sInputXml+="<SiteUser SiteUserID=\""+LNJS.User.iSUID+"\" />";if(LNJS.GV(LNJS.User.iAID,null))sInputXml+="<Associate AssociateID=\""+LNJS.User.iAID+"\" />";}}sInputXml+="</PFRequestInfo>"+sXml+"</WebServiceRequest>";return sSOAPHeader+sInputXml+sSOAPFooter;}function ShowRemoteScriptingMsg(sFunctionCall,sMessage,sMessageElement,bCenterInPage){try{try{var el=document.getElementById(sMessageElement);el.innerHTML=sMessage;if(bCenterInPage){var myWidth=0,myHeight=0;if(typeof(window.innerWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){myWidth=document.documentElement.clientWidth;myHeight=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){myWidth=document.body.clientWidth;myHeight=document.body.clientHeight;}var myDivWidth=parseInt(el.style.width.replace("px",""));var myDivHeight=parseInt(el.style.height.replace("px",""));el.style.left=(myWidth-myDivWidth)/2;el.style.top=(myHeight-myDivHeight)/2;el.style.display='block';}else{el.style.display='inline';}}catch(exinternal){}setTimeout(sFunctionCall,20);}catch(ex){}}function HideRemoteScriptingMsg(sMessageElement){try{var el=document.getElementById(sMessageElement);el.style.display='none';}catch(ex){}}
