//functions used in the plannedEvents.asp page
var mySelectedRow;
var tabSelected = null;
var numberOfEvents = null;

function changeTabs(tabNo) {
    //turn on and turn off tabs as selected by the user -
    //user has selected to activate a particular tab, so deactivate the rest
    for (var i=1;i < 4; i++) {
        if (i != tabNo) {
            var tabOffLeft = document.getElementById('tab' + i + 'Left');
            var tabOffMiddle = document.getElementById('tab' + i + 'Middle');
            var tabOffRight = document.getElementById('tab' + i + 'Right');
            var tabOffDiv = document.getElementById('tab' + i + 'Div');
            
            tabOffDiv.style.display = "none";
            tabOffLeft.className = "tabOffLeft";
            tabOffMiddle.className = "tabOffMiddle";
            tabOffRight.className = "tabOffRight";
            
        }
    }
    
    var tabSelectedLeft = document.getElementById('tab' + tabNo + 'Left');
    var tabSelectedMiddle = document.getElementById('tab' + tabNo + 'Middle');
    var tabSelectedRight = document.getElementById('tab' + tabNo + 'Right');
    var tabSelectedDiv = document.getElementById('tab' + tabNo + 'Div');
    tabSelectedDiv.style.display = "block";
    tabSelectedLeft.className = "tabSelectedLeft";
    tabSelectedMiddle.className = "tabSelectedMiddle";
    tabSelectedRight.className = "tabSelectedRight";
    
    //store selected tab so that we know which fields to use for the query
    tabSelected = tabNo;
}
	
function clearDateField(type) {
    //user wants to clear from or to date field - 0 is from, 1 is to
    if (type == 0) {
        document.main.dateFrom.value = '';
    }
    else {
        document.main.dateTo.value = '';
    }
}
	
function selectRow(i) {
    //user selected a particular event row, change the properties and
    //adjust the map
    //reset global variables
    eventPopupDisplayed = false;
    lastPopupClicked = null;
    
	var eventSelected = document.getElementById('event' + i);
	var rowSelected = document.getElementById('eventRow' + i);
	var tmpRowSelected;
	mySelectedRow = i;
	
	for(var j=0; j<=numberOfEvents-1; j++){
		tmpRowSelected = document.getElementById('eventRow' + j);
		if(j%2==0){
			tmpRowSelected.className = "eventFormA";
		}
		else {
			tmpRowSelected.className = "eventFormB";
		}
	} 
	rowSelected.className = "eventSelected";

	document.main.elements['event'+i].checked = true;

    //popup is displayed - set last popup clicked to currently clicked row
    //or popup
    eventPopupDisplayed = true;
    lastPopupClicked = i;
        
    //make sure to align popup with marker and display    
	var zoom = googleMap.getZoom();
	//call function to position popup correctly based on zoom
    //var offSetArray = calculatePopupOffset(zoom);
    //var latOffset = offSetArray[0];
    //var lonOffset = offSetArray[1];
	
	document.getElementById('eventDesc').innerHTML = infoHtmls[i];
	positionPEPopup(markerArray[i], document.getElementById('eventPopupLarge'));
	markerTooltip.style.visibility="hidden";
}

function mouseOverRow(i) {
    //mouse over row for planned event selection and change row properties
	var rowSelected = document.getElementById('eventRow' + i);
	rowSelected.style.cursor = "pointer";
	rowSelected.className = "eventSelected";
	showTooltip(markerArray[i], "eventPopupSmall");
	}

function mouseOutRow(i) {
    if (i != mySelectedRow) {
		var rowSelected = document.getElementById('eventRow' + i);
		
		rowSelected.className = "eventForm";
	}
	markerTooltip.style.visibility="hidden";
}

function deselectRow(i) {
    var rowSelected = document.getElementById('eventRow' + i);
    var itemChecked = document.getElementById('event' + i);
	if(i%2==0){
		rowSelected.className = "eventFormA";
	}
	else {
		rowSelected.className = "eventFormB";
	}
	document.getElementById('eventPopupSmall').style.visibility = "hidden";
	itemChecked.checked = false;
}

function updateDate(dateValue) {
    //format date boxes based on user selection
    //getMonth()returns the month. (Starts from 0-11)
    var fromDate = new Date();
    var toDate = new Date();
     
    //fromDate.setMonth((fromDate.getMonth())+1);
    //toDate.setMonth((toDate.getMonth()));
    
    if (dateValue == 'thisWeek') {
		toDate.setDate(toDate.getDate()+7);
    }
    else if (dateValue == 'nextWeek') {
		fromDate.setDate(fromDate.getDate()+7);
		toDate.setDate(toDate.getDate()+14);
    }
    else if (dateValue == 'thisMonth') {
        //set date range to this month first day - this month last day
        fromDate.setDate(1);
        toDate.setMonth(toDate.getMonth()+1);
        toDate.setDate(0);
        
	}
    else if (dateValue == 'nextMonth') {
        //set date range to next month first day - next month last day
		fromDate.setMonth(toDate.getMonth()+1);
        fromDate.setDate(1);
		toDate.setMonth(toDate.getMonth()+2);
		toDate.setDate(0);
    }
    else {
        toDate = "";
    }
    
    fromDate = fromDate.getMonth()+1 + "/" + fromDate.getDate() + "/" + fromDate.getFullYear();
    
    if (toDate != "") {
        toDate = toDate.getMonth()+1 + "/" + toDate.getDate() + "/" + toDate.getFullYear();
    }
    
    document.main.dateFrom.value = fromDate;
    document.main.dateTo.value = toDate;
    
}

function setHiddenDateFields(dateRangeValue) {
    //since date fields are disabled, we need to update the hidden fields first with
    //from and to date information
    document.main.hiddenDateFrom.value = document.main.dateFrom.value;
    document.main.hiddenDateTo.value = document.main.dateTo.value;
}

function getCarrierFacilities(carrier) {
    //function in getGenericXML.js - get facilities for the selected carrier
    var url = "./xml/createXML.asp?t=1&createXMLFor=carriers&carrier="+carrier;
    getXML(url, "carriers");

}

function updateCarrierFacilityList(elem){
    //xml has been returned. loop over the facilities for the selected carrier
    //and add the results to the line drop down
    var facilityPicklist = document.getElementById('facility');
    facilityPicklist.options[0].selected = true;
    
    //first remove existing options, but keep 'all' as part of the list.
    while(facilityPicklist.options.length > 1) {
        facilityPicklist.remove(1);
    }
    
    for (var i = 0; i < elem.length; i++) { 
        var facility = xmlDoc.getElementsByTagName("facility")[i].firstChild.nodeValue;
        var oNewCarrierOption = new Option();
        oNewCarrierOption.text = facility;
        oNewCarrierOption.value = facility;
        facilityPicklist.options.add(oNewCarrierOption,i+1);
        //if user has selected a facility, reselect that facilty upon screen refresh
        if (globalFacilitySelected == facility) {
            oNewCarrierOption.selected = true;
        }
    }
}

function buildRegionString(selectBox, selectBoxValue) {
//store selected regions to pass along as submitted values in a hidden string
    document.main.regionString.value = "";
	var warningDiv = new getObj('selectWarning');
	
	//if all is selected, alert user that only all will be taken and not individual regions
	if (selectBox.options[0].selected) {
		warningDiv.style.display = "block";
		document.main.regionString.value = "0";
		for (var i = 1; i < selectBox.length; i++) {
		    selectBox.options[i].selected = false;
		}
	}
	else {
		warningDiv.style.display = "none";
		for (var i = 0; i < selectBox.length; i++) {
			if (selectBox.options[i].selected) {
			    if (selectBox.options[i].value != "bad_selection") {
				    if (document.main.regionString.value != "") {
					    document.main.regionString.value += ",";
				    }    
				    document.main.regionString.value += i;
			    }
			    else {
			        selectBox.options[i].selected = false;
			    }
			}
		}
	}
}

function submitPEForm(tabSelected) {
    //submit form
    
    //check validity of date entered
    var dateCheck = checkDate();
    
    if (dateCheck){
    
      //since date fields are disabled, we need to update the hidden fields first with
      //from and to date information
      setHiddenDateFields(document.main.dateRange.value);
      
      document.main.tabSelected.value = tabSelected; //which data are we submitting?
      document.main.formSubmitted.value = "true";
      document.main.action = "plannedEvents.asp";
      document.main.submit();
    }
}

function openSortBy() {
    //open sort by div for sort options
	var sortBy = document.getElementById('sortBy');
	var sortByArrow = document.getElementById('sortByArrow');

	//get x and y of arrow image to place div correctly
	var sortByArrowX = parseInt(findPosX(new getObj('sortByArrow')));
	var sortByArrowY = parseInt(findPosY(new getObj('sortByArrow')));

	//compensate for size of sort options td and height of arrow image
	//position the div
	sortBy.style.top = sortByArrowY + 18 + "px";
	sortBy.style.left = sortByArrowX - 85 + "px";

	//display the div
	sortBy.style.visibility = "visible";
}

function closeSortBy() {
    //close sort by div
	var sortBy = document.getElementById('sortBy');
	//hide the div
	sortBy.style.visibility = "hidden";
}

function selectSortBy(selectedSortBy, page) {
    //select sort option and submit form with same criteria
    document.main.page.value = page;
    document.main.hiddenSortBy.value = selectedSortBy;
    submitPEForm(document.main.tabSelected.value);
}

function selectNextPrevious(page) {
    //select sort option and submit form with same criteria
    document.main.page.value = page;
    //4-30-07 - need to pass sort by value when next page or previous page is selected
    document.main.hiddenSortBy.value = document.main.sortBy.value;
    submitPEForm(document.main.tabSelected.value);
}

function updateTypeCheckBox(chkBox) {
    //highway const and special events
    //alert("chkBox: " + chkBox);
    if (chkBox == "chkHAll") {
        if (document.main.chkHAll.checked) {
            //all highway is checked
	        document.main.chkHC.checked = true;
	        document.main.chkHSE.checked = true;
	        document.main.chkHC.disabled = true;
	        document.main.chkHSE.disabled = true;
        }
        else {
            document.main.chkHC.disabled = false;
	        document.main.chkHSE.disabled = false;
        }
    }
    else if (chkBox == "chkHSE" || chkBox == "chkHC") {
        if (document.main.chkHSE.checked && document.main.chkHC.checked) {
            //user selected both se and const
            document.main.chkHAll.checked = true;
	        document.main.chkHC.disabled = true;
	        document.main.chkHSE.disabled = true;
        }
    }
    
    if (chkBox == "chkTAll") {
        if (document.main.chkTAll.checked) {
            //all transit is checked
	        document.main.chkTC.checked = true;
	        document.main.chkTSE.checked = true;
	        document.main.chkTC.disabled = true;
	        document.main.chkTSE.disabled = true;
        }
        else {
            document.main.chkTC.disabled = false;
	        document.main.chkTSE.disabled = false;
        }
    }
    else if (chkBox == "chkTSE" || chkBox == "chkTC") {
        if (document.main.chkTSE.checked && document.main.chkTC.checked) {
            //user selected both se and const
            document.main.chkTAll.checked = true;
	        document.main.chkTC.disabled = true;
	        document.main.chkTSE.disabled = true;
        }
    }
    
}
