/*
-** $Id: pz2.js,v 1.30 2007-06-04 12:24:59 jakub Exp $
+** $Id: pz2.js,v 1.36 2007-06-13 17:25:02 jakub Exp $
** pz2.js - pazpar2's javascript client library.
*/
if (paramArray.autoInit !== false)
__myself.init();
};
-pz2.prototype = {
+pz2.prototype =
+{
+ stop: function ()
+ {
+ clearTimeout(__myself.statTimer);
+ clearTimeout(__myself.showTimer);
+ clearTimeout(__myself.termTimer);
+ clearTimeout(__myself.bytargetTimer);
+ },
+
reset: function ()
{
__myself.sessionID = null;
__myself.pingStatusOK = false;
__myself.searchStatusOK = false;
- clearTimeout(__myself.statTimer);
- clearTimeout(__myself.showTimer);
- clearTimeout(__myself.termTimer);
- clearTimeout(__myself.bytargetTimer);
+ __myself.stop();
if ( __myself.resetCallback )
__myself.resetCallback();
}
else {
var nodeName = hits[i].childNodes[j].nodeName;
- var nodeText = hits[i].childNodes[j].firstChild.nodeValue;
+ var nodeText = 'ERROR'
+ if ( hits[i].childNodes[j].firstChild )
+ nodeText = hits[i].childNodes[j].firstChild.nodeValue;
show.hits[i][nodeName] = nodeText;
}
}
//for each term in the list
for (j = 0; j < terms.length; j++) {
var term = {
- "name": terms[j].getElementsByTagName("name")[0].childNodes[0].nodeValue || 'ERROR',
+ "name": (terms[j].getElementsByTagName("name")[0].childNodes.length
+ ? terms[j].getElementsByTagName("name")[0].childNodes[0].nodeValue
+ : 'ERROR'),
"freq": terms[j].getElementsByTagName("frequency")[0].childNodes[0].nodeValue || 'ERROR'
};
this.request = null;
this.url = url;
this.errorHandler = errorHandler || null;
+ this.async = true;
if ( window.XMLHttpRequest ) {
this.request = new XMLHttpRequest();
{
get: function ( params, callback )
{
+ this._send( 'GET', params, null, callback );
+ },
+
+ post: function ( params, data, callback )
+ {
+ this._send( 'POST', params, data, callback );
+ },
+
+ _send: function ( type, params, data, callback )
+ {
this.callback = callback;
-
+ var context = this;
+ this.request.open( type, this._urlAppendParams(params), this.async );
+ //this.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+ this.request.onreadystatechange = function () {
+ context._handleResponse();
+ }
+ this.request.send(data);
+ },
+
+ _urlAppendParams: function (params)
+ {
var getUrl = this.url;
var paramArr = new Array();
if ( paramArr.length )
getUrl += '?' + paramArr.join('&');
- var context = this;
- this.request.open( 'GET', getUrl, true );
- this.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
- //this.request.setRequestHeader('Accept-Charset', 'UTF-8');
- this.request.onreadystatechange = function () {
- context._handleResponse();
- }
- this.request.send(null);
+ return getUrl;
},
_handleResponse: function ()
this.simpleFilter = null;
this.numTerms = 0;
},
+ clearSimpleQuery: function()
+ {
+ this.simpleQuery = '';
+ },
addTerm: function(field, value)
{
var term = {"field": field, "value": value};