/************************************ Global Variables *************************************************/ var countyFieldreqs = new Array(); var formData; //AJAX Request Variables var countyReq; var countyFieldreq; var stateFieldreq; var checkCountyreq; //Span names to be dynamically populated var fieldName; var countySpanName; var stateSpanName; var grpId; var updateFields; /*********************************** AJAX Calling Methods ***************************************************/ function CountyFieldXMLReq(freed) { this.freed = freed; this.xmlhttp = false; if (window.XMLHttpRequest) { this.xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } function retrieveCountyFields(url, sName, selectedCounties) { var callUrl = 'ajax.displayCounties?' + url; //alert('calling url ' + callUrl); formData = getFormData(document.forms[0]); countySpanName = sName; //alert('sending url ' + url); var pos = -1; for (var i=0; i=0; i--) { countySelect.remove(i); } } /*********************************** Populate County Methods *************************************************/ function processFieldCountyChange(pos, url, selectedCounties) { if (typeof(countyFieldreqs[pos]) != 'undefined' && countyFieldreqs[pos].freed == 0 && countyFieldreqs[pos].xmlhttp.readyState == 4) { if (countyFieldreqs[pos].xmlhttp.status == 200 || countyFieldreqs[pos].xmlhttp.status == 304) { document.getElementById(countySpanName).innerHTML = countyFieldreqs[pos].xmlhttp.responseText; repopulateStateCountyData(formData); checkCountySelect(url, selectedCounties); } else { alert("Problem: " + countyFieldreqs[pos].xmlhttp.statusText + " status code is " + countyFieldreqs[pos].xmlhttp.status); } countyFieldreqs[pos].freed = 1; } } function addCounties(hiddenSummary, stateName, countyName, selectedCounties, countySpan, groupid,fieldlist) { var stateSelect = document.getElementById(stateName); var countySelect = document.getElementById(countyName); var i; var stateText; grpId = groupid; updateFields = fieldlist.split("|"); for (i = 0 ; i < stateSelect.length; i++) { if (stateSelect.options[i].selected) { stateText = stateSelect.options[i].text; } } for (i = 0 ; i < countySelect.length; i++) { if (countySelect.options[i].selected) { var elOptNew = document.createElement('option'); elOptNew.text = countySelect.options[i].text + ', ' + stateText; elOptNew.value = countySelect.options[i].value; try { elOptNew.statename = countySelect.options[i].statename; elOptNew.stateid = countySelect.options[i].stateid; elOptNew.othercounty = countySelect.options[i].othercounty; } catch ( e ) { elOptNew.statename = countySelect.options[i].attributes['statename'].value; elOptNew.stateid = countySelect.options[i].attributes['stateid'].value; elOptNew.othercounty = countySelect.options[i].attributes['othercounty'].value; } addSelectedCounty(selectedCounties, elOptNew); if ( elOptNew.othercounty != 'Y' ) { checkOtherCounty(selectedCounties, elOptNew); } } } //checkOtherCounty(selectedCounties); populateCountySummary(hiddenSummary, selectedCounties); renderCountyDataFields(selectedCounties, countySpan,groupid); } function renderCountyDataFields(selectedCounties, countySpan, grpId) { var selCounties = document.getElementById(selectedCounties); var renderedCounties = 0; var allCounties = new Array(); var i; var j; for (i = selCounties.length - 1; i>=0; i--) { allCounties[renderedCounties] = selCounties.options[i].value; renderedCounties++; } var urlString = 'grpid=' + grpId + '&count=' + renderedCounties; j=0; for ( i=allCounties.length - 1; i>=0; i-- ) { urlString = urlString + '&d' + j + '=' + allCounties[i]; j++; } document.getElementById("pleasewaitScreen").style.top = (document.body.scrollTop + 150); document.getElementById("pleasewaitScreen").style.visibility="visible"; grayOut(true, {'zindex':'50','opacity':'30'}); setTimeout('retrieveCountyFields("' + urlString + '", "' + countySpan + '" , "'+ selectedCounties + '")', 10); } function addSelectedCounty(selectedCounties, elOptNew) { var selCounty = document.getElementById(selectedCounties); for (i = selCounty.length - 1; i>=0; i--) { if (selCounty.options[i].value == elOptNew.value ) { return; } } try { selCounty.add(elOptNew, null); // standards compliant; doesn't work in IE } catch(ex) { selCounty.add(elOptNew); // IE only } } function checkOtherCounty(selectedCounties, elOptNew) { var selOtherCounty = document.getElementById(selectedCounties); var otherInd = ''; var stateId = ''; var newStateId = ''; var valId = ''; for (var j = selOtherCounty.length - 1; j>=0; j--) { try { otherInd = selOtherCounty.options[j].attributes['othercounty'].value; } catch (e) { otherInd = selOtherCounty.options[j].othercounty; } if ( otherInd == 'Y' ) { try { stateId = selOtherCounty.options[j].attributes['stateid'].value; } catch (e) { stateId = selOtherCounty.options[j].stateid; } try { newStateId = elOptNew.attributes['stateid'].value; } catch (e) { newStateId = elOptNew.stateid; } if ( stateId == newStateId && hasMultiCountyData(selectedCounties, stateId, j) <= 1 ) { valId = selOtherCounty.options[j].value; removeSelectedCounty(selectedCounties, valId); } /* if ( hasMultiCountyData(selectedCounties, stateId, j) > 1 ) { valId = selOtherCounty.options[j].value; removeSelectedCounty(selectedCounties, valId); } */ } } } function hasMultiCountyData(selectedCounties, otherStateId, otherRowNumber) { var selCounty = document.getElementById(selectedCounties); var stateId = ''; var stateCnt = 0; for (i = selCounty.length - 1; i>=0; i--) { if ( i != otherRowNumber ) { try { stateId = selCounty.options[i].attributes['stateid'].value; } catch (e) { stateId = selCounty.options[i].stateid; } if ( stateId == otherStateId ) { stateCnt++; } } } return stateCnt; } function removeSelectedCounty(selectedCounties, id) { var selCounty = document.getElementById(selectedCounties); for (i = selCounty.length - 1; i>=0; i--) { if (selCounty.options[i].value == id ) { selCounty.remove(i); } } } function removeCounties(hiddenSummary, countyName, selectedCounties,countySpan, groupId,fieldlist) { var countySelect = document.getElementById(selectedCounties); grpId = groupId; updateFields = fieldlist.split("|"); var removeArray = new Array(); var removeCounter = 0; for (i = countySelect.length - 1; i>=0; i--) { if (countySelect.options[i].selected) { removeArray[removeCounter] = countySelect.options[i].value; removeCounter++; } } for ( var j = 0; j< removeArray.length; j++ ) { removeSelectedCounty(selectedCounties, removeArray[j]); } populateCountySummary(hiddenSummary, selectedCounties); renderCountyDataFields(selectedCounties,countySpan, groupId); } function populateCountySummary(hiddenSummary, selectedCounties) { var data = ''; var countSumms = document.getElementById(hiddenSummary); var countSelect = document.getElementById(selectedCounties); for (var i = 0; i < countSelect.length; i++ ) { if ( i != 0 ) { data = data + "|"; } data = data + countSelect.options[i].value; } countSumms.value = data; } /*********************************** Populate State Methods *************************************************/ function processFieldStateChange() { if (stateFieldreq.readyState == 4) { // Complete if (stateFieldreq.status == 200) { // OK response document.getElementById(stateSpanName).innerHTML = stateFieldreq.responseText; repopulateStateCountyData(formData); } else { alert("Problem: " + stateFieldreq.statusText); } } } function populateStateSummary(hiddenSummary, selectedStates) { var data = ''; var stateSumms = document.getElementById(hiddenSummary); var stateSelect = document.getElementById(selectedStates); for (var i = 0; i < stateSelect.length; i++ ) { if ( i != 0 ) { data = data + "|"; } data = data + stateSelect.options[i].value; } stateSumms.value = data; } function addStates(hiddenSummary, stateName, selectedStates, stateSpan, groupid,fieldlist) { grpId = groupid; updateFields = fieldlist.split("|"); var stateSelect = document.getElementById(stateName); for (var i = 0; i < stateSelect.length; i++) { if (stateSelect.options[i].selected) { addSelectedState(selectedStates, stateSelect.options[i].value, stateSelect.options[i].text); } } populateStateSummary(hiddenSummary, selectedStates); renderStateDataFields(selectedStates, stateSpan, groupid); } function renderStateDataFields(selectedStates, stateSpan, grpId) { var selStates = document.getElementById(selectedStates); var renderedStates = 0; var allStates = new Array(); var i; for (i = selStates.length - 1; i>=0; i--) { allStates[renderedStates] = selStates.options[i].value; renderedStates++; } var urlString = 'ajax.displayStates?grpid=' + grpId + '&count=' + renderedStates; var j=0; for ( i=allStates.length - 1; i>=0; i-- ) { urlString = urlString + '&d' + j + '=' + allStates[i]; j++; } retrieveStateFields(urlString, stateSpan) } function removeStates(hiddenSummary, selectedStates,stateSpan, groupId,fieldlist) { var stateSelect = document.getElementById(selectedStates); grpId = groupId; updateFields = fieldlist.split("|"); var removeArray = new Array(); var removeCounter = 0; for (i = stateSelect.length - 1; i>=0; i--) { if (stateSelect.options[i].selected) { removeArray[removeCounter] = stateSelect.options[i].value; removeCounter++; } } for ( var j = 0; j< removeArray.length; j++ ) { removeSelectedState(selectedStates, removeArray[j]); } populateStateSummary(hiddenSummary, selectedStates); renderStateDataFields(selectedStates, stateSpan, groupId); } function addSelectedState(selectedStates, id, stateInfo) { var selState = document.getElementById(selectedStates); for (i = selState.length - 1; i>=0; i--) { if (selState.options[i].value == id ) { return; } } var elOptNew = document.createElement('option'); elOptNew.text = stateInfo; elOptNew.value = id try { selState.add(elOptNew, null); // standards compliant; doesn't work in IE } catch(ex) { selState.add(elOptNew); // IE only } } function removeSelectedState(selectedStates, id) { var selState = document.getElementById(selectedStates); for (i = selState.length - 1; i>=0; i--) { if (selState.options[i].value == id ) { selState.remove(i); } } } /**************************************** Subtotal Methods ************************************************/ function showWaitIcon(imgName) { var dTag = 'wait' + imgName; var imName = 'img' + imgName; if(document.getElementById(dTag).style.display=='none') { document.getElementById(dTag).style.display='inline'; //document.getElementById(dTag).style.visibility = "visible"; } else { document.getElementById(dTag).style.display='none'; } Img = document.getElementById(imName); //setTimeout('document.images["' + imName + '"].src = "../images/indicator.gif"', 50); setTimeout("Img.src = ../images/indicator.gif",3); return true; } function runSubtotal(rs, fields, totalFields,countySelect, runSubtotals) { //showWaitIcon(countySelect); //updateSubtotal(rs, fields, totalFields,countySelect, runSubtotals); document.getElementById("pleasewaitScreen").style.top = (document.body.scrollTop + 150); document.getElementById("pleasewaitScreen").style.visibility="visible"; grayOut(true, {'zindex':'50','opacity':'30'}); setTimeout('updateSubtotal("' + rs + '", "' + fields + '" , "'+ totalFields + '", "' + countySelect+ '" , "' + runSubtotals+ '")', 10); } function runColumnTotals(fieldList, totalField, numRows) { document.getElementById("pleasewaitScreen").style.top = (document.body.scrollTop + 150); document.getElementById("pleasewaitScreen").style.visibility="visible"; grayOut(true, {'zindex':'50','opacity':'30'}); updateColTotal(fieldList, totalField, numRows); } function updateColTotal(fieldList, totalField,numRows) { var fieldArray = fieldList.split("|"); for (var i = 0; i < numRows; i++ ) { var totalName = totalField; if ( i != 0 ) { totalName = totalField + "-" + (i+1); } var val = 0; for (var j=0; j < fieldArray.length; j++ ) { var fName = fieldArray[j]; try { if ( i != 0 ) { fName = fieldArray[j] + "-" + (i+1); } if ( document.getElementById(fName) && document.getElementById(fName).value != '' && document.getElementById(fName).value != '0' ) { var fValue = document.getElementById(fName).value; fValue = stripComma(fValue); var tmp = parseFloat(fValue) val = val + tmp; } } catch ( ex ) { } } var total = document.getElementById(totalName); if ( total ) { var formatted = FormatSubtotal(val); total.maxLength = formatted.length; total.value = formatted; } } grayOut(false); document.getElementById("pleasewaitScreen").style.visibility="hidden"; } function updateSubtotal(rs, fields, totalFields,countySelect, runSubtotals) { if ( runSubtotals == 'true' ) { calcSubtotals(rs, fields, countySelect, totalFields); } else { var fieldArray = fields.split("|"); var totalArray = totalFields.split("|"); for (var j=0; j < fieldArray.length; j++ ) { var fName = fieldArray[j]; var totalName = totalArray[j]; var val = 0; for (var i = 0; i < rs; i++ ) { try { if ( i != 0 ) { fName = fieldArray[j] + "-" + (i+1); } if ( document.getElementById(fName) && document.getElementById(fName).value != '' && document.getElementById(fName).value != '0' ) { var fValue = document.getElementById(fName).value; fValue = stripComma(fValue); var tmp = parseFloat(fValue) val = val + tmp; } } catch ( ex ) { } } var total = document.getElementById(totalName); if ( total ) { total.disabled = false; var formatted = FormatSubtotal(val); total.maxLength = formatted.length; total.value = formatted; total.disabled = true; } } } //showWaitIcon(countySelect); grayOut(false); document.getElementById("pleasewaitScreen").style.visibility="hidden"; } function calcSubtotals(rs, fields, countySelect, totalFields) { var fieldArray = fields.split("|"); var totalArray = totalFields.split("|"); var stateTotalArray = new Array(); for (var colCount=0; colCount < fieldArray.length; colCount++ ) { var overallTotal = 0; var totalName = totalArray[colCount]; var fName = fieldArray[colCount]; for (var k=0; k 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } var kd = x1 + x2; return kd; } function repopulateStateCountyData(formData) { var qs2 = new Querystring(formData); var allCounty = document.getElementById('csgsummary_' + grpId); if ( allCounty != null ) { var countyArray = allCounty.value.split("|"); for ( var i=0; i< countyArray.length; i++ ) { //get current county row var currentRow = document.getElementById('csf_' + countyArray[i] + '_' + grpId); //get previous county row var prevRow = qs2.get('csf_' + countyArray[i] + '_' + grpId); if ( currentRow != null && prevRow != null ) { //this row was there before for ( var fl = 0 ; fl=0;i--) { nodeRef = nodesToDelete[i]; nodeRef.parentNode.removeChild(nodeRef) } }