function AjaxRequest() { var req = new Object(); req.timeout = null; req.generateUniqueUrl = true; req.url = window.location.href; req.method = "POST"; req.async = true; req.username = null; req.password = null; req.parameters = new Object(); req.requestIndex = AjaxRequest.numAjaxRequests++; req.responseReceived = false; req.groupName = null; req.queryString = ""; req.responseText = null; req.responseXML = null; req.status = null; req.statusText = null; req.aborted = false; req.xmlHttpRequest = null; req.onTimeout = null; req.onLoading = null; req.onLoaded = null; req.onInteractive = null; req.onComplete = null; req.onSuccess = null; req.onError = null; req.onGroupBegin = null; req.onGroupEnd = null; req.xmlHttpRequest = AjaxRequest.getXmlHttpRequest(); if(req.xmlHttpRequest == null) { return null;}
req.xmlHttpRequest.onreadystatechange = function() { if(req == null || req.xmlHttpRequest == null) { return;}
if(req.xmlHttpRequest.readyState == 1) { req.onLoadingInternal(req);}
if(req.xmlHttpRequest.readyState == 2) { req.onLoadedInternal(req);}
if(req.xmlHttpRequest.readyState == 3) { req.onInteractiveInternal(req);}
if(req.xmlHttpRequest.readyState == 4) { req.onCompleteInternal(req); urchinTracker("/detailview/contactform/" ); }
}; req.onLoadingInternalHandled = false; req.onLoadedInternalHandled = false; req.onInteractiveInternalHandled = false; req.onCompleteInternalHandled = false; req.onLoadingInternal = function() { if(req.onLoadingInternalHandled) { return;}
AjaxRequest.numActiveAjaxRequests++; if(AjaxRequest.numActiveAjaxRequests == 1 && typeof(window['AjaxRequestBegin']) == "function") { AjaxRequestBegin();}
if(req.groupName != null) { if(typeof(AjaxRequest.numActiveAjaxGroupRequests[req.groupName]) == "undefined") { AjaxRequest.numActiveAjaxGroupRequests[req.groupName] = 0;}
AjaxRequest.numActiveAjaxGroupRequests[req.groupName]++; if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName] == 1 && typeof(req.onGroupBegin) == "function") { req.onGroupBegin(req.groupName);}
}
if(typeof(req.onLoading) == "function") { req.onLoading(req);}
req.onLoadingInternalHandled = true;}; req.onLoadedInternal = function() { if(req.onLoadedInternalHandled) { return;}
if(typeof(req.onLoaded) == "function") { req.onLoaded(req);}
req.onLoadedInternalHandled = true;}; req.onInteractiveInternal = function() { if(req.onInteractiveInternalHandled) { return;}
if(typeof(req.onInteractive) == "function") { req.onInteractive(req);}
req.onInteractiveInternalHandled = true;}; req.onCompleteInternal = function() { if(req.onCompleteInternalHandled || req.aborted) { return;}
req.onCompleteInternalHandled = true; AjaxRequest.numActiveAjaxRequests--; if(AjaxRequest.numActiveAjaxRequests == 0 && typeof(window['AjaxRequestEnd']) == "function") { AjaxRequestEnd(req.groupName);}
if(req.groupName != null) { AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--; if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName] == 0 && typeof(req.onGroupEnd) == "function") { req.onGroupEnd(req.groupName);}
}
req.responseReceived = true; req.status = req.xmlHttpRequest.status; req.statusText = req.xmlHttpRequest.statusText; req.responseText = req.xmlHttpRequest.responseText; req.responseXML = req.xmlHttpRequest.responseXML; if(typeof(req.onComplete) == "function") { req.onComplete(req);}
if(req.xmlHttpRequest.status == 200 && typeof(req.onSuccess) == "function") { req.onSuccess(req); urchinTracker("/detailview/contactform/" );}
else if(typeof(req.onError) == "function") { req.onError(req);}
delete req.xmlHttpRequest['onreadystatechange']; req.xmlHttpRequest = null;}; req.onTimeoutInternal = function() { if(req != null && req.xmlHttpRequest != null && !req.onCompleteInternalHandled) { req.aborted = true; req.xmlHttpRequest.abort(); AjaxRequest.numActiveAjaxRequests--; if(AjaxRequest.numActiveAjaxRequests == 0 && typeof(window['AjaxRequestEnd']) == "function") { AjaxRequestEnd(req.groupName);}
if(req.groupName != null) { AjaxRequest.numActiveAjaxGroupRequests[req.groupName]--; if(AjaxRequest.numActiveAjaxGroupRequests[req.groupName] == 0 && typeof(req.onGroupEnd) == "function") { req.onGroupEnd(req.groupName);}
}
if(typeof(req.onTimeout) == "function") { req.onTimeout(req);}
delete req.xmlHttpRequest['onreadystatechange']; req.xmlHttpRequest = null;}
}; req.process = function() { if(req.xmlHttpRequest != null) { if(req.generateUniqueUrl && req.method == "GET") { req.parameters["AjaxRequestUniqueId"] = new Date().getTime() + "" + req.requestIndex;}
var content = null; for(var i in req.parameters) { if(req.queryString.length > 0) { req.queryString += "&";}
req.queryString += encodeURIComponent(i) + "=" + encodeURIComponent(req.parameters[i]);}
if(req.method == "GET") { if(req.queryString.length > 0) { req.url += ((req.url.indexOf("?") >- 1) ? "&" : "?") + req.queryString;}
}
req.xmlHttpRequest.open(req.method, req.url, req.async, req.username, req.password); if(req.method == "POST") { if(typeof(req.xmlHttpRequest.setRequestHeader) != "undefined") { req.xmlHttpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');}
content = req.queryString;}
if(req.timeout > 0) { setTimeout(req.onTimeoutInternal, req.timeout);}
req.xmlHttpRequest.send(content);}
}; req.handleArguments = function(args) { for(var i in args) { if(typeof(req[i]) == "undefined") { req.parameters[i] = args[i];}
else { req[i] = args[i];}
}
}; req.getAllResponseHeaders = function() { if(req.xmlHttpRequest != null) { if(req.responseReceived) { return req.xmlHttpRequest.getAllResponseHeaders();}
alert("Cannot getAllResponseHeaders because a response has not yet been received");}
}; req.getResponseHeader = function(headerName) { if(req.xmlHttpRequest != null) { if(req.responseReceived) { return req.xmlHttpRequest.getResponseHeader(headerName);}
alert("Cannot getResponseHeader because a response has not yet been received");}
}; return req;}
AjaxRequest.getXmlHttpRequest = function() { if(window.XMLHttpRequest) { return new XMLHttpRequest();}
else if(window.ActiveXObject) { }
else { return null;}
}; AjaxRequest.isActive = function() { return(AjaxRequest.numActiveAjaxRequests > 0);}; AjaxRequest.get = function(args) { AjaxRequest.doRequest("GET", args);}; AjaxRequest.post = function(args) { AjaxRequest.doRequest("POST", args);}; AjaxRequest.doRequest = function(method, args) { if(typeof(args) != "undefined" && args != null) { var myRequest = new AjaxRequest(); myRequest.method = method; myRequest.handleArguments(args); myRequest.process();}
}; AjaxRequest.submit = function(theform, args) { var myRequest = new AjaxRequest(); if(myRequest == null) { return false;}
var serializedForm = AjaxRequest.serializeForm(theform); myRequest.method = theform.method.toUpperCase(); myRequest.url = theform.action; myRequest.handleArguments(args); myRequest.queryString = serializedForm; myRequest.process(); return true;}; AjaxRequest.serializeForm = function(theform) { var els = theform.elements; var len = els.length; var queryString = ""; this.addField = function(name, value) { if(queryString.length > 0) { queryString += "&";}
queryString += encodeURIComponent(name) + "=" + encodeURIComponent(value);}; for(var i = 0; i < len; i++) { var el = els[i]; if(!el.disabled) { switch(el.type) { case 'text': case 'password': case 'hidden': case 'textarea':this.addField(el.name, el.value); break; case 'select-one':if(el.selectedIndex >= 0) { this.addField(el.name, el.options[el.selectedIndex].value);}
break; case 'select-multiple':for(var j = 0; j < el.options.length; j++) { if(el.options[j].selected) { this.addField(el.name, el.options[j].value);}
}
break; case 'checkbox': case 'radio':if(el.checked) { this.addField(el.name, el.value);}
break;}
}
}
return queryString;}; AjaxRequest.numActiveAjaxRequests = 0; AjaxRequest.numActiveAjaxGroupRequests = new Object(); AjaxRequest.numAjaxRequests = 0; 

