var stopURL = "getStop.asp";
var stops;
var show;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// iPhone only?
if (navigator.userAgent.indexOf('iPhone') != -1) {
        addEventListener("load", function() {
                setTimeout(function() { window.scrollTo(0, 1); }, 0);
        }, false);

} 
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
// www.codeproject.com/KB/scripting/propercase.aspx
String.prototype.toProperCase = function() { 
	return this.toLowerCase().replace(/^(.)|\s(.)/g, 
		function($1) { return $1.toUpperCase(); });
}

// from blog.stevenlevithan.com/archives/faster-trim-javascript
String.prototype.trim = function() {
	return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function getQueryVariable(query, variable) {

    var vars = query.split("&");

    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* IE.6 won't let you extend DOM objects */
function field(rec, fieldName) {

	var y = rec.firstChild;
	var ret = "";

	while (y != null && ret == "") {	
		if (fieldName == y.nodeName) ret = y.firstChild.nodeValue;
		y = y.nextSibling;
    }

	return ret
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function MoreStops(params) {

    stops = null;

    if (window.XMLHttpRequest) { // code for Firefox, Opera, etc.
        stops = new XMLHttpRequest() 
    }
    else if (window.ActiveXObject) { // code for IE
        stops = new ActiveXObject("Microsoft.XMLHTTP")
    }

    if (stops != null) {

        var d = Date.parse(Date()) + "";
        var t = d.substring(0, d.length-3);

        stops.onreadystatechange = ReadStops;
        stops.open("GET", stopURL + "?t=" + t + "&" + params, true);
        stops.send(null)

    }
    else
    {
        listing.innerHTML = "<p>Your browser does not support XMLHTTP.</p>";
    }

}

function ReadStops() {

    if (stops.readyState==4) { // stops shows "loaded"

        if (stops.status==200) { // "OK"

            var text = stops.responseText;

            if (window.ActiveXObject) { // code for IE
                var doc = new ActiveXObject("Microsoft.XMLDOM");
                doc.async = "false";
                doc.loadXML(text);
            } 
            else { // code for Firefox, Opera, etc.
                var parser = new DOMParser();
                var doc = parser.parseFromString(text, "text/xml");
            }

            if (doc.documentElement.nodeName == "stops") {

                listing.innerHTML = ListStops(doc);
                nextlink.href = GetNextLink(doc);

                if (field(doc.documentElement, "eof") == "1" ) {
					nextlink.innerHTML = "no more stops.";
					nextlink.style.position = "absolute";
					nextlink.style.left = -999;
				}

            }

        } 
        else {
            // listing.innerHTML = "<p>Problem retrieving XML data:" + stops.statusText + "</p>";
        }
    }
}

function ListStops(xmlDoc) {

	var html = listing.innerHTML;
	var newItems = field(xmlDoc.documentElement, "description");

	return html.replace(/<\/ul>/gi, newItems + "</ul>");
}

function GetNextLink(xmlDoc) {

	var retval = "";

	if (field(xmlDoc.documentElement, "eof") == "0") {

		var params = nextlink.href.split("'")[1];
		var start = parseInt(getQueryVariable(params, "start"));
		var newParams = params.split("&")[0] + "&start=" + (start + show);

		retval =  "javascript:MoreStops('" + newParams + "');"
	}

	return retval
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
function main() {	

	var params = nextlink.href.split('?')[1];
	nextlink.href = "javascript:MoreStops('" + params + "');"

	show = parseInt(getQueryVariable(params, "start"));
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */