// $Id: changePage.js,v 2.3 2010/02/16 00:28:53 pwh Exp $

var page = ""
var oldPage = ""
var extraPage = ""
var userName = ""
var email = ""
var phone = ""
var message = ""

var map = null


function getMap ()

{
   var revision = document.getElementById ( "Revision" ).value
   var mapName = document.getElementById ( "mapName" ).value

   if ( navigator.appName != "Opera" ) {

	var latitude = document.getElementById ( "latitude" ).value
	var longitude = document.getElementById ( "longitude" ).value
	var title = document.getElementById ( "mapTitle" ).value
        var description = document.getElementById ( "mapDescription" ).value
	var layer
	var shape

	map = new VEMap ( mapName )
	map.LoadMap ( new VELatLong ( latitude, longitude ), 13, 'r', false )

	shape = new VEShape ( VEShapeType.Pushpin,
					new VELatLong ( latitude, longitude ) )
	shape.SetCustomIcon ( "images/" + revision + "/mapMarker.png" )
	shape.SetAltitudeMode ( VEAltitudeMode.RelativeToGround )
	shape.SetAltitude ( 0 )
	shape.SetTitle ( title )
	shape.SetDescription ( description )

	layer = new VEShapeLayer ()
	layer.AddShape ( shape )

	map.AddShapeLayer ( layer )

   } else {

	document.getElementById ( mapName ).innerHTML
				= "<img src=\"images/" + revision + "/"
					+ mapName + ".png\" alt=\"map\">"
   }
}


function getContactInfo ()

{
   document.getElementById ( "userName" ).value = userName
   document.getElementById ( "email" ).value = email
   document.getElementById ( "phone" ).value = phone
   if ( message != "" ) document.getElementById ( "message" ).value = message
}


function fillExtraPage ()

{
   if ( extraPage == "contact" ) getContactInfo ()
   else getMap ()
}


function mouseOverButton ( newPage, where )

{
   if ( newPage != page ) {

	document.getElementById ( newPage + "Label" + where ).className
							= "button pressed"
   }
}


function mouseOffButton ( newPage, where )

{
   if ( newPage != page ) {

	document.getElementById ( newPage + "Label" + where ).className
							= "button"
   }
}


function requestPage ( newPage, extra, request )

{
   var success = false;
   var errorMsgIds = new Array ( "errMsg1", "errMsg2" )
   var connection = GetXmlHttpObject ( errorMsgIds )

   if ( connection ) {

	var authorization = document.getElementById ( "authorization" ).value

	if ( request ) request += ( "&page=" + newPage )
	else request = "page=" + newPage

	if ( newPage == "extraPage" ) request += ( "&extra=" + extra )

	connection.open ( "POST", "index.php", false )
	connection.setRequestHeader ( "Content-Type",
					"application/x-www-form-urlencoded" )

	if ( authorization != "" ) connection.setRequestHeader
					( "Authorization", authorization )
	connection.send ( request )

	if ( connection.status != 200 ) {

		for ( var i = 0; i < errorMsgIds.length; ++i ) {

			document.getElementById ( errorMsgIds[i] ).innerHTML
						= connection.statusText
		}

	} else {

		document.getElementById ( "main" ).innerHTML
						= connection.responseText

		for ( var i = 0; i < errorMsgIds.length; ++i ) {

			document.getElementById ( errorMsgIds[i] ).innerHTML
								= "&nbsp;"
		}

		success = true;
	}
   }

   return ( success )
}


function changePage ( newPage )

{
   var success = true

   if ( newPage != page ) {

	document.getElementById ( newPage + "top" ).className
						= "top menuItem pressedBkgrnd"
	document.getElementById ( newPage + "bottom" ).className
					= "bottom menuItem pressedBkgrnd"
	document.getElementById ( newPage + "Labeltop" ).className
							= "button pressed"
	document.getElementById ( newPage + "Labelbottom" ).className
							= "button pressed"

	if ( requestPage ( newPage, null, null ) ) {

		if ( page != "extraPage" ) {

			document.getElementById ( page + "top" ).className
						= "top menuItem buttonBkgrnd"
			document.getElementById ( page + "bottom" ).className
						= "bottom menuItem buttonBkgrnd"
			document.getElementById ( page + "Labeltop" ).className
								= "button"
			document.getElementById ( page + "Labelbottom" )
							.className = "button"

		} else extraPage = ""

		page = newPage

		document.getElementById ( page + "top" ).className
						= "top menuItem titleBkgrnd"
		document.getElementById ( page + "bottom" ).className
						= "bottom menuItem titleBkgrnd"
		document.getElementById ( page + "Labeltop" ).className
								= "title"
		document.getElementById ( page + "Labelbottom" ).className
								= "title"
	} else success = false
   }

   return ( success )
}


function pageLoaded ()

{
   page = document.getElementById ( "page" ).value
   extraPage = document.getElementById ( "extraPage" ).value

   if ( page == "extraPage" ) fillExtraPage ()
}


function openExtraPage ( newPage )

{
   var success = true

   if ( extraPage != newPage ) {

	if ( requestPage ( "extraPage", newPage, null ) ) {

		if ( page != "extraPage" ) {

			document.getElementById ( page + "top" ).className
						= "top menuItem buttonBkgrnd"
			document.getElementById ( page + "bottom" ).className
						= "bottom menuItem buttonBkgrnd"
			document.getElementById ( page + "Labeltop" ).className
								= "button"
			document.getElementById ( page
					+ "Labelbottom" ).className = "button"

			oldPage = page
			page = "extraPage"
		}

		extraPage = newPage

		if ( document.getElementById ( "errors" ).value > -1 )
								fillExtraPage ()
	} else success = false
   }

   return ( success )
}


function closeExtraPage ()

{
   if ( extraPage != "" ) {

	if ( oldPage == "" ) oldPage = "home"
	if ( changePage ( oldPage ) ) extraPage = ""
   }
}


function submitContactForm ()

{
   var request = "submit=yes"

   if ( message != "" ) {

	request += ( "&message=" + encodeText ( message ) )
   }

   requestPage ( "extraPage", "contact",
			buildRequest ( request, "userName", "email", "phone" ) )

   if ( document.getElementById ( "errors" ).value == 0 ) {

	message = ""
   }
}

