// Instantiate XMLHttpRequest/Microsoft ActiveX XMLHTTP objects
var requestObject = null;
var requestObject2 = null;
var requestObject3 = null;
if (window.XMLHttpRequest) {
	requestObject = new XMLHttpRequest();
	requestObject2 = new XMLHttpRequest();
	requestObject3 = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    requestObject = new ActiveXObject("Microsoft.XMLHTTP");
    requestObject2 = new ActiveXObject("Microsoft.XMLHTTP");
	requestObject3 = new ActiveXObject("Microsoft.XMLHTTP");
}

// Refresh city list on state change
function refreshCityListOnStateChange(includeALLAtTop) {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    }
    catch (e) {}

	var stateSelectedIndex = window.document.forms[0].state.selectedIndex;
	var state = window.document.forms[0].state.options[stateSelectedIndex].value;

    var cityListSelect = window.document.forms[0].cities;
    cityListSelect.options.length = 0;
    cityListSelect.options[0] = new Option("Refreshing...", "Refreshing...");
    
    var includeALLAtTopQueryString = "";
    if (includeALLAtTop == true) {
        includeALLAtTopQueryString = "&includeALLAtTop=1";
    }

    // Send the HTTP request
    requestObject.open("GET", "/getCityListByState.do?state=" + state + includeALLAtTopQueryString, true);
    requestObject.onreadystatechange = refreshCityListOnStateChangeCallback;
    requestObject.send(null);
}

// Refresh city list on state change callback handler
function refreshCityListOnStateChangeCallback() {
    if (requestObject.readyState == 4) {
        if (requestObject.status == 200) {
            var responseArray = requestObject.responseText.split("|");
            var cityListSelect = window.document.forms[0].cities;
    		cityListSelect.options.length = 0;
            
            for (var i = 0; i < responseArray.length; i++) {
                var optionIndex = cityListSelect.options.length;
                cityListSelect.options[optionIndex] = new Option(responseArray[i], responseArray[i]);
            }

            if (cityListSelect.options[0].value == "ALL") {
                cityListSelect.options[0].selected = true;
            }
        }
    }
}

// Refresh county list on state change
function refreshCountyListOnStateChange(includeALLAtTop) {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    }
    catch (e) {}

	var stateSelectedIndex = window.document.forms[0].state.selectedIndex;
	var state = window.document.forms[0].state.options[stateSelectedIndex].value;
	
    var countyListSelect = window.document.forms[0].counties;
    countyListSelect.options.length = 0;
    countyListSelect.options[0] = new Option("Refreshing...", "Refreshing...");

    var includeALLAtTopQueryString = "";
    if (includeALLAtTop == true) {
        includeALLAtTopQueryString = "&includeALLAtTop=1";
    }

    // Send the HTTP request
    requestObject2.open("GET", "/getCountyListByState.do?state=" + state + includeALLAtTopQueryString, true);
    requestObject2.onreadystatechange = refreshCountyListOnStateChangeCallback;
    requestObject2.send(null);
}

// Refresh county list on state change callback handler
function refreshCountyListOnStateChangeCallback() {
    if (requestObject2.readyState == 4) {
        if (requestObject2.status == 200) {
            var responseArray = requestObject2.responseText.split("|");
            var countyListSelect = window.document.forms[0].counties;
    		countyListSelect.options.length = 0;
            
            for (var i = 0; i < responseArray.length; i++) {
                var optionIndex = countyListSelect.options.length;
                countyListSelect.options[optionIndex] = new Option(responseArray[i], responseArray[i]);
            }
            
            if (countyListSelect.options[0].value == "ALL") {
                countyListSelect.options[0].selected = true;
            }
        }
    }
}

// Refresh estimated weekly filings
function refreshEstimatedWeeklyFilings() {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    }
    catch (e) {}

    var estimatedWeeklyRecordsSpan = document.getElementById("estimatedWeeklyRecords");
    estimatedWeeklyRecordsSpan.innerHTML = "...";

    var estimatedWeeklyCostSpan = document.getElementById("estimatedWeeklyCost");
    estimatedWeeklyCostSpan.innerHTML = "...";

	var stateSelectedIndex = window.document.forms[0].state.selectedIndex;
	var state = window.document.forms[0].state.options[stateSelectedIndex].value;
    
    var citiesList = document.forms[0].cities;
    var cities = "";
	for (var i = 0; i < citiesList.options.length; i++) {
	    if (citiesList.options[i].selected == true) {
	        if (cities == "") {
	            cities = citiesList.options[i].value;
	        } else {
	            cities = cities + "," + citiesList.options[i].value;
	        }
	    }
	}

    var countiesList = document.forms[0].counties;
    var counties = "";
	for (var i = 0; i < countiesList.options.length; i++) {
	    if (countiesList.options[i].selected == true) {
	        if (counties == "") {
	            counties = countiesList.options[i].value;
	        } else {
	            counties = counties + "," + countiesList.options[i].value;
	        }
	    }
	}

	var postValues = "state=" + state + "&cities=" + cities + "&counties=" + counties;

    // Send the HTTP request
    requestObject3.open("POST", "/getEstimatedWeeklyFilings", true);
	requestObject3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	requestObject3.setRequestHeader("Content-length", postValues.length);
    requestObject3.onreadystatechange = refreshEstimatedWeeklyFilingsChangeCallback;
    requestObject3.send(postValues);
}

// Refresh estimated weekly filings callback handler
function refreshEstimatedWeeklyFilingsChangeCallback() {
    if (requestObject3.readyState == 4) {
        if (requestObject3.status == 200) {
            var responseArray = requestObject3.responseText.split("|");

		    var estimatedWeeklyRecordsSpan = document.getElementById("estimatedWeeklyRecords");
		    var estimatedWeeklyCostSpan = document.getElementById("estimatedWeeklyCost");
		    
            estimatedWeeklyRecordsSpan.innerHTML = responseArray[0];
		    estimatedWeeklyCostSpan.innerHTML = responseArray[1];
        }
    }
}
