var prevCoord = "latLon";

function getMap() {
	if ( navigator.appName == "Netscape")
		return document.map;
	else
		return window.map;
}
/*--------------------------- adjust the display sizes according to the clients window width-----------------------------------------------------------------------*/
function showDistance() {
	map = getMap();
	map.viewDistance('MI');
}
function hideCoordinateSearch() {
	document.getElementById('CoordinateSearch').style.visibility = 'hidden';
}
function handleResize() {
	var screenWidth = document.body.clientWidth;
	
	if (screenWidth <= 900) { 
		//document.getElementById('toolTip').style.fontSize = 'xx-small';
		document.getElementById('bannerBlack').style.width = '750px';
		document.getElementById('main').style.width = '750px';
		document.getElementById('main').style.height = '720px';
		document.getElementById('toolsWindow').style.width = '720px';
		document.getElementById('mapWindow').style.width = '720px';
		document.getElementById('mapWindow').style.height = '470px';
		document.getElementById('mapDisplayWindow').style.width = '715px';
		document.getElementById('mapDisplayWindow').style.height = '446px';
		document.getElementById('date').style.left = '535px';
		document.getElementById('address').style.left = '517px';
		document.getElementById('AddressSearch').style.top = '515px';
		document.getElementById('CoordinateSearch').style.top = '550px';
		//document.getElementById('toolTip').style.left = '610px';
	} else if (screenWidth > 900 && screenWidth <= 1000) {
		//document.getElementById('toolTip').style.fontSize = 'small';
		document.getElementById('bannerBlack').style.width = '850px';
		document.getElementById('main').style.width = '850px';
		document.getElementById('main').style.height = '820px';
		document.getElementById('toolsWindow').style.width = '820px';
		document.getElementById('mapWindow').style.width = '820px';
		document.getElementById('mapWindow').style.height = '570px';
		document.getElementById('mapDisplayWindow').style.width = '815px';
		document.getElementById('mapDisplayWindow').style.height = '546px';
		document.getElementById('date').style.left = '635px';
		document.getElementById('address').style.left = '617px';
		document.getElementById('AddressSearch').style.top = '615px';
		document.getElementById('CoordinateSearch').style.top = '660px';
		//document.getElementById('toolTip').style.left = '710px';
	} else {
		//document.getElementById('toolTip').style.fontSize = 'small';
		document.getElementById('bannerBlack').style.width = '950px';
		document.getElementById('main').style.width = '950px';
		document.getElementById('main').style.height = '760px';
		document.getElementById('toolsWindow').style.width = '920px';
		document.getElementById('mapWindow').style.width = '920px';
		document.getElementById('mapWindow').style.height = '640px';
		document.getElementById('mapDisplayWindow').style.width = '915px';
		document.getElementById('mapDisplayWindow').style.height = '616px';
		document.getElementById('date').style.left = '735px';
		document.getElementById('address').style.left = '717px';
		document.getElementById('AddressSearch').style.top = '685px';
		document.getElementById('CoordinateSearch').style.top = '720px';
		//document.getElementById('toolTip').style.left = '810px';
	}
}
function drawOptions(type) {
	
	if(type == "Line") {
		document.getElementById('symbols').innerHTML = "<input type='text'></input>";
	}
}
function menuMouseOver(element){
	document.getElementById(element).style.backgroundColor='#D4A017';
	document.getElementById(element).style.color = 'black';
	if(element == "help"){
		document.getElementById('helpMenu').style.visibility = "visible";
	}
}
function menuMouseOut(element){
	document.getElementById(element).style.backgroundColor='transparent'
	document.getElementById(element).style.color = 'white';
}
function hideButtonsPub() {  //hide admin type buttons from the public users
	var i;
	for(i=9;i<=22;i++) {
		document.getElementById('button'+i).style.visibility = 'hidden';
	}
}
function hideButtonsEng() {
	document.getElementById('button15').style.visibility = 'hidden';
	document.getElementById('button16').style.visibility = 'hidden';
	document.getElementById('button17').style.visibility = 'hidden';
	document.getElementById('button20').style.visibility = 'hidden';
}
function hideButtonsAdmin() {
	document.getElementById('button20').style.visibility = 'hidden';
}
function IsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char; 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
   }
   return IsNumber;
}


function panMode() {
	getMap().panMode();
}
function selectMode() {
	getMap().selectMode();
}


function getUserLog() {
	var userReportPage = "http://"+server+"/gis/web/user_report.php";
	window.open(userReportPage, 'User_Report', 'location=no,scrollbars=1,width=800,height=600,left = 212,top = 134');
}
/*  function has been terminated

function mouseOver(text) {
	document.getElementById('toolTip').innerHTML = text
}

function mouseOut() {
	document.getElementById('toolTip').innerHTML = '';
}
*/
function getXY() {
	var map = getMap();
	pointType = 'getXY'
	if(navigator.appName == "Netscape")
		map.digitizePoint(document.obs);
	else
		map.digitizePoint();
}

function getArea() {
	var dataPane = document.getElementById("dataWindowDisplay");
	var map = getMap();
	var selection = map.getSelection().getMapObjectsEx(null);
	var obj;
	var objCount = selection.size();
	dataPane.innerHTML = "Selected: " + objCount + " feature(s) <br />";
	for( i = 0; i<objCount; i++) {
		obj = selection.item(i);
		dataPane.innerHTML = dataPane.innerHTML + "Feature Name: " + obj.getName() + " Area: " + obj.getArea() + "<br />";
	}
}
function showPreferencesDlg() {
	getMap().preferencesDlg();
}
function checkStatusBar() {
	if(getMap().StatusBar == "On")
		document.getElementById("button15").disabled = false;
	else
		document.getElementById("button15").disabled = true;
}
function showStatusBar() {
	if(getMap().StatusBar == "Off")
		getMap().StatusBar = "On";
	else
		getMap().StatusBar = "Off";	
}

function showLayers() {
	var layersWidth = getMap().LayersViewWidth;
	if(parseInt(layersWidth) > 0)
		getMap().LayersViewWidth = "0";
	else if (parseInt(layersWidth) == 0)
		getMap().LayersViewWidth = "200";
}
function doGetName() {
	var map=getMap();
	var selection = map.getSelection().getMapObjectsEx(null);
	var obj;
	obj = selection.item(0);
	return obj.getMapLayer().getName();
}
function doGetKey() {
	var map=getMap();
	if (map.getSelection().getNumObjects() == 0) {
		alert("Please make a selection first");
		return;
	}
	var sel = map.getSelection();
	var objs = sel.getMapObjectsEx(null);
	var cntObjects = objs.size();
	var msg  = "Keys of selected features are: \n";
	var i;
	for(i=0; i<cntObjects; i++)	{
		var obj = objs.item(i);
		var key = obj.getKey();
		var keyName = obj.getMapLayer().getLayerSetup().getDatabaseSetup().getKeyColumn();
		msg = msg + obj.getMapLayer().getName() + ": " + keyName + " " + key + "\n";
	}
	document.getElementById("dataWindowDisplay").innerHTML = msg;
}

function getHydrantData() {	
	var map = getMap()
	if(!map.isBusy()) {
		map.viewReport("Water Hydrant Report");
	}
}
function getManholeData() {
	var map = getMap()
	if(!map.isBusy()) {
		map.viewReport("Manhole Report");
	}
}
function getValveData() {
	var map = getMap()
	if(!map.isBusy()) {
		map.viewReport("Water Valve Report");
	}
}
function save_map() {
	var d = new Date();
	var strmonth = d.getMonth() + 1;
	var strDate = d.toString()
	var password = ""

	var fname = "c:\\SavedMaps\\GIS_" + d.getDate() + "_" + strmonth + "_" + d.getYear() + "_" + d.getHours() + d.getMinutes() + ".mwf";
	alert("Map will be saved as\n" + fname);
	if (getMap().saveMWF(fname, ""))
		alert("Map has been saved");
	else
		alert("Map was not saved");
}

function symbolMouseOver(element) {
	resetSymbolsWidth();
	document.getElementById(element).style.borderWidth="2px";
}
function symbolMouseOut(element) {
	resetSymbolsWidth();
	
}
function symbolClick(element) {
	resetSymbolsWidth();
	resetSymbolsColor();
	
	document.getElementById(element).style.borderWidth="2px";
	document.getElementById(element).style.borderColor="Yellow";
	document.getElementById('selectedSymbol').innerHTML = element;
}
function resetSymbolsWidth() {
	document.getElementById('A1').style.borderWidth="1px";
	document.getElementById('A2').style.borderWidth="1px";
	document.getElementById('B1').style.borderWidth="1px";
	document.getElementById('B2').style.borderWidth="1px";
	document.getElementById('C1').style.borderWidth="1px";
	document.getElementById('C2').style.borderWidth="1px";
	document.getElementById('D1').style.borderWidth="1px";
	document.getElementById('D2').style.borderWidth="1px";
	document.getElementById('E1').style.borderWidth="1px";
	document.getElementById('E2').style.borderWidth="1px";
	document.getElementById('F1').style.borderWidth="1px";
	document.getElementById('F2').style.borderWidth="1px";
	document.getElementById('G2').style.borderWidth="1px";
	document.getElementById('H1').style.borderWidth="1px";
	document.getElementById('H2').style.borderWidth="1px";
	document.getElementById('I1').style.borderWidth="1px";
	document.getElementById('I2').style.borderWidth="1px";
	document.getElementById('J1').style.borderWidth="1px";
	document.getElementById('J2').style.borderWidth="1px";
	document.getElementById('J3').style.borderWidth="1px";
	document.getElementById('K2').style.borderWidth="1px";
	document.getElementById('K3').style.borderWidth="1px";
	document.getElementById('Q1').style.borderWidth="1px";
	document.getElementById('R1').style.borderWidth="1px";
	document.getElementById('R2').style.borderWidth="1px";
	document.getElementById('S1').style.borderWidth="1px";
	document.getElementById('S6').style.borderWidth="1px";
	document.getElementById('z_hydrant').style.borderWidth="1px";
	document.getElementById('z_water_well').style.borderWidth="1px";
	document.getElementById('Hydrant').style.borderWidth="1px";
	document.getElementById('Manhole').style.borderWidth="1px";
	document.getElementById('Valve').style.borderWidth="1px";
	
	
}
function resetSymbolsColor() {
	document.getElementById('A1').style.borderColor="Black";
	document.getElementById('A2').style.borderColor="Black";
	document.getElementById('B1').style.borderColor="Black";
	document.getElementById('B2').style.borderColor="Black";
	document.getElementById('C1').style.borderColor="Black";
	document.getElementById('C2').style.borderColor="Black";
	document.getElementById('D1').style.borderColor="Black";
	document.getElementById('D2').style.borderColor="Black";
	document.getElementById('E1').style.borderColor="Black";
	document.getElementById('E2').style.borderColor="Black";
	document.getElementById('F1').style.borderColor="Black";
	document.getElementById('F2').style.borderColor="Black";
	document.getElementById('G2').style.borderColor="Black";
	document.getElementById('H1').style.borderColor="Black";
	document.getElementById('H2').style.borderColor="Black";
	document.getElementById('I1').style.borderColor="Black";
	document.getElementById('I2').style.borderColor="Black";
	document.getElementById('J1').style.borderColor="Black";
	document.getElementById('J2').style.borderColor="Black";
	document.getElementById('J3').style.borderColor="Black";
	document.getElementById('K2').style.borderColor="Black";
	document.getElementById('K3').style.borderColor="Black";
	document.getElementById('Q1').style.borderColor="Black";
	document.getElementById('R1').style.borderColor="Black";
	document.getElementById('R2').style.borderColor="Black";
	document.getElementById('S1').style.borderColor="Black";
	document.getElementById('S6').style.borderColor="Black";
	document.getElementById('z_hydrant').style.borderColor="Black";
	document.getElementById('z_water_well').style.borderColor="Black";
	document.getElementById('Hydrant').style.borderColor="Black";
	document.getElementById('Manhole').style.borderColor="Black";
	document.getElementById('Valve').style.borderColor="Black"
}
function symbolUnitsClick(units) {
	symbolUnits=units;
}
function printPageSetup() {
	var map = getMap();
	var pgSetup = map.getPageSetup;
	pgSetup.setTitle("City of Lawrence");
}
function onEndLayout(layout, printInfo) {
	printPageSetup();
}
function onBeginLayout(pgSetup, printInfo) {
	printPageSetup();
}
function printPage() {
	var map = getMap();
	map.pageSetupDlg();
	map.printDlg();
}
function convertUnits() {

	var map = getMap();
	var pt = map.createObject("MGPoint");
	var x = document.getElementById('x').value;
	var y = document.getElementById('y').value;
	if(x != '' || y != '') {
		if(document.getElementById('in83').checked && prevCoord != 'in83'){
			pt = map.lonLatToMcs(x,y);
			document.getElementById('x').value = pt.getX();
			document.getElementById('y').value = pt.getY();
		} else if(document.getElementById('latLon').checked && prevCoord != 'latLon'){
			pt = map.mcsToLonLat(x,y);
			document.getElementById('x').value = pt.getX();
			document.getElementById('y').value = pt.getY();
		} else {
			// do nothing
		}
	}
	if(document.getElementById('in83').checked) {
		prevCoord = 'in83';
	} else {
		prevCoord = 'latLon';
	}

}

function checkKeyCode(e) {
	var keycode;
	var numcheck;
	if (window.event){
		keycode = window.event.keyCode;
	} else if (e) {
		keycode = e.which;
	}
	
	if((keycode >= 48 && keycode <=57) || keycode == 189 || keycode == 190 || keycode == 8 || keycode == 46 || (keycode >= 96 && keycode <= 105)
		|| ( keycode >=35 && keycode <= 46) || keycode == 109 || keycode == 110) {
		return true;
	} else {
		return false;
	}
}

function openPage(pageName) {
	window.open(pageName);
}
function goToQC() {
	window.open("http://"+server+"/gis/web/qc/qcform.php");
}
