function WebServiceCallback ()
{
}

WebServiceCallback.prototype.response = function (response_text)
{
	var	lines = response_text.split ('\n');
	//	Remove the last line (which is empty).
	lines.pop ();
	//	Parse response
	var	message = lines.shift();
	var	stores = [];

	if (message == "OK") {
		stores = this.readMultipleStores (lines);
	}
    app_controller.handlePoints(stores);
}

//	Reads multiple stores, and returns the stores as an
//	array. If no stores were read, an array of length 0 is returned.

WebServiceCallback.prototype.readMultipleStores = function(lines)
{
	var	stores = [];
	var	idx = 0;

	while (true) {
		var	store = this.readStore (lines, idx);

		if (store == null) {
			break;
		}
		stores.push (store);
		//Advance to the next store
		idx += 14;
	}
	return stores;
}

//	Starting with 'lines[begin]' and continuing to 'lines[begin+13]' construct
//	and return a Stores object.
//	Return null if a fully formed store couldn't be read.

WebServiceCallback.prototype.readStore = function (lines, begin)
{
	//	ARE THERE ARE SUFFICIENT LINES TO READ ENTIRE CONTENTS OF STORE
	if (begin + 13 > lines.length) {
		return null;
	}

	var	store = {};

	//	READ STORE
	try {
        store.id = Number (lines[begin]);
        store.latitude = Number (lines[begin+1]);
        store.longitude = Number (lines[begin+2]);
        //TODO:this should be a string
        store.retailer = Number (lines[begin+3]);
        store.storeName = lines[begin+4];
        store.locName = lines[begin+5];
        store.address = lines[begin+6];
        store.city = lines[begin+7];
        store.state = lines[begin+8];
        store.postCode = lines[begin+9];
        store.country = lines[begin+10];
        store.tel = lines[begin+11];
        store.webURL = lines[begin+12];
        store.hrsOperation = lines[begin+13];
	} catch (e) {
		store = null;
	}
	return store;
}
