//functions used in the plannedEvents.asp page
var mySelectedRow;
var numberOfEvents = null;


	
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";
		}
	    
	    //hyperlink properties
        if (document.getElementById('link' + j)) {
            document.getElementById('link' + j).className = "eventListLink";
	    }
	} 
	
	rowSelected.className = "eventSelected";
   
    //hyperlink properties
	if (document.getElementById('link' + i)) {
	    document.getElementById('link' + i).className = "eventListLinkOn";
	}
	
	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 makeDelay(i)
{ 
setTimeout("mouseOverRow(" + i + ")", 0 );
}

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";
	//hyperlink properties
	if (document.getElementById('link' + i)) {
	    document.getElementById('link' + i).className = "eventListLinkOn";
	}
	
	showTooltip(markerArray[i], "eventPopupSmall");
	}

function mouseOutRow(i) {
     if (i != mySelectedRow) {
		var rowSelected = document.getElementById('eventRow' + i);
		
		rowSelected.className = "eventForm";
	    
	    //hyperlink properties
	    if (document.getElementById('link' + i)) {
	        document.getElementById('link' + i).className = "eventListLink";
	    }
	}
	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";
	}
	
	//hyperlink properties
	if (document.getElementById('link' + i)) {
	    document.getElementById('link' + i).className = "eventListLink";
	}
	
	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;
}

/*
///commented - new function below
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');
	var numSelected = 0;
	
	//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 {
	    //only allow up to 3 regions to be selected
		warningDiv.style.display = "none";
		for (var i = 0; i < selectBox.length; i++) {
		    if (selectBox.options[i].selected) {
		        numSelected++;
		        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 buildRegionString(selectBox, selectBoxValue, userSelectedType, listType) {
//store selected regions to pass along as submitted values in a hidden string
    document.main.regionString.value = "";
	//var warningDiv = new getObj('selectWarning');
	var numSelected = 0;
	
	if (selectBoxValue == "bad_selection") {
		//warningDiv.style.display = "block";
		alert("Please select a valid region");
		return false;
	}
	else if (selectBoxValue == "") {
	    document.main.regionString.value = "";
	}
	else {
	    document.main.regionString.value = selectBoxValue;
	}
	
	return true;	
}

function submitPEForm(userSelectedType, listType, eventType) {
    //submit form
    //no need to check date for active events
    
    //added 4/30/08
    if (buildRegionString(document.main.region, document.main.region.value,userSelectedType, listType)){
    
        var dateCheck = true;
        if (listType.toUpperCase() == "FUTURE") {
            //check validity of date entered
            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);
            }
        }
        
        if (dateCheck) {
            //active or passed date check
		    document.main.formSubmitted.value = "true";
		    
		    if (eventType != "")
		        document.main.action = "eventList.aspx?type="+userSelectedType+"&listType="+listType + "&mode=" + eventType;
		    else
		        document.main.action = "eventList.aspx?type="+userSelectedType+"&listType="+listType;
		    
		    document.main.submit();
		    
		    //eventList.aspx?type=inc&amp;listType=active&amp;mode=traffic
	    }
	}
}

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 - 75 + "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, userSelectedType, listType, eventMode) {
    //select sort option and submit form with same criteria
    document.main.page.value = page;
    document.main.hiddenSortBy.value = selectedSortBy;
    //submitPEForm(userSelectedType, listType);
    submitPEForm(userSelectedType, listType, eventMode);
}

function selectNextPrevious(page, userSelectedType, listType) {

    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(userSelectedType, listType);
    submitPEForm(userSelectedType, listType, "");
}

//* SK 12/15/2008
function onEnterClick(userSelectedType, listType, eventMode, keyEventArgs)
{
    if (keyEventArgs.keyCode == 13) // ENTER key
    {
        submitPEForm(userSelectedType, listType, eventMode);
    }

}

