// April 3, 2003 - Started.
var map = null;
var url = null;
var domainName = null;
var icon = null;
var tooltip = null;
var message = null;
var mapMarkers = new Array();
var memberTypes = new Array();
var memberSubTypes = new Array();
var type_id_array = new Array();
var userMapType = null;
var checkbox_id = null;
var type_id = null;
var request = null;
var windowOpen = 0;
var tempClickedMemberTypes = new Array();
var timeoutID = 0;
var timeOut = 50; //Set in ms. Currently: 50ms

function setDomainName(temp)
{
	domainName = temp;
}

function getURL()
{
	url = "http://" + domainName + "/lib/members.php?stuff=" + new Date().getTime() + "&site_id=" + site_id + "&client_id=" + client_id;
}

function createRequest()
{
	setDomainName(domainName);

	try
	{	request = new XMLHttpRequest();	}
	catch(trymicrosoft)
	{
		try
		{	request = new ActiveXObject("Msxm12.XMLHTTP");	}
		catch(othermicrosoft)
		{
			try
			{	request = new ActiveXObject("Microsoft.XMLHTTP");	}
			catch(fail)
			{	request = null;	}
		}
	}

	if(request == null)
	{	alert("Error creating XMLHttpRequest!");	}
}


function  buildMap()
{
	document.getElementById("bar_loader").style.display = "inline";

	if(map_type == "road")
   	{
   		var new_map_type = G_NORMAL_MAP;
   	}
   	else if(map_type == "aerial")
   	{
   		var new_map_type = G_SATELLITE_MAP;
   	}
   	else if(map_type == "hybrid")
   	{
   		var new_map_type = G_HYBRID_MAP;
   	}

   	mapZoom = parseInt(zoom);

	icon = new GIcon();
    icon.iconSize=new GSize(32,32);
    icon.shadowSize=new GSize(60,35);
    icon.iconAnchor=new GPoint(16,32);
    icon.infoWindowAnchor=new GPoint(16,0);

	map = new GMap2(document.getElementById("map"));
	new GKeyboardHandler(map);
	//map.addControl(new GLargeMapControl());
    map.addControl(new YSliderControl());
	map.addControl(new zoomInControl());
	map.addControl(new zoomOutControl());
	map.addControl(new GOverviewMapControl());
	map.addControl(new GScaleControl());
	map.addControl(new GMapTypeControl());
	/* first set of options is for the visual overlay.*/
	var boxStyleOpts = {opacity: .5, border: "2px solid white"}

	/* second set of options is for everything else */
	var otherOpts = 
	{
		//buttonHTML: "<img src='http://www.northwestidx.com/lib/map/zoom-button.gif' />",
	  	buttonHTML: "<img src='http://www.northwestidx.com/images/map/zoom_select_tool_off.png' onMouseover='showtip(this,event,\"Start Zoom Box\")' onMouseout='hidetip()' />",
	  	//buttonZoomingHTML: "<img src='http://www.northwestidx.com/lib/map/zoom-button-activated.gif' />",
	  	buttonZoomingHTML: "<img src='http://www.northwestidx.com/images/map/zoom_select_tool_on.png' onMouseover='showtip(this,event,\"Close Zoom Box\")' onMouseout='hidetip()' />&nbsp;<span style='vertical-align:top;'><font color='#ffffff' size='2'><b>Click and Drag on Map to Zoom In</b></font></span>",
	  	buttonStartingStyle: {width: '32px'},
	  	overlayRemoveTime: 2000
	};

	map.addControl(new DragZoomControl(boxStyleOpts, otherOpts), new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(7,7)));
	map.enableDoubleClickZoom();
   	map.setCenter(new GLatLng(lat, lng), mapZoom, new_map_type); /**/


    	// ====== set up marker mouseover tooltip div ======
	tooltip = document.createElement("div");
	document.getElementById("map").appendChild(tooltip);
	tooltip.style.visibility="hidden";
   	// ======================================

	GEvent.addListener(map, 'zoomend', function(oldLevel, newLevel)	{	createMemberPoints();  	});
   	GEvent.addListener(map, 'dragend', function(overlay, point) {  	createMemberPoints();  	});
   	GEvent.addListener(map, 'infowindowopen', function() {  	windowOpen = 1;  	});
   	GEvent.addListener(map, 'infowindowclose', function() {  	windowOpen = 0;  	});
   	GEvent.addListener(map, 'moveend', function(overlay, point)
   	{
   		if(windowOpen == 0)
   		{	createMemberPoints();  	}
   	});
   	GEvent.addListener(map, 'maptypechanged', function() { saveClientMapType(map.getCurrentMapType()); });

    resizeMap();
   	createMemberPoints();
}

function createMemberPoints()
{
    document.getElementById("bar_loader").style.display = "inline";

	var mapBounds = map.getBounds();
	var centerBounds = map.getCenter();
	var zoomLevel = map.getZoom();


	mapUrl = "&function=members&mapbounds=" + mapBounds + "&mapCenter=" + centerBounds + "&zoomLevel=" + zoomLevel;

	if(memberTypes != '')
    {
		mapUrl += "&typesOff=" + memberTypes;
	}

	createRequest();
	getURL();
	mapUrl = url + mapUrl;
	
	if(debug == 1)
	{
		//alert(mapPoints);
		document.getElementById("debug").innerHTML = mapUrl;
	}
		
	request.open("GET", mapUrl, true);
	request.onreadystatechange = updateMap;
	request.send(null);
}

function updateMap()
{
    if(request.readyState == 4)
	{
		var mapPoints = request.responseText;
		
		/*if(debug == 1)
		{
			alert(mapPoints);
		}*/
		//;
		var tempMap = mapPoints.split("|");

		tempMap.reverse();
		var showMembers = tempMap.pop();
		var showSql = tempMap.pop();
		
		if(debug == 1)
		{
			//alert(mapPoints);
			document.getElementById("debug").innerHTML += showSql;
		}
		
		var memberCount = tempMap.pop();

		map.clearOverlays();

		if(showMembers == 1)
		{
			while(tempMap.length != 0)
			{
                var member_id = tempMap.pop();
                var data = tempMap.pop();
				var lat = tempMap.pop();
				var lng = tempMap.pop();
				var memberIcon = tempMap.pop();

				var toolTipData = data;

				addPoints(lat, lng, toolTipData, member_id, memberIcon);
			}
		}
		else if(showMembers == 2)
		{
			parent.categories.document.getElementById("checkbox_trip_planner").checked = false;
			selectAllTypes();
		}

		document.getElementById("bar_loader").style.display = "none";
	}
}

function addPoints(tempLat, tempLng, toolTipData, member_id, memberIcon)
{
	var point = new GLatLng(tempLat, tempLng);
	var marker = null;

	marker = createMarkerFunction(point, member_id, toolTipData, memberIcon);
	mapMarkers[member_id] = marker;
	map.addOverlay(marker);
}


function createMarkerFunction(point, member_id, toolTipData, memberIcon)
{
	var iconMarker = new GIcon(icon);

	if(memberIcon == 0)
	{
		//iconMarker.image = "http://maps.google.com/mapfiles/kml/pal5/icon14.png";
   		//iconMarker.shadow = "http://maps.google.com/mapfiles/kml/pal5/icon14s.png";
   		iconMarker.image = "http://" + domainName + "/images/icons/multiple.png";
	}
	else
	{
		iconMarker.image = "http://" + domainName + "/images/icons/" + memberIcon;
		iconMarker.shadow = "http://" + domainName + "/images/icons/shadow_icon.png";
	}

 	var marker = new GMarker(point, iconMarker);
    marker.icon = iconMarker;
	marker.tooltip = '<div class="tooltip">' + toolTipData + '</div>';
   	GEvent.addListener(marker, 'click', function() { getMemberInfo(member_id); });
   	GEvent.addListener(marker, 'infowindowclose', function()
	{
	    	var tempInfo = "data_" + member_id;
	    	if(document.getElementById(tempInfo))
	    	{
	    		document.getElementById(tempInfo).innerHTML = "";
	    	}
	} );

	//======  The new marker "mouseover" and "mouseout" listeners  ======
    GEvent.addListener(marker,"mouseover", function() {	showTooltip(marker);       });
    GEvent.addListener(marker,"mouseout", function() {	tooltip.style.visibility="hidden";	});
   	return marker;
}

function getMemberInfo(member_id)
{
	getURL();
	var memberUrl = url + "&function=memberLookup&member_id=" + member_id + "&trip_id=" + trip_id;;

	request.open("GET", memberUrl, true);
	request.onreadystatechange = bubbleInfo;
	request.send(null);
}

function bubbleInfo()
{
    if(request.readyState == 4)
    {
		var mapInfo = request.responseText;
		//alert(mapInfo);
	    tempMapInfo = mapInfo.split("|");
	  	var member_id = tempMapInfo[0];
	  	var member_info = tempMapInfo[3];
	  	var member_description = tempMapInfo[4];

	  	var infoTabs = "";

	  	if(member_description != 0)
	  	{
	  		window["infoTabs_" + member_id] = [ new GInfoWindowTab("Contact Info", member_info), new GInfoWindowTab("Description", member_description) ];
	  	}
	  	else
	  	{
	  		window["infoTabs_" + member_id] = [ new GInfoWindowTab("Contact Info", member_info)];
	  	}

	  	mapMarkers[member_id].openInfoWindowTabsHtml(window["infoTabs_" + member_id]);
    }
}


function resizeMap()
{
    var newMapSize = GetMapWidth();
    document.getElementById("map").style.width = newMapSize;
}

function GetMapWidth()
{
	var x;
	if (self.clientWidth) // all except Explorer
	{
		x = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
	}

	GetMapHeight();
	return x - 261;
}

function GetMapHeight()
{
	var tempHeight;
	if (self.innerHeight) // all except Explorer
	{
		tempHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		tempHeight = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		tempHeight = document.body.clientHeight;
	}

	//tempHeight = tempHeight - 330;

	document.getElementById("dropdown-content").style.height = tempHeight - 330;
	document.getElementById("dropdown-content-info-request").style.height = tempHeight - 330;

	//x = x-300;
	//if(x<300){x=300;}
	//if(x>400){x=400;}
	//alert(x);
	//return x;
}

// ====== This function displays the tooltip ======
// it can be called from an icon mousover or a sidebar mouseover
function showTooltip(marker)
{
	tooltip.innerHTML = marker.tooltip;

	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;

	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize((offset.x - point.x - anchor.x - 10) + width,- offset.y + point.y +anchor.y - 10));

	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}

function getSubType(type_id)
{
	createRequest();
	getURL();
	typeUrl = url + "&function=subTypeLookup&type_id=" + type_id;
	request.open("GET", typeUrl, true);
	request.onreadystatechange = updateSubTypes;
	request.send(null);
}

function updateSubTypes()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
     	data = data.split("|");
        var type_id = data[0];
		var subTypeCount = data[1];
        var display_data = data[2];

        parent.categories.document.getElementById("subtype_count" + type_id).value = subTypeCount;

		var type_html = '<a href="javascript:void(0);" onClick="parent.closeSubTypes(' + type_id + ')" >';
		type_html += '<img id="category_arrow_' + type_id + '" src="images/category_arrow_on.gif" width="17" height="18" border="0"></a>';

		parent.categories.document.getElementById("type_" + type_id).innerHTML = type_html;
		parent.categories.document.getElementById("subtype_" + type_id).innerHTML = display_data;
		parent.categories.document.getElementById("subtype_" + type_id).style.display = "block";
    }
}

function closeSubTypes(type_id)
{
 	parent.categories.document.getElementById("subtype_count" + type_id).value = 0;
    var arrowCheck = parent.categories.document.getElementById("category_arrow_" + type_id).src;

	if(arrowCheck != "http://" + domainName + "/images/spacer.gif")
	{
	    var type_html = '<a href="javascript:void(0);" onClick="parent.getSubType(' + type_id + ')" >';
		type_html += '<img id="category_arrow_' + type_id + '" src="images/category_arrow_off.gif" width="17" height="18" border="0"></a>';

		parent.categories.document.getElementById("type_" + type_id).innerHTML = type_html;
		parent.categories.document.getElementById("subtype_" + type_id).innerHTML = '';
		parent.categories.document.getElementById("subtype_" + type_id).style.display = "none";
	}
	else if(arrowCheck == "http://" + domainName + "/images/spacer.gif")
	{
        var type_html = '<a href="javascript:void(0);">';
		type_html += '<img id="category_arrow_' + type_id + '" src="images/spacer.gif" width="17" height="18" border="0"></a>';

		parent.categories.document.getElementById("type_" + type_id).innerHTML = type_html;
		parent.categories.document.getElementById("subtype_" + type_id).innerHTML = '';
	}
}

function doSearch()
{
	var searchData = parent.categories.document.getElementById("searchText").value;
    	var mapBounds = map.getBounds();

	createRequest();
	getURL();
	searchUrl = url + "&function=searchMembers&searchData=" + searchData + "&mapLocation=" + mapBounds;
	request.open("GET", searchUrl, true);
	request.onreadystatechange = updateSearch;
	request.send(null);
}

function updateSearch()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
     	data = data.split("|");
        var resultCount = data[0];
		var resultData = data[1];

		parent.categories.document.getElementById("results").innerHTML = '<b><font color="#CC0000">' + resultCount + ' Results</font></b>';
		parent.categories.document.getElementById("search_results").innerHTML = resultData;
		parent.categories.document.getElementById("search_instructions").style.display = "none";
    }
}

//START of ON OFF.
function memberOnOff(member_type_id)
{
	if(timeoutID != 0)
	{
		clearTimeout(timeoutID);
	}

	getURL();
	var selectedItem = parent.categories.document.getElementById("checkbox" + member_type_id).checked;

	if(selectedItem == true)
	{
		//Turn ON.
     	//memberTypes = checkArray(member_type_id, memberTypes);
		var typeUrl = url + "&function=typeOnOff&add=1&type_id=" + member_type_id;

		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;

		if(subtype_count != 0)
		{
			for(var i = 1; i < subtype_count; i++)
			{
				if(parent.categories.document.getElementById("checkbox" + member_type_id + "_" + i).checked != true)
				{	parent.categories.document.getElementById("checkbox" + member_type_id + "_" + i).checked = true;	}

			}
		}

		loadingSubTypes(member_type_id, 1);
	}
	else
	{
		//Turn OFF.
		//memberTypes.unshift(member_type_id);
		var typeUrl = url + "&function=typeOnOff&add=0&type_id=" + member_type_id;

		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;

		for(var i = 1; i < subtype_count; i++)
		{	parent.categories.document.getElementById("checkbox" + member_type_id + "_" + i).checked = false;	}

		loadingSubTypes(member_type_id, 0);
	}

	//Call function to add or remove from DB.
	//alert(typeUrl);
	createRequest();
	request.open("GET", typeUrl, true);
	request.onreadystatechange = typeOff;
	request.send(null);
}


function typeOff()
{
	if(request.readyState == 4)
    {
        var data = request.responseText;

        if(data == 1)
		{
            timeoutID = setTimeout("setClearCreate();", timeOut);
		}
    }
}
// END of Member On OFF

function setClearCreate()
{
	map.clearOverlays();
    createMemberPoints();
}

//When a Sub Type is clicked on Or off. --> Sets the flag in the DB.
function loadingSubTypes(member_type_id, onOff)
{
	getURL();
	createRequest();
	var subTypeUrl = url + "&function=loadingSubType&type_id=" + member_type_id + "&on_off=" + onOff;
	request.open("GET", subTypeUrl, true);
	request.send(null);

	//When returned call: map.clearOverlays(); createMemberPoints();
}

//When a Type is clicked on OR off.----> Sets the flag in DB.
function loadingTypes(type_id, onOff)
{
	getURL();
	createRequest();
	var loadingTypeUrl = url + "&function=loadingType&type_id=" + type_id + "&on_off=" + onOff;
	request.open("GET", loadingTypeUrl, true);
	request.send(null);

	//When returned call: map.clearOverlays(); createMemberPoints();
}

//START of member sub type ON/OFF
function memberSubTypeOnOff(temp_data)
{
	if(timeoutID != 0)
	{
		clearTimeout(timeoutID);
	}

	getURL();
	temp_data = temp_data.split("&&");
	member_subtype_id = temp_data[0];
	checkbox_id = temp_data[1];
	type_id = temp_data[2];

	var selectedItem = parent.categories.document.getElementById("checkbox" + type_id + "_" + checkbox_id).checked;

	if(selectedItem == true)
	{
		//Subtype turned on.
		//memberSubTypes = checkArray(member_subtype_id, memberSubTypes);
		var typeUrl = url + "&function=subTypeOnOff&add=1&subtype_id=" + member_subtype_id;
		parent.categories.document.getElementById("checkbox" + type_id).checked = true;
		loadingTypes(type_id, 1);
	}
	else
	{
		//Subtype turned off.
		var typeUrl = url + "&function=subTypeOnOff&add=0&subtype_id=" + member_subtype_id;

		var uncheck = 0;
		var subtype_count = parent.categories.document.getElementById("subtype_count" + type_id).value;
		for(var i = 1; i < subtype_count; i++)
		{
			if(parent.categories.document.getElementById("checkbox" + type_id + "_" + i).checked == true)
			{
				var uncheck = 1;
				i = subtype_count + 1;
			}
		}

		if(uncheck == 0)
		{
			parent.categories.document.getElementById("checkbox" + type_id).checked = false;
			loadingTypes(type_id, 0);
		}
	}

	//alert(typeUrl);
	createRequest();
	request.open("GET", typeUrl, true);
	request.onreadystatechange = subTypeOff;
	request.send(null);
}

function subTypeOff()
{
	if(request.readyState == 4)
    {
        var data = request.responseText;

		if(data == 1)
		{
			timeoutID = setTimeout("setClearCreate();", timeOut);
		}
    }
}
//End of sub type member ON/OFF

function checkArray(check_item, checkArray)
{
	var tempArray = new Array();

	if(checkArray.length > 1)
	{
          for(var i = 0; i <= checkArray.length; i++)
		{
          	var tempItem = checkArray.pop();

			if(tempItem != check_item)
			{
				tempArray.unshift(tempItem);
			}
		}

		return tempArray;
	}
	else if(checkArray.length == 1)
	{
      	if(checkArray[0] == check_item)
		{
           	return tempArray;
		}
	}
	else
	{
             return tempArray;
	}

}

function emailFriend(member_id)
{
    openDropDown("emailLocation");
    document.getElementById("member_id").value = member_id;
}

function sendEmail(close)
{
	if(close == "close")
	{
		openDropDown("emailLocation");
	}
	else
	{
	 	var yourName = document.getElementById("yourNameFriend").value;
		var yourEmail = document.getElementById("yourEmailFriend").value;

		if(yourEmail == "")
		{
			alert("Please enter your email address.");
			document.getElementById("yourEmailFriend").focus();
			return false;
		}

		var friendName = document.getElementById("friendsNameFriend").value;
		var friendEmail = document.getElementById("friendsEmailFriend").value;

		if(friendEmail == "")
		{
			alert("Please enter your friends email address.");
			document.getElementById("friendsEmailFriend").focus();
			return false;
		}

		var message = document.getElementById("friend_message").value;
		var member_id = document.getElementById("member_id").value;

		getURL();
	    createRequest();
	    var emailUrl = url + "&function=emailFriend&yourName=" + yourName + "&yourEmail=" + yourEmail + "&friendName=" + friendName;
	    emailUrl += "&friendEmail=" + friendEmail + "&message=" + message + "&member_id=" + member_id;

		request.open("GET", emailUrl, true);
		request.onreadystatechange = updateEmail;
		request.send(null);

		return false;
	}
}

function updateEmail()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;

		if(data != 0)
		{
			var emailMessage = "<center><h2><font color='#4444bb'>Email Successfully Sent</font></h2></center>";
			document.getElementById("locationEmailMessage").innerHTML = emailMessage;
			document.getElementById("openLocationEmailMessage").style.display = "block";

			document.getElementById("locationEmailForm").style.display = "none";
			document.getElementById("locationEmailButton").style.display = "none";
		}
		else
		{
			var emailMessage = "<center><h2><font color='#CC0000'>Error sending Email.<br/>";
			emailMessage += "Please verify Email address' and Retry.</font></h2></center>";
			document.getElementById("locationEmailMessage").innerHTML = emailMessage;
			document.getElementById("openLocationEmailMessage").style.display = "block";

			document.getElementById("locationEmailForm").style.display = "none";
			document.getElementById("locationEmailButton").style.display = "none";
		}
    }
}

function applyArea(areaData)
{
    openDropDown('wrapper-areas');

    var tempArea = areaData.split("|");

    if(userMapType == "")
    {
	    if(tempArea[3] == "road")
	   	{
	   		var new_map_type = G_NORMAL_MAP;
	   	}
	   	else if(tempArea[3] == "aerial")
	   	{
	   		var new_map_type = G_SATELLITE_MAP;
	   	}
	   	else if(tempArea[3] == "hybrid")
	   	{
			var new_map_type = G_HYBRID_MAP;
	    }
    }
    else
    {
    	var new_map_type = userMapType;
    }

	mapZoom = parseInt(tempArea[2]);
    map.setCenter(new GLatLng(tempArea[0], tempArea[1]), mapZoom, new_map_type);
    createMemberPoints();
}

function addToTrip(member_id)
{
    getURL();
	createRequest();

    var tripUrl = url + "&function=addToTrip&member_id=" + member_id + "&trip_id=" + trip_id;
	request.open("GET", tripUrl, true);
	request.onreadystatechange = updateAdd2Trip;
	request.send(null);
}

function updateAdd2Trip()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
        data = data.split("|");

		if(data[0] == 1)
		{
			//var addBubbleMessage = "Location added to your trip planner.";

			var linkChange = "<td><img src='images/bubble_icon_added_to_trip_planner.gif' width='16' height='16'></td><td>&nbsp;";
			linkChange += "<span class='trip-planner-added'>Added to Trip Planner</span></td>";

			document.getElementById("add_complete").style.display = "block";
			document.getElementById("add2trip").style.display = "none";
			//document.getElementById("bubble_message").innerHTML = addBubbleMessage;
		}
		else if(data[0] == 2)
		{
			//var addBubbleMessage = "This location is already in your trip planner.";

			var linkChange = "<td><img src='images/bubble_icon_added_to_trip_planner.gif' width='16' height='16'></td><td>&nbsp;";
			linkChange += "<span class='trip-planner-added'>Added to Trip Planner</span></td>";

			document.getElementById("added_message").innerHTML = "";
			document.getElementById("added_message").innerHTML = linkChange;
			//document.getElementById("bubble_message").innerHTML = addBubbleMessage;
		}
    }
}

function unloadPlanner()
{
	//Destroy non-complete clients
	//Destroy trip-planner for non-complete clients
	GUnload();
}


function updateUnload()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
        alert("Client Destroyed");
		GUnload();
    }
}

function registerClient()
{
 	var client_email = document.getElementById("emailRegister").value;
	
 	getURL();
    createRequest();
    
    var registerUrl = url + "&function=registerClient&email=" + client_email + "&trip_id=" + trip_id;
    request.open("GET", registerUrl, true);
	request.onreadystatechange = updateRegister;
	request.send(null);

	return false;
}

function updateRegister()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
        data = data.split("|");

        client_email = data[1];
        client_id = data[2];
        trip_id = data[3];
        clientRegistered = 1;


        document.getElementById("client_email").innerHTML = client_email;
		document.getElementById("dropdown-content-login").style.display = "none";
		document.getElementById("dropdown-login-complete").style.display = "block";

		var graphic = '<a href="javascript:void(0);" onClick="openDropDown(\'wrapper-login\');">';
		graphic += '<img src="images/logout.gif" alt="Login" name="login" width="93" height="58" border="0" id="login" ';
		graphic += 'onMouseOver="MM_swapImage(\'login\',\'\',\'images/logout-over.gif\',0)" onMouseOut="MM_swapImgRestore()"></a>';

		document.getElementById("login_graphics").innerHTML = graphic;
    }
}

function clientLogout()
{
	getURL();
    createRequest();
    var logoutUrl = url + "&function=clientLogout";

    request.open("GET", logoutUrl, true);
	request.onreadystatechange = updateClientLogout;
	request.send(null);
}

function updateClientLogout()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
        data = data.split("|");

        client_id = data[0];
        //site_id = data[1];
        trip_id = data[2];
        clientRegistered = 0;

		document.getElementById("dropdown-content-login").style.display = "block";
		document.getElementById("dropdown-login-complete").style.display = "none";
		openDropDown('wrapper-login')

		var graphic = '<a href="javascript:void(0);" onClick="openDropDown(\'wrapper-login\');">';
		graphic += '<img src="images/login.gif" alt="Login" name="login" width="93" height="58" border="0" id="login" ';
		graphic += 'onMouseOver="MM_swapImage(\'login\',\'\',\'images/login-over.gif\',0)" onMouseOut="MM_swapImgRestore()"></a>';

		document.getElementById("login_graphics").innerHTML = graphic;
    }
}

function changeEmail()
{
	document.getElementById("emailMessage").innerHTML = "<h2>Enter your new email address.</h2>";
	document.getElementById("emailButton").innerHTML = "Update Email Address";
	document.getElementById("dropdown-content-login").style.display = "block";
	document.getElementById("dropdown-login-complete").style.display = "none";
	document.getElementById("new-login").style.display = "none";
}

function displayPlanner()
{
	getURL();
    createRequest();
    var plannerUrl = url + "&function=displayTripPlanner&trip_id=" + trip_id + "&registered=" + clientRegistered;
    request.open("GET", plannerUrl, true);
	request.onreadystatechange = updatePlanner;
	request.send(null);
}

function updatePlanner()
{
    if(request.readyState == 4)
    {
        var plannerData = request.responseText;
        plannerData = plannerData.split("|");
		planner_count = plannerData[0];
        displayData = plannerData[1];
        displayPosition = plannerData[2];

        /*if(planner_count > 0)
        {
        	document.getElementById("tripPlannerOptions").style.display = "inline";
        }*/

		document.getElementById("dropdown-content").innerHTML = displayData;
    }
}

function updatePlannerTitle()
{
 	var planner_title = document.getElementById("plannerTitle").value;

 	getURL();
    createRequest();
    var plannerTitleUrl = url + "&function=updatePlannerTitle&planner_title=" + planner_title + "&trip_id=" + trip_id;

    request.open("GET", plannerTitleUrl, true);
	request.onreadystatechange = updateTitle;
	request.send(null);

	return false;
}

function updateTitle()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;

        document.getElementById("trip_planner_message").innerHTML = "<h2>" + data + "</h2>";
		document.getElementById("titleChanger").style.display = "none";
    }
}

function locationPosition(position1, location1, position2, location2)
{
	getURL();
    createRequest();
    var positionUrl = url + "&function=updatePosition&trip_id=" + trip_id;
    positionUrl += "&position1=" + position1 + "&location1=" + location1 + "&position2=" + position2 + "&location2=" + location2;
    request.open("GET", positionUrl, true);
	request.onreadystatechange = updatePosition;
	request.send(null);
}

function updatePosition()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
    }
}

function deleteLocation(position1)
{
	getURL();
    createRequest();
    var deletePositionUrl = url + "&function=deletePosition&trip_id=" + trip_id;
    deletePositionUrl += "&position1=" + position1;

    request.open("GET", deletePositionUrl, true);
	request.onreadystatechange = updateDeletePosition;
	request.send(null);
}

function updateDeletePosition()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
    }
}

function openEmailPlanner()
{
	document.getElementById("openTripEmailMessage").style.display = "none";
	document.getElementById("tripEmailMessage").innerHTML = "";
	openDropDown("emailPlanner");
	getPlannerCount();
}

function getPlannerCount()
{
	getURL();
    var plannerCountUrl = url + "&function=plannerCount&trip_id=" + trip_id;

	createRequest();
    request.open("GET", plannerCountUrl, true);
	request.onreadystatechange = updatePlannerCount;
	request.send(null);
}

function updatePlannerCount()
{
	if(request.readyState == 4)
    {
        var data = request.responseText;

        if(data == 0)
        {
        	document.getElementById("openTripEmailMessage").style.display = "block";
        	document.getElementById("tripEmailMessage").innerHTML = "<font color='red'><b>There are no Locations in your Trip Planner.</b></font>";
        }
    }
}

function sendTripPlanner()
{
	var yourName = document.getElementById("yourName").value;
	var yourEmail = document.getElementById("yourEmail").value;

	if(yourEmail == "")
	{
		alert("Please enter your email address.");
		document.getElementById("yourEmail").focus();
		return false;
	}

	var friendName = document.getElementById("friendsName").value;
	var friendEmail = document.getElementById("friendsEmail").value;

	if(friendEmail == "")
	{
		alert("Please enter your friends email address.");
		document.getElementById("friendsEmail").focus();
		return false;
	}
	var friendMessage = document.getElementById("friendsMessage").value;

	getURL();
	createRequest();
    var emailPlannerUrl = url + "&function=emailTripPlanner&trip_id=" + trip_id;
    emailPlannerUrl += "&yourName=" + yourName + "&yourEmail=" + yourEmail + "&friendName=" + friendName + "&friendEmail=" + friendEmail;
    emailPlannerUrl += "&friendMessage=" + friendMessage;

    request.open("GET", emailPlannerUrl, true);
	request.onreadystatechange = updateEmailTripPlanner;
	request.send(null);
}

function updateEmailTripPlanner()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;

        document.getElementById("openTripEmailMessage").style.display = "block";
        document.getElementById("tripEmailMessage").innerHTML = "<font color='#4444bb'><b>Email Sent Successfully.</b></font>";

        document.getElementById("tripEmailForm").style.display = "none";
        document.getElementById("tripEmailButton").style.display = "none";
    }
}

function changeMap(type)
{
	map.setMapType(type);
}

function printMap()
{
	//document.getElementById("standard_logo").style.display = "none";
	//document.getElementById("print_logo").style.display = "inline";
	//document.getElementById("menu_bar").style.display = "none";
	//document.getElementById("side_frame").style.display = "none";
     closeAllDropDowns();
	var currentMap = map.getCurrentMapType();
	changeMap(G_NORMAL_MAP);
	setTimeout('window.print();', 2500);

	//changeMap(currentMap);
	//document.getElementById("standard_logo").style.display = "inline";
	//document.getElementById("print_logo").style.display = "none";
	//document.getElementById("side_frame").style.display = "inline";
	//document.getElementById("menu_bar").style.display = "table-row";
}

function pausecomp(millis)
{
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
	while(curDate-date < millis);
}

function displayPrintablePlanner()
{
	getURL();
	createRequest();
    var printablePlannerUrl = url + "&function=displayPrintablePlanner&trip_id=" + trip_id;
    printablePlannerUrl += "&clientRegistered=" + clientRegistered;
    //alert(printablePlannerUrl);
    request.open("GET", printablePlannerUrl, true);
	request.onreadystatechange = updatePrintablePlanner;
	request.send(null);
}

function updatePrintablePlanner()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;
        //alert(data);
        document.getElementById("displayPrintablePlanner").innerHTML = data;
        loadMap();
    }
}

function requestInformation(form)
{
	var info_count = document.getElementById("info_count").value;

	var info_data = "";
	for(var i = 1; i <= info_count; i++)
	{
		var request_type = document.getElementById("information_request_type_id" + i);

		if(request_type.checked == true)
		{
			info_data += request_type.value + ",";
		}
	}

	var name = document.getElementById("name").value;
	var email = document.getElementById("email").value;
	var phone = document.getElementById("phone").value;
	var address_street = document.getElementById("address_street").value;
	var address_city = document.getElementById("address_city").value;
	var address_state = document.getElementById("address_state").value;
	var address_zip = document.getElementById("address_zip").value;
	var info_comments = document.getElementById("info_comments").value;

	getURL();
	createRequest();
    var requestInfoUrl = url + "&function=requestInformaiton&trip_id=" + trip_id;
    requestInfoUrl += "&name=" + name + "&email=" + email + "&phone=" + phone + "&address_street=" + address_street + "&address_city=" + address_city;
    requestInfoUrl += "&address_state=" + address_state + "&address_zip=" + address_zip + "&info_request=" + info_data + "&comments=" + info_comments;
	//alert(requestInfoUrl);
    request.open("GET", requestInfoUrl, true);
	request.onreadystatechange = updateInfoRequest;
	request.send(null);

	return false;
}

function updateInfoRequest()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;

        if(data == 1)
        {
        	var message = "<br/><br/><font color='#4444bb'><h2>&nbsp;&nbsp;&nbsp;&nbsp;Request sent. Your information should arrive shortly.</h2></font><br/><br/>";
        	document.getElementById("request_message").innerHTML = message;
        }

    }
}

function emailMember(memberData)
{
	openDropDown("emailMember");
    document.getElementById("memberEmail").value = memberData;
}

function sendMemberEmail(close)
{
	if(close == "close")
	{
		openDropDown("emailMember");
	}
	else
	{
	 	var yourName = document.getElementById("yourNameMember").value;
		var yourEmail = document.getElementById("yourEmailMember").value;

		if(yourEmail == "")
		{
			alert("Please enter your email address.");
			document.getElementById("yourEmailMember").focus();
			return false;
		}

		var friendName = document.getElementById("friendsNameFriend").value;
		var memberEmail = document.getElementById("memberEmail").value;

		if(memberEmail == "")
		{
			alert("Please enter an email address.");
			document.getElementById("memberEmail").focus();
			return false;
		}

		var message = document.getElementById("messageToMember").value;

		getURL();
	    createRequest();
	    var memberEmailUrl = url + "&function=emailMember&yourName=" + yourName + "&yourEmail=" + yourEmail;
	    memberEmailUrl += "&memberEmail=" + memberEmail + "&message=" + message;

		request.open("GET", memberEmailUrl, true);
		request.onreadystatechange = updateMemberEmail;
		request.send(null);

		return false;
	}
}

function updateMemberEmail()
{
    if(request.readyState == 4)
    {
        var data = request.responseText;

		if(data != 0)
		{
			var emailMessage = "<center><h2><font color='#4444bb'>Email Successfully Sent</font></h2></center>";
			document.getElementById("memberEmailMessage").innerHTML = emailMessage;
			document.getElementById("openMemberEmailMessage").style.display = "block";

			document.getElementById("emailMemberForm").style.display = "none";
			document.getElementById("sendMemberButton").style.display = "none";
		}
		else
		{
			var emailMessage = "<center><h2><font color='#CC0000'>Error sending Email.<br/>";
			emailMessage += "Please verify Email address' and Retry.</font></h2></center>";
			document.getElementById("memberEmailMessage").innerHTML = emailMessage;
			document.getElementById("openMemberEmailMessage").style.display = "block";

			document.getElementById("emailMemberForm").style.display = "none";
			document.getElementById("sendMemberButton").style.display = "none";
		}
    }
}

//START function for All Types ON. --> Updated 6/19/2007
function selectAllTypes()
{
	var displayed_types = parent.categories.document.getElementById("all_types").value;

	displayed_types = displayed_types.split("|");
	var display_length = displayed_types.length;

	//Cycle thru types. --> Select
	for(var i = 0; i < (display_length - 1); i++)
	{
		var member_type_id = displayed_types[i];
		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;
		parent.categories.document.getElementById("checkbox" + member_type_id).checked = true;

		//Cycle thru subtypes that are open. --> Select
		if(subtype_count != 0)
		{
			for(var index = 1; index < subtype_count; index++)
			{
				if(parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked != true)
				{
					parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked = true;
				}
			}
		}
	}

	//Calls Function to clear all
	getURL();
	var allOnUrl = url + "&function=allTypesOn";

	createRequest();
	request.open("GET", allOnUrl, true);
	request.onreadystatechange = updateAllOn;
	request.send(null);

	/* Start MOD: 6/19/2007
	var displayed_types = parent.categories.document.getElementById("all_types").value;

	displayed_types = displayed_types.split("|");
	var display_length = displayed_types.length;

	//Cycle thru types. --> Select
	for(var i = 0; i < (display_length - 1); i++)
	{
		var member_type_id = displayed_types[i];
		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;
		parent.categories.document.getElementById("checkbox" + member_type_id).checked = true;

		//Cycle thru subtypes that are open. --> Select
		if(subtype_count != 0)
		{
			for(var index = 1; index < subtype_count; index++)
			{
				if(parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked != true)
				{
					parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked = true;
				}
			}
		}

		//Calls function to remove types & subtypes from db table. (ON)
		loadingSubTypes(member_type_id, 1);
		loadingTypes(member_type_id, 1);
	}

	//Re-Load map.
	map.clearOverlays();
	createMemberPoints();
	End MOD: 6/19/2007 */
}

function updateAllOn()
{
	if(request.readyState == 4)
    {
    	var data = request.responseText;
    	//alert(data);
    	if(data == 1)
    	{
    		//Re-Load map.
			map.clearOverlays();
			createMemberPoints();
    	}
    }
}
//END function for All Types ON. --> Updated 6/19/2007


//START function for All Types OFF. --> Updated 6/19/2007
function deSelectAllTypes()
{
	var displayed_types = parent.categories.document.getElementById("all_types").value;

	displayed_types = displayed_types.split("|");
	var display_length = displayed_types.length;

	//Cycle thru types. --> Select
	for(var i = 0; i < (display_length - 1); i++)
	{
		var member_type_id = displayed_types[i];
		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;
		parent.categories.document.getElementById("checkbox" + member_type_id).checked = false;
		//Cycle thru subtypes that are open. --> Select
		if(subtype_count != 0)
		{
			for(var index = 1; index < subtype_count; index++)
			{
				if(parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked != false)
				{
					parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked = false;
				}
			}
		}
	}

	//Calls Function to SET ALL
	getURL();
	var allOffUrl = url + "&function=allTypesOff";

	createRequest();
	request.open("GET", allOffUrl, true);
	request.onreadystatechange = updateAllOff;
	request.send(null);

	//Re-Load map.


	/*var displayed_types = parent.categories.document.getElementById("all_types").value;

	displayed_types = displayed_types.split("|");
	var display_length = displayed_types.length;

	//Cycle thru types. --> Select
	for(var i = 0; i < (display_length - 1); i++)
	{
		var member_type_id = displayed_types[i];
		var subtype_count = parent.categories.document.getElementById("subtype_count" + member_type_id).value;
		parent.categories.document.getElementById("checkbox" + member_type_id).checked = false;
		//Cycle thru subtypes that are open. --> Select
		if(subtype_count != 0)
		{
			for(var index = 1; index < subtype_count; index++)
			{
				if(parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked != false)
				{
					parent.categories.document.getElementById("checkbox" + member_type_id + "_" + index).checked = false;
				}
			}
		}

		//Calls function to remove types & subtypes from db table. (OFF)
		loadingSubTypes(member_type_id, 0);
		loadingTypes(member_type_id, 0);
		//closeSubTypes(member_type_id);
	}

	//Re-Load map.
	map.clearOverlays();	*/
}

function updateAllOff()
{
	if(request.readyState == 4)
    {
    	var data = request.responseText;
    	//alert(data);
    	if(data == 1)
    	{
    		map.clearOverlays();
    	}
    }
}
//END function for All Types OFF. --> Updated 6/19/2007


function saveClientMapType(userMapType)
{
	switch(userMapType)
	{
		case G_NORMAL_MAP: var temp_map_type = "road"; break;
		case G_SATELLITE_MAP: var temp_map_type = "aerial"; break;
		case G_HYBRID_MAP: var temp_map_type = "hybrid"; break;
	}

	getURL();
	createRequest();
    var saveClientMapTypeUrl = url + "&function=saveMapType&trip_id=" + trip_id;
    saveClientMapTypeUrl += "&mapType=" + temp_map_type;

    request.open("GET", saveClientMapTypeUrl, true);
	request.send(null);
}

function showTripPlannerOnOff()
{
	//Get trip planner items;
	document.getElementById("bar_loader").style.display = "inline";
	var tripPlannerCheck = parent.categories.document.getElementById("checkbox_trip_planner").checked;

	if(tripPlannerCheck == true)
	{
		getURL();
		deSelectAllTypes();
		createRequest();
	    var mapTripPlannerUrl = url + "&function=mapTripPlanner&trip_id=" + trip_id;

	    request.open("GET", mapTripPlannerUrl, true);
	    request.onreadystatechange = updateMap;
		request.send(null);
	}
	else
	{
		selectAllTypes();
	}

}
